@@ -2785,19 +2785,17 @@ SDValue SelectionDAGLegalize::ExpandLegalINT_TO_FP(SDNode *Node,
27852785 // In strict mode, we must avoid spurious exceptions, and therefore
27862786 // must make sure to only emit a single STRICT_SINT_TO_FP.
27872787 SDValue InCvt = DAG.getSelect (dl, SrcVT, SignBitTest, Or, Op0);
2788- Fast = DAG.getNode (ISD::STRICT_SINT_TO_FP, dl, { DestVT, MVT::Other },
2789- { Node->getOperand (0 ), InCvt });
2790- Slow = DAG.getNode (ISD::STRICT_FADD, dl, { DestVT, MVT::Other },
2791- { Fast.getValue (1 ), Fast, Fast });
2792- Chain = Slow.getValue (1 );
27932788 // The STRICT_SINT_TO_FP inherits the exception mode from the
27942789 // incoming STRICT_UINT_TO_FP node; the STRICT_FADD node can
27952790 // never raise any exception.
27962791 SDNodeFlags Flags;
27972792 Flags.setNoFPExcept (Node->getFlags ().hasNoFPExcept ());
2798- Fast->setFlags (Flags);
2793+ Fast = DAG.getNode (ISD::STRICT_SINT_TO_FP, dl, {DestVT, MVT::Other},
2794+ {Node->getOperand (0 ), InCvt}, Flags);
27992795 Flags.setNoFPExcept (true );
2800- Slow->setFlags (Flags);
2796+ Slow = DAG.getNode (ISD::STRICT_FADD, dl, {DestVT, MVT::Other},
2797+ {Fast.getValue (1 ), Fast, Fast}, Flags);
2798+ Chain = Slow.getValue (1 );
28012799 } else {
28022800 SDValue SignCvt = DAG.getNode (ISD::SINT_TO_FP, dl, DestVT, Or);
28032801 Slow = DAG.getNode (ISD::FADD, dl, DestVT, SignCvt, SignCvt);
@@ -3407,14 +3405,12 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
34073405 EVT VT = Operand.getValueType ();
34083406 SDValue One = DAG.getConstantFP (1.0 , dl, VT);
34093407 SDValue Chain = DAG.getEntryNode ();
3410- SDValue Mul = DAG.getNode (ISD::STRICT_FMUL, dl, {VT, MVT::Other},
3411- {Chain, Operand, One});
3412-
34133408 // Propagate existing flags on canonicalize, and additionally set
34143409 // NoFPExcept.
34153410 SDNodeFlags CanonicalizeFlags = Node->getFlags ();
34163411 CanonicalizeFlags.setNoFPExcept (true );
3417- Mul->setFlags (CanonicalizeFlags);
3412+ SDValue Mul = DAG.getNode (ISD::STRICT_FMUL, dl, {VT, MVT::Other},
3413+ {Chain, Operand, One}, CanonicalizeFlags);
34183414
34193415 Results.push_back (Mul);
34203416 break ;
@@ -4150,15 +4146,14 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
41504146 Tmp2 = Node->getOperand (1 );
41514147 Tmp3 = Node->getOperand (2 );
41524148 if (Tmp1.getOpcode () == ISD::SETCC) {
4153- Tmp1 = DAG.getSelectCC (dl, Tmp1. getOperand ( 0 ), Tmp1. getOperand ( 1 ),
4154- Tmp2, Tmp3,
4155- cast<CondCodeSDNode>(Tmp1.getOperand (2 ))->get ());
4149+ Tmp1 = DAG.getSelectCC (
4150+ dl, Tmp1. getOperand ( 0 ), Tmp1. getOperand ( 1 ), Tmp2, Tmp3,
4151+ cast<CondCodeSDNode>(Tmp1.getOperand (2 ))->get (), Node-> getFlags ());
41564152 } else {
4157- Tmp1 = DAG. getSelectCC (dl, Tmp1,
4158- DAG.getConstant (0 , dl, Tmp1.getValueType ()),
4159- Tmp2, Tmp3, ISD::SETNE);
4153+ Tmp1 =
4154+ DAG. getSelectCC (dl, Tmp1, DAG.getConstant (0 , dl, Tmp1.getValueType ()),
4155+ Tmp2, Tmp3, ISD::SETNE, Node-> getFlags () );
41604156 }
4161- Tmp1->setFlags (Node->getFlags ());
41624157 Results.push_back (Tmp1);
41634158 break ;
41644159 case ISD::BR_JT: {
@@ -4296,8 +4291,8 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
42964291 EVT Tmp1VT = Tmp1.getValueType ();
42974292 Tmp1 = DAG.getNode (ISD::SELECT_CC, dl, VT, Tmp1, Tmp2,
42984293 DAG.getBoolConstant (true , dl, VT, Tmp1VT),
4299- DAG.getBoolConstant (false , dl, VT, Tmp1VT), Tmp3);
4300- Tmp1-> setFlags ( Node->getFlags ());
4294+ DAG.getBoolConstant (false , dl, VT, Tmp1VT), Tmp3,
4295+ Node->getFlags ());
43014296 Results.push_back (Tmp1);
43024297 break ;
43034298 }
@@ -4335,8 +4330,8 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
43354330 if (TLI.isCondCodeLegalOrCustom (InvCC, Tmp1.getSimpleValueType ())) {
43364331 // Use the new condition code and swap true and false
43374332 Legalized = true ;
4338- Tmp1 = DAG. getSelectCC (dl, Tmp1, Tmp2, Tmp4, Tmp3, InvCC);
4339- Tmp1-> setFlags ( Node->getFlags ());
4333+ Tmp1 =
4334+ DAG. getSelectCC (dl, Tmp1, Tmp2, Tmp4, Tmp3, InvCC, Node->getFlags ());
43404335 } else {
43414336 // If The inverse is not legal, then try to swap the arguments using
43424337 // the inverse condition code.
@@ -4345,8 +4340,8 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
43454340 // The swapped inverse condition is legal, so swap true and false,
43464341 // lhs and rhs.
43474342 Legalized = true ;
4348- Tmp1 = DAG.getSelectCC (dl, Tmp2, Tmp1, Tmp4, Tmp3, SwapInvCC);
4349- Tmp1-> setFlags ( Node->getFlags ());
4343+ Tmp1 = DAG.getSelectCC (dl, Tmp2, Tmp1, Tmp4, Tmp3, SwapInvCC,
4344+ Node->getFlags ());
43504345 }
43514346 }
43524347
@@ -4365,15 +4360,14 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
43654360 // If we expanded the SETCC by swapping LHS and RHS, or by inverting the
43664361 // condition code, create a new SELECT_CC node.
43674362 if (CC.getNode ()) {
4368- Tmp1 = DAG.getNode (ISD::SELECT_CC, dl, Node->getValueType (0 ),
4369- Tmp1, Tmp2, Tmp3, Tmp4, CC);
4363+ Tmp1 = DAG.getNode (ISD::SELECT_CC, dl, Node->getValueType (0 ), Tmp1,
4364+ Tmp2, Tmp3, Tmp4, CC, Node-> getFlags () );
43704365 } else {
43714366 Tmp2 = DAG.getConstant (0 , dl, Tmp1.getValueType ());
43724367 CC = DAG.getCondCode (ISD::SETNE);
43734368 Tmp1 = DAG.getNode (ISD::SELECT_CC, dl, Node->getValueType (0 ), Tmp1,
4374- Tmp2, Tmp3, Tmp4, CC);
4369+ Tmp2, Tmp3, Tmp4, CC, Node-> getFlags () );
43754370 }
4376- Tmp1->setFlags (Node->getFlags ());
43774371 }
43784372 Results.push_back (Tmp1);
43794373 break ;
0 commit comments