OLD | NEW |
1 ; This is a basic test of the alloca instruction. | 1 ; This is a basic test of the alloca instruction. |
2 | 2 |
3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
4 ; RUN: --target x8632 -i %s --args -O2 -allow-externally-defined-symbols \ | 4 ; RUN: --target x8632 -i %s --args -O2 -allow-externally-defined-symbols \ |
5 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 5 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
6 | 6 |
7 ; Test that a sequence of allocas with less than stack alignment get fused. | 7 ; Test that a sequence of allocas with less than stack alignment get fused. |
8 define internal void @fused_small_align(i32 %arg) { | 8 define internal void @fused_small_align(i32 %arg) { |
9 entry: | 9 entry: |
10 %a1 = alloca i8, i32 8, align 4 | 10 %a1 = alloca i8, i32 8, align 4 |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 ; CHECK-LABEL: fused_large_align_with_dynamic | 143 ; CHECK-LABEL: fused_large_align_with_dynamic |
144 ; CHECK-NEXT: push ebx | 144 ; CHECK-NEXT: push ebx |
145 ; CHECK-NEXT: push ebp | 145 ; CHECK-NEXT: push ebp |
146 ; CHECK-NEXT: mov ebp,esp | 146 ; CHECK-NEXT: mov ebp,esp |
147 ; CHECK-NEXT: sub esp,0x24 | 147 ; CHECK-NEXT: sub esp,0x24 |
148 ; CHECK-NEXT: mov eax,DWORD PTR [ebp+0xc] | 148 ; CHECK-NEXT: mov eax,DWORD PTR [ebp+0xc] |
149 ; CHECK-NEXT: and esp,0xffffffe0 | 149 ; CHECK-NEXT: and esp,0xffffffe0 |
150 ; CHECK-NEXT: sub esp,0x40 | 150 ; CHECK-NEXT: sub esp,0x40 |
151 ; CHECK-NEXT: mov ecx,esp | 151 ; CHECK-NEXT: mov ecx,esp |
152 ; CHECK-NEXT: mov edx,ecx | 152 ; CHECK-NEXT: mov edx,ecx |
153 ; CHECK-NEXT: add edx,0x20 | 153 ; CHECK-NEXT: add ecx,0x20 |
154 ; CHECK-NEXT: add ecx,0x0 | 154 ; CHECK-NEXT: add edx,0x0 |
155 ; CHECK-NEXT: sub esp,0x10 | 155 ; CHECK-NEXT: sub esp,0x10 |
156 ; CHECK-NEXT: mov ebx,esp | 156 ; CHECK-NEXT: mov ebx,esp |
| 157 ; CHECK-NEXT: mov DWORD PTR [ecx],eax |
157 ; CHECK-NEXT: mov DWORD PTR [edx],eax | 158 ; CHECK-NEXT: mov DWORD PTR [edx],eax |
158 ; CHECK-NEXT: mov DWORD PTR [ecx],eax | |
159 ; CHECK-NEXT: mov DWORD PTR [ebp-0x24],eax | 159 ; CHECK-NEXT: mov DWORD PTR [ebp-0x24],eax |
160 ; CHECK-NEXT: mov DWORD PTR [ebp-0x14],eax | 160 ; CHECK-NEXT: mov DWORD PTR [ebp-0x14],eax |
161 ; CHECK-NEXT: mov DWORD PTR [ebx],eax | 161 ; CHECK-NEXT: mov DWORD PTR [ebx],eax |
162 ; CHECK-NEXT: mov esp,ebp | 162 ; CHECK-NEXT: mov esp,ebp |
163 ; CHECK-NEXT: pop ebp | 163 ; CHECK-NEXT: pop ebp |
OLD | NEW |