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

References

lib/Target/X86/X86ISelLowering.cpp
36815   if (SDValue V = DAG.simplifySelect(Cond, LHS, RHS))
36820   const TargetLowering &TLI = DAG.getTargetLoweringInfo();
36827       return DAG.getVectorShuffle(VT, DL, LHS, RHS, Mask);
36844     if (DAG.isEqualTo(LHS, Cond.getOperand(0)) &&
36845         DAG.isEqualTo(RHS, Cond.getOperand(1))) {
36852         if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS)) {
36852         if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS)) {
36853           if (!DAG.getTarget().Options.UnsafeFPMath &&
36854               !(DAG.isKnownNeverZeroFloat(LHS) ||
36855                 DAG.isKnownNeverZeroFloat(RHS)))
36864         if (!DAG.getTarget().Options.UnsafeFPMath &&
36865             !DAG.isKnownNeverZeroFloat(LHS) && !DAG.isKnownNeverZeroFloat(RHS))
36865             !DAG.isKnownNeverZeroFloat(LHS) && !DAG.isKnownNeverZeroFloat(RHS))
36883         if (!DAG.getTarget().Options.UnsafeFPMath &&
36884             !DAG.isKnownNeverZeroFloat(LHS) && !DAG.isKnownNeverZeroFloat(RHS))
36884             !DAG.isKnownNeverZeroFloat(LHS) && !DAG.isKnownNeverZeroFloat(RHS))
36892         if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS)) {
36892         if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS)) {
36893           if (!DAG.getTarget().Options.UnsafeFPMath &&
36894               !(DAG.isKnownNeverZeroFloat(LHS) ||
36895                 DAG.isKnownNeverZeroFloat(RHS)))
36913     } else if (DAG.isEqualTo(LHS, Cond.getOperand(1)) &&
36914                DAG.isEqualTo(RHS, Cond.getOperand(0))) {
36921         if (!DAG.getTarget().Options.UnsafeFPMath &&
36922             !(DAG.isKnownNeverZeroFloat(LHS) ||
36923               DAG.isKnownNeverZeroFloat(RHS))) {
36924           if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS))
36924           if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS))
36932         if (!DAG.getTarget().Options.UnsafeFPMath &&
36933             (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS)))
36933             (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS)))
36950         if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS))
36950         if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS))
36958         if (!DAG.getTarget().Options.UnsafeFPMath &&
36959             !DAG.isKnownNeverZeroFloat(LHS) &&
36960             !DAG.isKnownNeverZeroFloat(RHS)) {
36961           if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS))
36961           if (!DAG.isKnownNeverNaN(LHS) || !DAG.isKnownNeverNaN(RHS))
36981       return DAG.getNode(Opcode, DL, N->getValueType(0), LHS, RHS);
36998       AndNode = DAG.getZExtOrTrunc(AndNode, DL, MVT::i8);
36999       return DAG.getNode(ISD::SELECT, DL, VT, AndNode, RHS, LHS);
37014     Cond = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, Cond);
37015     return DAG.getNode(N->getOpcode(), DL, VT, Cond, LHS, RHS);
37041       EVT SrcCondVT = EVT::getVectorVT(*DAG.getContext(), MVT::i1, NumSrcElts);
37042       LHS = insertSubVector(DAG.getUNDEF(SrcVT), LHS, 0, DAG, DL,
37042       LHS = insertSubVector(DAG.getUNDEF(SrcVT), LHS, 0, DAG, DL,
37044       RHS = insertSubVector(DAG.getUNDEF(SrcVT), RHS, 0, DAG, DL,
37044       RHS = insertSubVector(DAG.getUNDEF(SrcVT), RHS, 0, DAG, DL,
37046       Cond = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, SrcCondVT,
37047                          DAG.getUNDEF(SrcCondVT), Cond,
37048                          DAG.getIntPtrConstant(0, DL));
37049       SDValue Res = DAG.getSelect(DL, SrcVT, Cond, LHS, RHS);
37050       return extractSubVector(Res, 0, DAG, DL, VT.getSizeInBits());
37054   if (SDValue V = combineSelectOfTwoConstants(N, DAG))
37074       DAG.isEqualTo(LHS, Cond.getOperand(0)) &&
37075       DAG.isEqualTo(RHS, Cond.getOperand(1))) {
37082       Cond = DAG.getSetCC(SDLoc(Cond), Cond.getValueType(),
37084       return DAG.getSelect(DL, VT, Cond, LHS, RHS);
37118         return DAG.getNode(ISD::USUBSAT, DL, VT, OpLHS, OpRHS);
37133             OpRHS = DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT),
37133             OpRHS = DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT),
37135             return DAG.getNode(ISD::USUBSAT, DL, VT, OpLHS, OpRHS);
37149               OpRHS = DAG.getConstant(OpRHSConst->getAPIntValue(), DL, VT);
37150               return DAG.getNode(ISD::USUBSAT, DL, VT, OpLHS, OpRHS);
37194         return DAG.getNode(ISD::UADDSAT, DL, VT, OpLHS, OpRHS);
37206           return DAG.getNode(ISD::UADDSAT, DL, VT, OpLHS, OpRHS);
37215   if (SDValue V = combineVSelectWithAllOnesOrZeros(N, DAG, DCI, Subtarget))
37218   if (SDValue V = combineVSelectToBLENDV(N, DAG, DCI, Subtarget))
37221   if (SDValue V = narrowVectorSelect(N, DAG, Subtarget))
37226     if (SDValue CondNot = IsNOT(Cond, DAG))
37227       return DAG.getNode(N->getOpcode(), DL, VT,
37228                          DAG.getBitcast(CondVT, CondNot), RHS, LHS);
37232     LHS = DAG.getBitcast(MVT::i64, LHS);
37233     RHS = DAG.getBitcast(MVT::i64, RHS);
37234     SDValue newSelect = DAG.getNode(ISD::SELECT, DL, MVT::i64, Cond, LHS, RHS);
37235     return DAG.getBitcast(VT, newSelect);