reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/X86/X86ISelLowering.cpp
35757   SDValue Src = DAG.matchBinOpReduction(
35774     SrcVT = EVT::getVectorVT(*DAG.getContext(), SrcSVT, NumSubElts);
35776     SDValue Lo = extractSubVector(MinPos, 0, DAG, DL, SubSizeInBits);
35777     SDValue Hi = extractSubVector(MinPos, NumSubElts, DAG, DL, SubSizeInBits);
35778     MinPos = DAG.getNode(BinOp, DL, SrcVT, Lo, Hi);
35789     Mask = DAG.getConstant(APInt::getSignedMaxValue(MaskEltsBits), DL, SrcVT);
35791     Mask = DAG.getConstant(APInt::getSignedMinValue(MaskEltsBits), DL, SrcVT);
35793     Mask = DAG.getConstant(APInt::getAllOnesValue(MaskEltsBits), DL, SrcVT);
35796     MinPos = DAG.getNode(ISD::XOR, DL, SrcVT, Mask, MinPos);
35803     SDValue Upper = DAG.getVectorShuffle(
35804         SrcVT, DL, MinPos, DAG.getConstant(0, DL, MVT::v16i8),
35806     MinPos = DAG.getNode(ISD::UMIN, DL, SrcVT, MinPos, Upper);
35810   MinPos = DAG.getBitcast(MVT::v8i16, MinPos);
35811   MinPos = DAG.getNode(X86ISD::PHMINPOS, DL, MVT::v8i16, MinPos);
35812   MinPos = DAG.getBitcast(SrcVT, MinPos);
35815     MinPos = DAG.getNode(ISD::XOR, DL, SrcVT, Mask, MinPos);
35817   return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ExtractVT, MinPos,
35818                      DAG.getIntPtrConstant(0, DL));