Enable Vector256<T> on AVX CPUs#15528
Conversation
|
I have tested with |
| // The minimum and maximum possible number of bytes in a SIMD vector. | ||
| unsigned int maxSIMDStructBytes() | ||
| { | ||
| #if FEATURE_HW_INTRINSICS && defined(_TARGET_XARCH_) |
There was a problem hiding this comment.
This could be confusing, so I would suggest adding a comment to the effect that in the case of AVX without AVX2, Vector<T> will be limited to 16 bytes, even though the full 32 byte AVX register length is supported for the HW intrinsics.
CarolEidt
left a comment
There was a problem hiding this comment.
LGTM, but I think a comment would help clarify.
|
@CarolEidt Thank you for the suggestion. I added comments for |
|
@fiigii @CarolEidt Is there an issue to track how we test all the new SIMD modes? E.g., we currently have the following SIMD-specific modes in Jenkins: (from netci.groovy) What more do we need? Are the CI machines even capable of testing this stuff? |
Not yet. |
|
I think we need the three CI jobs (at least) with Debug and Checked build. |
I think that we will need to have the ability to turn off all the various
I believe that most of our CI machines now have AVX2. However, I don't think any of the tests require it, so if we happened to run the tests on, say, a non-AVX2 machine, the tests run with |
|
Unrelated: @fiigii These tests are failing in the CI: in the x64 Checked Windows job with |
|
@BruceForstall the current "IsSupported" tests make no sense with those environment variables, so I deleted them in #15514. |
Enable
Vector256<T>on AVX CPUs (Sandy Bridge and Ivy Bridge).Fix #15519. OSX CI looks like running on an old machine sometimes.