brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 5a1fc9c Raw
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