|
7 | 7 | ; CHECK-NEXT: .byte 0 |
8 | 8 | ; CHECK-NEXT: .half 0 |
9 | 9 | ; Num Functions |
10 | | -; CHECK-NEXT: .word 12 |
| 10 | +; CHECK-NEXT: .word 13 |
11 | 11 | ; Num LargeConstants |
12 | | -; CHECK-NEXT: .word 2 |
| 12 | +; CHECK-NEXT: .word 3 |
13 | 13 | ; Num Callsites |
14 | | -; CHECK-NEXT: .word 16 |
| 14 | +; CHECK-NEXT: .word 17 |
15 | 15 |
|
16 | 16 | ; Functions and stack size |
17 | 17 | ; CHECK-NEXT: .quad constantargs |
|
50 | 50 | ; CHECK-NEXT: .quad needsStackRealignment |
51 | 51 | ; CHECK-NEXT: .quad -1 |
52 | 52 | ; CHECK-NEXT: .quad 1 |
| 53 | +; CHECK-NEXT: .quad floats |
| 54 | +; CHECK-NEXT: .quad 16 |
| 55 | +; CHECK-NEXT: .quad 1 |
53 | 56 |
|
54 | 57 | ; Num LargeConstants |
55 | 58 | ; CHECK-NEXT: .quad 4294967295 |
56 | 59 | ; CHECK-NEXT: .quad 4294967296 |
| 60 | +; CHECK-NEXT: .quad 4609434218613702656 |
57 | 61 |
|
58 | 62 | ; Constant arguments |
59 | 63 | ; |
@@ -379,6 +383,60 @@ define void @needsStackRealignment() { |
379 | 383 | } |
380 | 384 | declare void @escape_values(...) |
381 | 385 |
|
| 386 | +; CHECK-LABEL: .word .L{{.*}}-floats |
| 387 | +; CHECK-NEXT: .half 0 |
| 388 | +; Num Locations |
| 389 | +; CHECK-NEXT: .half 6 |
| 390 | +; Loc 0: constant float as constant integer |
| 391 | +; CHECK-NEXT: .byte 4 |
| 392 | +; CHECK-NEXT: .byte 0 |
| 393 | +; CHECK-NEXT: .half 8 |
| 394 | +; CHECK-NEXT: .half 0 |
| 395 | +; CHECK-NEXT: .half 0 |
| 396 | +; CHECK-NEXT: .word |
| 397 | +; Loc 0: constant double as large constant integer |
| 398 | +; CHECK-NEXT: .byte 5 |
| 399 | +; CHECK-NEXT: .byte 0 |
| 400 | +; CHECK-NEXT: .half 8 |
| 401 | +; CHECK-NEXT: .half 0 |
| 402 | +; CHECK-NEXT: .half 0 |
| 403 | +; CHECK-NEXT: .word |
| 404 | +; Loc 1: float value in X register |
| 405 | +; CHECK-NEXT: .byte 1 |
| 406 | +; CHECK-NEXT: .byte 0 |
| 407 | +; CHECK-NEXT: .half 8 |
| 408 | +; CHECK-NEXT: .half 10 |
| 409 | +; CHECK-NEXT: .half 0 |
| 410 | +; CHECK-NEXT: .word |
| 411 | +; Loc 2: double value in X register |
| 412 | +; CHECK-NEXT: .byte 1 |
| 413 | +; CHECK-NEXT: .byte 0 |
| 414 | +; CHECK-NEXT: .half 8 |
| 415 | +; CHECK-NEXT: .half 11 |
| 416 | +; CHECK-NEXT: .half 0 |
| 417 | +; CHECK-NEXT: .word |
| 418 | +; Loc 3: float on stack |
| 419 | +; CHECK-NEXT: .byte 2 |
| 420 | +; CHECK-NEXT: .byte 0 |
| 421 | +; CHECK-NEXT: .half 8 |
| 422 | +; CHECK-NEXT: .half 2 |
| 423 | +; CHECK-NEXT: .half 0 |
| 424 | +; CHECK-NEXT: .word |
| 425 | +; Loc 4: double on stack |
| 426 | +; CHECK-NEXT: .byte 2 |
| 427 | +; CHECK-NEXT: .byte 0 |
| 428 | +; CHECK-NEXT: .half 8 |
| 429 | +; CHECK-NEXT: .half 2 |
| 430 | +; CHECK-NEXT: .half 0 |
| 431 | +; CHECK-NEXT: .word |
| 432 | +define void @floats(float %f, double %g) { |
| 433 | + %ff = alloca float |
| 434 | + %gg = alloca double |
| 435 | + call void (i64, i32, ...) @llvm.experimental.stackmap(i64 888, i32 0, float 1.25, |
| 436 | + double 1.5, float %f, double %g, ptr %ff, ptr %gg) |
| 437 | + ret void |
| 438 | +} |
| 439 | + |
382 | 440 | declare void @llvm.experimental.stackmap(i64, i32, ...) |
383 | 441 | declare void @llvm.experimental.patchpoint.void(i64, i32, ptr, i32, ...) |
384 | 442 | declare i64 @llvm.experimental.patchpoint.i64(i64, i32, ptr, i32, ...) |
0 commit comments