OLD | NEW |
1 ; RUN: llc < %s -fast-isel -O0 -regalloc=fast -asm-verbose=0 -fast-isel-abort |
FileCheck %s | 1 ; RUN: llc < %s -fast-isel -O0 -regalloc=fast -asm-verbose=0 -fast-isel-abort |
FileCheck %s |
2 | 2 |
3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
2:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:6
4" | 3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
2:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:6
4" |
4 target triple = "x86_64-apple-darwin10.0.0" | 4 target triple = "x86_64-apple-darwin10.0.0" |
5 | 5 |
6 ; Make sure that fast-isel folds the immediate into the binop even though it | 6 ; Make sure that fast-isel folds the immediate into the binop even though it |
7 ; is non-canonical. | 7 ; is non-canonical. |
8 define i32 @test1(i32 %i) nounwind ssp { | 8 define i32 @test1(i32 %i) nounwind ssp { |
9 %and = and i32 8, %i | 9 %and = and i32 8, %i |
10 ret i32 %and | 10 ret i32 %and |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 } | 252 } |
253 declare void @test20sret(%struct.a* sret) | 253 declare void @test20sret(%struct.a* sret) |
254 | 254 |
255 ; Check that -0.0 is not materialized using pxor | 255 ; Check that -0.0 is not materialized using pxor |
256 define void @test21(double* %p1) { | 256 define void @test21(double* %p1) { |
257 store double -0.0, double* %p1 | 257 store double -0.0, double* %p1 |
258 ret void | 258 ret void |
259 ; CHECK: test21: | 259 ; CHECK: test21: |
260 ; CHECK-NOT: pxor | 260 ; CHECK-NOT: pxor |
261 ; CHECK: movsd LCPI | 261 ; CHECK: movsd LCPI |
262 } | 262 } |
| 263 |
| 264 ; Check that immediate arguments to a function |
| 265 ; do not cause massive spilling and are used |
| 266 ; as immediates just before the call. |
| 267 define void @test22() nounwind { |
| 268 entry: |
| 269 call void @foo22(i32 0) |
| 270 call void @foo22(i32 1) |
| 271 call void @foo22(i32 2) |
| 272 call void @foo22(i32 3) |
| 273 ret void |
| 274 ; CHECK: test22: |
| 275 ; CHECK: movl» $0, %edi |
| 276 ; CHECK: callq» _foo22 |
| 277 ; CHECK: movl» $1, %edi |
| 278 ; CHECK: callq» _foo22 |
| 279 ; CHECK: movl» $2, %edi |
| 280 ; CHECK: callq» _foo22 |
| 281 ; CHECK: movl» $3, %edi |
| 282 ; CHECK: callq» _foo22 |
| 283 } |
| 284 |
| 285 declare void @foo22(i32) |
OLD | NEW |