| 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 e2bde1cd42d0e6b96f4ef36e876ec05864ae68c5..d6d6afcd2a5959fdf92a62c33b75eb72ae242472 100644
|
| --- a/tests_lit/llvm2ice_tests/64bit.pnacl.ll
|
| +++ b/tests_lit/llvm2ice_tests/64bit.pnacl.ll
|
| @@ -2,12 +2,6 @@
|
| ; particular the patterns for lowering i64 operations into constituent
|
| ; i32 operations on x86-32.
|
|
|
| -; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer
|
| -; doesn't know how to symbolize non-section-local functions.
|
| -; The newer LLVM 3.6 one does work, but watch out for other bugs.
|
| -
|
| -; RUN: %p2i -i %s --args -O2 --verbose none \
|
| -; RUN: | FileCheck --check-prefix=CALLTARGETS %s
|
| ; RUN: %p2i -i %s --args -O2 --verbose none \
|
| ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \
|
| ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s
|
| @@ -36,31 +30,27 @@ entry:
|
| ret i32 %add3
|
| }
|
| ; CHECK-LABEL: pass64BitArg
|
| -; CALLTARGETS-LABEL: pass64BitArg
|
| ; CHECK: sub esp
|
| ; CHECK: mov dword ptr [esp + 4]
|
| ; CHECK: mov dword ptr [esp]
|
| ; CHECK: mov dword ptr [esp + 8], 123
|
| ; CHECK: mov dword ptr [esp + 16]
|
| ; CHECK: mov dword ptr [esp + 12]
|
| -; CHECK: call -4
|
| -; CALLTARGETS: .long ignore64BitArgNoInline
|
| +; CHECK: call ignore64BitArgNoInline
|
| ; CHECK: sub esp
|
| ; CHECK: mov dword ptr [esp + 4]
|
| ; CHECK: mov dword ptr [esp]
|
| ; CHECK: mov dword ptr [esp + 8], 123
|
| ; CHECK: mov dword ptr [esp + 16]
|
| ; CHECK: mov dword ptr [esp + 12]
|
| -; CHECK: call -4
|
| -; CALLTARGETS: .long ignore64BitArgNoInline
|
| +; CHECK: call ignore64BitArgNoInline
|
| ; CHECK: sub esp
|
| ; CHECK: mov dword ptr [esp + 4]
|
| ; CHECK: mov dword ptr [esp]
|
| ; CHECK: mov dword ptr [esp + 8], 123
|
| ; CHECK: mov dword ptr [esp + 16]
|
| ; CHECK: mov dword ptr [esp + 12]
|
| -; CHECK: call -4
|
| -; CALLTARGETS: .long ignore64BitArgNoInline
|
| +; CHECK: call ignore64BitArgNoInline
|
| ;
|
| ; OPTM1-LABEL: pass64BitArg
|
| ; OPTM1: sub esp
|
| @@ -69,21 +59,21 @@ entry:
|
| ; OPTM1: mov dword ptr [esp + 8], 123
|
| ; OPTM1: mov dword ptr [esp + 16]
|
| ; OPTM1: mov dword ptr [esp + 12]
|
| -; OPTM1: call -4
|
| +; OPTM1: call ignore64BitArgNoInline
|
| ; OPTM1: sub esp
|
| ; OPTM1: mov dword ptr [esp + 4]
|
| ; OPTM1: mov dword ptr [esp]
|
| ; OPTM1: mov dword ptr [esp + 8], 123
|
| ; OPTM1: mov dword ptr [esp + 16]
|
| ; OPTM1: mov dword ptr [esp + 12]
|
| -; OPTM1: call -4
|
| +; OPTM1: call ignore64BitArgNoInline
|
| ; OPTM1: sub esp
|
| ; OPTM1: mov dword ptr [esp + 4]
|
| ; OPTM1: mov dword ptr [esp]
|
| ; OPTM1: mov dword ptr [esp + 8], 123
|
| ; OPTM1: mov dword ptr [esp + 16]
|
| ; OPTM1: mov dword ptr [esp + 12]
|
| -; OPTM1: call -4
|
| +; OPTM1: call ignore64BitArgNoInline
|
|
|
| declare i32 @ignore64BitArgNoInline(i64, i32, i64)
|
|
|
| @@ -93,7 +83,6 @@ entry:
|
| ret i32 %call
|
| }
|
| ; CHECK-LABEL: pass64BitConstArg
|
| -; CALLTARGETS-LABEL: pass64BitConstArg
|
| ; CHECK: sub esp
|
| ; CHECK: mov dword ptr [esp + 4]
|
| ; CHECK-NEXT: mov dword ptr [esp]
|
| @@ -103,8 +92,7 @@ entry:
|
| ; CHECK-NEXT: mov dword ptr [esp + 12], 305419896
|
| ; Bundle padding will push the call down.
|
| ; CHECK-NOT: mov
|
| -; CHECK: call -4
|
| -; CALLTARGETS: .long ignore64BitArgNoInline
|
| +; CHECK: call ignore64BitArgNoInline
|
| ;
|
| ; OPTM1-LABEL: pass64BitConstArg
|
| ; OPTM1: sub esp
|
| @@ -115,7 +103,7 @@ entry:
|
| ; OPTM1: mov dword ptr [esp + 16], 3735928559
|
| ; OPTM1-NEXT: mov dword ptr [esp + 12], 305419896
|
| ; OPTM1-NOT: mov
|
| -; OPTM1: call -4
|
| +; OPTM1: call ignore64BitArgNoInline
|
|
|
| define internal i64 @return64BitArg(i64 %a) {
|
| entry:
|
| @@ -237,12 +225,10 @@ entry:
|
| ret i64 %div
|
| }
|
| ; CHECK-LABEL: div64BitSigned
|
| -; CALLTARGETS-LABEL: div64BitSigned
|
| -; CHECK: call -4
|
| -; CALLTARGETS: .long __divdi3
|
| +; CHECK: call __divdi3
|
|
|
| ; OPTM1-LABEL: div64BitSigned
|
| -; OPTM1: call -4
|
| +; OPTM1: call __divdi3
|
|
|
| define internal i64 @div64BitSignedConst(i64 %a) {
|
| entry:
|
| @@ -250,16 +236,14 @@ entry:
|
| ret i64 %div
|
| }
|
| ; CHECK-LABEL: div64BitSignedConst
|
| -; CALLTARGETS-LABEL: div64BitSignedConst
|
| ; CHECK: mov dword ptr [esp + 12], 2874
|
| ; CHECK: mov dword ptr [esp + 8], 1942892530
|
| -; CHECK: call -4
|
| -; CALLTARGETS: .long __divdi3
|
| +; CHECK: call __divdi3
|
| ;
|
| ; OPTM1-LABEL: div64BitSignedConst
|
| ; OPTM1: mov dword ptr [esp + 12], 2874
|
| ; OPTM1: mov dword ptr [esp + 8], 1942892530
|
| -; OPTM1: call -4
|
| +; OPTM1: call __divdi3
|
|
|
| define internal i64 @div64BitUnsigned(i64 %a, i64 %b) {
|
| entry:
|
| @@ -267,12 +251,10 @@ entry:
|
| ret i64 %div
|
| }
|
| ; CHECK-LABEL: div64BitUnsigned
|
| -; CALLTARGETS-LABEL: div64BitUnsigned
|
| -; CHECK: call -4
|
| -; CALLTARGETS: .long __udivdi3
|
| +; CHECK: call __udivdi3
|
| ;
|
| ; OPTM1-LABEL: div64BitUnsigned
|
| -; OPTM1: call -4
|
| +; OPTM1: call __udivdi3
|
|
|
| define internal i64 @rem64BitSigned(i64 %a, i64 %b) {
|
| entry:
|
| @@ -280,12 +262,10 @@ entry:
|
| ret i64 %rem
|
| }
|
| ; CHECK-LABEL: rem64BitSigned
|
| -; CALLTARGETS-LABEL: rem64BitSigned
|
| -; CHECK: call -4
|
| -; CALLTARGETS: .long __moddi3
|
| +; CHECK: call __moddi3
|
| ;
|
| ; OPTM1-LABEL: rem64BitSigned
|
| -; OPTM1: call -4
|
| +; OPTM1: call __moddi3
|
|
|
| define internal i64 @rem64BitUnsigned(i64 %a, i64 %b) {
|
| entry:
|
| @@ -293,12 +273,10 @@ entry:
|
| ret i64 %rem
|
| }
|
| ; CHECK-LABEL: rem64BitUnsigned
|
| -; CALLTARGETS-LABEL: rem64BitUnsigned
|
| -; CHECK: call -4
|
| -; CALLTARGETS: .long __umoddi3
|
| +; CHECK: call __umoddi3
|
| ;
|
| ; OPTM1-LABEL: rem64BitUnsigned
|
| -; OPTM1: call -4
|
| +; OPTM1: call __umoddi3
|
|
|
| define internal i64 @shl64BitSigned(i64 %a, i64 %b) {
|
| entry:
|
|
|