[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaInstrInfo.td Readme.txt

Andrew Lenharth alenhar2 at cs.uiuc.edu
Wed Sep 20 08:06:07 PDT 2006



Changes in directory llvm/lib/Target/Alpha:

AlphaInstrInfo.td updated: 1.124 -> 1.125
Readme.txt updated: 1.3 -> 1.4
---
Log message:

catch constants more often

---
Diffs of the changes:  (+14 -16)

 AlphaInstrInfo.td |   14 ++++++++++++++
 Readme.txt        |   16 ----------------
 2 files changed, 14 insertions(+), 16 deletions(-)


Index: llvm/lib/Target/Alpha/AlphaInstrInfo.td
diff -u llvm/lib/Target/Alpha/AlphaInstrInfo.td:1.124 llvm/lib/Target/Alpha/AlphaInstrInfo.td:1.125
--- llvm/lib/Target/Alpha/AlphaInstrInfo.td:1.124	Mon Sep 18 13:01:03 2006
+++ llvm/lib/Target/Alpha/AlphaInstrInfo.td	Wed Sep 20 10:05:49 2006
@@ -214,6 +214,20 @@
 def : Pat<(select GPRC:$which, GPRC:$src1, immUExt8:$src2),
       (CMOVEQi GPRC:$src1, immUExt8:$src2, GPRC:$which)>;
 
+//Invert sense when we can for constants:
+def : Pat<(select (seteq GPRC:$RCOND, 0), immUExt8:$RFALSE, GPRC:$RTRUE),
+          (CMOVEQi GPRC:$RTRUE, immUExt8:$RFALSE, GPRC:$RCOND)>;
+def : Pat<(select (setne GPRC:$RCOND, 0), immUExt8:$RFALSE, GPRC:$RTRUE),
+          (CMOVNEi GPRC:$RTRUE, immUExt8:$RFALSE, GPRC:$RCOND)>;
+def : Pat<(select (setgt GPRC:$RCOND, 0), immUExt8:$RFALSE, GPRC:$RTRUE),
+          (CMOVGTi GPRC:$RTRUE, immUExt8:$RFALSE, GPRC:$RCOND)>;
+def : Pat<(select (setge GPRC:$RCOND, 0), immUExt8:$RFALSE, GPRC:$RTRUE),
+          (CMOVGEi GPRC:$RTRUE, immUExt8:$RFALSE, GPRC:$RCOND)>;
+def : Pat<(select (setlt GPRC:$RCOND, 0), immUExt8:$RFALSE, GPRC:$RTRUE),
+          (CMOVLTi GPRC:$RTRUE, immUExt8:$RFALSE, GPRC:$RCOND)>;
+def : Pat<(select (setle GPRC:$RCOND, 0), immUExt8:$RFALSE, GPRC:$RTRUE),
+          (CMOVLEi GPRC:$RTRUE, immUExt8:$RFALSE, GPRC:$RCOND)>;
+
 
 def ADDL     : OForm< 0x10, 0x00, "addl $RA,$RB,$RC",
                       [(set GPRC:$RC, (intop (add GPRC:$RA, GPRC:$RB)))], s_iadd>;


Index: llvm/lib/Target/Alpha/Readme.txt
diff -u llvm/lib/Target/Alpha/Readme.txt:1.3 llvm/lib/Target/Alpha/Readme.txt:1.4
--- llvm/lib/Target/Alpha/Readme.txt:1.3	Wed Sep 20 09:48:00 2006
+++ llvm/lib/Target/Alpha/Readme.txt	Wed Sep 20 10:05:49 2006
@@ -1,20 +1,4 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-Fix cmovs with a constant on the wrong side
-
-aka:
-        lda $0,10($31)
-        cmovlt $17,$0,$16
-
-is bad for:
-
-long %cmov_lt2(long %a, long %c) {
-entry:
-	%tmp.1 = setlt long %c, 0
-	%retval = select bool %tmp.1, long 10, long %a
-	ret long %retval
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Fix Ordered/Unordered FP stuff
 
 






More information about the llvm-commits mailing list