| 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 |