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