annotate llvm/test/CodeGen/AMDGPU/llvm.amdgcn.implicitarg.ptr.ll @ 252:1f2b6ac9f198 llvm-original

LLVM16-1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Aug 2023 09:04:13 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
1 ; RUN: sed 's/CODE_OBJECT_VERSION/200/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=kaveri -verify-machineinstrs | FileCheck -check-prefixes=GCN,HSA %s
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
2 ; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=kaveri -verify-machineinstrs | FileCheck -check-prefixes=GCN,COV5 %s
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
3 ; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -verify-machineinstrs | FileCheck -check-prefixes=GCN,MESA %s
150
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 ; GCN-LABEL: {{^}}kernel_implicitarg_ptr_empty:
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
6 ; HSA: enable_sgpr_kernarg_segment_ptr = 1
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
7 ; HSA: kernarg_segment_byte_size = 56
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
8 ; HSA: kernarg_segment_alignment = 4
150
anatofuz
parents:
diff changeset
9
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
10 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
11 ; MESA: kernarg_segment_byte_size = 16
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
12 ; MESA: kernarg_segment_alignment = 4
150
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 ; HSA: s_load_dword s0, s[4:5], 0x0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
15
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
16 ; COV5: .amdhsa_kernarg_size 256
150
anatofuz
parents:
diff changeset
17 define amdgpu_kernel void @kernel_implicitarg_ptr_empty() #0 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
18 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
19 %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr
150
anatofuz
parents:
diff changeset
20 ret void
anatofuz
parents:
diff changeset
21 }
anatofuz
parents:
diff changeset
22
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
23 ; GCN-LABEL: {{^}}kernel_implicitarg_ptr_empty_0implicit:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
24 ; HSA: enable_sgpr_kernarg_segment_ptr = 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
25 ; HSA: kernarg_segment_byte_size = 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
26 ; HSA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
27
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
28 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
29 ; MESA: kernarg_segment_byte_size = 16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
30 ; MESA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
31
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
32 ; HSA: s_mov_b64 [[NULL:s\[[0-9]+:[0-9]+\]]], 0{{$}}
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
33 ; HSA: s_load_dword s0, [[NULL]], 0x0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
34
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
35 ; MESA: s_load_dword s0, s[4:5], 0x0
150
anatofuz
parents:
diff changeset
36
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
37 ; COV5: .amdhsa_kernarg_size 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
38 define amdgpu_kernel void @kernel_implicitarg_ptr_empty_0implicit() #3 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
39 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
40 %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
41 ret void
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
42 }
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
43
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
44 ; GCN-LABEL: {{^}}opencl_kernel_implicitarg_ptr_empty:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
45
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
46 ; HSA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
47 ; HSA: kernarg_segment_byte_size = 48
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
48 ; HSA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
49
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
50 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
51 ; MESA: kernarg_segment_byte_size = 16
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
52 ; MESA: kernarg_segment_alignment = 4
150
anatofuz
parents:
diff changeset
53
anatofuz
parents:
diff changeset
54 ; HSA: s_load_dword s0, s[4:5], 0x0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
55
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
56 ; COV5: .amdhsa_kernarg_size 48
150
anatofuz
parents:
diff changeset
57 define amdgpu_kernel void @opencl_kernel_implicitarg_ptr_empty() #1 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
58 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
59 %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr
150
anatofuz
parents:
diff changeset
60 ret void
anatofuz
parents:
diff changeset
61 }
anatofuz
parents:
diff changeset
62
anatofuz
parents:
diff changeset
63 ; GCN-LABEL: {{^}}kernel_implicitarg_ptr:
anatofuz
parents:
diff changeset
64
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
65 ; HSA: enable_sgpr_kernarg_segment_ptr = 1
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
66 ; HSA: kernarg_segment_byte_size = 168
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
67 ; HSA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
68
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
69 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
70 ; MESA: kernarg_segment_byte_size = 128
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
71 ; MESA: kernarg_segment_alignment = 4
150
anatofuz
parents:
diff changeset
72
anatofuz
parents:
diff changeset
73 ; HSA: s_load_dword s0, s[4:5], 0x1c
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
74
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
75 ; COV5: .amdhsa_kernarg_size 368
150
anatofuz
parents:
diff changeset
76 define amdgpu_kernel void @kernel_implicitarg_ptr([112 x i8]) #0 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
77 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
78 %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr
150
anatofuz
parents:
diff changeset
79 ret void
anatofuz
parents:
diff changeset
80 }
anatofuz
parents:
diff changeset
81
anatofuz
parents:
diff changeset
82 ; GCN-LABEL: {{^}}opencl_kernel_implicitarg_ptr:
anatofuz
parents:
diff changeset
83
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
84 ; HSA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
85 ; HSA: kernarg_segment_byte_size = 160
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
86 ; HSA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
87
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
88 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
89 ; MESA: kernarg_segment_byte_size = 128
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
90 ; MESA: kernarg_segment_alignment = 4
150
anatofuz
parents:
diff changeset
91
anatofuz
parents:
diff changeset
92 ; HSA: s_load_dword s0, s[4:5], 0x1c
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
93
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
94 ; COV5: .amdhsa_kernarg_size 160
150
anatofuz
parents:
diff changeset
95 define amdgpu_kernel void @opencl_kernel_implicitarg_ptr([112 x i8]) #1 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
96 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
97 %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr
150
anatofuz
parents:
diff changeset
98 ret void
anatofuz
parents:
diff changeset
99 }
anatofuz
parents:
diff changeset
100
anatofuz
parents:
diff changeset
101 ; GCN-LABEL: {{^}}func_implicitarg_ptr:
anatofuz
parents:
diff changeset
102 ; GCN: s_waitcnt
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
103 ; GCN: s_load_dword s{{[0-9]+}}, s[8:9], 0x0
150
anatofuz
parents:
diff changeset
104 ; GCN-NEXT: s_waitcnt
anatofuz
parents:
diff changeset
105 ; GCN-NEXT: s_setpc_b64
anatofuz
parents:
diff changeset
106 define void @func_implicitarg_ptr() #0 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
107 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
108 %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr
150
anatofuz
parents:
diff changeset
109 ret void
anatofuz
parents:
diff changeset
110 }
anatofuz
parents:
diff changeset
111
anatofuz
parents:
diff changeset
112 ; GCN-LABEL: {{^}}opencl_func_implicitarg_ptr:
anatofuz
parents:
diff changeset
113 ; GCN: s_waitcnt
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
114 ; GCN: s_load_dword s{{[0-9]+}}, s[8:9], 0x0
150
anatofuz
parents:
diff changeset
115 ; GCN-NEXT: s_waitcnt
anatofuz
parents:
diff changeset
116 ; GCN-NEXT: s_setpc_b64
anatofuz
parents:
diff changeset
117 define void @opencl_func_implicitarg_ptr() #0 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
118 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
119 %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr
150
anatofuz
parents:
diff changeset
120 ret void
anatofuz
parents:
diff changeset
121 }
anatofuz
parents:
diff changeset
122
anatofuz
parents:
diff changeset
123 ; GCN-LABEL: {{^}}kernel_call_implicitarg_ptr_func_empty:
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
124 ; HSA: enable_sgpr_kernarg_segment_ptr = 1
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
125 ; HSA: kernarg_segment_byte_size = 56
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
126 ; HSA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
127
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
128 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
129 ; MESA: kernarg_segment_byte_size = 16
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
130 ; MESA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
131
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
132 ; GCN: s_mov_b64 s[8:9], s[4:5]
150
anatofuz
parents:
diff changeset
133 ; GCN: s_swappc_b64
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
134
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
135 ; COV5: .amdhsa_kernarg_size 256
150
anatofuz
parents:
diff changeset
136 define amdgpu_kernel void @kernel_call_implicitarg_ptr_func_empty() #0 {
anatofuz
parents:
diff changeset
137 call void @func_implicitarg_ptr()
anatofuz
parents:
diff changeset
138 ret void
anatofuz
parents:
diff changeset
139 }
anatofuz
parents:
diff changeset
140
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
141 ; GCN-LABEL: {{^}}kernel_call_implicitarg_ptr_func_empty_implicit0:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
142 ; HSA: enable_sgpr_kernarg_segment_ptr = 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
143 ; HSA: kernarg_segment_byte_size = 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
144 ; HSA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
145
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
146 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
147 ; MESA: kernarg_segment_byte_size = 16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
148 ; MESA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
149
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
150 ; HSA: s_mov_b64 s[8:9], 0{{$}}
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
151 ; MESA: s_mov_b64 s[8:9], s[4:5]{{$}}
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
152 ; GCN: s_swappc_b64
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
153
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
154 ; COV5: .amdhsa_kernarg_size 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
155 define amdgpu_kernel void @kernel_call_implicitarg_ptr_func_empty_implicit0() #3 {
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
156 call void @func_implicitarg_ptr()
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
157 ret void
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
158 }
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
159
150
anatofuz
parents:
diff changeset
160 ; GCN-LABEL: {{^}}opencl_kernel_call_implicitarg_ptr_func_empty:
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
161 ; HSA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
162 ; HSA: kernarg_segment_byte_size = 48
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
163 ; HSA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
164 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
165 ; MESA: kernarg_segment_byte_size = 16
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
166 ; GCN: s_mov_b64 s[8:9], s[4:5]
150
anatofuz
parents:
diff changeset
167 ; GCN-NOT: s4
anatofuz
parents:
diff changeset
168 ; GCN-NOT: s5
anatofuz
parents:
diff changeset
169 ; GCN: s_swappc_b64
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
170
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
171 ; COV5: .amdhsa_kernarg_size 48
150
anatofuz
parents:
diff changeset
172 define amdgpu_kernel void @opencl_kernel_call_implicitarg_ptr_func_empty() #1 {
anatofuz
parents:
diff changeset
173 call void @func_implicitarg_ptr()
anatofuz
parents:
diff changeset
174 ret void
anatofuz
parents:
diff changeset
175 }
anatofuz
parents:
diff changeset
176
anatofuz
parents:
diff changeset
177 ; GCN-LABEL: {{^}}kernel_call_implicitarg_ptr_func:
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
178 ; HSA: enable_sgpr_kernarg_segment_ptr = 1
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
179 ; HSA: kernarg_segment_byte_size = 168
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
180 ; HSA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
181
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
182 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
183 ; MESA: kernarg_segment_byte_size = 128
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
184 ; MESA: kernarg_segment_alignment = 4
150
anatofuz
parents:
diff changeset
185
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
186 ; HSA: s_add_u32 s8, s4, 0x70
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
187 ; MESA: s_add_u32 s8, s4, 0x70
150
anatofuz
parents:
diff changeset
188
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
189 ; GCN: s_addc_u32 s9, s5, 0{{$}}
150
anatofuz
parents:
diff changeset
190 ; GCN: s_swappc_b64
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
191
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
192 ; COV5: .amdhsa_kernarg_size 368
150
anatofuz
parents:
diff changeset
193 define amdgpu_kernel void @kernel_call_implicitarg_ptr_func([112 x i8]) #0 {
anatofuz
parents:
diff changeset
194 call void @func_implicitarg_ptr()
anatofuz
parents:
diff changeset
195 ret void
anatofuz
parents:
diff changeset
196 }
anatofuz
parents:
diff changeset
197
anatofuz
parents:
diff changeset
198 ; GCN-LABEL: {{^}}opencl_kernel_call_implicitarg_ptr_func:
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
199 ; HSA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
200 ; HSA: kernarg_segment_byte_size = 160
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
201 ; HSA: kernarg_segment_alignment = 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
202 ; MESA: enable_sgpr_kernarg_segment_ptr = 1
150
anatofuz
parents:
diff changeset
203 ; MESA: kernarg_segment_byte_size = 128
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
204 ; MESA: kernarg_segment_alignment = 4
150
anatofuz
parents:
diff changeset
205
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
206 ; GCN: s_add_u32 s8, s4, 0x70
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
207 ; GCN: s_addc_u32 s9, s5, 0{{$}}
150
anatofuz
parents:
diff changeset
208 ; GCN: s_swappc_b64
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
209
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
210 ; COV5: .amdhsa_kernarg_size 160
150
anatofuz
parents:
diff changeset
211 define amdgpu_kernel void @opencl_kernel_call_implicitarg_ptr_func([112 x i8]) #1 {
anatofuz
parents:
diff changeset
212 call void @func_implicitarg_ptr()
anatofuz
parents:
diff changeset
213 ret void
anatofuz
parents:
diff changeset
214 }
anatofuz
parents:
diff changeset
215
anatofuz
parents:
diff changeset
216 ; GCN-LABEL: {{^}}func_call_implicitarg_ptr_func:
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
217 ; GCN-NOT: s8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
218 ; GCN-NOT: s9
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
219 ; GCN-NOT: s[8:9]
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
220 ; GCN: s_swappc_b64
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
221 ; GCN: s_setpc_b64 s[30:31]
150
anatofuz
parents:
diff changeset
222 define void @func_call_implicitarg_ptr_func() #0 {
anatofuz
parents:
diff changeset
223 call void @func_implicitarg_ptr()
anatofuz
parents:
diff changeset
224 ret void
anatofuz
parents:
diff changeset
225 }
anatofuz
parents:
diff changeset
226
anatofuz
parents:
diff changeset
227 ; GCN-LABEL: {{^}}opencl_func_call_implicitarg_ptr_func:
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
228 ; GCN-NOT: s8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
229 ; GCN-NOT: s9
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
230 ; GCN-NOT: s[8:9]
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
231 ; GCN: s_swappc_b64
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
232 ; GCN: s_setpc_b64 s[30:31]
150
anatofuz
parents:
diff changeset
233 define void @opencl_func_call_implicitarg_ptr_func() #0 {
anatofuz
parents:
diff changeset
234 call void @func_implicitarg_ptr()
anatofuz
parents:
diff changeset
235 ret void
anatofuz
parents:
diff changeset
236 }
anatofuz
parents:
diff changeset
237
anatofuz
parents:
diff changeset
238 ; GCN-LABEL: {{^}}func_kernarg_implicitarg_ptr:
anatofuz
parents:
diff changeset
239 ; GCN: s_waitcnt
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
240 ; GCN-DAG: s_mov_b64 [[NULL:s\[[0-9]+:[0-9]+\]]], 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
241 ; GCN-DAG: s_load_dword s{{[0-9]+}}, [[NULL]], 0x0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
242 ; GCN: s_load_dword s{{[0-9]+}}, s[8:9], 0x0
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
243 ; GCN: s_waitcnt lgkmcnt(0)
150
anatofuz
parents:
diff changeset
244 define void @func_kernarg_implicitarg_ptr() #0 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
245 %kernarg.segment.ptr = call ptr addrspace(4) @llvm.amdgcn.kernarg.segment.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
246 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
247 %load0 = load volatile i32, ptr addrspace(4) %kernarg.segment.ptr
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
248 %load1 = load volatile i32, ptr addrspace(4) %implicitarg.ptr
150
anatofuz
parents:
diff changeset
249 ret void
anatofuz
parents:
diff changeset
250 }
anatofuz
parents:
diff changeset
251
anatofuz
parents:
diff changeset
252 ; GCN-LABEL: {{^}}opencl_func_kernarg_implicitarg_ptr:
anatofuz
parents:
diff changeset
253 ; GCN: s_waitcnt
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
254 ; GCN-DAG: s_mov_b64 [[NULL:s\[[0-9]+:[0-9]+\]]], 0
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
255 ; GCN-DAG: s_load_dword s{{[0-9]+}}, [[NULL]], 0x0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
256 ; GCN: s_load_dword s{{[0-9]+}}, s[8:9], 0x0
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
257 ; GCN: s_waitcnt lgkmcnt(0)
150
anatofuz
parents:
diff changeset
258 define void @opencl_func_kernarg_implicitarg_ptr() #0 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
259 %kernarg.segment.ptr = call ptr addrspace(4) @llvm.amdgcn.kernarg.segment.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
260 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
261 %load0 = load volatile i32, ptr addrspace(4) %kernarg.segment.ptr
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
262 %load1 = load volatile i32, ptr addrspace(4) %implicitarg.ptr
150
anatofuz
parents:
diff changeset
263 ret void
anatofuz
parents:
diff changeset
264 }
anatofuz
parents:
diff changeset
265
anatofuz
parents:
diff changeset
266 ; GCN-LABEL: {{^}}kernel_call_kernarg_implicitarg_ptr_func:
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
267 ; GCN: s_add_u32 s8, s4, 0x70
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
268 ; GCN: s_addc_u32 s9, s5, 0
150
anatofuz
parents:
diff changeset
269 ; GCN: s_swappc_b64
anatofuz
parents:
diff changeset
270 define amdgpu_kernel void @kernel_call_kernarg_implicitarg_ptr_func([112 x i8]) #0 {
anatofuz
parents:
diff changeset
271 call void @func_kernarg_implicitarg_ptr()
anatofuz
parents:
diff changeset
272 ret void
anatofuz
parents:
diff changeset
273 }
anatofuz
parents:
diff changeset
274
anatofuz
parents:
diff changeset
275 ; GCN-LABEL: {{^}}kernel_implicitarg_no_struct_align_padding:
anatofuz
parents:
diff changeset
276 ; HSA: kernarg_segment_byte_size = 120
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
277 ; HSA: kernarg_segment_alignment = 6
150
anatofuz
parents:
diff changeset
278 ; MESA: kernarg_segment_byte_size = 84
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
279 ; MESA: kernarg_segment_alignment = 6
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
280
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
281 ; COV5: .amdhsa_kernarg_size 120
150
anatofuz
parents:
diff changeset
282 define amdgpu_kernel void @kernel_implicitarg_no_struct_align_padding(<16 x i32>, i32) #1 {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
283 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
284 %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr
150
anatofuz
parents:
diff changeset
285 ret void
anatofuz
parents:
diff changeset
286 }
anatofuz
parents:
diff changeset
287
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
288 ; HSA-LABEL: Kernels:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
289 ; HSA-LABEL: - Name: kernel_implicitarg_ptr_empty
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
290 ; HSA: CodeProps:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
291 ; HSA: KernargSegmentSize: 56
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
292 ; HSA: KernargSegmentAlign: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
293
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
294 ; HSA-LABEL: - Name: kernel_implicitarg_ptr_empty_0implicit
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
295 ; HSA: KernargSegmentSize: 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
296 ; HSA: KernargSegmentAlign: 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
297
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
298 ; HSA-LABEL: - Name: opencl_kernel_implicitarg_ptr_empty
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
299 ; HSA: KernargSegmentSize: 48
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
300 ; HSA: KernargSegmentAlign: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
301
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
302 ; HSA-LABEL: - Name: kernel_implicitarg_ptr
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
303 ; HSA: KernargSegmentSize: 168
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
304 ; HSA: KernargSegmentAlign: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
305
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
306 ; HSA-LABEL: - Name: opencl_kernel_implicitarg_ptr
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
307 ; HSA: KernargSegmentSize: 160
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
308 ; HSA: KernargSegmentAlign: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
309
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
310 ; HSA-LABEL: - Name: kernel_call_implicitarg_ptr_func_empty
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
311 ; HSA: KernargSegmentSize: 56
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
312 ; HSA: KernargSegmentAlign: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
313
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
314 ; HSA-LABEL: - Name: kernel_call_implicitarg_ptr_func_empty_implicit0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
315 ; HSA: KernargSegmentSize: 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
316 ; HSA: KernargSegmentAlign: 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
317
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
318 ; HSA-LABEL: - Name: opencl_kernel_call_implicitarg_ptr_func_empty
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
319 ; HSA: KernargSegmentSize: 48
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
320 ; HSA: KernargSegmentAlign: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
321
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
322 ; HSA-LABEL: - Name: kernel_call_implicitarg_ptr_func
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
323 ; HSA: KernargSegmentSize: 168
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
324 ; HSA: KernargSegmentAlign: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
325
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
326 ; HSA-LABEL: - Name: opencl_kernel_call_implicitarg_ptr_func
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
327 ; HSA: KernargSegmentSize: 160
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
328 ; HSA: KernargSegmentAlign: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
329
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
330 ; HSA-LABEL: - Name: kernel_call_kernarg_implicitarg_ptr_func
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
331 ; HSA: KernargSegmentSize: 168
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
332 ; HSA: KernargSegmentAlign: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
333
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
334 ; HSA-LABEL: - Name: kernel_implicitarg_no_struct_align_padding
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
335 ; HSA: KernargSegmentSize: 120
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
336 ; HSA: KernargSegmentAlign: 64
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
337
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
338 ; COV5-LABEL: amdhsa.kernels:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
339 ; COV5: .kernarg_segment_align: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
340 ; COV5-NEXT: .kernarg_segment_size: 256
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
341 ; COV5-LABEL: .name: kernel_implicitarg_ptr_empty
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
342
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
343 ; COV5: .kernarg_segment_align: 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
344 ; COV5-NEXT: .kernarg_segment_size: 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
345 ; COV5-LABEL: .name: kernel_implicitarg_ptr_empty_0implicit
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
346
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
347 ; COV5: .kernarg_segment_align: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
348 ; COV5-NEXT: .kernarg_segment_size: 48
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
349 ; COV5-LABEL: .name: opencl_kernel_implicitarg_ptr_empty
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
350
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
351 ; COV5: .kernarg_segment_align: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
352 ; COV5-NEXT: .kernarg_segment_size: 368
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
353 ; COV5-LABEL: .name: kernel_implicitarg_ptr
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
354
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
355 ; COV5: .kernarg_segment_align: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
356 ; COV5-NEXT: .kernarg_segment_size: 160
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
357 ; COV5-LABEL: .name: opencl_kernel_implicitarg_ptr
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
358
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
359 ; COV5: .kernarg_segment_align: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
360 ; COV5-NEXT: .kernarg_segment_size: 256
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
361 ; COV5-LABEL: .name: kernel_call_implicitarg_ptr_func_empty
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
362
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
363 ; COV5: .kernarg_segment_align: 4
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
364 ; COV5-NEXT: .kernarg_segment_size: 0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
365 ; COV5-LABEL: .name: kernel_call_implicitarg_ptr_func_empty_implicit0
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
366
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
367 ; COV5: .kernarg_segment_align: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
368 ; COV5-NEXT: .kernarg_segment_size: 48
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
369 ; COV5-LABEL: .name: opencl_kernel_call_implicitarg_ptr_func_empty
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
370
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
371 ; COV5: .kernarg_segment_align: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
372 ; COV5-NEXT: .kernarg_segment_size: 368
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
373 ; COV5-LABEL: .name: kernel_call_implicitarg_ptr_func
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
374
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
375 ; COV5: .kernarg_segment_align: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
376 ; COV5-NEXT: .kernarg_segment_size: 160
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
377 ; COV5-LABEL: .name: opencl_kernel_call_implicitarg_ptr_func
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
378
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
379 ; COV5: .kernarg_segment_align: 8
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
380 ; COV5-NEXT: .kernarg_segment_size: 368
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
381 ; COV5-LABEL: .name: kernel_call_kernarg_implicitarg_ptr_func
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
382
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
383 ; COV5: .kernarg_segment_align: 64
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
384 ; COV5-NEXT: .kernarg_segment_size: 120
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
385 ; COV5-LABEL: .name: kernel_implicitarg_no_struct_align_padding
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
386
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
387 declare ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr() #2
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
388 declare ptr addrspace(4) @llvm.amdgcn.kernarg.segment.ptr() #2
150
anatofuz
parents:
diff changeset
389
anatofuz
parents:
diff changeset
390 attributes #0 = { nounwind noinline }
anatofuz
parents:
diff changeset
391 attributes #1 = { nounwind noinline "amdgpu-implicitarg-num-bytes"="48" }
anatofuz
parents:
diff changeset
392 attributes #2 = { nounwind readnone speculatable }
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
393 attributes #3 = { nounwind noinline "amdgpu-implicitarg-num-bytes"="0" }
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
394
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
395 !llvm.module.flags = !{!0}
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
396 !0 = !{i32 1, !"amdgpu_code_object_version", i32 CODE_OBJECT_VERSION}