diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-11-08 15:32:28 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-11-08 15:32:28 +0000 |
| commit | a404d61c8ea7af3ee2492ed6068ed0f3456f71b9 (patch) | |
| tree | de2b27faca4c9aaffabb47f642f893c9b7656e02 | |
| parent | fd9a893cab76b32ab8b3ef6e23f6ecebf614cb7d (diff) | |
| download | bcm5719-llvm-a404d61c8ea7af3ee2492ed6068ed0f3456f71b9.tar.gz bcm5719-llvm-a404d61c8ea7af3ee2492ed6068ed0f3456f71b9.zip | |
Some nice peephole patterns. Based on patch by Brian Lucas!
llvm-svn: 86469
| -rw-r--r-- | llvm/lib/Target/MSP430/MSP430InstrInfo.td | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/MSP430/MSP430InstrInfo.td b/llvm/lib/Target/MSP430/MSP430InstrInfo.td index 8f3e8b05f6f..2365c594b44 100644 --- a/llvm/lib/Target/MSP430/MSP430InstrInfo.td +++ b/llvm/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)>; |

