113 lines · plain
1;; Test disassembly for gfx12 kernel descriptor.2 3; RUN: rm -rf %t && split-file %s %t && cd %t4 5;--- 1.s6; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize32,-wavefrontsize64 -filetype=obj -mcpu=gfx1200 < 1.s > 1.o7; RUN: echo '.amdhsa_code_object_version 5' > 1-disasm.s8; RUN: llvm-objdump --disassemble-symbols=kernel.kd 1.o | tail -n +7 | tee -a 1-disasm.s | FileCheck 1.s9; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize32,-wavefrontsize64 -filetype=obj -mcpu=gfx1200 < 1-disasm.s > 1-disasm.o10; RUN: cmp 1.o 1-disasm.o11; CHECK: .amdhsa_kernel kernel12; CHECK-NEXT: .amdhsa_group_segment_fixed_size 013; CHECK-NEXT: .amdhsa_private_segment_fixed_size 014; CHECK-NEXT: .amdhsa_kernarg_size 015; CHECK-NEXT: .amdhsa_inst_pref_size 016; CHECK-NEXT: ; GLG_EN 017; CHECK-NEXT: ; IMAGE_OP 018; CHECK-NEXT: .amdhsa_next_free_vgpr 3219; CHECK-NEXT: .amdhsa_reserve_vcc 020; CHECK-NEXT: .amdhsa_reserve_xnack_mask 021; CHECK-NEXT: .amdhsa_next_free_sgpr 822; CHECK-NEXT: .amdhsa_float_round_mode_32 023; CHECK-NEXT: .amdhsa_float_round_mode_16_64 024; CHECK-NEXT: .amdhsa_float_denorm_mode_32 025; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 326; CHECK-NEXT: .amdhsa_fp16_overflow 027; CHECK-NEXT: .amdhsa_workgroup_processor_mode 128; CHECK-NEXT: .amdhsa_memory_ordered 129; CHECK-NEXT: .amdhsa_forward_progress 130; CHECK-NEXT: .amdhsa_round_robin_scheduling 031; CHECK-NEXT: .amdhsa_enable_private_segment 032; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 133; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 034; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 035; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 036; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 037; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 038; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 039; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 040; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 041; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 042; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 043; CHECK-NEXT: .amdhsa_exception_int_div_zero 044; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 045; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 046; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 047; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 048; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 049; CHECK-NEXT: .amdhsa_wavefront_size32 150; CHECK-NEXT: .amdhsa_uses_dynamic_stack 051; CHECK-NEXT: .end_amdhsa_kernel52.amdhsa_code_object_version 553.amdhsa_kernel kernel54 .amdhsa_next_free_vgpr 3255 .amdhsa_next_free_sgpr 3256 .amdhsa_wavefront_size32 157.end_amdhsa_kernel58 59;--- 2.s60; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=-wavefrontsize32,+wavefrontsize64 -filetype=obj -mcpu=gfx1200 < 2.s > 2.o61; RUN: echo '.amdhsa_code_object_version 5' > 2-disasm.s62; RUN: llvm-objdump --disassemble-symbols=kernel.kd 2.o | tail -n +7 | tee -a 2-disasm.s | FileCheck 2.s63; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=-wavefrontsize32,+wavefrontsize64 -filetype=obj -mcpu=gfx1200 < 2-disasm.s > 2-disasm.o64; RUN: cmp 2.o 2-disasm.o65; CHECK: .amdhsa_kernel kernel66; CHECK-NEXT: .amdhsa_group_segment_fixed_size 067; CHECK-NEXT: .amdhsa_private_segment_fixed_size 068; CHECK-NEXT: .amdhsa_kernarg_size 069; CHECK-NEXT: .amdhsa_inst_pref_size 25570; CHECK-NEXT: ; GLG_EN 071; CHECK-NEXT: ; IMAGE_OP 072; CHECK-NEXT: .amdhsa_next_free_vgpr 3273; CHECK-NEXT: .amdhsa_reserve_vcc 074; CHECK-NEXT: .amdhsa_reserve_xnack_mask 075; CHECK-NEXT: .amdhsa_next_free_sgpr 876; CHECK-NEXT: .amdhsa_float_round_mode_32 077; CHECK-NEXT: .amdhsa_float_round_mode_16_64 078; CHECK-NEXT: .amdhsa_float_denorm_mode_32 079; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 380; CHECK-NEXT: .amdhsa_fp16_overflow 081; CHECK-NEXT: .amdhsa_workgroup_processor_mode 182; CHECK-NEXT: .amdhsa_memory_ordered 183; CHECK-NEXT: .amdhsa_forward_progress 184; CHECK-NEXT: .amdhsa_round_robin_scheduling 085; CHECK-NEXT: .amdhsa_enable_private_segment 086; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 187; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 088; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 089; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 090; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 091; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 092; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 093; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 094; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 095; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 096; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 097; CHECK-NEXT: .amdhsa_exception_int_div_zero 098; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 099; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0100; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0101; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0102; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0103; CHECK-NEXT: .amdhsa_wavefront_size32 0104; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0105; CHECK-NEXT: .end_amdhsa_kernel106.amdhsa_code_object_version 5107.amdhsa_kernel kernel108 .amdhsa_next_free_vgpr 32109 .amdhsa_next_free_sgpr 32110 .amdhsa_wavefront_size32 0111 .amdhsa_inst_pref_size 255112.end_amdhsa_kernel113