| ; RUN: llc -mtriple=riscv64 -mattr=+d,+zfh < %s | FileCheck %s |
| |
| ; CHECK-LABEL: .section .llvm_stackmaps |
| ; CHECK-NEXT: __LLVM_StackMaps: |
| ; Header |
| ; CHECK-NEXT: .byte 3 |
| ; CHECK-NEXT: .byte 0 |
| ; CHECK-NEXT: .half 0 |
| ; Num Functions |
| ; CHECK-NEXT: .word 1 |
| ; Num LargeConstants |
| ; CHECK-NEXT: .word 0 |
| ; Num Callsites |
| ; CHECK-NEXT: .word 1 |
| |
| ; Functions and stack size |
| ; CHECK-NEXT: .quad liveArgs |
| ; CHECK-NEXT: .quad 0 |
| ; CHECK-NEXT: .quad 1 |
| |
| ; Spilled stack map values. |
| ; |
| ; Verify 3 stack map entries. |
| ; |
| ; CHECK-LABEL: .word .L{{.*}}-liveArgs |
| ; CHECK-NEXT: .half 0 |
| ; CHECK-NEXT: .half 25 |
| ; |
| ; Check that at least one is a spilled entry from SP. |
| ; Location: Indirect SP + ... |
| ; CHECK: .byte 3 |
| ; CHECK-NEXT: .byte 0 |
| ; CHECK-NEXT: .half 8 |
| ; CHECK-NEXT: .half 2 |
| ; CHECK-NEXT: .half 0 |
| ; CHECK-NEXT: .word |
| define void @liveArgs(double %arg0, double %arg1, double %arg2, double %arg3, double %arg4, double %arg5, double %arg6, double %arg7, double %arg8, double %arg9, double %arg10, double %arg11, double %arg12, double %arg13, double %arg14, double %arg15, double %arg16, double %arg17, double %arg18, double %arg19, double %arg20, double %arg21, double %arg22, double %arg23, half %arg24, half %arg25, half %arg26, half %arg27, half %arg28, bfloat %arg29) { |
| entry: |
| call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 11, i32 28, ptr null, i32 5, double %arg0, double %arg1, double %arg2, double %arg3, double %arg4, double %arg5, double %arg6, double %arg7, double %arg8, double %arg9, double %arg10, double %arg11, double %arg12, double %arg13, double %arg14, double %arg15, double %arg16, double %arg17, double %arg18, double %arg19, double %arg20, double %arg21, double %arg22, double %arg23, half %arg24, half %arg25, half %arg26, half %arg27, half %arg28, bfloat %arg29) |
| ret void |
| } |