diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 785c5ff2be3..082d1bafddb 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -25151,8 +25151,7 @@ static SDValue LowerMLOAD(SDValue Op, const X86Subtarget &Subtarget, // VLX the vector should be widened to 512 bit unsigned NumEltsInWideVec = 512 / VT.getScalarSizeInBits(); MVT WideDataVT = MVT::getVectorVT(ScalarVT, NumEltsInWideVec); - SDValue Src0 = N->getSrc0(); - Src0 = ExtendToType(Src0, WideDataVT, DAG); + SDValue PassThru = ExtendToType(N->getPassThru(), WideDataVT, DAG); // Mask element has to be i1. assert(Mask.getSimpleValueType().getScalarType() == MVT::i1 && @@ -25162,7 +25161,7 @@ static SDValue LowerMLOAD(SDValue Op, const X86Subtarget &Subtarget, Mask = ExtendToType(Mask, WideMaskVT, DAG, true); SDValue NewLoad = DAG.getMaskedLoad(WideDataVT, dl, N->getChain(), - N->getBasePtr(), Mask, Src0, + N->getBasePtr(), Mask, PassThru, N->getMemoryVT(), N->getMemOperand(), N->getExtensionType(), N->isExpandingLoad()); @@ -35790,8 +35789,8 @@ reduceMaskedLoadToScalarLoad(MaskedLoadSDNode *ML, SelectionDAG &DAG, Alignment, ML->getMemOperand()->getFlags()); // Insert the loaded element into the appropriate place in the vector. - SDValue Insert = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, ML->getSrc0(), - Load, VecIndex); + SDValue Insert = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, + ML->getPassThru(), Load, VecIndex); return DCI.CombineTo(ML, Insert, Load.getValue(1), true); } @@ -35814,7 +35813,8 @@ combineMaskedLoadConstantMask(MaskedLoadSDNode *ML, SelectionDAG &DAG, if (LoadFirstElt && LoadLastElt) { SDValue VecLd = DAG.getLoad(VT, DL, ML->getChain(), ML->getBasePtr(), ML->getMemOperand()); - SDValue Blend = DAG.getSelect(DL, VT, ML->getMask(), VecLd, ML->getSrc0()); + SDValue Blend = DAG.getSelect(DL, VT, ML->getMask(), VecLd, + ML->getPassThru()); return DCI.CombineTo(ML, Blend, VecLd.getValue(1), true); } @@ -35824,7 +35824,7 @@ combineMaskedLoadConstantMask(MaskedLoadSDNode *ML, SelectionDAG &DAG, // Don't try this if the pass-through operand is already undefined. That would // cause an infinite loop because that's what we're about to create. - if (ML->getSrc0().isUndef()) + if (ML->getPassThru().isUndef()) return SDValue(); // The new masked load has an undef pass-through operand. The select uses the @@ -35833,7 +35833,8 @@ combineMaskedLoadConstantMask(MaskedLoadSDNode *ML, SelectionDAG &DAG, ML->getMask(), DAG.getUNDEF(VT), ML->getMemoryVT(), ML->getMemOperand(), ML->getExtensionType()); - SDValue Blend = DAG.getSelect(DL, VT, ML->getMask(), NewML, ML->getSrc0()); + SDValue Blend = DAG.getSelect(DL, VT, ML->getMask(), NewML, + ML->getPassThru()); return DCI.CombineTo(ML, Blend, NewML.getValue(1), true); } @@ -35880,9 +35881,9 @@ static SDValue combineMaskedLoad(SDNode *N, SelectionDAG &DAG, LdVT.getScalarType(), NumElems*SizeRatio); assert(WideVecVT.getSizeInBits() == VT.getSizeInBits()); - // Convert Src0 value. - SDValue WideSrc0 = DAG.getBitcast(WideVecVT, Mld->getSrc0()); - if (!Mld->getSrc0().isUndef()) { + // Convert PassThru value. + SDValue WidePassThru = DAG.getBitcast(WideVecVT, Mld->getPassThru()); + if (!Mld->getPassThru().isUndef()) { SmallVector<int, 16> ShuffleVec(NumElems * SizeRatio, -1); for (unsigned i = 0; i != NumElems; ++i) ShuffleVec[i] = i * SizeRatio; @@ -35890,7 +35891,7 @@ static SDValue combineMaskedLoad(SDNode *N, SelectionDAG &DAG, // Can't shuffle using an illegal type. assert(DAG.getTargetLoweringInfo().isTypeLegal(WideVecVT) && "WideVecVT should be legal"); - WideSrc0 = DAG.getVectorShuffle(WideVecVT, dl, WideSrc0, + WidePassThru = DAG.getVectorShuffle(WideVecVT, dl, WidePassThru, DAG.getUNDEF(WideVecVT), ShuffleVec); } @@ -35923,7 +35924,7 @@ static SDValue combineMaskedLoad(SDNode *N, SelectionDAG &DAG, } SDValue WideLd = DAG.getMaskedLoad(WideVecVT, dl, Mld->getChain(), - Mld->getBasePtr(), NewMask, WideSrc0, + Mld->getBasePtr(), NewMask, WidePassThru, Mld->getMemoryVT(), Mld->getMemOperand(), ISD::NON_EXTLOAD); SDValue NewVec = getExtendInVec(X86ISD::VSEXT, dl, VT, WideLd, DAG); |

