Index: tests_lit/llvm2ice_tests/int-arg.ll |
diff --git a/tests_lit/llvm2ice_tests/int-arg.ll b/tests_lit/llvm2ice_tests/int-arg.ll |
index c59f0c8b295a62b1a69cd8f3ca536ecdaf94cb55..a7c41d06044a3d3dbb8344fe1debbbe25e60f02e 100644 |
--- a/tests_lit/llvm2ice_tests/int-arg.ll |
+++ b/tests_lit/llvm2ice_tests/int-arg.ll |
@@ -15,6 +15,16 @@ |
; RUN: | %if --need=target_ARM32 --need=allow_dump \ |
; RUN: --command FileCheck --check-prefix ARM32 %s |
+; TODO(RKotler): Stop skipping unimplemented parts (via --skip-unimplemented) |
+; once enough infrastructure is in. Also, switch to --filetype=obj |
+; when possible. |
+; 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 |
+ |
; For x86-32, integer arguments use the stack. |
; For ARM32, integer arguments can be r0-r3. i64 arguments occupy two |
; adjacent 32-bit registers, and require the first to be an even register. |
@@ -31,6 +41,9 @@ entry: |
; CHECK-NEXT: ret |
; ARM32-LABEL: test_returning32_arg0 |
; ARM32-NEXT: bx lr |
+; MIPS32-LABEL: test_returning32_arg0 |
+; MIPS32: move v0,a0 |
+; MIPS32-NEXT: jr ra |
define internal i32 @test_returning32_arg1(i32 %arg0, i32 %arg1, i32 %arg2, i32 %arg3, i32 %arg4, i32 %arg5, i32 %arg6, i32 %arg7) { |
entry: |
@@ -42,7 +55,9 @@ entry: |
; ARM32-LABEL: test_returning32_arg1 |
; ARM32-NEXT: mov r0, r1 |
; ARM32-NEXT: bx lr |
- |
+; MIPS32-LABEL: test_returning32_arg1 |
+; MIPS32: move v0,a1 |
+; MIPS32-NEXT: jr ra |
define internal i32 @test_returning32_arg2(i32 %arg0, i32 %arg1, i32 %arg2, i32 %arg3, i32 %arg4, i32 %arg5, i32 %arg6, i32 %arg7) { |
entry: |
@@ -54,6 +69,9 @@ entry: |
; ARM32-LABEL: test_returning32_arg2 |
; ARM32-NEXT: mov r0, r2 |
; ARM32-NEXT: bx lr |
+; MIPS32-LABEL: test_returning32_arg2 |
+; MIPS32: move v0,a2 |
+; MIPS32-NEXT: jr ra |
define internal i32 @test_returning32_arg3(i32 %arg0, i32 %arg1, i32 %arg2, i32 %arg3, i32 %arg4, i32 %arg5, i32 %arg6, i32 %arg7) { |
@@ -103,6 +121,10 @@ entry: |
; CHECK: ret |
; ARM32-LABEL: test_returning64_arg0 |
; ARM32-NEXT: bx lr |
+; MIPS32-LABEL: test_returning64_arg0 |
+; MIPS32-NEXT: move v0,a0 |
+; MIPS32-NEXT: move v1,a1 |
+ |
define internal i64 @test_returning64_arg1(i64 %arg0, i64 %arg1, i64 %arg2, i64 %arg3) { |
entry: |
@@ -116,6 +138,9 @@ entry: |
; ARM32-NEXT: mov r0, r2 |
; ARM32-NEXT: mov r1, r3 |
; ARM32-NEXT: bx lr |
+; MIPS32-LABEL: test_returning64_arg1 |
+; MIPS32-NEXT: move v0,a2 |
+; MIPS32-NEXT: move v1,a3 |
define internal i64 @test_returning64_arg2(i64 %arg0, i64 %arg1, i64 %arg2, i64 %arg3) { |
entry: |