1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -O0 -fast-isel-abort=1 -relocation-model=dynamic-no-pic -mtriple=armv7-apple-ios -verify-machineinstrs | FileCheck %s --check-prefix=ARM 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -O0 -fast-isel-abort=1 -relocation-model=dynamic-no-pic -mtriple=armv7-linux-gnueabi -verify-machineinstrs | FileCheck %s --check-prefix=ARM 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine i32 @shl() nounwind ssp { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker; ARM: shl 7*9880d681SAndroid Build Coastguard Worker; ARM: lsl r0, r0, #2 8*9880d681SAndroid Build Coastguard Worker %shl = shl i32 -1, 2 9*9880d681SAndroid Build Coastguard Worker ret i32 %shl 10*9880d681SAndroid Build Coastguard Worker} 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine i32 @shl_reg(i32 %src1, i32 %src2) nounwind ssp { 13*9880d681SAndroid Build Coastguard Workerentry: 14*9880d681SAndroid Build Coastguard Worker; ARM: shl_reg 15*9880d681SAndroid Build Coastguard Worker; ARM: lsl r0, r0, r1 16*9880d681SAndroid Build Coastguard Worker %shl = shl i32 %src1, %src2 17*9880d681SAndroid Build Coastguard Worker ret i32 %shl 18*9880d681SAndroid Build Coastguard Worker} 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdefine i32 @lshr() nounwind ssp { 21*9880d681SAndroid Build Coastguard Workerentry: 22*9880d681SAndroid Build Coastguard Worker; ARM: lshr 23*9880d681SAndroid Build Coastguard Worker; ARM: lsr r0, r0, #2 24*9880d681SAndroid Build Coastguard Worker %lshr = lshr i32 -1, 2 25*9880d681SAndroid Build Coastguard Worker ret i32 %lshr 26*9880d681SAndroid Build Coastguard Worker} 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerdefine i32 @lshr_reg(i32 %src1, i32 %src2) nounwind ssp { 29*9880d681SAndroid Build Coastguard Workerentry: 30*9880d681SAndroid Build Coastguard Worker; ARM: lshr_reg 31*9880d681SAndroid Build Coastguard Worker; ARM: lsr r0, r0, r1 32*9880d681SAndroid Build Coastguard Worker %lshr = lshr i32 %src1, %src2 33*9880d681SAndroid Build Coastguard Worker ret i32 %lshr 34*9880d681SAndroid Build Coastguard Worker} 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workerdefine i32 @ashr() nounwind ssp { 37*9880d681SAndroid Build Coastguard Workerentry: 38*9880d681SAndroid Build Coastguard Worker; ARM: ashr 39*9880d681SAndroid Build Coastguard Worker; ARM: asr r0, r0, #2 40*9880d681SAndroid Build Coastguard Worker %ashr = ashr i32 -1, 2 41*9880d681SAndroid Build Coastguard Worker ret i32 %ashr 42*9880d681SAndroid Build Coastguard Worker} 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workerdefine i32 @ashr_reg(i32 %src1, i32 %src2) nounwind ssp { 45*9880d681SAndroid Build Coastguard Workerentry: 46*9880d681SAndroid Build Coastguard Worker; ARM: ashr_reg 47*9880d681SAndroid Build Coastguard Worker; ARM: asr r0, r0, r1 48*9880d681SAndroid Build Coastguard Worker %ashr = ashr i32 %src1, %src2 49*9880d681SAndroid Build Coastguard Worker ret i32 %ashr 50*9880d681SAndroid Build Coastguard Worker} 51*9880d681SAndroid Build Coastguard Worker 52