1; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
2
3define i64 @f0(i64 %val, i64 %amt) minsize optsize {
4; CHECK-LABEL:   f0:
5; CHECK:         bl  __aeabi_llsl
6  %res = shl i64 %val, %amt
7  ret i64 %res
8}
9
10define i32 @f1(i64 %x, i64 %y) minsize optsize {
11; CHECK-LABEL:   f1:
12; CHECK:         bl  __aeabi_llsl
13	%a = shl i64 %x, %y
14	%b = trunc i64 %a to i32
15	ret i32 %b
16}
17
18define i32 @f2(i64 %x, i64 %y) minsize optsize {
19; CHECK-LABEL:   f2:
20; CHECK:         bl  __aeabi_lasr
21	%a = ashr i64 %x, %y
22	%b = trunc i64 %a to i32
23	ret i32 %b
24}
25
26define i32 @f3(i64 %x, i64 %y) minsize optsize {
27; CHECK-LABEL:   f3:
28; CHECK:         bl  __aeabi_llsr
29	%a = lshr i64 %x, %y
30	%b = trunc i64 %a to i32
31	ret i32 %b
32}
33