[X86][AVX512] Add target shuffle test showing missing PSHUFPD combine.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 11 Dec 2016 19:41:23 +0000 (19:41 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 11 Dec 2016 19:41:23 +0000 (19:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289400 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll

index c4568eaf72230f26152992482fa089c24c9d9285..d6541f6860865c55cb6c687a39bbc89204d4f0d3 100644 (file)
@@ -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: