diff options
author | Chris Lattner <sabre@nondot.org> | 2005-04-10 01:13:15 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-04-10 01:13:15 +0000 |
commit | dea29e25c32d2651e2efaff67bc30803ea24d991 (patch) | |
tree | adf4e8d1535544668ba651f1146b11a214618efc /lib/CodeGen/SelectionDAG/SelectionDAG.cpp | |
parent | 51d2ed976f30913e173536e244d9f0e7259e4b1e (diff) |
Fix a thinko. If the operand is promoted, pass the promoted value into
the new zero extend, not the original operand. This fixes cast bool -> long
on ppc.
Add an unrelated fixme
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21196 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 74e807ca82..f33ecd7223 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -767,6 +767,10 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT, if (N2C->isAllOnesValue()) return N1; // X and -1 -> X + // FIXME: Should add a corresponding version of this for + // ZERO_EXTEND/SIGN_EXTEND by converting them to an ANY_EXTEND node which + // we don't have yet. + // and (zero_extend_inreg x:16:32), 1 -> and x, 1 if (N1.getOpcode() == ISD::ZERO_EXTEND_INREG || N1.getOpcode() == ISD::SIGN_EXTEND_INREG) { |