1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8-n8:16" 3*9880d681SAndroid Build Coastguard Workertarget triple = "msp430-elf" 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine zeroext i8 @lshr8(i8 zeroext %a, i8 zeroext %cnt) nounwind readnone { 6*9880d681SAndroid Build Coastguard Workerentry: 7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: lshr8: 8*9880d681SAndroid Build Coastguard Worker; CHECK: rrc.b 9*9880d681SAndroid Build Coastguard Worker %shr = lshr i8 %a, %cnt 10*9880d681SAndroid Build Coastguard Worker ret i8 %shr 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdefine signext i8 @ashr8(i8 signext %a, i8 zeroext %cnt) nounwind readnone { 14*9880d681SAndroid Build Coastguard Workerentry: 15*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: ashr8: 16*9880d681SAndroid Build Coastguard Worker; CHECK: rra.b 17*9880d681SAndroid Build Coastguard Worker %shr = ashr i8 %a, %cnt 18*9880d681SAndroid Build Coastguard Worker ret i8 %shr 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine zeroext i8 @shl8(i8 zeroext %a, i8 zeroext %cnt) nounwind readnone { 22*9880d681SAndroid Build Coastguard Workerentry: 23*9880d681SAndroid Build Coastguard Worker; CHECK: shl8 24*9880d681SAndroid Build Coastguard Worker; CHECK: rla.b 25*9880d681SAndroid Build Coastguard Worker %shl = shl i8 %a, %cnt 26*9880d681SAndroid Build Coastguard Worker ret i8 %shl 27*9880d681SAndroid Build Coastguard Worker} 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerdefine zeroext i16 @lshr16(i16 zeroext %a, i16 zeroext %cnt) nounwind readnone { 30*9880d681SAndroid Build Coastguard Workerentry: 31*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: lshr16: 32*9880d681SAndroid Build Coastguard Worker; CHECK: rrc.w 33*9880d681SAndroid Build Coastguard Worker %shr = lshr i16 %a, %cnt 34*9880d681SAndroid Build Coastguard Worker ret i16 %shr 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerdefine signext i16 @ashr16(i16 signext %a, i16 zeroext %cnt) nounwind readnone { 38*9880d681SAndroid Build Coastguard Workerentry: 39*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: ashr16: 40*9880d681SAndroid Build Coastguard Worker; CHECK: rra.w 41*9880d681SAndroid Build Coastguard Worker %shr = ashr i16 %a, %cnt 42*9880d681SAndroid Build Coastguard Worker ret i16 %shr 43*9880d681SAndroid Build Coastguard Worker} 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerdefine zeroext i16 @shl16(i16 zeroext %a, i16 zeroext %cnt) nounwind readnone { 46*9880d681SAndroid Build Coastguard Workerentry: 47*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: shl16: 48*9880d681SAndroid Build Coastguard Worker; CHECK: rla.w 49*9880d681SAndroid Build Coastguard Worker %shl = shl i16 %a, %cnt 50*9880d681SAndroid Build Coastguard Worker ret i16 %shl 51*9880d681SAndroid Build Coastguard Worker} 52