Index: tests_lit/llvm2ice_tests/callArgs.ll |
diff --git a/tests_lit/llvm2ice_tests/callArgs.ll b/tests_lit/llvm2ice_tests/callArgs.ll |
new file mode 100644 |
index 0000000000000000000000000000000000000000..95af1f4241c150f6aadb52ab1660dfc0253a3462 |
--- /dev/null |
+++ b/tests_lit/llvm2ice_tests/callArgs.ll |
@@ -0,0 +1,51 @@ |
+; RUN: %if --need=target_MIPS32 --need=allow_dump \ |
+; RUN: --command %p2i --filetype=asm --assemble \ |
+; RUN: --disassemble --target mips32 -i %s --args -O2 --skip-unimplemented \ |
+; RUN: -allow-externally-defined-symbols \ |
+; RUN: | %if --need=target_MIPS32 --need=allow_dump \ |
+; RUN: --command FileCheck --check-prefix MIPS32 %s |
+ |
+ |
+ |
+declare void @voidCall5i32(i32 %a1, i32 %a2, i32 %a3, i32 %a4, i32 %a5) |
+declare void @voidCall5i64(i64 %a1, i64 %a2, i64 %a3, i64 %a4, i64 %a5) |
+declare void @voidCalli32i64i32(i32 %a1, i64 %a2, i32 %a3) |
+ |
+define internal void @Call() { |
+ call void @voidCall5i32(i32 1, i32 2, i32 3, i32 4, i32 5) |
+ call void @voidCall5i64(i64 1, i64 2, i64 3, i64 4, i64 5) |
+ call void @voidCalli32i64i32(i32 1, i64 2, i32 3) |
+ ret void |
+} |
+; MIPS32: li v0,5 |
+; MIPS32: sw v0,16(sp) |
+; MIPS32: li a0,1 |
+; MIPS32: li a1,2 |
+; MIPS32: li a2,3 |
+; MIPS32: li a3,4 |
+; MIPS32: jal |
+ |
+; MIPS32: li v0,0 |
+; MIPS32: li v1,3 |
+; MIPS32: sw v0,20(sp) |
+; MIPS32: sw v1,16(sp) |
+; MIPS32: li v0,0 |
+; MIPS32: li v1,4 |
+; MIPS32: sw v0,28(sp) |
+; MIPS32: sw v1,24(sp) |
+; MIPS32: li v0,0 |
+; MIPS32: li v1,5 |
+; MIPS32: sw v0,36(sp) |
+; MIPS32: sw v1,32(sp) |
+; MIPS32: li a0,1 |
+; MIPS32: li a1,0 |
+; MIPS32: li a2,2 |
+; MIPS32: li a3,0 |
+; MIPS32: jal |
+ |
+; MIPS32: li v0,3 |
+; MIPS32: sw v0,16(sp) |
+; MIPS32: li a0,1 |
+; MIPS32: li a2,2 |
+; MIPS32: li a3,0 |
+; MIPS32: jal |