diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 77406b1cb173d..5a4986a729a35 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -34260,22 +34260,6 @@ static SDValue combineX86ShuffleChain(ArrayRef Inputs, SDValue Root, APInt Zeroable = KnownUndef | KnownZero; if (UnaryShuffle) { - // If we are shuffling a X86ISD::VZEXT_LOAD then we can use the load - // directly if we don't shuffle the lower element and we shuffle the upper - // (zero) elements within themselves. - if (V1.getOpcode() == X86ISD::VZEXT_LOAD && - (cast(V1)->getMemoryVT().getScalarSizeInBits() % - MaskEltSizeInBits) == 0) { - unsigned Scale = - cast(V1)->getMemoryVT().getScalarSizeInBits() / - MaskEltSizeInBits; - ArrayRef HiMask(Mask.data() + Scale, NumMaskElts - Scale); - if (isSequentialOrUndefInRange(Mask, 0, Scale, 0) && - isUndefOrZeroOrInRange(HiMask, Scale, NumMaskElts)) { - return DAG.getBitcast(RootVT, V1); - } - } - // Attempt to match against broadcast-from-vector. // Limit AVX1 to cases where we're loading+broadcasting a scalar element. if ((Subtarget.hasAVX2() ||