diff options
| author | Craig Topper <craig.topper@intel.com> | 2017-12-24 02:05:18 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2017-12-24 02:05:18 +0000 |
| commit | f65a6e4ed827fbbec486ab3d6d4a3e56a2311016 (patch) | |
| tree | 2d558f4c8dedd23e30bcfb34f3aba63e3cc55dc0 /llvm/test | |
| parent | 2e308a9b2f871b48b393179d68742f1b51ab9ff1 (diff) | |
| download | bcm5719-llvm-f65a6e4ed827fbbec486ab3d6d4a3e56a2311016.tar.gz bcm5719-llvm-f65a6e4ed827fbbec486ab3d6d4a3e56a2311016.zip | |
[DAGCombiners] Don't turn ANDs to shuffles with zero so early. Give some other combines a chance to run.
This moves the combine for turning ANDs into shuffle with zero out of SimplifyVBinOps and places it only in visitAND below the reassociate handling. This fixes the specific case I noticed where we failed to combine two ands with constants.
llvm-svn: 321417
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/X86/v8i1-masks.ll | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/llvm/test/CodeGen/X86/v8i1-masks.ll b/llvm/test/CodeGen/X86/v8i1-masks.ll index e3755de3693..a799b0e6f12 100644 --- a/llvm/test/CodeGen/X86/v8i1-masks.ll +++ b/llvm/test/CodeGen/X86/v8i1-masks.ll @@ -160,7 +160,6 @@ define <8 x i32> @and_mask_constant(<8 x i32> %v0, <8 x i32> %v1) { ; X32-AVX2-NEXT: vpxor %xmm1, %xmm1, %xmm1 ; X32-AVX2-NEXT: vpcmpeqd %ymm1, %ymm0, %ymm0 ; X32-AVX2-NEXT: vpand LCPI2_0, %ymm0, %ymm0 -; X32-AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7],ymm0[8],ymm1[9],ymm0[10],ymm1[11],ymm0[12],ymm1[13],ymm0[14],ymm1[15] ; X32-AVX2-NEXT: retl ; ; X64-AVX2-LABEL: and_mask_constant: @@ -168,7 +167,6 @@ define <8 x i32> @and_mask_constant(<8 x i32> %v0, <8 x i32> %v1) { ; X64-AVX2-NEXT: vpxor %xmm1, %xmm1, %xmm1 ; X64-AVX2-NEXT: vpcmpeqd %ymm1, %ymm0, %ymm0 ; X64-AVX2-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0 -; X64-AVX2-NEXT: vpblendw {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2],ymm1[3],ymm0[4],ymm1[5],ymm0[6],ymm1[7],ymm0[8],ymm1[9],ymm0[10],ymm1[11],ymm0[12],ymm1[13],ymm0[14],ymm1[15] ; X64-AVX2-NEXT: retq %m = icmp eq <8 x i32> %v0, zeroinitializer %mand = and <8 x i1> %m, <i1 true, i1 false, i1 false, i1 true, i1 false, i1 true, i1 true, i1 false> |

