@@ -3957,28 +3957,14 @@ SDValue DAGTypeLegalizer::SoftPromoteHalfOp_ATOMIC_STORE(SDNode *N,
39573957SDValue DAGTypeLegalizer::SoftPromoteHalfOp_STACKMAP (SDNode *N, unsigned OpNo) {
39583958 assert (OpNo > 1 ); // Because the first two arguments are guaranteed legal.
39593959 SmallVector<SDValue> NewOps (N->ops ());
3960- SDValue Op = N->getOperand (OpNo);
3961- NewOps[OpNo] = GetSoftPromotedHalf (Op);
3962- SDValue NewNode =
3963- DAG.getNode (N->getOpcode (), SDLoc (N), N->getVTList (), NewOps);
3964-
3965- for (unsigned ResNum = 0 ; ResNum < N->getNumValues (); ResNum++)
3966- ReplaceValueWith (SDValue (N, ResNum), NewNode.getValue (ResNum));
3967-
3968- return SDValue (); // Signal that we replaced the node ourselves.
3960+ NewOps[OpNo] = GetSoftPromotedHalf (NewOps[OpNo]);
3961+ return SDValue (DAG.UpdateNodeOperands (N, NewOps), 0 );
39693962}
39703963
39713964SDValue DAGTypeLegalizer::SoftPromoteHalfOp_PATCHPOINT (SDNode *N,
39723965 unsigned OpNo) {
39733966 assert (OpNo >= 7 );
39743967 SmallVector<SDValue> NewOps (N->ops ());
3975- SDValue Op = N->getOperand (OpNo);
3976- NewOps[OpNo] = GetSoftPromotedHalf (Op);
3977- SDValue NewNode =
3978- DAG.getNode (N->getOpcode (), SDLoc (N), N->getVTList (), NewOps);
3979-
3980- for (unsigned ResNum = 0 ; ResNum < N->getNumValues (); ResNum++)
3981- ReplaceValueWith (SDValue (N, ResNum), NewNode.getValue (ResNum));
3982-
3983- return SDValue (); // Signal that we replaced the node ourselves.
3968+ NewOps[OpNo] = GetSoftPromotedHalf (NewOps[OpNo]);
3969+ return SDValue (DAG.UpdateNodeOperands (N, NewOps), 0 );
39843970}
0 commit comments