Lines Matching full:group
10 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
11 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
12 store i16 %group.size.x, ptr addrspace(1) %out
20 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
21 %group.size.x = load volatile i16, ptr addrspace(4) %gep.group.size.x, align 4
22 store i16 %group.size.x, ptr addrspace(1) %out
27 ; CHECK: store i16 %group.size.x,
30 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
31 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
32 store i16 %group.size.x, ptr addrspace(1) %out
37 ; CHECK: store i16 %group.size.y,
40 %gep.group.size.y = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 6
41 %group.size.y = load i16, ptr addrspace(4) %gep.group.size.y, align 4
42 store i16 %group.size.y, ptr addrspace(1) %out
47 ; CHECK: store i16 %group.size.z,
50 %gep.group.size.z = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 8
51 %group.size.z = load i16, ptr addrspace(4) %gep.group.size.z, align 4
52 store i16 %group.size.z, ptr addrspace(1) %out
58 ; CHECK: store i16 %group.size.x,
61 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
62 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
63 store i16 %group.size.x, ptr addrspace(1) %out
69 ; CHECK: store i16 %group.size.x,
72 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
73 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
74 store i16 %group.size.x, ptr addrspace(1) %out
82 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
83 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
86 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
87 %group.size.x.zext = zext i16 %group.size.x to i32
88 %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
89 %sub = sub i32 %grid.size.x, %group.id_x_group.size.x
90 %umin = call i32 @llvm.umin.i32(i32 %sub, i32 %group.size.x.zext)
100 %gep.group.size.y = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 6
101 %group.size.y = load i16, ptr addrspace(4) %gep.group.size.y, align 4
104 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.y()
105 %group.size.y.zext = zext i16 %group.size.y to i32
106 %group.id_x_group.size.y = mul i32 %group.id, %group.size.y.zext
107 %sub = sub i32 %grid.size.y, %group.id_x_group.size.y
108 %umin = call i32 @llvm.umin.i32(i32 %sub, i32 %group.size.y.zext)
118 %gep.group.size.z = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 8
119 %group.size.z = load i16, ptr addrspace(4) %gep.group.size.z, align 4
122 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.z()
123 %group.size.z.zext = zext i16 %group.size.z to i32
124 %group.id_x_group.size.z = mul i32 %group.id, %group.size.z.zext
125 %sub = sub i32 %grid.size.z, %group.id_x_group.size.z
126 %umin = call i32 @llvm.umin.i32(i32 %sub, i32 %group.size.z.zext)
133 ; load of the group size.
136 ; CHECK: %group.id = tail call i32 @llvm.amdgcn.workgroup.id.y()
137 ; CHECK: %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
140 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
141 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
144 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.y()
145 %group.size.x.zext = zext i16 %group.size.x to i32
146 %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
147 %sub = sub i32 %grid.size.x, %group.id_x_group.size.x
148 %umin = call i32 @llvm.umin.i32(i32 %sub, i32 %group.size.x.zext)
156 ; CHECK: %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
157 ; CHECK: %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
160 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
161 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
164 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
165 %group.size.x.zext = zext i16 %group.size.x to i32
166 %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
167 %sub = sub i32 %grid.size.x, %group.id_x_group.size.x
168 %umin = call i32 @llvm.umin.i32(i32 %sub, i32 %group.size.x.zext)
176 ; CHECK: %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
177 ; CHECK: %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
178 ; CHECK: %sub = sub i32 %grid.size.x, %group.id_x_group.size.x
179 ; CHECK: %smin = call i32 @llvm.smin.i32(i32 %sub, i32 %group.size.x.zext)
182 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
183 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
186 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
187 %group.size.x.zext = zext i16 %group.size.x to i32
188 %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
189 %sub = sub i32 %grid.size.x, %group.id_x_group.size.x
190 %smin = call i32 @llvm.smin.i32(i32 %sub, i32 %group.size.x.zext)
197 ; CHECK: %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
198 ; CHECK: %sub = sub i32 %grid.size.x, %group.id_x_group.size.x
199 ; CHECK: %umax = call i32 @llvm.umax.i32(i32 %sub, i32 %group.size.x.zext)
203 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
204 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
207 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
208 %group.size.x.zext = zext i16 %group.size.x to i32
209 %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
210 %sub = sub i32 %grid.size.x, %group.id_x_group.size.x
211 %umax = call i32 @llvm.umax.i32(i32 %sub, i32 %group.size.x.zext)
220 ; CHECK: %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
221 ; CHECK: %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
222 ; CHECK: %sub = sub i32 %grid.size.x.zext, %group.id_x_group.size.x
225 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
226 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
230 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
231 %group.size.x.zext = zext i16 %group.size.x to i32
232 %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
233 %sub = sub i32 %grid.size.x.zext, %group.id_x_group.size.x
234 %umin = call i32 @llvm.umin.i32(i32 %sub, i32 %group.size.x.zext)
244 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
245 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
246 %zext = zext i16 %group.size.x to i32
251 ; CHECK: %group.size = phi i16 [ %tmp24, %bb17 ], [ %tmp16, %bb9 ], [ %tmp8, %bb1 ], [ 1, %bb ]
287 %group.size = phi i16 [ %tmp24, %bb17 ], [ %tmp16, %bb9 ], [ %tmp8, %bb1 ], [ 1, %bb ]
289 %tmp29 = zext i16 %group.size to i32
342 ; CHECK-NEXT: %gep.group.size.x = getelementptr inbounds nuw i8, ptr addrspace(4) %dispatch.ptr, i64 4
343 ; CHECK-NEXT: %group.size.x.lo = load i8, ptr addrspace(4) %gep.group.size.x, align 4
344 ; CHECK-NEXT: store i8 %group.size.x.lo, ptr addrspace(1) %out, align 1
347 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
348 %group.size.x.lo = load i8, ptr addrspace(4) %gep.group.size.x, align 1
349 store i8 %group.size.x.lo, ptr addrspace(1) %out
355 ; CHECK-NEXT: %gep.group.size.x = getelementptr inbounds nuw i8, ptr addrspace(4) %dispatch.ptr, i64 4
356 ; CHECK-NEXT: %group.size.x.lo = load i8, ptr addrspace(4) %gep.group.size.x, align 2
357 ; CHECK-NEXT: store i8 %group.size.x.lo, ptr addrspace(1) %out, align 1
360 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
361 %group.size.x.lo = load i8, ptr addrspace(4) %gep.group.size.x, align 1
362 store i8 %group.size.x.lo, ptr addrspace(1) %out
368 ; CHECK: %group.size.xy = load i32,
369 ; CHECK: store i32 %group.size.xy
372 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
373 %group.size.xy = load i32, ptr addrspace(4) %gep.group.size.x, align 4
374 store i32 %group.size.xy, ptr addrspace(1) %out
379 ; CHECK: store volatile i16 %group.size.x, ptr addrspace(1) %out, align 2
380 ; CHECK: store volatile i16 %group.size.y, ptr addrspace(1) %out, align 2
383 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr0, i64 4
384 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
385 store volatile i16 %group.size.x, ptr addrspace(1) %out
388 %gep.group.size.y = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr1, i64 6
389 %group.size.y = load i16, ptr addrspace(4) %gep.group.size.y, align 4
390 store volatile i16 %group.size.y, ptr addrspace(1) %out
397 ; CHECK-NEXT: %gep.group.size.x = getelementptr inbounds nuw i8, ptr addrspace(4) %dispatch.ptr, i64 4
398 ; CHECK-NEXT: %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
399 ; CHECK: %group.size.x.zext = zext i16 %group.size.x to i32
403 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
404 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
407 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
408 %group.size.x.zext = zext i16 %group.size.x to i32
409 %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
410 %sub = sub i32 %grid.size.x, %group.id_x_group.size.x
411 %umin = call i32 @llvm.umin.i32(i32 %sub, i32 %group.size.x.zext)
421 %gep.group.size.x = getelementptr inbounds i8, ptr addrspace(4) %dispatch.ptr, i64 4
422 %group.size.x = load i16, ptr addrspace(4) %gep.group.size.x, align 4
425 %group.id = tail call i32 @llvm.amdgcn.workgroup.id.x()
426 %group.size.x.zext = zext i16 %group.size.x to i32
427 %group.id_x_group.size.x = mul i32 %group.id, %group.size.x.zext
428 %sub = sub i32 %grid.size.x, %group.id_x_group.size.x
429 %umin = call i32 @llvm.umin.i32(i32 %sub, i32 %group.size.x.zext)
450 attributes #0 = { nounwind "uniform-work-group-size"="true" }
452 attributes #2 = { nounwind "uniform-work-group-size"="true" }
453 attributes #3 = { nounwind "uniform-work-group-size"="false" }