Upgrading Vector256/512 Shuffle() with VBMI support#87083
Upgrading Vector256/512 Shuffle() with VBMI support#87083BruceForstall merged 4 commits intodotnet:mainfrom
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsUpgrading Vector256/512 Shuffle() with VBMI support
|
bd850a2 to
5885bac
Compare
4bdbd2a to
8eecf8f
Compare
|
There's currently an infrastructure issue causing a large number of CI machine timeouts. It's likely not related to your PR. |
Please let me know you there is anything else to be done on this to be merged. |
src/coreclr/jit/gentree.cpp
Outdated
There was a problem hiding this comment.
There's potentially a missing "todo" here to handle this using pshufb if we don't cross lanes and VBMI is not available.
I don't think it needs to be handled as part of this PR (or even for .NET 8 necessarily) since that scenario should only be limited to pre-cannon lake (and therefore first generation AVX-512 hardware). But, since it should just be refactoring the logic under the if (simdSize == 32) path to be shared; its probably worth having still.
|
CC. @dotnet/jit-contrib, @dotnet/avx512-contrib for secondary sign-off. |
3a2e180 to
17fb7dc
Compare

This change does the following
1: Accelerates Vector512.Shuffle() using AVX512VBMI(permb)
2. Accelerates Vector256.Shuffle() using AVX512VBMI_VL
3. Accelerates Vector256.Shuffle() using AVX512BW_VL
@dotnet/avx512-contrib