1;; Test disassembly for gfx11 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=gfx1100 < 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=gfx1100 < 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: ; SHARED_VGPR_COUNT 0 16; CHECK-NEXT: ; INST_PREF_SIZE 0 17; CHECK-NEXT: ; TRAP_ON_START 0 18; CHECK-NEXT: ; TRAP_ON_END 0 19; CHECK-NEXT: ; IMAGE_OP 0 20; CHECK-NEXT: .amdhsa_next_free_vgpr 32 21; CHECK-NEXT: .amdhsa_reserve_vcc 0 22; CHECK-NEXT: .amdhsa_reserve_xnack_mask 0 23; CHECK-NEXT: .amdhsa_next_free_sgpr 8 24; CHECK-NEXT: .amdhsa_float_round_mode_32 0 25; CHECK-NEXT: .amdhsa_float_round_mode_16_64 0 26; CHECK-NEXT: .amdhsa_float_denorm_mode_32 0 27; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 3 28; CHECK-NEXT: .amdhsa_dx10_clamp 1 29; CHECK-NEXT: .amdhsa_ieee_mode 1 30; CHECK-NEXT: .amdhsa_fp16_overflow 0 31; CHECK-NEXT: .amdhsa_workgroup_processor_mode 1 32; CHECK-NEXT: .amdhsa_memory_ordered 1 33; CHECK-NEXT: .amdhsa_forward_progress 0 34; CHECK-NEXT: .amdhsa_enable_private_segment 0 35; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 1 36; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 0 37; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 0 38; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 0 39; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0 40; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 0 41; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 0 42; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 0 43; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 0 44; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 0 45; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 0 46; CHECK-NEXT: .amdhsa_exception_int_div_zero 0 47; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 0 48; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0 49; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0 50; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0 51; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0 52; CHECK-NEXT: .amdhsa_wavefront_size32 1 53; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0 54; CHECK-NEXT: .end_amdhsa_kernel 55.amdhsa_code_object_version 5 56.amdhsa_kernel kernel 57 .amdhsa_next_free_vgpr 32 58 .amdhsa_next_free_sgpr 32 59 .amdhsa_wavefront_size32 1 60.end_amdhsa_kernel 61 62;--- 2.s 63; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize64,-wavefrontsize32 -filetype=obj -mcpu=gfx1100 < 2.s > 2.o 64; RUN: echo '.amdhsa_code_object_version 5' > 2-disasm.s 65; RUN: llvm-objdump --disassemble-symbols=kernel.kd 2.o | tail -n +7 | tee -a 2-disasm.s | FileCheck 2.s 66; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize64,-wavefrontsize32 -filetype=obj -mcpu=gfx1100 < 2-disasm.s > 2-disasm.o 67; RUN: cmp 2.o 2-disasm.o 68; CHECK: .amdhsa_kernel kernel 69; CHECK-NEXT: .amdhsa_group_segment_fixed_size 0 70; CHECK-NEXT: .amdhsa_private_segment_fixed_size 0 71; CHECK-NEXT: .amdhsa_kernarg_size 0 72; CHECK-NEXT: .amdhsa_shared_vgpr_count 0 73; CHECK-NEXT: ; INST_PREF_SIZE 0 74; CHECK-NEXT: ; TRAP_ON_START 0 75; CHECK-NEXT: ; TRAP_ON_END 0 76; CHECK-NEXT: ; IMAGE_OP 0 77; CHECK-NEXT: .amdhsa_next_free_vgpr 32 78; CHECK-NEXT: .amdhsa_reserve_vcc 0 79; CHECK-NEXT: .amdhsa_reserve_xnack_mask 0 80; CHECK-NEXT: .amdhsa_next_free_sgpr 8 81; CHECK-NEXT: .amdhsa_float_round_mode_32 0 82; CHECK-NEXT: .amdhsa_float_round_mode_16_64 0 83; CHECK-NEXT: .amdhsa_float_denorm_mode_32 0 84; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 3 85; CHECK-NEXT: .amdhsa_dx10_clamp 1 86; CHECK-NEXT: .amdhsa_ieee_mode 1 87; CHECK-NEXT: .amdhsa_fp16_overflow 0 88; CHECK-NEXT: .amdhsa_workgroup_processor_mode 1 89; CHECK-NEXT: .amdhsa_memory_ordered 1 90; CHECK-NEXT: .amdhsa_forward_progress 0 91; CHECK-NEXT: .amdhsa_enable_private_segment 0 92; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 1 93; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 0 94; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 0 95; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 0 96; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0 97; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 0 98; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 0 99; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 0 100; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 0 101; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 0 102; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 0 103; CHECK-NEXT: .amdhsa_exception_int_div_zero 0 104; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 0 105; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0 106; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0 107; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0 108; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0 109; CHECK-NEXT: .amdhsa_wavefront_size32 0 110; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0 111; CHECK-NEXT: .end_amdhsa_kernel 112.amdhsa_code_object_version 5 113.amdhsa_kernel kernel 114 .amdhsa_next_free_vgpr 32 115 .amdhsa_next_free_sgpr 32 116 .amdhsa_shared_vgpr_count 0 117.end_amdhsa_kernel 118 119;--- 3.s 120; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize64,-wavefrontsize32 -filetype=obj -mcpu=gfx1100 < 3.s > 3.o 121; RUN: echo '.amdhsa_code_object_version 5' > 3-disasm.s 122; RUN: llvm-objdump --disassemble-symbols=kernel.kd 3.o | tail -n +7 | tee -a 3-disasm.s | FileCheck 3.s 123; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize64,-wavefrontsize32 -filetype=obj -mcpu=gfx1100 < 3-disasm.s > 3-disasm.o 124; RUN: cmp 3.o 3-disasm.o 125; CHECK: .amdhsa_kernel kernel 126; CHECK-NEXT: .amdhsa_group_segment_fixed_size 0 127; CHECK-NEXT: .amdhsa_private_segment_fixed_size 0 128; CHECK-NEXT: .amdhsa_kernarg_size 0 129; CHECK-NEXT: .amdhsa_shared_vgpr_count 1 130; CHECK-NEXT: ; INST_PREF_SIZE 0 131; CHECK-NEXT: ; TRAP_ON_START 0 132; CHECK-NEXT: ; TRAP_ON_END 0 133; CHECK-NEXT: ; IMAGE_OP 0 134; CHECK-NEXT: .amdhsa_next_free_vgpr 32 135; CHECK-NEXT: .amdhsa_reserve_vcc 0 136; CHECK-NEXT: .amdhsa_reserve_xnack_mask 0 137; CHECK-NEXT: .amdhsa_next_free_sgpr 8 138; CHECK-NEXT: .amdhsa_float_round_mode_32 0 139; CHECK-NEXT: .amdhsa_float_round_mode_16_64 0 140; CHECK-NEXT: .amdhsa_float_denorm_mode_32 0 141; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 3 142; CHECK-NEXT: .amdhsa_dx10_clamp 1 143; CHECK-NEXT: .amdhsa_ieee_mode 1 144; CHECK-NEXT: .amdhsa_fp16_overflow 0 145; CHECK-NEXT: .amdhsa_workgroup_processor_mode 1 146; CHECK-NEXT: .amdhsa_memory_ordered 1 147; CHECK-NEXT: .amdhsa_forward_progress 0 148; CHECK-NEXT: .amdhsa_enable_private_segment 0 149; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 1 150; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 0 151; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 0 152; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 0 153; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0 154; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 0 155; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 0 156; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 0 157; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 0 158; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 0 159; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 0 160; CHECK-NEXT: .amdhsa_exception_int_div_zero 0 161; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 0 162; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0 163; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0 164; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0 165; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0 166; CHECK-NEXT: .amdhsa_wavefront_size32 0 167; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0 168; CHECK-NEXT: .end_amdhsa_kernel 169.amdhsa_code_object_version 5 170.amdhsa_kernel kernel 171 .amdhsa_next_free_vgpr 32 172 .amdhsa_next_free_sgpr 32 173 .amdhsa_shared_vgpr_count 1 174.end_amdhsa_kernel 175 176;--- 4.s 177; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize64,-wavefrontsize32 -filetype=obj -mcpu=gfx1100 < 4.s > 4.o 178; RUN: echo '.amdhsa_code_object_version 5' > 4-disasm.s 179; RUN: llvm-objdump --disassemble-symbols=kernel.kd 4.o | tail -n +7 | tee -a 4-disasm.s | FileCheck 4.s 180; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=+wavefrontsize64,-wavefrontsize32 -filetype=obj -mcpu=gfx1100 < 4-disasm.s > 4-disasm.o 181; RUN: cmp 4.o 4-disasm.o 182; CHECK: .amdhsa_kernel kernel 183; CHECK-NEXT: .amdhsa_group_segment_fixed_size 0 184; CHECK-NEXT: .amdhsa_private_segment_fixed_size 0 185; CHECK-NEXT: .amdhsa_kernarg_size 0 186; CHECK-NEXT: .amdhsa_shared_vgpr_count 1 187; CHECK-NEXT: ; INST_PREF_SIZE 0 188; CHECK-NEXT: ; TRAP_ON_START 0 189; CHECK-NEXT: ; TRAP_ON_END 0 190; CHECK-NEXT: ; IMAGE_OP 0 191; CHECK-NEXT: .amdhsa_next_free_vgpr 32 192; CHECK-NEXT: .amdhsa_reserve_vcc 0 193; CHECK-NEXT: .amdhsa_reserve_xnack_mask 0 194; CHECK-NEXT: .amdhsa_next_free_sgpr 8 195; CHECK-NEXT: .amdhsa_float_round_mode_32 0 196; CHECK-NEXT: .amdhsa_float_round_mode_16_64 0 197; CHECK-NEXT: .amdhsa_float_denorm_mode_32 0 198; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 3 199; CHECK-NEXT: .amdhsa_dx10_clamp 1 200; CHECK-NEXT: .amdhsa_ieee_mode 1 201; CHECK-NEXT: .amdhsa_fp16_overflow 0 202; CHECK-NEXT: .amdhsa_workgroup_processor_mode 1 203; CHECK-NEXT: .amdhsa_memory_ordered 1 204; CHECK-NEXT: .amdhsa_forward_progress 0 205; CHECK-NEXT: .amdhsa_enable_private_segment 0 206; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 1 207; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 0 208; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 0 209; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 0 210; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0 211; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 0 212; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 0 213; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 0 214; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 0 215; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 0 216; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 0 217; CHECK-NEXT: .amdhsa_exception_int_div_zero 0 218; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 0 219; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0 220; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0 221; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0 222; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0 223; CHECK-NEXT: .amdhsa_wavefront_size32 0 224; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0 225; CHECK-NEXT: .end_amdhsa_kernel 226.amdhsa_code_object_version 5 227.amdhsa_kernel kernel 228 .amdhsa_next_free_vgpr 32 229 .amdhsa_next_free_sgpr 32 230 .amdhsa_shared_vgpr_count 1 231 .amdhsa_wavefront_size32 0 232.end_amdhsa_kernel 233