[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPC32ISelDAGToDAG.cpp

Chris Lattner lattner at cs.uiuc.edu
Wed Sep 28 11:05:03 PDT 2005



Changes in directory llvm/lib/Target/PowerPC:

PPC32ISelDAGToDAG.cpp updated: 1.79 -> 1.80
---
Log message:

Implement PowerPC/eqv-andc-orc-nor.ll:EQV3


---
Diffs of the changes:  (+5 -1)

 PPC32ISelDAGToDAG.cpp |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/PowerPC/PPC32ISelDAGToDAG.cpp
diff -u llvm/lib/Target/PowerPC/PPC32ISelDAGToDAG.cpp:1.79 llvm/lib/Target/PowerPC/PPC32ISelDAGToDAG.cpp:1.80
--- llvm/lib/Target/PowerPC/PPC32ISelDAGToDAG.cpp:1.79	Wed Sep 28 12:07:09 2005
+++ llvm/lib/Target/PowerPC/PPC32ISelDAGToDAG.cpp	Wed Sep 28 13:04:52 2005
@@ -1012,12 +1012,16 @@
       N = I;
       return SDOperand(N, 0);
     }
-    // Finally, check for the case where we are being asked to select
+    // Check for the case where we are being asked to select
     // xor (not(a), b) which is equivalent to not(xor a, b), which is eqv
     if (isOprNot(N->getOperand(0).Val))
       CurDAG->SelectNodeTo(N, PPC::EQV, MVT::i32, 
                            Select(N->getOperand(0).getOperand(0)),
                            Select(N->getOperand(1)));
+    else if (isOprNot(N->getOperand(1).Val))
+      CurDAG->SelectNodeTo(N, PPC::EQV, MVT::i32, 
+                           Select(N->getOperand(1).getOperand(0)),
+                           Select(N->getOperand(0)));
     else
       CurDAG->SelectNodeTo(N, PPC::XOR, MVT::i32, Select(N->getOperand(0)),
                            Select(N->getOperand(1)));






More information about the llvm-commits mailing list