Index: tests_lit/llvm2ice_tests/vector-arg.ll |
diff --git a/tests_lit/llvm2ice_tests/vector-arg.ll b/tests_lit/llvm2ice_tests/vector-arg.ll |
index 1725aedcd57b64b87285e773d01b366ded319427..cdefd3c46b2c3c63d206270d996ab8c686d901c4 100644 |
--- a/tests_lit/llvm2ice_tests/vector-arg.ll |
+++ b/tests_lit/llvm2ice_tests/vector-arg.ll |
@@ -1,12 +1,13 @@ |
; This file checks that Subzero generates code in accordance with the |
; calling convention for vectors. |
-; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s |
-; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck --check-prefix=OPTM1 %s |
; RUN: %llvm2ice -O2 --verbose none %s \ |
-; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj |
+; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
+; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
; RUN: %llvm2ice -Om1 --verbose none %s \ |
-; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj |
+; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
+; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \ |
+; RUN: | FileCheck --check-prefix=OPTM1 %s |
; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s |
; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s |
; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ |
@@ -71,7 +72,7 @@ define <4 x float> @test_returning_arg4(<4 x float> %arg0, <4 x float> %arg1, <4 |
entry: |
ret <4 x float> %arg4 |
; CHECK-LABEL: test_returning_arg4: |
-; CHECK: movups xmm0, xmmword ptr [esp+4] |
+; CHECK: movups xmm0, xmmword ptr [esp + 4] |
; CHECK: ret |
; OPTM1-LABEL: test_returning_arg4: |
@@ -139,7 +140,7 @@ define <4 x float> @test_returning_interspersed_arg4(i32 %i32arg0, double %doubl |
entry: |
ret <4 x float> %arg4 |
; CHECK-LABEL: test_returning_interspersed_arg4: |
-; CHECK: movups xmm0, xmmword ptr [esp+52] |
+; CHECK: movups xmm0, xmmword ptr [esp + 52] |
; CHECK: ret |
; OPTM1-LABEL: test_returning_interspersed_arg4: |
@@ -162,15 +163,15 @@ entry: |
ret void |
; CHECK-LABEL: test_passing_vectors: |
; CHECK: sub esp, 32 |
-; CHECK: movups [[ARG5:.*]], xmmword ptr [esp+64] |
+; CHECK: movups [[ARG5:.*]], xmmword ptr [esp + 64] |
; CHECK: movups xmmword ptr [esp], [[ARG5]] |
-; CHECK: movups [[ARG6:.*]], xmmword ptr [esp+48] |
-; CHECK: movups xmmword ptr [esp+16], [[ARG6]] |
-; CHECK: movups xmm0, xmmword ptr [esp+128] |
-; CHECK: movups xmm1, xmmword ptr [esp+112] |
-; CHECK: movups xmm2, xmmword ptr [esp+96] |
-; CHECK: movups xmm3, xmmword ptr [esp+80] |
-; CHECK: call VectorArgs |
+; CHECK: movups [[ARG6:.*]], xmmword ptr [esp + 48] |
+; CHECK: movups xmmword ptr [esp + 16], [[ARG6]] |
+; CHECK: movups xmm0, xmmword ptr [esp + 128] |
+; CHECK: movups xmm1, xmmword ptr [esp + 112] |
+; CHECK: movups xmm2, xmmword ptr [esp + 96] |
+; CHECK: movups xmm3, xmmword ptr [esp + 80] |
+; CHECK: call -4 |
; CHECK-NEXT: add esp, 32 |
; CHECK: ret |
@@ -179,12 +180,12 @@ entry: |
; OPTM1: movups [[ARG5:.*]], xmmword ptr {{.*}} |
; OPTM1: movups xmmword ptr [esp], [[ARG5]] |
; OPTM1: movups [[ARG6:.*]], xmmword ptr {{.*}} |
-; OPTM1: movups xmmword ptr [esp+16], [[ARG6]] |
+; OPTM1: movups xmmword ptr [esp + 16], [[ARG6]] |
; OPTM1: movups xmm0, xmmword ptr {{.*}} |
; OPTM1: movups xmm1, xmmword ptr {{.*}} |
; OPTM1: movups xmm2, xmmword ptr {{.*}} |
; OPTM1: movups xmm3, xmmword ptr {{.*}} |
-; OPTM1: call VectorArgs |
+; OPTM1: call -4 |
; OPTM1-NEXT: add esp, 32 |
; OPTM1: ret |
} |
@@ -200,29 +201,29 @@ entry: |
ret void |
; CHECK-LABEL: test_passing_vectors_interspersed: |
; CHECK: sub esp, 80 |
-; CHECK: movups [[ARG9:.*]], xmmword ptr [esp+112] |
-; CHECK: movups xmmword ptr [esp+32], [[ARG9]] |
-; CHECK: movups [[ARG11:.*]], xmmword ptr [esp+96] |
-; CHECK: movups xmmword ptr [esp+64], [[ARG11]] |
-; CHECK: movups xmm0, xmmword ptr [esp+176] |
-; CHECK: movups xmm1, xmmword ptr [esp+160] |
-; CHECK: movups xmm2, xmmword ptr [esp+144] |
-; CHECK: movups xmm3, xmmword ptr [esp+128] |
-; CHECK: call InterspersedVectorArgs |
+; CHECK: movups [[ARG9:.*]], xmmword ptr [esp + 112] |
+; CHECK: movups xmmword ptr [esp + 32], [[ARG9]] |
+; CHECK: movups [[ARG11:.*]], xmmword ptr [esp + 96] |
+; CHECK: movups xmmword ptr [esp + 64], [[ARG11]] |
+; CHECK: movups xmm0, xmmword ptr [esp + 176] |
+; CHECK: movups xmm1, xmmword ptr [esp + 160] |
+; CHECK: movups xmm2, xmmword ptr [esp + 144] |
+; CHECK: movups xmm3, xmmword ptr [esp + 128] |
+; CHECK: call -4 |
; CHECK-NEXT: add esp, 80 |
; CHECK: ret |
; OPTM1-LABEL: test_passing_vectors_interspersed: |
; OPTM1: sub esp, 80 |
; OPTM1: movups [[ARG9:.*]], xmmword ptr {{.*}} |
-; OPTM1: movups xmmword ptr [esp+32], [[ARG9]] |
+; OPTM1: movups xmmword ptr [esp + 32], [[ARG9]] |
; OPTM1: movups [[ARG11:.*]], xmmword ptr {{.*}} |
-; OPTM1: movups xmmword ptr [esp+64], [[ARG11]] |
+; OPTM1: movups xmmword ptr [esp + 64], [[ARG11]] |
; OPTM1: movups xmm0, xmmword ptr {{.*}} |
; OPTM1: movups xmm1, xmmword ptr {{.*}} |
; OPTM1: movups xmm2, xmmword ptr {{.*}} |
; OPTM1: movups xmm3, xmmword ptr {{.*}} |
-; OPTM1: call InterspersedVectorArgs |
+; OPTM1: call -4 |
; OPTM1-NEXT: add esp, 80 |
; OPTM1: ret |
} |
@@ -238,16 +239,16 @@ entry: |
%result2 = call <4 x float> @VectorReturn(<4 x float> %result) |
ret void |
; CHECK-LABEL: test_receiving_vectors: |
-; CHECK: call VectorReturn |
+; CHECK: call -4 |
; CHECK-NOT: movups xmm0 |
-; CHECK: call VectorReturn |
+; CHECK: call -4 |
; CHECK: ret |
; OPTM1-LABEL: test_receiving_vectors: |
-; OPTM1: call VectorReturn |
+; OPTM1: call -4 |
; OPTM1: movups {{.*}}, xmm0 |
; OPTM1: movups xmm0, {{.*}} |
-; OPTM1: call VectorReturn |
+; OPTM1: call -4 |
; OPTM1: ret |
} |