Revert my previous change -- the subtraction of two constants was a no-op
authorBill Wendling <isanbard@gmail.com>
Mon, 8 Sep 2008 01:56:32 +0000 (01:56 +0000)
committerBill Wendling <isanbard@gmail.com>
Mon, 8 Sep 2008 01:56:32 +0000 (01:56 +0000)
before. This is taken care of in the selection DAG pass. In my opinion, this
should be in one place or the other. I.e., it should probably be removed from
the DAG combiner (along with the other arithmetic transformations on constants
that are essentially no-ops).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55889 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/DAGCombiner.cpp

index 4e4984789bcca92270a0d1fdee1950999b5ef4ea..2d400bdfb2556064642a6e03c81b470474ce4751 100644 (file)
@@ -1111,7 +1111,7 @@ SDValue DAGCombiner::visitSUB(SDNode *N) {
     return DAG.getConstant(0, N->getValueType(0));
   // fold (sub c1, c2) -> c1-c2
   if (N0C && N1C)
-    return DAG.getConstant(N0C->getAPIntValue() - N1C->getAPIntValue(), VT);
+    return DAG.getNode(ISD::SUB, VT, N0, N1);
   // fold (sub x, c) -> (add x, -c)
   if (N1C)
     return DAG.getNode(ISD::ADD, VT, N0,