[X86] Speculatively apply the same fix from 361853c96f46848d2ad0739dfa7613e62e7fb530...
authorCraig Topper <craig.topper@intel.com>
Wed, 1 Jul 2020 18:56:56 +0000 (11:56 -0700)
committerCraig Topper <craig.topper@intel.com>
Wed, 1 Jul 2020 18:57:59 +0000 (11:57 -0700)
The UpdateNodeOperands here is also subject to CSE.

llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp

index 54dff1c..4e0e8c5 100644 (file)
@@ -1751,7 +1751,14 @@ SDValue DAGTypeLegalizer::PromoteIntOp_MGATHER(MaskedGatherSDNode *N,
   } else
     NewOps[OpNo] = GetPromotedInteger(N->getOperand(OpNo));
 
-  return SDValue(DAG.UpdateNodeOperands(N, NewOps), 0);
+  SDNode *Res = DAG.UpdateNodeOperands(N, NewOps);
+  if (Res == N)
+    return SDValue(Res, 0);
+
+  // Update triggered CSE, do our own replacement since caller can't.
+  ReplaceValueWith(SDValue(N, 0), SDValue(Res, 0));
+  ReplaceValueWith(SDValue(N, 1), SDValue(Res, 1));
+  return SDValue();
 }
 
 SDValue DAGTypeLegalizer::PromoteIntOp_MSCATTER(MaskedScatterSDNode *N,