diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll | 68 |
1 files changed, 22 insertions, 46 deletions
diff --git a/llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll b/llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll index a2fa29ef5b2..50e0f173cb6 100644 --- a/llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll +++ b/llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll @@ -520,29 +520,17 @@ define <4 x i64> @combine_pshufb_as_zext128(<32 x i8> %a0) { } define <4 x double> @combine_pshufb_as_vzmovl_64(<4 x double> %a0) { -; X32-AVX2-LABEL: combine_pshufb_as_vzmovl_64: -; X32-AVX2: # %bb.0: -; X32-AVX2-NEXT: vxorps %xmm1, %xmm1, %xmm1 -; X32-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7] -; X32-AVX2-NEXT: retl -; -; X32-AVX512-LABEL: combine_pshufb_as_vzmovl_64: -; X32-AVX512: # %bb.0: -; X32-AVX512-NEXT: vxorpd %xmm1, %xmm1, %xmm1 -; X32-AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1] -; X32-AVX512-NEXT: retl -; -; X64-AVX2-LABEL: combine_pshufb_as_vzmovl_64: -; X64-AVX2: # %bb.0: -; X64-AVX2-NEXT: vxorps %xmm1, %xmm1, %xmm1 -; X64-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7] -; X64-AVX2-NEXT: retq -; -; X64-AVX512-LABEL: combine_pshufb_as_vzmovl_64: -; X64-AVX512: # %bb.0: -; X64-AVX512-NEXT: vxorpd %xmm1, %xmm1, %xmm1 -; X64-AVX512-NEXT: vmovsd {{.*#+}} xmm0 = xmm0[0],xmm1[1] -; X64-AVX512-NEXT: retq +; X32-LABEL: combine_pshufb_as_vzmovl_64: +; X32: # %bb.0: +; X32-NEXT: vxorps %xmm1, %xmm1, %xmm1 +; X32-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7] +; X32-NEXT: retl +; +; X64-LABEL: combine_pshufb_as_vzmovl_64: +; X64: # %bb.0: +; X64-NEXT: vxorps %xmm1, %xmm1, %xmm1 +; X64-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7] +; X64-NEXT: retq %1 = bitcast <4 x double> %a0 to <32 x i8> %2 = call <32 x i8> @llvm.x86.avx2.pshuf.b(<32 x i8> %1, <32 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>) %3 = bitcast <32 x i8> %2 to <4 x double> @@ -550,29 +538,17 @@ define <4 x double> @combine_pshufb_as_vzmovl_64(<4 x double> %a0) { } define <8 x float> @combine_pshufb_as_vzmovl_32(<8 x float> %a0) { -; X32-AVX2-LABEL: combine_pshufb_as_vzmovl_32: -; X32-AVX2: # %bb.0: -; X32-AVX2-NEXT: vxorps %xmm1, %xmm1, %xmm1 -; X32-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3,4,5,6,7] -; X32-AVX2-NEXT: retl -; -; X32-AVX512-LABEL: combine_pshufb_as_vzmovl_32: -; X32-AVX512: # %bb.0: -; X32-AVX512-NEXT: vxorps %xmm1, %xmm1, %xmm1 -; X32-AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3] -; X32-AVX512-NEXT: retl -; -; X64-AVX2-LABEL: combine_pshufb_as_vzmovl_32: -; X64-AVX2: # %bb.0: -; X64-AVX2-NEXT: vxorps %xmm1, %xmm1, %xmm1 -; X64-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3,4,5,6,7] -; X64-AVX2-NEXT: retq -; -; X64-AVX512-LABEL: combine_pshufb_as_vzmovl_32: -; X64-AVX512: # %bb.0: -; X64-AVX512-NEXT: vxorps %xmm1, %xmm1, %xmm1 -; X64-AVX512-NEXT: vmovss {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3] -; X64-AVX512-NEXT: retq +; X32-LABEL: combine_pshufb_as_vzmovl_32: +; X32: # %bb.0: +; X32-NEXT: vxorps %xmm1, %xmm1, %xmm1 +; X32-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3,4,5,6,7] +; X32-NEXT: retl +; +; X64-LABEL: combine_pshufb_as_vzmovl_32: +; X64: # %bb.0: +; X64-NEXT: vxorps %xmm1, %xmm1, %xmm1 +; X64-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3,4,5,6,7] +; X64-NEXT: retq %1 = bitcast <8 x float> %a0 to <32 x i8> %2 = call <32 x i8> @llvm.x86.avx2.pshuf.b(<32 x i8> %1, <32 x i8> <i8 0, i8 1, i8 2, i8 3, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>) %3 = bitcast <32 x i8> %2 to <8 x float> |

