As described in the bug: https://llvm.org/bugs/show_bug.cgi?id=31351
- This patch adds new type of shuffle lowering:
- We can use the expand instruction, When the shuffle pattern is as following { 0*a[0]0*a[1]...0*a[n] , n >=0 where a[] elements in a ascending order}.
Instruction | CPUID Feature Flag |
V(P)EXPAND.* xmm1 {k1}{z},xmm2/m128 | AVX512VL and AVX512F |
V(P)EXPAND.* ymm1 {k1}{z},ymm2/m256 | AVX512VL and AVX512F |
V(P)EXPAND.* zmm1 {k1}{z},zmm2/m512 | AVX512F |