aboutsummaryrefslogtreecommitdiff
path: root/lib/Target
diff options
context:
space:
mode:
authorDuraid Madina <duraid@octopus.com.au>2005-04-01 10:35:00 +0000
committerDuraid Madina <duraid@octopus.com.au>2005-04-01 10:35:00 +0000
commit69c8e20aa1cf7f4afb515cceeada6b1ceb06f2b5 (patch)
treec94c7f629d228968b406f84134ea8711757c3187 /lib/Target
parent6cb2e1b124887e5ef3ff77c6ba4ca9b8de051bb5 (diff)
repair mindless SELECT waste.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20982 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/IA64/IA64ISelPattern.cpp20
1 files changed, 5 insertions, 15 deletions
diff --git a/lib/Target/IA64/IA64ISelPattern.cpp b/lib/Target/IA64/IA64ISelPattern.cpp
index 1b1c81fdcc..16607cbcc3 100644
--- a/lib/Target/IA64/IA64ISelPattern.cpp
+++ b/lib/Target/IA64/IA64ISelPattern.cpp
@@ -554,11 +554,6 @@ unsigned ISel::SelectExpr(SDOperand N) {
Tmp2 = SelectExpr(N.getOperand(1)); //Use if TRUE
Tmp3 = SelectExpr(N.getOperand(2)); //Use if FALSE
- // a temporary predicate register to hold the complement of the
- // condition:
- unsigned CondComplement=MakeReg(MVT::i1);
- unsigned bogusTemp=MakeReg(MVT::i1);
-
unsigned bogoResult;
switch (N.getOperand(1).getValueType()) {
@@ -571,16 +566,11 @@ unsigned ISel::SelectExpr(SDOperand N) {
bogoResult=MakeReg(MVT::f64);
break;
}
- // set up the complement predicate reg (CondComplement = NOT Tmp1)
- BuildMI(BB, IA64::CMPEQ, 2, bogusTemp).addReg(IA64::r0).addReg(IA64::r0);
- BuildMI(BB, IA64::TPCMPNE, 3, CondComplement).addReg(bogusTemp)
- .addReg(IA64::r0).addReg(IA64::r0).addReg(Tmp1);
-
- // and do a 'conditional move'
- BuildMI(BB, IA64::PMOV, 2, bogoResult).addReg(Tmp2).addReg(Tmp1);
- BuildMI(BB, IA64::CMOV, 2, Result).addReg(bogoResult).addReg(Tmp3)
- .addReg(CondComplement);
-
+
+ BuildMI(BB, IA64::MOV, 1, bogoResult).addReg(Tmp3);
+ BuildMI(BB, IA64::CMOV, 2, Result).addReg(bogoResult).addReg(Tmp2)
+ .addReg(Tmp1); // FIXME: should be FMOV/FCMOV sometimes,
+ // though this will work for now (no JIT)
return Result;
}