-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Conversation
test Windows_NT x64 Checked jitincompletehwintrinsic test Windows_NT x86 Checked jitincompletehwintrinsic test Ubuntu x64 Checked jitincompletehwintrinsic |
@CarolEidt @tannergooding Does this look good to you? |
I'm not sure what you're saying - are we not preserving the values? |
|
Right, I get it now. It makes me wonder whether these are inappropriate intrinsics to offer to developers. I suppose we could interpret the |
@CarolEidt, I would think we should pull these for now and investigate them later, when we can add proper support |
I would like to retain them now.
So, it would be better to give users the chance... |
@fiigii, I agree that they would be useful eventually, but I think they can be excluded from the initial preview. I think at a minimum, they will require more work for the register allocator (perhaps @CarolEidt can confirm). |
I think it's best to pull them for now, as I think it will take some time to ensure that we 1) decide what the right behavior should be, and 2) ensure that behavior is reasonable and is implemented correctly in the JIT. |
IMO it is very important to have them available, however, delaying their availability as @CarolEidt suggested will not harm experimental release. However, IMO good docs explaining to developers where and how this penalties will arise should accompany experimental release. |
I don't think this is a priority. This really only arises when you are mixing code that uses the legacy encoding and code that uses the VEX encoding. The JIT itself is exclusively emitting the VEX-encoding, when supported, so this should really only arise during interop calls. |
@CarolEidt @tannergooding Thanks for the suggestions, I will remove the implementation of zeroupper and zeroall for 2.1. |
0364e36
to
8f0ccdb
Compare
test Windows_NT x64 Checked jitincompletehwintrinsic test Windows_NT x86 Checked jitincompletehwintrinsic test Ubuntu x64 Checked jitincompletehwintrinsic |
Test failures are caused by https://github.com/dotnet/coreclr/issues/17008, not related to this change. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Will update the test cases to match #16957 |
This PR and #17030 implement all the AVX intrinsics, except
|
test Windows_NT x64 Checked jitincompletehwintrinsic test Windows_NT x86 Checked jitincompletehwintrinsic test Ubuntu x64 Checked jitincompletehwintrinsic |
noavx2 test failure is not related. Can we merge this PR? |
How did you determine this? Is there a bug open for this? That leg has passed relatively recently. |
test Windows_NT x64 Checked jitx86hwintrinsicnoavx2 |
I did not change emitter or other general stuff in this PR, and |
test Tizen armel Cross Checked Innerloop Build and Test |
Okay, now all the tests passed. |
This PR implements
AVX
AVX2
But
Avx.ZeroUpper
andAvx.ZeroAll
cannot be tested in C# code because variables ofVector128/256<T>
may be saved/restored in/from the stack.@CarolEidt @tannergooding PTAL