diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2010-01-14 22:09:38 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2010-01-14 22:09:38 +0000 |
| commit | fdf7031a1a896899cf1bb7f0bd812b2ae4467579 (patch) | |
| tree | 3bcd1ddeede00289ce81aae16f5ab5a5f649defb | |
| parent | abf4ef0ee119be8f6c04a4b6c1e87c914e42c340 (diff) | |
| download | bcm5719-llvm-fdf7031a1a896899cf1bb7f0bd812b2ae4467579.tar.gz bcm5719-llvm-fdf7031a1a896899cf1bb7f0bd812b2ae4467579.zip | |
Add variable-width shifts for MSP430
llvm-svn: 93468
| -rw-r--r-- | llvm/test/CodeGen/MSP430/shifts.ll | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/MSP430/shifts.ll b/llvm/test/CodeGen/MSP430/shifts.ll new file mode 100644 index 00000000000..b5b3054b962 --- /dev/null +++ b/llvm/test/CodeGen/MSP430/shifts.ll @@ -0,0 +1,51 @@ +; RUN: llc < %s | FileCheck %s +target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8-n8:16" +target triple = "msp430-elf" + +define zeroext i8 @lshr8(i8 zeroext %a, i8 zeroext %cnt) nounwind readnone { +entry: +; CHECK: lshr8: +; CHECK: rrc.b + %shr = lshr i8 %a, %cnt + ret i8 %shr +} + +define signext i8 @ashr8(i8 signext %a, i8 zeroext %cnt) nounwind readnone { +entry: +; CHECK: ashr8: +; CHECK: rra.b + %shr = ashr i8 %a, %cnt + ret i8 %shr +} + +define zeroext i8 @shl8(i8 zeroext %a, i8 zeroext %cnt) nounwind readnone { +entry: +; CHECK: shl8 +; CHECK: rla.b + %shl = shl i8 %a, %cnt + ret i8 %shl +} + +define zeroext i16 @lshr16(i16 zeroext %a, i16 zeroext %cnt) nounwind readnone { +entry: +; CHECK: lshr16: +; CHECK: rrc.w + %shr = lshr i16 %a, %cnt + ret i16 %shr +} + +define signext i16 @ashr16(i16 signext %a, i16 zeroext %cnt) nounwind readnone { +entry: +; CHECK: ashr16: +; CHECK: rra.w + %shr = ashr i16 %a, %cnt + ret i16 %shr +} + +define zeroext i16 @shl16(i16 zeroext %a, i16 zeroext %cnt) nounwind readnone { +entry: +; CHECK: shl16: +; CHECK: rla.w + %shl = shl i16 %a, %cnt + ret i16 %shl +} |

