summaryrefslogtreecommitdiff
path: root/lib/Target/MSP430/MSP430InstrInfo.td
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2009-11-08 15:32:28 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2009-11-08 15:32:28 +0000
commitff2c186d59d987d0331bb8c35852e62f336a1b28 (patch)
tree4d230de23b4fc4435075135d657976b124396a67 /lib/Target/MSP430/MSP430InstrInfo.td
parent764cfaabd2cf95385a64cc67440d9d7b3cd79028 (diff)
downloadllvm-ff2c186d59d987d0331bb8c35852e62f336a1b28.tar.gz
llvm-ff2c186d59d987d0331bb8c35852e62f336a1b28.tar.bz2
llvm-ff2c186d59d987d0331bb8c35852e62f336a1b28.tar.xz
Some nice peephole patterns. Based on patch by Brian Lucas!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86469 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/MSP430/MSP430InstrInfo.td')
-rw-r--r--lib/Target/MSP430/MSP430InstrInfo.td7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/MSP430/MSP430InstrInfo.td b/lib/Target/MSP430/MSP430InstrInfo.td
index 8f3e8b05f6..2365c594b4 100644
--- a/lib/Target/MSP430/MSP430InstrInfo.td
+++ b/lib/Target/MSP430/MSP430InstrInfo.td
@@ -690,6 +690,10 @@ def SEXT16r : Pseudo<(outs GR16:$dst), (ins GR16:$src),
} // Defs = [SRW]
+def ZEXT16r : Pseudo<(outs GR16:$dst), (ins GR16:$src),
+ "mov.b\t{$src, $dst}",
+ [(set GR16:$dst, (zext (trunc GR16:$src)))]>;
+
def SWPB16r : Pseudo<(outs GR16:$dst), (ins GR16:$src),
"swpb\t$dst",
[(set GR16:$dst, (bswap GR16:$src))]>;
@@ -899,3 +903,6 @@ def : Pat<(store (subc (load addr:$dst), GR8:$src), addr:$dst),
(SUB8mr addr:$dst, GR8:$src)>;
def : Pat<(store (subc (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
(SUB8mm addr:$dst, addr:$src)>;
+
+// peephole patterns
+def : Pat<(and GR16:$src, 255), (ZEXT16r GR16:$src)>;