xref: /llvm-project/llvm/test/CodeGen/ARM/fast-isel-shifter.ll (revision 945a660cbc928a451b2a3114104c2b55e63c7bac)
1*945a660cSMehdi Amini; 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*945a660cSMehdi Amini; RUN: llc < %s -O0 -fast-isel-abort=1 -relocation-model=dynamic-no-pic -mtriple=armv7-linux-gnueabi -verify-machineinstrs | FileCheck %s --check-prefix=ARM
34705da90SJush Lu
44705da90SJush Ludefine i32 @shl() nounwind ssp {
54705da90SJush Luentry:
64705da90SJush Lu; ARM: shl
74705da90SJush Lu; ARM: lsl r0, r0, #2
84705da90SJush Lu  %shl = shl i32 -1, 2
94705da90SJush Lu  ret i32 %shl
104705da90SJush Lu}
114705da90SJush Lu
124705da90SJush Ludefine i32 @shl_reg(i32 %src1, i32 %src2) nounwind ssp {
134705da90SJush Luentry:
144705da90SJush Lu; ARM: shl_reg
154705da90SJush Lu; ARM: lsl r0, r0, r1
164705da90SJush Lu  %shl = shl i32 %src1, %src2
174705da90SJush Lu  ret i32 %shl
184705da90SJush Lu}
194705da90SJush Lu
204705da90SJush Ludefine i32 @lshr() nounwind ssp {
214705da90SJush Luentry:
224705da90SJush Lu; ARM: lshr
234705da90SJush Lu; ARM: lsr r0, r0, #2
244705da90SJush Lu  %lshr = lshr i32 -1, 2
254705da90SJush Lu  ret i32 %lshr
264705da90SJush Lu}
274705da90SJush Lu
284705da90SJush Ludefine i32 @lshr_reg(i32 %src1, i32 %src2) nounwind ssp {
294705da90SJush Luentry:
304705da90SJush Lu; ARM: lshr_reg
314705da90SJush Lu; ARM: lsr r0, r0, r1
324705da90SJush Lu  %lshr = lshr i32 %src1, %src2
334705da90SJush Lu  ret i32 %lshr
344705da90SJush Lu}
354705da90SJush Lu
364705da90SJush Ludefine i32 @ashr() nounwind ssp {
374705da90SJush Luentry:
384705da90SJush Lu; ARM: ashr
394705da90SJush Lu; ARM: asr r0, r0, #2
404705da90SJush Lu  %ashr = ashr i32 -1, 2
414705da90SJush Lu  ret i32 %ashr
424705da90SJush Lu}
434705da90SJush Lu
444705da90SJush Ludefine i32 @ashr_reg(i32 %src1, i32 %src2) nounwind ssp {
454705da90SJush Luentry:
464705da90SJush Lu; ARM: ashr_reg
474705da90SJush Lu; ARM: asr r0, r0, r1
484705da90SJush Lu  %ashr = ashr i32 %src1, %src2
494705da90SJush Lu  ret i32 %ashr
504705da90SJush Lu}
514705da90SJush Lu
52