diff options
| author | Tim Northover <tnorthover@apple.com> | 2014-05-16 09:41:08 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2014-05-16 09:41:08 +0000 |
| commit | 5763670b09d0bdeb897d8ff14ea7b547ada4ae8f (patch) | |
| tree | a3982e9b38e68bf6cfe628369ae8f26b34e45cef /llvm/lib/Target | |
| parent | 106ac4830ee02bff84aa718bbb3ad0698df192e2 (diff) | |
| download | bcm5719-llvm-5763670b09d0bdeb897d8ff14ea7b547ada4ae8f.tar.gz bcm5719-llvm-5763670b09d0bdeb897d8ff14ea7b547ada4ae8f.zip | |
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).
llvm-svn: 208959
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/ARM64/ARM64InstrInfo.td | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/llvm/lib/Target/ARM64/ARM64InstrInfo.td b/llvm/lib/Target/ARM64/ARM64InstrInfo.td index 8ed2c42919b..fe837909ebf 100644 --- a/llvm/lib/Target/ARM64/ARM64InstrInfo.td +++ b/llvm/lib/Target/ARM64/ARM64InstrInfo.td @@ -726,19 +726,19 @@ def AA_MVNWrs : InstAlias<"mvn $Wd, $Wm$sh", 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)>; |

