1; RUN: llc -mtriple arm-unknown -global-isel %s -o - | FileCheck %s
2
3define void @test_void_return() {
4; CHECK-LABEL: test_void_return:
5; CHECK: bx lr
6entry:
7  ret void
8}
9
10define i8 @test_add_i8(i8 %x, i8 %y) {
11; CHECK-LABEL: test_add_i8:
12; CHECK: add r0, r0, r1
13; CHECK: bx lr
14entry:
15  %sum = add i8 %x, %y
16  ret i8 %sum
17}
18
19define i16 @test_add_i16(i16 %x, i16 %y) {
20; CHECK-LABEL: test_add_i16:
21; CHECK: add r0, r0, r1
22; CHECK: bx lr
23entry:
24  %sum = add i16 %x, %y
25  ret i16 %sum
26}
27
28define i32 @test_add_i32(i32 %x, i32 %y) {
29; CHECK-LABEL: test_add_i32:
30; CHECK: add r0, r0, r1
31; CHECK: bx lr
32entry:
33  %sum = add i32 %x, %y
34  ret i32 %sum
35}
36
37define i32 @test_many_args(i32 %p0, i32 %p1, i32 %p2, i32 %p3, i32 %p4, i32 %p5) {
38; CHECK-LABEL: test_many_args:
39; CHECK: add [[P5ADDR:r[0-9]+]], sp, #4
40; CHECK: ldr [[P5:r[0-9]+]], {{.*}}[[P5ADDR]]
41; CHECK: add r0, r2, [[P5]]
42; CHECK: bx lr
43entry:
44  %sum = add i32 %p2, %p5
45  ret i32 %sum
46}
47