summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/AVR/AVRInstrInfo.td15
1 files changed, 6 insertions, 9 deletions
diff --git a/llvm/lib/Target/AVR/AVRInstrInfo.td b/llvm/lib/Target/AVR/AVRInstrInfo.td
index 2cba2e80f4e..62f06f2bf77 100644
--- a/llvm/lib/Target/AVR/AVRInstrInfo.td
+++ b/llvm/lib/Target/AVR/AVRInstrInfo.td
@@ -730,15 +730,7 @@ Defs = [SREG] in
// TST Rd
// Test for zero of minus.
// This operation is identical to a `Rd AND Rd`.
-//def : InstAlias<"tst\t$rd", (ANDRdRr GPR8:$rd, GPR8:$rd), 1>;
-
-let Defs = [SREG] in
-def TSTRd : FTST<0b0010,
- 0b00,
- (outs),
- (ins GPR8:$rd),
- "tst\t$rd",
- [(AVRtst i8:$rd)]>;
+def : InstAlias<"tst\t$rd", (ANDRdRr GPR8:$rd, GPR8:$rd)>;
//===----------------------------------------------------------------------===//
// Jump instructions
@@ -2104,3 +2096,8 @@ def : Pat<(i8 (trunc (AVRlsr (AVRlsr (AVRlsr (AVRlsr (AVRlsr (AVRlsr (AVRlsr
def : Pat<(shl i16:$src1, (i8 1)),
(LSLWRd i16:$src1)>;
+// Lowering of 'tst' node to 'TST' instruction.
+// TST is an alias of AND Rd, Rd.
+def : Pat<(AVRtst i8:$rd),
+ (ANDRdRr $rd, $rd)>;
+
OpenPOWER on IntegriCloud