blob: d742cfc49689c2753186bd10dfcedac9def7f068 [file] [edit]
; RUN: llvm-mc -triple=amdgcn-amd-amdhsa -mcpu=gfx1100 -filetype=obj %s | llvm-dwarfdump -debug-frame - | FileCheck %s
.text
.cfi_sections .debug_frame
; CHECK-NOT: DW_CFA_expression
register_pair:
.cfi_startproc
s_nop 2
; CHECK: DW_CFA_expression: PC_REG DW_OP_regx SGPR30, DW_OP_piece 0x4, DW_OP_regx SGPR31, DW_OP_piece 0x4
.cfi_llvm_register_pair 16, 62, 32, 63, 32
s_nop 2
.cfi_endproc
; CHECK-NOT: DW_CFA_expression
vector_registers:
.cfi_startproc
s_nop 2
; CHECK: DW_CFA_expression: PC_REG DW_OP_regx 0x67f, DW_OP_bit_piece 0x20 0x0, DW_OP_regx 0x67f, DW_OP_bit_piece 0x20 0x20
.cfi_llvm_vector_registers 16, 1663, 0, 32, 1663, 1, 32
s_nop 2
.cfi_endproc
; CHECK-NOT: DW_CFA_expression
vector_registers_single:
.cfi_startproc
s_nop 2
;; Note that 0x2c below is the offset in the VGPR, so 4 (bytes, vgpr lane size) * 11 (the lane).
; CHECK: DW_CFA_expression: SGPR45 DW_OP_regx VGPR41, DW_OP_LLVM_user DW_OP_LLVM_offset_uconst 0x2c
.cfi_llvm_vector_registers 77, 2601, 11, 32
s_nop 2
.cfi_endproc
; CHECK-NOT: DW_CFA_expression
vector_offsets:
.cfi_startproc
s_nop 2
; CHECK: DW_CFA_expression: VGPR40 DW_OP_regx VGPR40, DW_OP_swap, DW_OP_LLVM_user DW_OP_LLVM_offset_uconst 0x100, DW_OP_LLVM_user DW_OP_LLVM_call_frame_entry_reg EXEC, DW_OP_deref_size 0x8, DW_OP_LLVM_user DW_OP_LLVM_select_bit_piece 0x20 0x40
.cfi_llvm_vector_offset 2600, 32, 17, 64, 256
s_nop 2
.cfi_endproc
; CHECK-NOT: DW_CFA_expression
vector_register_mask:
.cfi_startproc
s_nop 0
; CHECK: DW_CFA_expression: VGPR40 DW_OP_regx VGPR40, DW_OP_regx AGPR0, DW_OP_LLVM_user DW_OP_LLVM_call_frame_entry_reg EXEC, DW_OP_deref_size 0x8, DW_OP_LLVM_user DW_OP_LLVM_select_bit_piece 0x20 0x40
.cfi_llvm_vector_register_mask 2600, 3072, 32, 17, 64
s_nop 0
.cfi_endproc
; CHECK-NOT: DW_CFA_expression