Index: tests_lit/llvm2ice_tests/alloc.ll |
diff --git a/tests_lit/llvm2ice_tests/alloc.ll b/tests_lit/llvm2ice_tests/alloc.ll |
index 28f617a3bf9ec6df956b08dea1077871af0d7fd3..083a7e215f52067ba534e7d9852a753fc9e36df7 100644 |
--- a/tests_lit/llvm2ice_tests/alloc.ll |
+++ b/tests_lit/llvm2ice_tests/alloc.ll |
@@ -1,11 +1,9 @@ |
; This is a basic test of the alloca instruction. |
-; 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 |
-; RUN: %p2i -i %s --args -Om1 --verbose none \ |
-; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
-; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
+; RUN: %p2i --assemble --disassemble -i %s --args -O2 --verbose none \ |
+; RUN: | FileCheck %s |
+; RUN: %p2i --assemble --disassemble -i %s --args -Om1 --verbose none \ |
+; RUN: | FileCheck %s |
define void @fixed_416_align_16(i32 %n) { |
entry: |
@@ -14,11 +12,12 @@ entry: |
call void @f1(i32 %__2) |
ret void |
} |
-; CHECK-LABEL: fixed_416_align_16: |
-; CHECK: sub esp, 416 |
-; CHECK: sub esp, 16 |
-; CHECK: mov dword ptr [esp], eax |
-; CHECK: call f1 |
+; CHECK-LABEL: fixed_416_align_16 |
+; CHECK: sub esp,0x1a0 |
+; CHECK: sub esp,0x10 |
+; CHECK: mov DWORD PTR [esp],eax |
+; CHECK: call |
+; CHECK-NEXT: R_{{.*}} f1 |
define void @fixed_416_align_32(i32 %n) { |
entry: |
@@ -27,12 +26,13 @@ entry: |
call void @f1(i32 %__2) |
ret void |
} |
-; CHECK-LABEL: fixed_416_align_32: |
-; CHECK: and esp, -32 |
-; CHECK: sub esp, 416 |
-; CHECK: sub esp, 16 |
-; CHECK: mov dword ptr [esp], eax |
-; CHECK: call f1 |
+; CHECK-LABEL: fixed_416_align_32 |
+; CHECK: and esp,0xffffffe0 |
+; CHECK: sub esp,0x1a0 |
+; CHECK: sub esp,0x10 |
+; CHECK: mov DWORD PTR [esp],eax |
+; CHECK: call |
+; CHECK-NEXT: R_{{.*}} f1 |
define void @fixed_351_align_16(i32 %n) { |
entry: |
@@ -41,11 +41,12 @@ entry: |
call void @f1(i32 %__2) |
ret void |
} |
-; CHECK-LABEL: fixed_351_align_16: |
-; CHECK: sub esp, 352 |
-; CHECK: sub esp, 16 |
-; CHECK: mov dword ptr [esp], eax |
-; CHECK: call f1 |
+; CHECK-LABEL: fixed_351_align_16 |
+; CHECK: sub esp,0x160 |
+; CHECK: sub esp,0x10 |
+; CHECK: mov DWORD PTR [esp],eax |
+; CHECK: call |
+; CHECK-NEXT: R_{{.*}} f1 |
define void @fixed_351_align_32(i32 %n) { |
entry: |
@@ -54,17 +55,15 @@ entry: |
call void @f1(i32 %__2) |
ret void |
} |
-; CHECK-LABEL: fixed_351_align_32: |
-; CHECK: and esp, -32 |
-; CHECK: sub esp, 352 |
-; CHECK: sub esp, 16 |
-; CHECK: mov dword ptr [esp], eax |
-; CHECK: call f1 |
+; CHECK-LABEL: fixed_351_align_32 |
+; CHECK: and esp,0xffffffe0 |
+; CHECK: sub esp,0x160 |
+; CHECK: sub esp,0x10 |
+; CHECK: mov DWORD PTR [esp],eax |
+; CHECK: call |
+; CHECK-NEXT: R_{{.*}} f1 |
-define void @f1(i32 %ignored) { |
-entry: |
- ret void |
-} |
+declare void @f1(i32 %ignored) |
define void @variable_n_align_16(i32 %n) { |
entry: |
@@ -73,14 +72,15 @@ entry: |
call void @f2(i32 %__2) |
ret void |
} |
-; CHECK-LABEL: variable_n_align_16: |
-; CHECK: mov eax, dword ptr [ebp + 8] |
-; CHECK: add eax, 15 |
-; CHECK: and eax, -16 |
-; CHECK: sub esp, eax |
-; CHECK: sub esp, 16 |
-; CHECK: mov dword ptr [esp], eax |
-; CHECK: call f2 |
+; CHECK-LABEL: variable_n_align_16 |
+; CHECK: mov eax,DWORD PTR [ebp+0x8] |
+; CHECK: add eax,0xf |
+; CHECK: and eax,0xfffffff0 |
+; CHECK: sub esp,eax |
+; CHECK: sub esp,0x10 |
+; CHECK: mov DWORD PTR [esp],eax |
+; CHECK: call |
+; CHECK-NEXT: R_{{.*}} f2 |
define void @variable_n_align_32(i32 %n) { |
entry: |
@@ -90,15 +90,16 @@ entry: |
ret void |
} |
; In -O2, the order of the CHECK-DAG lines in the output is switched. |
-; CHECK-LABEL: variable_n_align_32: |
-; CHECK-DAG: and esp, -32 |
-; CHECK-DAG: mov eax, dword ptr [ebp + 8] |
-; CHECK: add eax, 31 |
-; CHECK: and eax, -32 |
-; CHECK: sub esp, eax |
-; CHECK: sub esp, 16 |
-; CHECK: mov dword ptr [esp], eax |
-; CHECK: call f2 |
+; CHECK-LABEL: variable_n_align_32 |
+; CHECK-DAG: and esp,0xffffffe0 |
+; CHECK-DAG: mov eax,DWORD PTR [ebp+0x8] |
+; CHECK: add eax,0x1f |
+; CHECK: and eax,0xffffffe0 |
+; CHECK: sub esp,eax |
+; CHECK: sub esp,0x10 |
+; CHECK: mov DWORD PTR [esp],eax |
+; CHECK: call |
+; CHECK-NEXT: R_{{.*}} f2 |
; Test alloca with default (0) alignment. |
define void @align0(i32 %n) { |
@@ -109,11 +110,8 @@ entry: |
ret void |
} |
; CHECK-LABEL: align0 |
-; CHECK: add [[REG:.*]], 15 |
-; CHECK: and [[REG]], -16 |
-; CHECK: sub esp, [[REG]] |
+; CHECK: add [[REG:.*]],0xf |
+; CHECK: and [[REG]],0xfffffff0 |
+; CHECK: sub esp,[[REG]] |
-define void @f2(i32 %ignored) { |
-entry: |
- ret void |
-} |
+declare void @f2(i32 %ignored) |