xref: /llvm-project/llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx11.s (revision 4eb0810922a8d6ad9a32fbf09326166317dc5c08)
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