@@ -68,6 +68,31 @@ module attributes {gpu.container_module} {
68
68
return
69
69
}
70
70
71
+ // CHECK-LABEL: func @launch_with_attributions(
72
+ func.func @launch_with_attributions (%blk : index , %thrd : index , %float : f32 , %data : memref <?xf32 ,1 >) {
73
+ // CHECK: gpu.launch
74
+ gpu.launch blocks (%bx , %by , %bz ) in (%grid_x = %blk , %grid_y = %blk , %grid_z = %blk )
75
+ threads (%tx , %ty , %tz ) in (%block_x = %thrd , %block_y = %thrd , %block_z = %thrd )
76
+ // CHECK-SAME: workgroup(%[[WGROUP1:.*]] : memref<42xf32, 3>, %[[WGROUP2:.*]] : memref<2xf32, 3>)
77
+ workgroup (%arg1: memref <42 xf32 , 3 >, %arg2: memref <2 xf32 , 3 >)
78
+ // CHECK-SAME: private(%[[PRIVATE1:.*]] : memref<2xf32, 5>, %[[PRIVATE2:.*]] : memref<1xf32, 5>)
79
+ private (%arg3: memref <2 xf32 , 5 >, %arg4: memref <1 xf32 , 5 >)
80
+ {
81
+ " use" (%float ) : (f32 ) -> ()
82
+ " use" (%data ) : (memref <?xf32 ,1 >) -> ()
83
+ // CHECK: "use"(%[[WGROUP1]], %[[WGROUP2]])
84
+ " use" (%arg1 , %arg2 ) : (memref <42 xf32 , 3 >, memref <2 xf32 , 3 >) -> ()
85
+ // CHECK: "use"(%[[PRIVATE1]])
86
+ " use" (%arg3 ) : (memref <2 xf32 , 5 >) -> ()
87
+ // CHECK: "use"(%[[PRIVATE2]])
88
+ " use" (%arg4 ) : (memref <1 xf32 , 5 >) -> ()
89
+ // CHECK: gpu.terminator
90
+ gpu.terminator
91
+ }
92
+ return
93
+ }
94
+
95
+
71
96
gpu.module @kernels {
72
97
gpu.func @kernel_1 (%arg0 : f32 , %arg1 : memref <?xf32 , 1 >) kernel {
73
98
%tIdX = gpu.thread_id x
@@ -228,17 +253,20 @@ module attributes {gpu.container_module} {
228
253
229
254
gpu.module @gpu_funcs {
230
255
// CHECK-LABEL: gpu.func @kernel_1({{.*}}: f32)
231
- // CHECK: workgroup
232
- // CHECK: private
233
- // CHECK: attributes
234
256
gpu.func @kernel_1 (%arg0: f32 )
235
- workgroup (%arg1: memref <42 xf32 , 3 >)
236
- private (%arg2: memref <2 xf32 , 5 >, %arg3: memref <1 xf32 , 5 >)
257
+ // CHECK: workgroup(%[[WGROUP1:.*]] : memref<42xf32, 3>, %[[WGROUP2:.*]] : memref<2xf32, 3>)
258
+ workgroup (%arg1: memref <42 xf32 , 3 >, %arg2: memref <2 xf32 , 3 >)
259
+ // CHECK: private(%[[PRIVATE1:.*]] : memref<2xf32, 5>, %[[PRIVATE2:.*]] : memref<1xf32, 5>)
260
+ private (%arg3: memref <2 xf32 , 5 >, %arg4: memref <1 xf32 , 5 >)
237
261
kernel
238
- attributes {foo =" bar" } {
239
- " use" (%arg1 ) : (memref <42 xf32 , 3 >) -> ()
240
- " use" (%arg2 ) : (memref <2 xf32 , 5 >) -> ()
241
- " use" (%arg3 ) : (memref <1 xf32 , 5 >) -> ()
262
+ // CHECK: attributes {foo = "bar"}
263
+ attributes {foo = " bar" } {
264
+ // CHECK: "use"(%[[WGROUP1]], %[[WGROUP2]])
265
+ " use" (%arg1 , %arg2 ) : (memref <42 xf32 , 3 >, memref <2 xf32 , 3 >) -> ()
266
+ // CHECK: "use"(%[[PRIVATE1]])
267
+ " use" (%arg3 ) : (memref <2 xf32 , 5 >) -> ()
268
+ // CHECK: "use"(%[[PRIVATE2]])
269
+ " use" (%arg4 ) : (memref <1 xf32 , 5 >) -> ()
242
270
gpu.return
243
271
}
244
272
0 commit comments