xref: /llvm-project/llvm/test/MC/AMDGPU/hsa-v5-uses-dynamic-stack.s (revision 688acb13b1d1eb751c83466935ab12f2b8047930)
1bc82cfb3SEmma Pilkington// RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx904 -mattr=+xnack < %s | FileCheck --check-prefix=ASM %s
2bc82cfb3SEmma Pilkington// RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx904 -mattr=+xnack -filetype=obj < %s > %t
33d9f011aSAbinav Puthan Purayil// RUN: llvm-readelf -S -r -s %t | FileCheck --check-prefix=READOBJ %s
43d9f011aSAbinav Puthan Purayil// RUN: llvm-objdump -s -j .rodata %t | FileCheck --check-prefix=OBJDUMP %s
53d9f011aSAbinav Puthan Purayil
6500846d2SPierre van Houtryve// RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx904 --amdhsa-code-object-version=6 -mattr=+xnack < %s | FileCheck --check-prefix=ASM %s
7500846d2SPierre van Houtryve// RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx904 --amdhsa-code-object-version=6 -mattr=+xnack -filetype=obj < %s > %t
8500846d2SPierre van Houtryve// RUN: llvm-readelf -S -r -s %t | FileCheck --check-prefix=READOBJ %s
9500846d2SPierre van Houtryve// RUN: llvm-objdump -s -j .rodata %t | FileCheck --check-prefix=OBJDUMP %s
10500846d2SPierre van Houtryve
113d9f011aSAbinav Puthan Purayil// READOBJ: Section Headers
123d9f011aSAbinav Puthan Purayil// READOBJ: .text   PROGBITS {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9]+}} AX {{[0-9]+}} {{[0-9]+}} 256
133d9f011aSAbinav Puthan Purayil// READOBJ: .rodata PROGBITS {{[0-9a-f]+}} {{[0-9a-f]+}}        000100 {{[0-9]+}}  A {{[0-9]+}} {{[0-9]+}} 64
143d9f011aSAbinav Puthan Purayil
153d9f011aSAbinav Puthan Purayil// READOBJ: Relocation section '.rela.rodata' at offset
163d9f011aSAbinav Puthan Purayil// READOBJ: 0000000000000010 {{[0-9a-f]+}}00000005 R_AMDGPU_REL64 0000000000000000 .text + 10
173d9f011aSAbinav Puthan Purayil// READOBJ: 0000000000000050 {{[0-9a-f]+}}00000005 R_AMDGPU_REL64 0000000000000000 .text + 110
183d9f011aSAbinav Puthan Purayil// READOBJ: 0000000000000090 {{[0-9a-f]+}}00000005 R_AMDGPU_REL64 0000000000000000 .text + 210
193d9f011aSAbinav Puthan Purayil// READOBJ: 00000000000000d0 {{[0-9a-f]+}}00000005 R_AMDGPU_REL64 0000000000000000 .text + 310
203d9f011aSAbinav Puthan Purayil
213d9f011aSAbinav Puthan Purayil// READOBJ: Symbol table '.symtab' contains {{[0-9]+}} entries:
223d9f011aSAbinav Puthan Purayil// READOBJ:      0000000000000000  0 FUNC    LOCAL  PROTECTED 2 minimal
233d9f011aSAbinav Puthan Purayil// READOBJ-NEXT: 0000000000000100  0 FUNC    LOCAL  PROTECTED 2 complete
243d9f011aSAbinav Puthan Purayil// READOBJ-NEXT: 0000000000000200  0 FUNC    LOCAL  PROTECTED 2 special_sgpr
253d9f011aSAbinav Puthan Purayil// READOBJ-NEXT: 0000000000000300  0 FUNC    LOCAL  PROTECTED 2 disabled_user_sgpr
263d9f011aSAbinav Puthan Purayil// READOBJ-NEXT: 0000000000000000 64 OBJECT  LOCAL  DEFAULT   3 minimal.kd
273d9f011aSAbinav Puthan Purayil// READOBJ-NEXT: 0000000000000040 64 OBJECT  LOCAL  DEFAULT   3 complete.kd
283d9f011aSAbinav Puthan Purayil// READOBJ-NEXT: 0000000000000080 64 OBJECT  LOCAL  DEFAULT   3 special_sgpr.kd
293d9f011aSAbinav Puthan Purayil// READOBJ-NEXT: 00000000000000c0 64 OBJECT  LOCAL  DEFAULT   3 disabled_user_sgpr.kd
303d9f011aSAbinav Puthan Purayil
313d9f011aSAbinav Puthan Purayil// OBJDUMP: Contents of section .rodata
323d9f011aSAbinav Puthan Purayil// Note, relocation for KERNEL_CODE_ENTRY_BYTE_OFFSET is not resolved here.
333d9f011aSAbinav Puthan Purayil// minimal
343d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0000 00000000 00000000 00000000 00000000
353d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0010 00000000 00000000 00000000 00000000
363d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0020 00000000 00000000 00000000 00000000
373d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0030 0000ac00 80000000 00000000 00000000
383d9f011aSAbinav Puthan Purayil// complete
393d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0040 01000000 01000000 08000000 00000000
403d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0050 00000000 00000000 00000000 00000000
413d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0060 00000000 00000000 00000000 00000000
423d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0070 c2500104 1f0f007f 7f080000 00000000
433d9f011aSAbinav Puthan Purayil// special_sgpr
443d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0080 00000000 00000000 00000000 00000000
453d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 0090 00000000 00000000 00000000 00000000
463d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 00a0 00000000 00000000 00000000 00000000
473d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 00b0 00010000 80000000 00000000 00000000
483d9f011aSAbinav Puthan Purayil// disabled_user_sgpr
493d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 00c0 00000000 00000000 00000000 00000000
503d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 00d0 00000000 00000000 00000000 00000000
513d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 00e0 00000000 00000000 00000000 00000000
523d9f011aSAbinav Puthan Purayil// OBJDUMP-NEXT: 00f0 0000ac00 80000000 00000000 00000000
533d9f011aSAbinav Puthan Purayil
543d9f011aSAbinav Puthan Purayil.amdgcn_target "amdgcn-amd-amdhsa--gfx904:xnack+"
553d9f011aSAbinav Puthan Purayil// ASM: .amdgcn_target "amdgcn-amd-amdhsa--gfx904:xnack+"
563d9f011aSAbinav Puthan Purayil
57bc82cfb3SEmma Pilkington.amdhsa_code_object_version 5
58bc82cfb3SEmma Pilkington// ASM: .amdhsa_code_object_version 5
59bc82cfb3SEmma Pilkington
603d9f011aSAbinav Puthan Purayil.p2align 8
613d9f011aSAbinav Puthan Purayil.type minimal,@function
623d9f011aSAbinav Puthan Purayilminimal:
633d9f011aSAbinav Puthan Purayil  s_endpgm
643d9f011aSAbinav Puthan Purayil
653d9f011aSAbinav Puthan Purayil.p2align 8
663d9f011aSAbinav Puthan Purayil.type complete,@function
673d9f011aSAbinav Puthan Purayilcomplete:
683d9f011aSAbinav Puthan Purayil  s_endpgm
693d9f011aSAbinav Puthan Purayil
703d9f011aSAbinav Puthan Purayil.p2align 8
713d9f011aSAbinav Puthan Purayil.type special_sgpr,@function
723d9f011aSAbinav Puthan Purayilspecial_sgpr:
733d9f011aSAbinav Puthan Purayil  s_endpgm
743d9f011aSAbinav Puthan Purayil
753d9f011aSAbinav Puthan Purayil.p2align 8
763d9f011aSAbinav Puthan Purayil.type disabled_user_sgpr,@function
773d9f011aSAbinav Puthan Purayildisabled_user_sgpr:
783d9f011aSAbinav Puthan Purayil  s_endpgm
793d9f011aSAbinav Puthan Purayil
803d9f011aSAbinav Puthan Purayil.rodata
813d9f011aSAbinav Puthan Purayil// ASM: .rodata
823d9f011aSAbinav Puthan Purayil
833d9f011aSAbinav Puthan Purayil// Test that only specifying required directives is allowed, and that defaulted
843d9f011aSAbinav Puthan Purayil// values are omitted.
853d9f011aSAbinav Puthan Purayil.p2align 6
863d9f011aSAbinav Puthan Purayil.amdhsa_kernel minimal
873d9f011aSAbinav Puthan Purayil  .amdhsa_next_free_vgpr 0
883d9f011aSAbinav Puthan Purayil  .amdhsa_next_free_sgpr 0
893d9f011aSAbinav Puthan Purayil.end_amdhsa_kernel
903d9f011aSAbinav Puthan Purayil
913d9f011aSAbinav Puthan Purayil// ASM: .amdhsa_kernel minimal
923d9f011aSAbinav Puthan Purayil// ASM: .amdhsa_next_free_vgpr 0
933d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_next_free_sgpr 0
943d9f011aSAbinav Puthan Purayil// ASM: .end_amdhsa_kernel
953d9f011aSAbinav Puthan Purayil
963d9f011aSAbinav Puthan Purayil// Test that we can specify all available directives with non-default values.
973d9f011aSAbinav Puthan Purayil.p2align 6
983d9f011aSAbinav Puthan Purayil.amdhsa_kernel complete
993d9f011aSAbinav Puthan Purayil  .amdhsa_group_segment_fixed_size 1
1003d9f011aSAbinav Puthan Purayil  .amdhsa_private_segment_fixed_size 1
1013d9f011aSAbinav Puthan Purayil  .amdhsa_kernarg_size 8
1023d9f011aSAbinav Puthan Purayil  .amdhsa_user_sgpr_count 15
1033d9f011aSAbinav Puthan Purayil  .amdhsa_user_sgpr_private_segment_buffer 1
1043d9f011aSAbinav Puthan Purayil  .amdhsa_user_sgpr_dispatch_ptr 1
1053d9f011aSAbinav Puthan Purayil  .amdhsa_user_sgpr_queue_ptr 1
1063d9f011aSAbinav Puthan Purayil  .amdhsa_user_sgpr_kernarg_segment_ptr 1
1073d9f011aSAbinav Puthan Purayil  .amdhsa_user_sgpr_dispatch_id 1
1083d9f011aSAbinav Puthan Purayil  .amdhsa_user_sgpr_flat_scratch_init 1
1093d9f011aSAbinav Puthan Purayil  .amdhsa_user_sgpr_private_segment_size 1
1103d9f011aSAbinav Puthan Purayil  .amdhsa_uses_dynamic_stack 1
1113d9f011aSAbinav Puthan Purayil  .amdhsa_system_sgpr_private_segment_wavefront_offset 1
1123d9f011aSAbinav Puthan Purayil  .amdhsa_system_sgpr_workgroup_id_x 0
1133d9f011aSAbinav Puthan Purayil  .amdhsa_system_sgpr_workgroup_id_y 1
1143d9f011aSAbinav Puthan Purayil  .amdhsa_system_sgpr_workgroup_id_z 1
1153d9f011aSAbinav Puthan Purayil  .amdhsa_system_sgpr_workgroup_info 1
1163d9f011aSAbinav Puthan Purayil  .amdhsa_system_vgpr_workitem_id 1
1173d9f011aSAbinav Puthan Purayil  .amdhsa_next_free_vgpr 9
1183d9f011aSAbinav Puthan Purayil  .amdhsa_next_free_sgpr 27
1193d9f011aSAbinav Puthan Purayil  .amdhsa_reserve_vcc 0
1203d9f011aSAbinav Puthan Purayil  .amdhsa_reserve_flat_scratch 0
1213d9f011aSAbinav Puthan Purayil  .amdhsa_reserve_xnack_mask 1
1223d9f011aSAbinav Puthan Purayil  .amdhsa_float_round_mode_32 1
1233d9f011aSAbinav Puthan Purayil  .amdhsa_float_round_mode_16_64 1
1243d9f011aSAbinav Puthan Purayil  .amdhsa_float_denorm_mode_32 1
1253d9f011aSAbinav Puthan Purayil  .amdhsa_float_denorm_mode_16_64 0
1263d9f011aSAbinav Puthan Purayil  .amdhsa_dx10_clamp 0
1273d9f011aSAbinav Puthan Purayil  .amdhsa_ieee_mode 0
1283d9f011aSAbinav Puthan Purayil  .amdhsa_fp16_overflow 1
1293d9f011aSAbinav Puthan Purayil  .amdhsa_exception_fp_ieee_invalid_op 1
1303d9f011aSAbinav Puthan Purayil  .amdhsa_exception_fp_denorm_src 1
1313d9f011aSAbinav Puthan Purayil  .amdhsa_exception_fp_ieee_div_zero 1
1323d9f011aSAbinav Puthan Purayil  .amdhsa_exception_fp_ieee_overflow 1
1333d9f011aSAbinav Puthan Purayil  .amdhsa_exception_fp_ieee_underflow 1
1343d9f011aSAbinav Puthan Purayil  .amdhsa_exception_fp_ieee_inexact 1
1353d9f011aSAbinav Puthan Purayil  .amdhsa_exception_int_div_zero 1
1363d9f011aSAbinav Puthan Purayil.end_amdhsa_kernel
1373d9f011aSAbinav Puthan Purayil
1383d9f011aSAbinav Puthan Purayil// ASM: .amdhsa_kernel complete
1393d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_group_segment_fixed_size 1
1403d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_private_segment_fixed_size 1
1413d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_kernarg_size 8
1423d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_user_sgpr_count 15
1433d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_user_sgpr_private_segment_buffer 1
1443d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_user_sgpr_dispatch_ptr 1
1453d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_user_sgpr_queue_ptr 1
1463d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 1
1473d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_user_sgpr_dispatch_id 1
1483d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_user_sgpr_flat_scratch_init 1
1493d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_user_sgpr_private_segment_size 1
1503d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_uses_dynamic_stack 1
1513d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_system_sgpr_private_segment_wavefront_offset 1
1523d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_system_sgpr_workgroup_id_x 0
1533d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_system_sgpr_workgroup_id_y 1
1543d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_system_sgpr_workgroup_id_z 1
1553d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_system_sgpr_workgroup_info 1
1563d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_system_vgpr_workitem_id 1
1573d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_next_free_vgpr 9
1583d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_next_free_sgpr 27
1593d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_reserve_vcc 0
1603d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_reserve_flat_scratch 0
1613d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_reserve_xnack_mask 1
1623d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_float_round_mode_32 1
1633d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_float_round_mode_16_64 1
1643d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_float_denorm_mode_32 1
1653d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_float_denorm_mode_16_64 0
1663d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_dx10_clamp 0
1673d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_ieee_mode 0
1683d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_fp16_overflow 1
1693d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_exception_fp_ieee_invalid_op 1
1703d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_exception_fp_denorm_src 1
1713d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_exception_fp_ieee_div_zero 1
1723d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_exception_fp_ieee_overflow 1
1733d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_exception_fp_ieee_underflow 1
1743d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_exception_fp_ieee_inexact 1
1753d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_exception_int_div_zero 1
1763d9f011aSAbinav Puthan Purayil// ASM-NEXT: .end_amdhsa_kernel
1773d9f011aSAbinav Puthan Purayil
1783d9f011aSAbinav Puthan Purayil// Test that we are including special SGPR usage in the granulated count.
1793d9f011aSAbinav Puthan Purayil.p2align 6
1803d9f011aSAbinav Puthan Purayil.amdhsa_kernel special_sgpr
1813d9f011aSAbinav Puthan Purayil  // Same next_free_sgpr as "complete", but...
1823d9f011aSAbinav Puthan Purayil  .amdhsa_next_free_sgpr 27
1833d9f011aSAbinav Puthan Purayil  // ...on GFX9 this should require an additional 6 SGPRs, pushing us from
1843d9f011aSAbinav Puthan Purayil  // 3 granules to 4
1853d9f011aSAbinav Puthan Purayil  .amdhsa_reserve_flat_scratch 1
1863d9f011aSAbinav Puthan Purayil
1873d9f011aSAbinav Puthan Purayil  .amdhsa_reserve_vcc 0
1883d9f011aSAbinav Puthan Purayil  .amdhsa_reserve_xnack_mask 1
1893d9f011aSAbinav Puthan Purayil
1903d9f011aSAbinav Puthan Purayil  .amdhsa_float_denorm_mode_16_64 0
1913d9f011aSAbinav Puthan Purayil  .amdhsa_dx10_clamp 0
1923d9f011aSAbinav Puthan Purayil  .amdhsa_ieee_mode 0
1933d9f011aSAbinav Puthan Purayil  .amdhsa_next_free_vgpr 0
1943d9f011aSAbinav Puthan Purayil.end_amdhsa_kernel
1953d9f011aSAbinav Puthan Purayil
1963d9f011aSAbinav Puthan Purayil// ASM: .amdhsa_kernel special_sgpr
1973d9f011aSAbinav Puthan Purayil// ASM: .amdhsa_next_free_vgpr 0
1983d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_next_free_sgpr 27
1993d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_reserve_vcc 0
200*17eaa23fSJanek van Oirschot// ASM-NEXT: .amdhsa_reserve_flat_scratch 1
2013d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_reserve_xnack_mask 1
2023d9f011aSAbinav Puthan Purayil// ASM: .amdhsa_float_denorm_mode_16_64 0
2033d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_dx10_clamp 0
2043d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_ieee_mode 0
2053d9f011aSAbinav Puthan Purayil// ASM: .end_amdhsa_kernel
2063d9f011aSAbinav Puthan Purayil
2073d9f011aSAbinav Puthan Purayil// Test that explicitly disabling user_sgpr's does not affect the user_sgpr
2083d9f011aSAbinav Puthan Purayil// count, i.e. this should produce the same descriptor as minimal.
2093d9f011aSAbinav Puthan Purayil.p2align 6
2103d9f011aSAbinav Puthan Purayil.amdhsa_kernel disabled_user_sgpr
2113d9f011aSAbinav Puthan Purayil  .amdhsa_user_sgpr_private_segment_buffer 0
2123d9f011aSAbinav Puthan Purayil  .amdhsa_next_free_vgpr 0
2133d9f011aSAbinav Puthan Purayil  .amdhsa_next_free_sgpr 0
2143d9f011aSAbinav Puthan Purayil.end_amdhsa_kernel
2153d9f011aSAbinav Puthan Purayil
2163d9f011aSAbinav Puthan Purayil// ASM: .amdhsa_kernel disabled_user_sgpr
2173d9f011aSAbinav Puthan Purayil// ASM: .amdhsa_next_free_vgpr 0
2183d9f011aSAbinav Puthan Purayil// ASM-NEXT: .amdhsa_next_free_sgpr 0
2193d9f011aSAbinav Puthan Purayil// ASM: .end_amdhsa_kernel
2203d9f011aSAbinav Puthan Purayil
2213d9f011aSAbinav Puthan Purayil.section .foo
2223d9f011aSAbinav Puthan Purayil
2233d9f011aSAbinav Puthan Purayil.byte .amdgcn.gfx_generation_number
2243d9f011aSAbinav Puthan Purayil// ASM: .byte 9
2253d9f011aSAbinav Puthan Purayil
2263d9f011aSAbinav Puthan Purayil.byte .amdgcn.gfx_generation_minor
2273d9f011aSAbinav Puthan Purayil// ASM: .byte 0
2283d9f011aSAbinav Puthan Purayil
2293d9f011aSAbinav Puthan Purayil.byte .amdgcn.gfx_generation_stepping
2303d9f011aSAbinav Puthan Purayil// ASM: .byte 4
2313d9f011aSAbinav Puthan Purayil
2323d9f011aSAbinav Puthan Purayil.byte .amdgcn.next_free_vgpr
2333d9f011aSAbinav Puthan Purayil// ASM: .byte 0
2343d9f011aSAbinav Puthan Purayil.byte .amdgcn.next_free_sgpr
2353d9f011aSAbinav Puthan Purayil// ASM: .byte 0
2363d9f011aSAbinav Puthan Purayil
2373d9f011aSAbinav Puthan Purayilv_mov_b32_e32 v7, s10
2383d9f011aSAbinav Puthan Purayil
2393d9f011aSAbinav Puthan Purayil.byte .amdgcn.next_free_vgpr
2403d9f011aSAbinav Puthan Purayil// ASM: .byte 8
2413d9f011aSAbinav Puthan Purayil.byte .amdgcn.next_free_sgpr
2423d9f011aSAbinav Puthan Purayil// ASM: .byte 11
2433d9f011aSAbinav Puthan Purayil
2443d9f011aSAbinav Puthan Purayil.set .amdgcn.next_free_vgpr, 0
2453d9f011aSAbinav Puthan Purayil.set .amdgcn.next_free_sgpr, 0
2463d9f011aSAbinav Puthan Purayil
2473d9f011aSAbinav Puthan Purayil.byte .amdgcn.next_free_vgpr
2483d9f011aSAbinav Puthan Purayil// ASM: .byte 0
2493d9f011aSAbinav Puthan Purayil.byte .amdgcn.next_free_sgpr
2503d9f011aSAbinav Puthan Purayil// ASM: .byte 0
2513d9f011aSAbinav Puthan Purayil
2523d9f011aSAbinav Puthan Purayilv_mov_b32_e32 v16, s3
2533d9f011aSAbinav Puthan Purayil
2543d9f011aSAbinav Puthan Purayil.byte .amdgcn.next_free_vgpr
2553d9f011aSAbinav Puthan Purayil// ASM: .byte 17
2563d9f011aSAbinav Puthan Purayil.byte .amdgcn.next_free_sgpr
2573d9f011aSAbinav Puthan Purayil// ASM: .byte 4
2583d9f011aSAbinav Puthan Purayil
2593d9f011aSAbinav Puthan Purayil// Metadata
2603d9f011aSAbinav Puthan Purayil
2613d9f011aSAbinav Puthan Purayil.amdgpu_metadata
2623d9f011aSAbinav Puthan Purayil  amdhsa.version:
2633d9f011aSAbinav Puthan Purayil    - 3
2643d9f011aSAbinav Puthan Purayil    - 0
2653d9f011aSAbinav Puthan Purayil  amdhsa.kernels:
2663d9f011aSAbinav Puthan Purayil    - .name:       amd_kernel_code_t_test_all
2673d9f011aSAbinav Puthan Purayil      .symbol: amd_kernel_code_t_test_all@kd
2683d9f011aSAbinav Puthan Purayil      .kernarg_segment_size: 8
2693d9f011aSAbinav Puthan Purayil      .group_segment_fixed_size: 16
2703d9f011aSAbinav Puthan Purayil      .private_segment_fixed_size: 32
2713d9f011aSAbinav Puthan Purayil      .uses_dynamic_stack: true
2723d9f011aSAbinav Puthan Purayil      .kernarg_segment_align: 64
2733d9f011aSAbinav Puthan Purayil      .wavefront_size: 128
2743d9f011aSAbinav Puthan Purayil      .sgpr_count: 14
2753d9f011aSAbinav Puthan Purayil      .vgpr_count: 40
2763d9f011aSAbinav Puthan Purayil      .max_flat_workgroup_size: 256
2773d9f011aSAbinav Puthan Purayil    - .name:       amd_kernel_code_t_minimal
2783d9f011aSAbinav Puthan Purayil      .symbol: amd_kernel_code_t_minimal@kd
2793d9f011aSAbinav Puthan Purayil      .kernarg_segment_size: 8
2803d9f011aSAbinav Puthan Purayil      .group_segment_fixed_size: 16
2813d9f011aSAbinav Puthan Purayil      .private_segment_fixed_size: 32
2823d9f011aSAbinav Puthan Purayil      .uses_dynamic_stack: true
2833d9f011aSAbinav Puthan Purayil      .kernarg_segment_align: 64
2843d9f011aSAbinav Puthan Purayil      .wavefront_size: 128
2853d9f011aSAbinav Puthan Purayil      .sgpr_count: 14
2863d9f011aSAbinav Puthan Purayil      .vgpr_count: 40
2873d9f011aSAbinav Puthan Purayil      .max_flat_workgroup_size: 256
2883d9f011aSAbinav Puthan Purayil.end_amdgpu_metadata
2893d9f011aSAbinav Puthan Purayil
2903d9f011aSAbinav Puthan Purayil// ASM:      	.amdgpu_metadata
2913d9f011aSAbinav Puthan Purayil// ASM:      amdhsa.kernels:
2923d9f011aSAbinav Puthan Purayil// ASM:        - .group_segment_fixed_size: 16
2933d9f011aSAbinav Puthan Purayil// ASM:          .kernarg_segment_align: 64
2943d9f011aSAbinav Puthan Purayil// ASM:          .kernarg_segment_size: 8
2953d9f011aSAbinav Puthan Purayil// ASM:          .max_flat_workgroup_size: 256
2963d9f011aSAbinav Puthan Purayil// ASM:          .name:           amd_kernel_code_t_test_all
2973d9f011aSAbinav Puthan Purayil// ASM:          .private_segment_fixed_size: 32
2983d9f011aSAbinav Puthan Purayil// ASM:          .sgpr_count:     14
2993d9f011aSAbinav Puthan Purayil// ASM:          .symbol:         'amd_kernel_code_t_test_all@kd'
3003d9f011aSAbinav Puthan Purayil// ASM:          .uses_dynamic_stack: true
3013d9f011aSAbinav Puthan Purayil// ASM:          .vgpr_count:     40
3023d9f011aSAbinav Puthan Purayil// ASM:          .wavefront_size: 128
3033d9f011aSAbinav Puthan Purayil// ASM:        - .group_segment_fixed_size: 16
3043d9f011aSAbinav Puthan Purayil// ASM:          .kernarg_segment_align: 64
3053d9f011aSAbinav Puthan Purayil// ASM:          .kernarg_segment_size: 8
3063d9f011aSAbinav Puthan Purayil// ASM:          .max_flat_workgroup_size: 256
3073d9f011aSAbinav Puthan Purayil// ASM:          .name:           amd_kernel_code_t_minimal
3083d9f011aSAbinav Puthan Purayil// ASM:          .private_segment_fixed_size: 32
3093d9f011aSAbinav Puthan Purayil// ASM:          .sgpr_count:     14
3103d9f011aSAbinav Puthan Purayil// ASM:          .symbol:         'amd_kernel_code_t_minimal@kd'
3113d9f011aSAbinav Puthan Purayil// ASM:          .uses_dynamic_stack: true
3123d9f011aSAbinav Puthan Purayil// ASM:          .vgpr_count:     40
3133d9f011aSAbinav Puthan Purayil// ASM:          .wavefront_size: 128
3143d9f011aSAbinav Puthan Purayil// ASM:      amdhsa.version:
3153d9f011aSAbinav Puthan Purayil// ASM-NEXT:   - 3
3163d9f011aSAbinav Puthan Purayil// ASM-NEXT:   - 0
3173d9f011aSAbinav Puthan Purayil// ASM:      	.end_amdgpu_metadata
318