diff options
Diffstat (limited to 'llvm/test/CodeGen')
| -rw-r--r-- | llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll b/llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll index c4568eaf722..d6541f68608 100644 --- a/llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll +++ b/llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll @@ -855,6 +855,22 @@ define <8 x double> @combine_vpermi2var_8f64_identity(<8 x double> %x0, <8 x dou ret <8 x double> %res1 } +define <8 x double> @combine_vpermi2var_8f64_as_shufpd(<8 x double> %x0, <8 x double> %x1) { +; X32-LABEL: combine_vpermi2var_8f64_as_shufpd: +; X32: # BB#0: +; X32-NEXT: vmovapd {{.*#+}} zmm2 = [1,0,8,0,2,0,10,0,5,0,13,0,6,0,15,0] +; X32-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0 +; X32-NEXT: retl +; +; X64-LABEL: combine_vpermi2var_8f64_as_shufpd: +; X64: # BB#0: +; X64-NEXT: vmovapd {{.*#+}} zmm2 = [1,8,2,10,5,13,6,15] +; X64-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0 +; X64-NEXT: retq + %1 = call <8 x double> @llvm.x86.avx512.mask.vpermi2var.pd.512(<8 x double> %x0, <8 x i64> <i64 1, i64 8, i64 2, i64 10, i64 5, i64 13, i64 6, i64 15>, <8 x double> %x1, i8 -1) + ret <8 x double> %1 +} + define <8 x i64> @combine_vpermi2var_8i64_identity(<8 x i64> %x0, <8 x i64> %x1) { ; X32-LABEL: combine_vpermi2var_8i64_identity: ; X32: # BB#0: |

