1;; Test disassembly for gfx90a 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 -filetype=obj -mcpu=gfx90a < 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 -filetype=obj -mcpu=gfx90a < 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: .amdhsa_accum_offset 4 16; CHECK-NEXT: .amdhsa_tg_split 0 17; CHECK-NEXT: .amdhsa_next_free_vgpr 8 18; CHECK-NEXT: .amdhsa_reserve_vcc 0 19; CHECK-NEXT: .amdhsa_reserve_flat_scratch 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_dx10_clamp 1 27; CHECK-NEXT: .amdhsa_ieee_mode 1 28; CHECK-NEXT: .amdhsa_fp16_overflow 0 29; CHECK-NEXT: .amdhsa_system_sgpr_private_segment_wavefront_offset 0 30; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 1 31; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 0 32; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 0 33; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 0 34; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0 35; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 0 36; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 0 37; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 0 38; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 0 39; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 0 40; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 0 41; CHECK-NEXT: .amdhsa_exception_int_div_zero 0 42; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_buffer 0 43; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 0 44; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0 45; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0 46; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0 47; CHECK-NEXT: .amdhsa_user_sgpr_flat_scratch_init 0 48; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0 49; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0 50; CHECK-NEXT: .end_amdhsa_kernel 51.amdhsa_code_object_version 5 52.amdhsa_kernel kernel 53 .amdhsa_next_free_vgpr 0 54 .amdhsa_next_free_sgpr 0 55 .amdhsa_accum_offset 4 56.end_amdhsa_kernel 57 58;--- 2.s 59; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=-xnack -filetype=obj -mcpu=gfx90a < 2.s > 2.o 60; RUN: echo '.amdhsa_code_object_version 5' > 2-disasm.s 61; RUN: llvm-objdump --disassemble-symbols=kernel.kd 2.o | tail -n +7 | tee -a 2-disasm.s | FileCheck 2.s 62; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=-xnack -filetype=obj -mcpu=gfx90a < 2-disasm.s > 2-disasm.o 63; RUN: cmp 2.o 2-disasm.o 64; CHECK: .amdhsa_kernel kernel 65; CHECK-NEXT: .amdhsa_group_segment_fixed_size 0 66; CHECK-NEXT: .amdhsa_private_segment_fixed_size 0 67; CHECK-NEXT: .amdhsa_kernarg_size 0 68; CHECK-NEXT: .amdhsa_accum_offset 8 69; CHECK-NEXT: .amdhsa_tg_split 0 70; CHECK-NEXT: .amdhsa_next_free_vgpr 32 71; CHECK-NEXT: .amdhsa_reserve_vcc 0 72; CHECK-NEXT: .amdhsa_reserve_flat_scratch 0 73; CHECK-NEXT: .amdhsa_reserve_xnack_mask 0 74; CHECK-NEXT: .amdhsa_next_free_sgpr 8 75; CHECK-NEXT: .amdhsa_float_round_mode_32 0 76; CHECK-NEXT: .amdhsa_float_round_mode_16_64 0 77; CHECK-NEXT: .amdhsa_float_denorm_mode_32 0 78; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 3 79; CHECK-NEXT: .amdhsa_dx10_clamp 1 80; CHECK-NEXT: .amdhsa_ieee_mode 1 81; CHECK-NEXT: .amdhsa_fp16_overflow 0 82; CHECK-NEXT: .amdhsa_system_sgpr_private_segment_wavefront_offset 0 83; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 1 84; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 0 85; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 0 86; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 0 87; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0 88; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 0 89; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 0 90; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 0 91; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 0 92; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 0 93; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 0 94; CHECK-NEXT: .amdhsa_exception_int_div_zero 0 95; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_buffer 0 96; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 0 97; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0 98; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0 99; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0 100; CHECK-NEXT: .amdhsa_user_sgpr_flat_scratch_init 0 101; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0 102; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0 103; CHECK-NEXT: .end_amdhsa_kernel 104.amdhsa_code_object_version 5 105.amdhsa_kernel kernel 106 .amdhsa_next_free_vgpr 32 107 .amdhsa_next_free_sgpr 0 108 .amdhsa_accum_offset 8 109.end_amdhsa_kernel 110 111;--- 3.s 112; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=-xnack -filetype=obj -mcpu=gfx90a < 3.s > 3.o 113; RUN: echo '.amdhsa_code_object_version 5' > 3-disasm.s 114; RUN: llvm-objdump --disassemble-symbols=kernel.kd 3.o | tail -n +7 | tee -a 3-disasm.s | FileCheck 3.s 115; RUN: llvm-mc --triple=amdgcn-amd-amdhsa -mattr=-xnack -filetype=obj -mcpu=gfx90a < 3-disasm.s > 3-disasm.o 116; RUN: cmp 3.o 3-disasm.o 117; CHECK: .amdhsa_kernel kernel 118; CHECK-NEXT: .amdhsa_group_segment_fixed_size 0 119; CHECK-NEXT: .amdhsa_private_segment_fixed_size 0 120; CHECK-NEXT: .amdhsa_kernarg_size 32 121; CHECK-NEXT: .amdhsa_accum_offset 12 122; CHECK-NEXT: .amdhsa_tg_split 0 123; CHECK-NEXT: .amdhsa_next_free_vgpr 32 124; CHECK-NEXT: .amdhsa_reserve_vcc 0 125; CHECK-NEXT: .amdhsa_reserve_flat_scratch 0 126; CHECK-NEXT: .amdhsa_reserve_xnack_mask 0 127; CHECK-NEXT: .amdhsa_next_free_sgpr 8 128; CHECK-NEXT: .amdhsa_float_round_mode_32 0 129; CHECK-NEXT: .amdhsa_float_round_mode_16_64 0 130; CHECK-NEXT: .amdhsa_float_denorm_mode_32 0 131; CHECK-NEXT: .amdhsa_float_denorm_mode_16_64 3 132; CHECK-NEXT: .amdhsa_dx10_clamp 1 133; CHECK-NEXT: .amdhsa_ieee_mode 1 134; CHECK-NEXT: .amdhsa_fp16_overflow 0 135; CHECK-NEXT: .amdhsa_system_sgpr_private_segment_wavefront_offset 0 136; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_x 1 137; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_y 0 138; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_id_z 0 139; CHECK-NEXT: .amdhsa_system_sgpr_workgroup_info 0 140; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0 141; CHECK-NEXT: .amdhsa_exception_fp_ieee_invalid_op 0 142; CHECK-NEXT: .amdhsa_exception_fp_denorm_src 0 143; CHECK-NEXT: .amdhsa_exception_fp_ieee_div_zero 0 144; CHECK-NEXT: .amdhsa_exception_fp_ieee_overflow 0 145; CHECK-NEXT: .amdhsa_exception_fp_ieee_underflow 0 146; CHECK-NEXT: .amdhsa_exception_fp_ieee_inexact 0 147; CHECK-NEXT: .amdhsa_exception_int_div_zero 0 148; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_buffer 0 149; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_ptr 0 150; CHECK-NEXT: .amdhsa_user_sgpr_queue_ptr 0 151; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_segment_ptr 0 152; CHECK-NEXT: .amdhsa_user_sgpr_dispatch_id 0 153; CHECK-NEXT: .amdhsa_user_sgpr_flat_scratch_init 0 154; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_size 0 155; CHECK-NEXT: .amdhsa_uses_dynamic_stack 0 156; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_preload_length 2 157; CHECK-NEXT: .amdhsa_user_sgpr_kernarg_preload_offset 1 158; CHECK-NEXT: .end_amdhsa_kernel 159.amdhsa_code_object_version 5 160.amdhsa_kernel kernel 161 .amdhsa_next_free_vgpr 32 162 .amdhsa_next_free_sgpr 0 163 .amdhsa_accum_offset 12 164 .amdhsa_kernarg_size 32 165 .amdhsa_user_sgpr_kernarg_preload_length 2 166 .amdhsa_user_sgpr_kernarg_preload_offset 1 167.end_amdhsa_kernel 168