[llvm] r208959 - ARM64: give TST aliases priority over ANDS.

Tim Northover tnorthover at apple.com
Fri May 16 02:41:08 PDT 2014


Author: tnorthover
Date: Fri May 16 04:41:08 2014
New Revision: 208959

URL: http://llvm.org/viewvc/llvm-project?rev=208959&view=rev
Log:
ARM64: give TST aliases priority over ANDS.

If an ANDS instruction has Rd == ZR it should be printed as TST since
its only effect is on the flags register NZCV.

This will be tested when the TableGen "should I print this Alias"
heuristic is fixed (very soon).

Modified:
    llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td

Modified: llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td?rev=208959&r1=208958&r2=208959&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td (original)
+++ llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td Fri May 16 04:41:08 2014
@@ -726,19 +726,19 @@ def AA_MVNWrs : InstAlias<"mvn $Wd, $Wm$
 def AA_MVNXrs : InstAlias<"mvn $Xd, $Xm$sh",
                 (ORNXrs GPR64:$Xd, XZR, GPR64:$Xm, logical_shift64:$sh)>;
 
-def : InstAlias<"tst $src1, $src2",
-                (ANDSWri WZR, GPR32:$src1, logical_imm32:$src2)>;
-def : InstAlias<"tst $src1, $src2",
-                (ANDSXri XZR, GPR64:$src1, logical_imm64:$src2)>;
+def AA_TSTWri : InstAlias<"tst $src1, $src2",
+                         (ANDSWri WZR, GPR32:$src1, logical_imm32:$src2)>;
+def AA_TSTXri : InstAlias<"tst $src1, $src2",
+                         (ANDSXri XZR, GPR64:$src1, logical_imm64:$src2)>;
 
-def : InstAlias<"tst $src1, $src2",
-                (ANDSWrs WZR, GPR32:$src1, GPR32:$src2, 0)>;
-def : InstAlias<"tst $src1, $src2",
-                (ANDSXrs XZR, GPR64:$src1, GPR64:$src2, 0)>;
+def AA_TSTWr: InstAlias<"tst $src1, $src2",
+                       (ANDSWrs WZR, GPR32:$src1, GPR32:$src2, 0)>;
+def AA_TSTXr: InstAlias<"tst $src1, $src2",
+                       (ANDSXrs XZR, GPR64:$src1, GPR64:$src2, 0)>;
 
-def : InstAlias<"tst $src1, $src2, $sh",
+def AB_TSTWrs : InstAlias<"tst $src1, $src2$sh",
                 (ANDSWrs WZR, GPR32:$src1, GPR32:$src2, logical_shift32:$sh)>;
-def : InstAlias<"tst $src1, $src2, $sh",
+def AB_TSTXrs : InstAlias<"tst $src1, $src2$sh",
                 (ANDSXrs XZR, GPR64:$src1, GPR64:$src2, logical_shift64:$sh)>;
 
 





More information about the llvm-commits mailing list