
Walks over the MCExpr and uses KnownBits to deduce whether an expression is known and if so, prints said known value. Should support the most common MCExpr cases for AMDGPU metadata.
164 lines
5.0 KiB
ArmAsm
164 lines
5.0 KiB
ArmAsm
; RUN: llvm-mc -triple=amdgcn-mesa-mesa3d -mcpu=gfx900 -filetype=asm < %s | FileCheck --check-prefix=ASM %s
|
|
; RUN: llvm-mc -triple=amdgcn-mesa-mesa3d -mcpu=gfx900 -filetype=obj < %s > %t
|
|
; RUN: llvm-objdump -s %t | FileCheck --check-prefix=OBJDUMP %s
|
|
|
|
; OBJDUMP: Contents of section .known_is_dynamic_callstack:
|
|
; OBJDUMP: 0030 00000000 00000000 00001000 00000000
|
|
|
|
; OBJDUMP: Contents of section .known_wavefront_sgpr_count:
|
|
; OBJDUMP: 0050 00000000 01000000 00000000 00000000
|
|
|
|
; OBJDUMP: Contents of section .known_workitem_vgpr_count:
|
|
; OBJDUMP: 0050 00000000 00000100 00000000 00000000
|
|
|
|
; OBJDUMP: Contents of section .known_workitem_private_segment_byte_size:
|
|
; OBJDUMP: 0030 00000000 00000000 00000000 01000000
|
|
|
|
; OBJDUMP: Contents of section .known_granulated_workitem_vgpr_count:
|
|
; OBJDUMP: 0030 01000000 00000000 00000000 00000000
|
|
|
|
; OBJDUMP: Contents of section .known_enable_sgpr_workgroup_id_x:
|
|
; OBJDUMP: 0030 00000000 80000000 00000000 00000000
|
|
|
|
; OBJDUMP: Contents of section .unknown_is_dynamic_callstack:
|
|
; OBJDUMP: 0030 00000000 00000000 00001000 00000000
|
|
|
|
; OBJDUMP: Contents of section .unknown_wavefront_sgpr_count:
|
|
; OBJDUMP: 0050 00000000 01000000 00000000 00000000
|
|
|
|
; OBJDUMP: Contents of section .unknown_workitem_vgpr_count:
|
|
; OBJDUMP: 0050 00000000 00000100 00000000 00000000
|
|
|
|
; OBJDUMP: Contents of section .unknown_workitem_private_segment_byte_size:
|
|
; OBJDUMP: 0030 00000000 00000000 00000000 01000000
|
|
|
|
; OBJDUMP: Contents of section .unknown_granulated_workitem_vgpr_count:
|
|
; OBJDUMP: 0030 01000000 00000000 00000000 00000000
|
|
|
|
; OBJDUMP: Contents of section .unknown_enable_sgpr_workgroup_id_x:
|
|
; OBJDUMP: 0030 00000000 80000000 00000000 00000000
|
|
|
|
.set known, 1
|
|
|
|
; ASM-LABEL: known_is_dynamic_callstack:
|
|
; ASM: is_dynamic_callstack = 1
|
|
.section .known_is_dynamic_callstack
|
|
known_is_dynamic_callstack:
|
|
.amd_kernel_code_t
|
|
is_dynamic_callstack = known
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: known_wavefront_sgpr_count:
|
|
; ASM: wavefront_sgpr_count = 1
|
|
.section .known_wavefront_sgpr_count
|
|
known_wavefront_sgpr_count:
|
|
.amd_kernel_code_t
|
|
wavefront_sgpr_count = known
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: known_workitem_vgpr_count:
|
|
; ASM: workitem_vgpr_count = 1
|
|
.section .known_workitem_vgpr_count
|
|
known_workitem_vgpr_count:
|
|
.amd_kernel_code_t
|
|
workitem_vgpr_count = known
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: known_workitem_private_segment_byte_size:
|
|
; ASM: workitem_private_segment_byte_size = 1
|
|
.section .known_workitem_private_segment_byte_size
|
|
known_workitem_private_segment_byte_size:
|
|
.amd_kernel_code_t
|
|
workitem_private_segment_byte_size = known
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: known_granulated_workitem_vgpr_count:
|
|
; ASM: granulated_workitem_vgpr_count = 1
|
|
.section .known_granulated_workitem_vgpr_count
|
|
known_granulated_workitem_vgpr_count:
|
|
.amd_kernel_code_t
|
|
granulated_workitem_vgpr_count = known
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: known_enable_sgpr_workgroup_id_x:
|
|
; ASM: enable_sgpr_workgroup_id_x = 1
|
|
.section .known_enable_sgpr_workgroup_id_x
|
|
known_enable_sgpr_workgroup_id_x:
|
|
.amd_kernel_code_t
|
|
enable_sgpr_workgroup_id_x = known
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: unknown_is_dynamic_callstack:
|
|
; ASM: is_dynamic_callstack = unknown
|
|
.section .unknown_is_dynamic_callstack
|
|
unknown_is_dynamic_callstack:
|
|
.amd_kernel_code_t
|
|
is_dynamic_callstack = unknown
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: unknown_wavefront_sgpr_count:
|
|
; ASM: wavefront_sgpr_count = unknown
|
|
.section .unknown_wavefront_sgpr_count
|
|
unknown_wavefront_sgpr_count:
|
|
.amd_kernel_code_t
|
|
wavefront_sgpr_count = unknown
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: unknown_workitem_vgpr_count:
|
|
; ASM: workitem_vgpr_count = unknown
|
|
.section .unknown_workitem_vgpr_count
|
|
unknown_workitem_vgpr_count:
|
|
.amd_kernel_code_t
|
|
workitem_vgpr_count = unknown
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: unknown_workitem_private_segment_byte_size:
|
|
; ASM: workitem_private_segment_byte_size = unknown
|
|
.section .unknown_workitem_private_segment_byte_size
|
|
unknown_workitem_private_segment_byte_size:
|
|
.amd_kernel_code_t
|
|
workitem_private_segment_byte_size = unknown
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: unknown_granulated_workitem_vgpr_count:
|
|
; ASM: granulated_workitem_vgpr_count = (unknown&63)&63
|
|
; ASM: granulated_wavefront_sgpr_count = 0
|
|
; ASM: priority = 0
|
|
; ASM: float_mode = 0
|
|
; ASM: priv = 0
|
|
; ASM: enable_dx10_clamp = 0
|
|
; ASM: debug_mode = 0
|
|
; ASM: enable_ieee_mode = 0
|
|
; ASM: enable_wgp_mode = 0
|
|
; ASM: enable_mem_ordered = 0
|
|
; ASM: enable_fwd_progress = 0
|
|
.section .unknown_granulated_workitem_vgpr_count
|
|
unknown_granulated_workitem_vgpr_count:
|
|
.amd_kernel_code_t
|
|
granulated_workitem_vgpr_count = unknown
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
; ASM-LABEL: unknown_enable_sgpr_workgroup_id_x:
|
|
; ASM: enable_sgpr_workgroup_id_x = (((unknown&1)<<7)>>7)&1
|
|
; ASM: enable_sgpr_workgroup_id_y = 0
|
|
; ASM: enable_sgpr_workgroup_id_z = 0
|
|
.section .unknown_enable_sgpr_workgroup_id_x
|
|
unknown_enable_sgpr_workgroup_id_x:
|
|
.amd_kernel_code_t
|
|
enable_sgpr_workgroup_id_x = unknown
|
|
.end_amd_kernel_code_t
|
|
s_endpgm
|
|
|
|
.set unknown, 1
|