1;; Test disassembly for gfx12 kernel descriptor. 2 3; RUN: rm -rf %t && split-file %s %t && cd %t 4 5;--- 1.s 6; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize32,-wavefrontsize64 -filetype=obj -mcpu=gfx1200 < 1.s > 1.o 7; RUN: echo '.amdhsa_code_object_version 5' > 1-disasm.s 8; RUN: llvm-objdump --disassemble-symbols=kernel.kd 1.o | tail -n +7 | tee -a 1-disasm.s | FileCheck 1.s 9; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize32,-wavefrontsize64 -filetype=obj -mcpu=gfx1200 < 1-disasm.s > 1-disasm.o 10; RUN: cmp 1.o 1-disasm.o 11; CHECK: .amdhsa_kernel kernel 12; CHECK-NEXT: .amdhsa_group_segment_fixed_size 0 13; CHECK-NEXT: .amdhsa_private_segment_fixed_size 0 14; CHECK-NEXT: .amdhsa_kernarg_size 0 15; CHECK-NEXT: ; INST_PREF_SIZE 0 16; CHECK-NEXT: ; GLG_EN 0 17; CHECK-NEXT: ; IMAGE_OP 0 18; CHECK-NEXT: .amdhsa_next_free_vgpr 32 19; CHECK-NEXT: .amdhsa_reserve_vcc 0 20; CHECK-NEXT: .amdhsa_reserve_xnack_mask 0 21; CHECK-NEXT: .amdhsa_next_free_sgpr 8 22; CHECK-NEXT: .amdhsa_float_round_mode_32 0 23; CHECK-NEXT: .amdhsa_float_round_mode_16_64 0 24; CHECK-NEXT: .amdhsa_float_denorm_mode_32 0 25; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 3 26; CHECK-NEXT: .amdhsa_fp16_overflow 0 27; CHECK-NEXT: .amdhsa_workgroup_processor_mode 1 28; CHECK-NEXT: .amdhsa_memory_ordered 1 29; CHECK-NEXT: .amdhsa_forward_progress 0 30; CHECK-NEXT: .amdhsa_round_robin_scheduling 0 31; CHECK-NEXT: .amdhsa_enable_private_segment 0 32; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 1 33; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 0 34; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 0 35; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 0 36; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0 37; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 0 38; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 0 39; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 0 40; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 0 41; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 0 42; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 0 43; CHECK-NEXT: .amdhsa_exception_int_div_zero 0 44; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 0 45; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0 46; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0 47; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0 48; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0 49; CHECK-NEXT: .amdhsa_wavefront_size32 1 50; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0 51; CHECK-NEXT: .end_amdhsa_kernel 52.amdhsa_code_object_version 5 53.amdhsa_kernel kernel 54 .amdhsa_next_free_vgpr 32 55 .amdhsa_next_free_sgpr 32 56 .amdhsa_wavefront_size32 1 57.end_amdhsa_kernel 58 59;--- 2.s 60; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=-wavefrontsize32,+wavefrontsize64 -filetype=obj -mcpu=gfx1200 < 2.s > 2.o 61; RUN: echo '.amdhsa_code_object_version 5' > 2-disasm.s 62; RUN: llvm-objdump --disassemble-symbols=kernel.kd 2.o | tail -n +7 | tee -a 2-disasm.s | FileCheck 2.s 63; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=-wavefrontsize32,+wavefrontsize64 -filetype=obj -mcpu=gfx1200 < 2-disasm.s > 2-disasm.o 64; RUN: cmp 2.o 2-disasm.o 65; CHECK: .amdhsa_kernel kernel 66; CHECK-NEXT: .amdhsa_group_segment_fixed_size 0 67; CHECK-NEXT: .amdhsa_private_segment_fixed_size 0 68; CHECK-NEXT: .amdhsa_kernarg_size 0 69; CHECK-NEXT: ; INST_PREF_SIZE 0 70; CHECK-NEXT: ; GLG_EN 0 71; CHECK-NEXT: ; IMAGE_OP 0 72; CHECK-NEXT: .amdhsa_next_free_vgpr 32 73; CHECK-NEXT: .amdhsa_reserve_vcc 0 74; CHECK-NEXT: .amdhsa_reserve_xnack_mask 0 75; CHECK-NEXT: .amdhsa_next_free_sgpr 8 76; CHECK-NEXT: .amdhsa_float_round_mode_32 0 77; CHECK-NEXT: .amdhsa_float_round_mode_16_64 0 78; CHECK-NEXT: .amdhsa_float_denorm_mode_32 0 79; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 3 80; CHECK-NEXT: .amdhsa_fp16_overflow 0 81; CHECK-NEXT: .amdhsa_workgroup_processor_mode 1 82; CHECK-NEXT: .amdhsa_memory_ordered 1 83; CHECK-NEXT: .amdhsa_forward_progress 0 84; CHECK-NEXT: .amdhsa_round_robin_scheduling 0 85; CHECK-NEXT: .amdhsa_enable_private_segment 0 86; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 1 87; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 0 88; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 0 89; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 0 90; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0 91; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 0 92; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 0 93; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 0 94; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 0 95; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 0 96; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 0 97; CHECK-NEXT: .amdhsa_exception_int_div_zero 0 98; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 0 99; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0 100; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0 101; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0 102; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0 103; CHECK-NEXT: .amdhsa_wavefront_size32 0 104; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0 105; CHECK-NEXT: .end_amdhsa_kernel 106.amdhsa_code_object_version 5 107.amdhsa_kernel kernel 108 .amdhsa_next_free_vgpr 32 109 .amdhsa_next_free_sgpr 32 110 .amdhsa_wavefront_size32 0 111.end_amdhsa_kernel 112