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