@@ -119,68 +119,6 @@ llvm.func @tensor_memory_base_warpgroup() attributes {nvvm.kernel = 1 : ui1, nvv
119119
120120}
121121
122- // -----
123-
124- module attributes {" ttg.num-warps" = 4 : i32 , " ttg.threads-per-warp" = 32 : i32 } {
125-
126- // CHECK-LABEL: @warpid_warp_specialize
127- llvm.func @warpid_warp_specialize () {
128- // CHECK: [[C32:%.*]] = llvm.mlir.constant(32 : i32)
129- // CHECK: [[TIDX:%.*]] = nvvm.read.ptx.sreg.tid.x
130- // CHECK: [[ID:%.*]] = llvm.udiv [[TIDX]], [[C32]]
131- // CHECK: [[UNIFORM:%.*]] = nvvm.shfl.sync idx {{%[0-9]+}}, [[ID]]
132- %0 = ttg.warp_id
133- // CHECK: "use"([[UNIFORM]])
134- " use" (%0 ) : (i32 ) -> ()
135-
136- // CHECK: ttg.warp_specialize
137- ttg.warp_specialize () attributes {warpGroupStartIds = array<i32 : 6 , 4 >}
138- // CHECK: default
139- default {
140- // CHECK: [[TIDX:%.*]] = nvvm.read.ptx.sreg.tid.x
141- // CHECK: [[ID:%.*]] = llvm.udiv [[TIDX]], [[C32]]
142- // CHECK: [[UNIFORM:%.*]] = nvvm.shfl.sync idx {{%[0-9]+}}, [[ID]]
143- %1 = ttg.warp_id
144- // CHECK: "use"([[UNIFORM]])
145- " use" (%1 ) : (i32 ) -> ()
146- ttg.warp_yield
147- }
148- // CHECK: partition0
149- partition0 () num_warps (4 ) {
150- // 6*32 = 196
151-
152- // CHECK: [[C32:%.*]] = llvm.mlir.constant(32 : i32)
153- // CHECK: [[C192:%.*]] = llvm.mlir.constant(192 : i32)
154- // CHECK: [[TIDX:%.*]] = nvvm.read.ptx.sreg.tid.x
155- // CHECK: [[REL_TIDX:%.*]] = llvm.sub [[TIDX]], [[C192]]
156- // CHECK: [[ID:%.*]] = llvm.udiv [[REL_TIDX]], [[C32]]
157- // CHECK: [[UNIFORM:%.*]] = nvvm.shfl.sync idx {{%[0-9]+}}, [[ID]]
158- %1 = ttg.warp_id
159- // CHECK: "use"([[UNIFORM]])
160- " use" (%1 ) : (i32 ) -> ()
161- ttg.warp_return
162- }
163- partition1 () num_warps (2 ) {
164- // 4*32 = 128
165-
166- // CHECK: [[C32:%.*]] = llvm.mlir.constant(32 : i32)
167- // CHECK: [[C128:%.*]] = llvm.mlir.constant(128 : i32)
168- // CHECK: [[TIDX:%.*]] = nvvm.read.ptx.sreg.tid.x
169- // CHECK: [[REL_TIDX:%.*]] = llvm.sub [[TIDX]], [[C128]]
170- // CHECK: [[ID:%.*]] = llvm.udiv [[REL_TIDX]], [[C32]]
171- // CHECK: [[UNIFORM:%.*]] = nvvm.shfl.sync idx {{%[0-9]+}}, [[ID]]
172- %1 = ttg.warp_id
173- // CHECK: "use"([[UNIFORM]])
174- " use" (%1 ) : (i32 ) -> ()
175- ttg.warp_return
176- } : () -> ()
177- llvm.return
178- }
179-
180- }
181-
182- // -----
183-
184122module attributes {" ttg.num-warps" = 1 : i32 , " ttg.threads-per-warp" = 32 : i32 } {
185123
186124// CHECK-LABEL: @one_warp
0 commit comments