1; RUN: %if --need=target_MIPS32 --need=allow_dump \
2; RUN:   --command %p2i --filetype=asm --assemble \
3; RUN:   --disassemble --target mips32 -i %s --args -O2 \
4; RUN:   -allow-externally-defined-symbols \
5; RUN:   | %if --need=target_MIPS32 --need=allow_dump \
6; RUN:   --command FileCheck --check-prefix MIPS32 %s
7
8
9
10declare void @voidCall5i32(i32 %a1, i32 %a2, i32 %a3, i32 %a4, i32 %a5)
11declare void @voidCall5i64(i64 %a1, i64 %a2, i64 %a3, i64 %a4, i64 %a5)
12declare void @voidCalli32i64i32(i32 %a1, i64 %a2, i32 %a3)
13
14;TODO(mohit.bhakkad): Add tests for f32/f64 once legalize() or lowerArgument is
15;available for f32/f64
16
17define internal void @Call() {
18  call void @voidCall5i32(i32 1, i32 2, i32 3, i32 4, i32 5)
19  call void @voidCall5i64(i64 1, i64 2, i64 3, i64 4, i64 5)
20  call void @voidCalli32i64i32(i32 1, i64 2, i32 3)
21  ret void
22}
23; MIPS32: li    {{.*}},5
24; MIPS32: sw	{{.*}},16(sp)
25; MIPS32: li	a0,1
26; MIPS32: li	a1,2
27; MIPS32: li	a2,3
28; MIPS32: li	a3,4
29; MIPS32: jal
30
31; MIPS32: li	{{.*}},0
32; MIPS32: li	{{.*}},3
33; MIPS32: sw	{{.*}},20(sp)
34; MIPS32: sw	{{.*}},16(sp)
35; MIPS32: li	{{.*}},0
36; MIPS32: li	{{.*}},4
37; MIPS32: sw	{{.*}},28(sp)
38; MIPS32: sw	{{.*}},24(sp)
39; MIPS32: li	{{.*}},0
40; MIPS32: li	{{.*}},5
41; MIPS32: sw	{{.*}},36(sp)
42; MIPS32: sw	{{.*}},32(sp)
43; MIPS32: li	a0,1
44; MIPS32: li	a1,0
45; MIPS32: li	a2,2
46; MIPS32: li	a3,0
47; MIPS32: jal
48
49; MIPS32: li	{{.*}},3
50; MIPS32: sw	{{.*}},16(sp)
51; MIPS32: li	a0,1
52; MIPS32: li	a2,2
53; MIPS32: li	a3,0
54; MIPS32: jal
55