Revert "[X86] Limit X86InterleavedAccessGroup to handle the same type case only"
authorWang, Pengfei <pengfei.wang@intel.com>
Wed, 19 May 2021 12:34:47 +0000 (20:34 +0800)
committerWang, Pengfei <pengfei.wang@intel.com>
Wed, 19 May 2021 12:35:45 +0000 (20:35 +0800)
This reverts commit ca23a38e373142a18ab56700ba4f3b947bfe9db0.

Revert due to EXPENSIVE_CHECKS fail.

llvm/lib/Target/X86/X86InterleavedAccess.cpp
llvm/test/CodeGen/X86/x86-interleaved-access.ll

index 5faaf91..95655dd 100644 (file)
@@ -733,9 +733,6 @@ bool X86InterleavedAccessGroup::lowerIntoOptimizedSequence() {
     // results by generating some sort of (optimized) target-specific
     // instructions.
 
-    if (ShuffleTy->getNumElements() != NumSubVecElems)
-      return false;
-
     switch (NumSubVecElems) {
     default:
       return false;
index 32598cd..f99b065 100644 (file)
@@ -1930,22 +1930,3 @@ define void @splat4_v4i64_load_store(<4 x i64>* %s, <16 x i64>* %d) {
   store <16 x i64> %r, <16 x i64>* %d, align 8
   ret void
 }
-
-define <2 x i64> @PR37616(<16 x i64>* %a0) {
-; AVX1-LABEL: PR37616:
-; AVX1:       # %bb.0:
-; AVX1-NEXT:    vmovaps 16(%rdi), %xmm0
-; AVX1-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
-; AVX1-NEXT:    retq
-;
-; AVX2OR512-LABEL: PR37616:
-; AVX2OR512:       # %bb.0:
-; AVX2OR512-NEXT:    vmovaps (%rdi), %ymm0
-; AVX2OR512-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
-; AVX2OR512-NEXT:    vextractf128 $1, %ymm0, %xmm0
-; AVX2OR512-NEXT:    vzeroupper
-; AVX2OR512-NEXT:    retq
-  %load = load <16 x i64>, <16 x i64>* %a0, align 128
-  %shuffle = shufflevector <16 x i64> %load, <16 x i64> undef, <2 x i32> <i32 2, i32 6>
-  ret <2 x i64> %shuffle
-}