projects
/
oota-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
706aa96
)
Another simple xform
author
Chris Lattner
<sabre@nondot.org>
Mon, 18 Apr 2005 04:11:19 +0000
(
04:11
+0000)
committer
Chris Lattner
<sabre@nondot.org>
Mon, 18 Apr 2005 04:11:19 +0000
(
04:11
+0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21317
91177308
-0d34-0410-b5e6-
96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
patch
|
blob
|
history
diff --git
a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 3058ceafe27f556b9c4b4b920720046045b5998a..a52289fb387b98c53f1ede79a2bdd61897f09da0 100644
(file)
--- a/
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@
-964,6
+964,14
@@
SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
return getSetCC(Result, LHS->getValueType(0), LL, LR);
}
}
+
+ // and/or zext(a), zext(b) -> zext(and/or a, b)
+ if (N1.getOpcode() == ISD::ZERO_EXTEND &&
+ N2.getOpcode() == ISD::ZERO_EXTEND &&
+ N1.getOperand(0).getValueType() == N2.getOperand(0).getValueType())
+ return getNode(ISD::ZERO_EXTEND, VT,
+ getNode(Opcode, N1.getOperand(0).getValueType(),
+ N1.getOperand(0), N2.getOperand(0)));
break;
case ISD::XOR:
if (N1 == N2) return getConstant(0, VT); // xor X, Y -> 0