[llvm-commits] CVS: llvm/lib/Target/IA64/IA64ISelPattern.cpp
Duraid Madina
duraid at octopus.com.au
Sun Aug 21 08:44:05 PDT 2005
Changes in directory llvm/lib/Target/IA64:
IA64ISelPattern.cpp updated: 1.57 -> 1.58
---
Log message:
reenable collapse of loadimm+AND -> dep.z (thanks guys)
---
Diffs of the changes: (+6 -5)
IA64ISelPattern.cpp | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
Index: llvm/lib/Target/IA64/IA64ISelPattern.cpp
diff -u llvm/lib/Target/IA64/IA64ISelPattern.cpp:1.57 llvm/lib/Target/IA64/IA64ISelPattern.cpp:1.58
--- llvm/lib/Target/IA64/IA64ISelPattern.cpp:1.57 Sat Aug 20 06:05:23 2005
+++ llvm/lib/Target/IA64/IA64ISelPattern.cpp Sun Aug 21 10:43:53 2005
@@ -1439,7 +1439,7 @@
case MVT::i32:
case MVT::i64: {
Tmp1 = SelectExpr(N.getOperand(0));
-/* FIXME switch (ponderIntegerAndWith(N.getOperand(1), Tmp3)) {
+ switch (ponderIntegerAndWith(N.getOperand(1), Tmp3)) {
case 1: // ANDing a constant that is 2^n-1 for some n
switch (Tmp3) {
case 8: // if AND 0x00000000000000FF, be quaint and use zxt1
@@ -1452,12 +1452,13 @@
BuildMI(BB, IA64::ZXT4, 1, Result).addReg(Tmp1);
break;
default: // otherwise, use dep.z to paste zeros
- BuildMI(BB, IA64::DEPZ, 3, Result).addReg(Tmp1)
+ // FIXME: assert the dep.z is in bounds
+ BuildMI(BB, IA64::DEPZ, 3, Result).addReg(Tmp1)
.addImm(0).addImm(Tmp3);
break;
- }
- return Result; // early exit
- FIXME } */ // fallthrough and emit a simple AND:
+ }
+ return Result; // early exit
+ } // fallthrough and emit a simple AND:
Tmp2 = SelectExpr(N.getOperand(1));
BuildMI(BB, IA64::AND, 2, Result).addReg(Tmp1).addReg(Tmp2);
}
More information about the llvm-commits
mailing list