| OLD | NEW |
| 1 ; This checks to ensure that Subzero aligns spill slots. | 1 ; This checks to ensure that Subzero aligns spill slots. |
| 2 | 2 |
| 3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ | 3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ |
| 4 ; RUN: -allow-externally-defined-symbols | FileCheck %s | 4 ; RUN: -allow-externally-defined-symbols | FileCheck %s |
| 5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ | 5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ |
| 6 ; RUN: -allow-externally-defined-symbols | FileCheck %s | 6 ; RUN: -allow-externally-defined-symbols | FileCheck %s |
| 7 | 7 |
| 8 ; The location of the stack slot for a variable is inferred from the | 8 ; The location of the stack slot for a variable is inferred from the |
| 9 ; return sequence. | 9 ; return sequence. |
| 10 | 10 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 entry: | 76 entry: |
| 77 %float.global = sitofp i32 %arg to float | 77 %float.global = sitofp i32 %arg to float |
| 78 call void @ForceXmmSpillsAndUseFloat(float %float.global) | 78 call void @ForceXmmSpillsAndUseFloat(float %float.global) |
| 79 br label %block | 79 br label %block |
| 80 block: | 80 block: |
| 81 %vec.local = insertelement <4 x i32> undef, i32 undef, i32 0 | 81 %vec.local = insertelement <4 x i32> undef, i32 undef, i32 0 |
| 82 call void @ForceXmmSpillsAndUseFloat(float %float.global) | 82 call void @ForceXmmSpillsAndUseFloat(float %float.global) |
| 83 ret <4 x i32> %vec.local | 83 ret <4 x i32> %vec.local |
| 84 ; CHECK-LABEL: align_local_vector_and_global_float | 84 ; CHECK-LABEL: align_local_vector_and_global_float |
| 85 ; CHECK: cvtsi2ss xmm0,eax | 85 ; CHECK: cvtsi2ss xmm0,eax |
| 86 ; CHECK-NEXT: movss DWORD PTR [esp+{{0xc|0x1c}}],xmm0 | 86 ; CHECK-NEXT: movss DWORD PTR [esp+{{0x1c|0x2c}}],xmm0 |
| 87 ; CHECK: movups xmm0,XMMWORD PTR [{{esp|esp\+0x10}}] | 87 ; CHECK: movups xmm0,XMMWORD PTR [{{esp\+0x10|esp\+0x20}}] |
| 88 ; CHECK-NEXT: add esp,0x2c | 88 ; CHECK-NEXT: add esp,0x3c |
| 89 ; CHECK-NEXT: ret | 89 ; CHECK-NEXT: ret |
| 90 } | 90 } |
| 91 | 91 |
| 92 declare void @ForceXmmSpillsAndUseAlloca(i8*) | 92 declare void @ForceXmmSpillsAndUseAlloca(i8*) |
| 93 declare void @ForceXmmSpillsAndUseFloat(float) | 93 declare void @ForceXmmSpillsAndUseFloat(float) |
| OLD | NEW |