88 lines · plain
1; RUN: llc < %s | FileCheck %s2target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8-n8:16"3target triple = "msp430-elf"4 5define zeroext i8 @lshr8(i8 zeroext %a, i8 zeroext %cnt) nounwind readnone {6entry:7; CHECK-LABEL: lshr8:8; CHECK: clrc9; CHECK: rrc.b10 %shr = lshr i8 %a, %cnt11 ret i8 %shr12}13 14define signext i8 @ashr8(i8 signext %a, i8 zeroext %cnt) nounwind readnone {15entry:16; CHECK-LABEL: ashr8:17; CHECK: rra.b18 %shr = ashr i8 %a, %cnt19 ret i8 %shr20}21 22define zeroext i8 @shl8(i8 zeroext %a, i8 zeroext %cnt) nounwind readnone {23entry:24; CHECK: shl825; CHECK: add.b26 %shl = shl i8 %a, %cnt27 ret i8 %shl28}29 30define zeroext i16 @lshr16(i16 zeroext %a, i16 zeroext %cnt) nounwind readnone {31entry:32; CHECK-LABEL: lshr16:33; CHECK: clrc34; CHECK: rrc35 %shr = lshr i16 %a, %cnt36 ret i16 %shr37}38 39define signext i16 @ashr16(i16 signext %a, i16 zeroext %cnt) nounwind readnone {40entry:41; CHECK-LABEL: ashr16:42; CHECK: rra43 %shr = ashr i16 %a, %cnt44 ret i16 %shr45}46 47define zeroext i16 @shl16(i16 zeroext %a, i16 zeroext %cnt) nounwind readnone {48entry:49; CHECK-LABEL: shl16:50; CHECK: add51 %shl = shl i16 %a, %cnt52 ret i16 %shl53}54 55define i16 @ashr10_i16(i16 %a) #0 {56entry:57; CHECK-LABEL: ashr10_i16:58; CHECK: swpb r1259; CHECK-NEXT: sxt r1260; CHECK-NEXT: rra r1261; CHECK-NEXT: rra r1262 %shr = ashr i16 %a, 1063 ret i16 %shr64}65 66define i16 @lshr10_i16(i16 %a) #0 {67entry:68; CHECK-LABEL: lshr10_i16:69; CHECK: swpb r1270; CHECK-NEXT: mov.b r12, r1271; CHECK-NEXT: clrc72; CHECK-NEXT: rrc r1273; CHECK-NEXT: rra r1274 %shr = lshr i16 %a, 1075 ret i16 %shr76}77 78define i16 @lshl10_i16(i16 %a) #0 {79entry:80; CHECK-LABEL: lshl10_i16:81; CHECK: mov.b r12, r1282; CHECK-NEXT: swpb r1283; CHECK-NEXT: add r12, r1284; CHECK-NEXT: add r12, r1285 %shl = shl i16 %a, 1086 ret i16 %shl87}88