Fix SimplifySelectCC to add newly created nodes to the DAGCombiner
authorDan Gohman <gohman@apple.com>
Thu, 22 Sep 2011 23:01:29 +0000 (23:01 +0000)
committerDan Gohman <gohman@apple.com>
Thu, 22 Sep 2011 23:01:29 +0000 (23:01 +0000)
worklist, as it may be possible to perform further optimization on them.

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

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/ARM/select.ll

index 1b73b0711ea1ef1961731721b635555d6698142e..7b878688df63e37fe7fb3ea61248f5daffef33e6 100644 (file)
@@ -7500,10 +7500,13 @@ SDValue DAGCombiner::SimplifySelectCC(DebugLoc DL, SDValue N0, SDValue N1,
         SDValue Cond = DAG.getSetCC(DL,
                                     TLI.getSetCCResultType(N0.getValueType()),
                                     N0, N1, CC);
+        AddToWorkList(Cond.getNode());
         SDValue CstOffset = DAG.getNode(ISD::SELECT, DL, Zero.getValueType(),
                                         Cond, One, Zero);
+        AddToWorkList(CstOffset.getNode());
         CPIdx = DAG.getNode(ISD::ADD, DL, TLI.getPointerTy(), CPIdx,
                             CstOffset);
+        AddToWorkList(CPIdx.getNode());
         return DAG.getLoad(TV->getValueType(0), DL, DAG.getEntryNode(), CPIdx,
                            MachinePointerInfo::getConstantPool(), false,
                            false, Alignment);
index a19c04452a7be1aedb578e4041e35215449bf132..f1bd7ee53f8841e5a603a0cf6214548ed07bde4f 100644 (file)
@@ -76,12 +76,12 @@ define double @f7(double %a, double %b) {
 ; block generated, odds are good that we have close to the ideal code for this:
 ;
 ; CHECK-NEON:      _f8:
-; CHECK-NEON:      movw   [[REGISTER_1:r[0-9]+]], #1123
-; CHECK-NEON-NEXT: movs   [[REGISTER_2:r[0-9]+]], #0
-; CHECK-NEON-NEXT: cmp    r0, [[REGISTER_1]]
-; CHECK-NEON-NEXT: it     eq
-; CHECK-NEON-NEXT: moveq  [[REGISTER_2]], #4
-; CHECK-NEON-NEXT: adr    [[REGISTER_3:r[0-9]+]], LCPI
+; CHECK-NEON:      adr     r2, LCPI7_0
+; CHECK-NEON-NEXT: movw    r3, #1123
+; CHECK-NEON-NEXT: adds    r1, r2, #4
+; CHECK-NEON-NEXT: cmp     r0, r3
+; CHECK-NEON-NEXT: it      ne
+; CHECK-NEON-NEXT: movne   r1, r2
 ; CHECK-NEON-NEXT: ldr
 ; CHECK-NEON:      bx