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

References

lib/Target/X86/X86ISelLowering.cpp
35837   SDValue Match = DAG.matchBinOpReduction(Extract, BinOp, {ISD::OR, ISD::AND});
35839     Match = DAG.matchBinOpReduction(Extract, BinOp, {ISD::XOR});
35853   const TargetLowering &TLI = DAG.getTargetLoweringInfo();
35861       EVT MovmskVT = EVT::getIntegerVT(*DAG.getContext(), NumElts);
35862       Movmsk = DAG.getBitcast(MovmskVT, Match);
35867         std::tie(Lo, Hi) = DAG.SplitVector(Match, DL);
35868         Match = DAG.getNode(BinOp, DL, Lo.getValueType(), Lo, Hi);
35871       EVT MovmskVT = EVT::getIntegerVT(*DAG.getContext(), NumElts);
35872       Movmsk = combineBitcastvxi1(DAG, MovmskVT, Match, DL, Subtarget);
35876     Movmsk = DAG.getZExtOrTrunc(Movmsk, DL, NumElts > 32 ? MVT::i64 : MVT::i32);
35895     if (DAG.ComputeNumSignBits(Match) != BitWidth)
35900       std::tie(Lo, Hi) = DAG.SplitVector(Match, DL);
35901       Match = DAG.getNode(BinOp, DL, Lo.getValueType(), Lo, Hi);
35913     SDValue BitcastLogicOp = DAG.getBitcast(MaskSrcVT, Match);
35914     Movmsk = getPMOVMSKB(DL, BitcastLogicOp, DAG, Subtarget);
35923     SDValue Mask = DAG.getConstant(1, DL, CmpVT);
35924     SDValue Result = DAG.getNode(ISD::CTPOP, DL, CmpVT, Movmsk);
35925     Result = DAG.getNode(ISD::AND, DL, CmpVT, Result, Mask);
35926     return DAG.getZExtOrTrunc(Result, DL, ExtractVT);
35933     CmpC = DAG.getConstant(0, DL, CmpVT);
35937     CmpC = DAG.getConstant(APInt::getLowBitsSet(CmpVT.getSizeInBits(), NumElts),
35945       TLI.getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), CmpVT);
35945       TLI.getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), CmpVT);
35946   SDValue Setcc = DAG.getSetCC(DL, SetccVT, Movmsk, CmpC, CondCode);
35947   SDValue Zext = DAG.getZExtOrTrunc(Setcc, DL, ExtractVT);
35948   SDValue Zero = DAG.getConstant(0, DL, ExtractVT);
35949   return DAG.getNode(ISD::SUB, DL, ExtractVT, Zero, Zext);