Index: tests_lit/llvm2ice_tests/64bit.pnacl.ll |
diff --git a/tests_lit/llvm2ice_tests/64bit.pnacl.ll b/tests_lit/llvm2ice_tests/64bit.pnacl.ll |
index 4106d3c44a7806316c4418aa1a12d21e14d6ee3a..a818b2ad9d45149e36d9534806b7ac3452775bae 100644 |
--- a/tests_lit/llvm2ice_tests/64bit.pnacl.ll |
+++ b/tests_lit/llvm2ice_tests/64bit.pnacl.ll |
@@ -10,15 +10,18 @@ |
; RUN: --target x8632 -i %s --args -Om1 -allow-externally-defined-symbols \ |
; RUN: | %if --need=target_X8632 --command FileCheck --check-prefix=OPTM1 %s |
+; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented) |
+; once enough infrastructure is in. Also, switch to --filetype=obj |
+; when possible. |
; RUN: %if --need=target_ARM32 --need=allow_dump \ |
-; RUN: --command %p2i --filetype=obj --assemble \ |
-; RUN: --disassemble --target arm32 -i %s --args -O2 \ |
+; RUN: --command %p2i --filetype=asm --assemble \ |
+; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \ |
; RUN: -allow-externally-defined-symbols \ |
; RUN: | %if --need=target_ARM32 --need=allow_dump \ |
; RUN: --command FileCheck --check-prefix ARM32 --check-prefix ARM32-O2 %s |
; RUN: %if --need=target_ARM32 --need=allow_dump \ |
-; RUN: --command %p2i --filetype=obj --assemble --disassemble --target arm32 \ |
-; RUN: -i %s --args -Om1 \ |
+; RUN: --command %p2i --filetype=asm --assemble --disassemble --target arm32 \ |
+; RUN: -i %s --args -Om1 --skip-unimplemented \ |
; RUN: -allow-externally-defined-symbols \ |
; RUN: | %if --need=target_ARM32 --need=allow_dump \ |
; RUN: --command FileCheck --check-prefix ARM32 --check-prefix ARM32-OM1 %s |
@@ -99,24 +102,18 @@ entry: |
; ARM32-LABEL: pass64BitArg |
; ARM32: str {{.*}}, [sp] |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} ignore64BitArgNoInline |
-; ARM32: movt [[CALL]], {{.+}} ignore64BitArgNoInline |
; ARM32: mov r2, #123 |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} ignore64BitArgNoInline |
; ARM32: str {{.*}}, [sp] |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} ignore64BitArgNoInline |
-; ARM32: movt [[CALL]], {{.+}} ignore64BitArgNoInline |
; ARM32: {{mov|ldr}} r0 |
; ARM32: {{mov|ldr}} r1 |
; ARM32: mov r2, #123 |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} ignore64BitArgNoInline |
; ARM32: str {{.*}}, [sp] |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} ignore64BitArgNoInline |
-; ARM32: movt [[CALL]], {{.+}} ignore64BitArgNoInline |
; ARM32: {{mov|ldr}} r0 |
; ARM32: {{mov|ldr}} r1 |
; ARM32: mov r2, #123 |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} ignore64BitArgNoInline |
; MIPS32-LABEL: pass64BitArg |
@@ -158,13 +155,10 @@ entry: |
; ARM32: movt [[REG2]], {{.*}} ; 0x1234 |
; ARM32: str [[REG1]], [sp, #4] |
; ARM32: str [[REG2]], [sp] |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} ignore64BitArgNoInline |
-; ARM32: movt [[CALL]], {{.+}} ignore64BitArgNoInline |
; ARM32: {{mov|ldr}} r0 |
; ARM32: {{mov|ldr}} r1 |
; ARM32: mov r2, #123 |
-; ARM32: blx [[CALL]] |
- |
+; ARM32: bl {{.*}} ignore64BitArgNoInline |
define internal i32 @pass64BitUndefArg() { |
entry: |
@@ -185,10 +179,8 @@ entry: |
; ARM32: sub sp |
; ARM32: mov {{.*}}, #0 |
; ARM32: str |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} ignore64BitArgNoInline |
-; ARM32: movt [[CALL]], {{.+}} ignore64BitArgNoInline |
; ARM32: mov {{.*}}, #123 |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} ignore64BitArgNoInline |
; MIPS32-LABEL: pass64BitUndefArg |
; MIPS32: jr ra |
@@ -414,9 +406,7 @@ entry: |
; ARM32-LABEL: div64BitSigned |
; ARM32: orrs {{r.*}}, {{r.*}} |
; ARM32: bne |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} __divdi3 |
-; ARM32: movt [[CALL]], {{.+}} __divdi3 |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} __divdi3 |
define internal i64 @div64BitSignedConst(i64 %a) { |
entry: |
@@ -436,12 +426,10 @@ entry: |
; ARM32-LABEL: div64BitSignedConst |
; For a constant, we should be able to optimize-out the divide by zero check. |
; ARM32-NOT: orrs |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} __divdi3 |
-; ARM32: movt [[CALL]], {{.+}} __divdi3 |
; ARM32: movw {{.*}} ; 0x2ff2 |
; ARM32: movt {{.*}} ; 0x73ce |
; ARM32: movw {{.*}} ; 0xb3a |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} __divdi3 |
define internal i64 @div64BitUnsigned(i64 %a, i64 %b) { |
entry: |
@@ -457,9 +445,7 @@ entry: |
; ARM32-LABEL: div64BitUnsigned |
; ARM32: orrs {{r.*}}, {{r.*}} |
; ARM32: bne |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} __udivdi3 |
-; ARM32: movt [[CALL]], {{.+}} __udivdi3 |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} __udivdi3 |
define internal i64 @rem64BitSigned(i64 %a, i64 %b) { |
entry: |
@@ -475,9 +461,7 @@ entry: |
; ARM32-LABEL: rem64BitSigned |
; ARM32: orrs {{r.*}}, {{r.*}} |
; ARM32: bne |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} __moddi3 |
-; ARM32: movt [[CALL]], {{.+}} __moddi3 |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} __moddi3 |
define internal i64 @rem64BitUnsigned(i64 %a, i64 %b) { |
entry: |
@@ -493,9 +477,7 @@ entry: |
; ARM32-LABEL: rem64BitUnsigned |
; ARM32: orrs {{r.*}}, {{r.*}} |
; ARM32: bne |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} __umoddi3 |
-; ARM32: movt [[CALL]], {{.+}} __umoddi3 |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} __umoddi3 |
define internal i64 @shl64BitSigned(i64 %a, i64 %b) { |
entry: |
@@ -1158,16 +1140,12 @@ if.end3: ; preds = %if.then2, %if.end |
; ARM32: cmpeq |
; ARM32-OM1: tst |
; ARM32: bne |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} func |
-; ARM32: movt [[CALL]], {{.+}} func |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} <func> |
; ARM32: cmp |
; ARM32: cmpeq |
; ARM32-OM1: tst |
; ARM32: bne |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} func |
-; ARM32: movt [[CALL]], {{.+}} func |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} <func> |
; ARM32: bx |
declare void @func() |
@@ -1232,9 +1210,7 @@ if.end3: ; preds = %if.end, %if.then2 |
; ARM32-OM1: tst |
; ARM32-OM1: bne |
; ARM32-O2: beq |
-; ARM32: movw [[CALL:r[0-9]]], {{.+}} func |
-; ARM32: movt [[CALL]], {{.+}} func |
-; ARM32: blx [[CALL]] |
+; ARM32: bl {{.*}} <func> |
; ARM32: cmp |
; ARM32: cmpeq |
; ARM32-OM1: tst |