@@ -13,15 +13,15 @@ hal.executable @abs_ex_dispatch_0 {
1313 func.func @abs_ex_dispatch_0 () {
1414 %c0 = arith.constant 0 : index
1515 %c128 = arith.constant 128 : index
16- %0 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (1 ) offset (%c128 ) flags (ReadOnly ) : memref <16 xf32 , strided <[1 ], offset : 32 >>
16+ %0 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (1 ) offset (%c128 ) flags (ReadOnly ) : memref <16 xf32 , strided <[1 ], offset : ? >>
1717 %1 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (0 ) : memref <16 xi32 >
1818 %2 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (2 ) : memref <16 xf32 >
1919 %3 = gpu.block_id x
2020 %4 = gpu.block_dim x
2121 %5 = gpu.thread_id x
2222 %6 = arith.muli %3 , %4 : index
2323 %7 = arith.addi %6 , %5 : index
24- %9 = memref.load %0 [%7 ] : memref <16 xf32 , strided <[1 ], offset : 32 >>
24+ %9 = memref.load %0 [%7 ] : memref <16 xf32 , strided <[1 ], offset : ? >>
2525 %10 = memref.load %1 [%7 ] : memref <16 xi32 >
2626 %11 = arith.sitofp %10 : i32 to f32
2727 %12 = arith.addf %9 , %11 : f32
@@ -145,15 +145,15 @@ hal.executable @mixed_type {
145145 func.func @mixed_type () {
146146 %c0 = arith.constant 0 : index
147147 %c128 = arith.constant 128 : index
148- %0 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (0 ) offset (%c128 ) : memref <16 xf32 , strided <[1 ], offset : 4 >>
148+ %0 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (0 ) offset (%c128 ) : memref <16 xf32 , strided <[1 ], offset : ? >>
149149 %1 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (0 ) offset (%c0 ) : memref <16 xi32 >
150150 %2 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (1 ) : memref <16 xf32 >
151151 %3 = gpu.block_id x
152152 %4 = gpu.block_dim x
153153 %5 = gpu.thread_id x
154154 %6 = arith.muli %3 , %4 : index
155155 %7 = arith.addi %6 , %5 : index
156- %9 = memref.load %0 [%7 ] : memref <16 xf32 , strided <[1 ], offset : 4 >>
156+ %9 = memref.load %0 [%7 ] : memref <16 xf32 , strided <[1 ], offset : ? >>
157157 %10 = memref.load %1 [%7 ] : memref <16 xi32 >
158158 %11 = arith.sitofp %10 : i32 to f32
159159 %12 = arith.addf %9 , %11 : f32
@@ -167,8 +167,13 @@ hal.executable @mixed_type {
167167// CHECK-LABEL: llvm.func @mixed_type
168168// CHECK-SAME: (%[[ARG0:.+]]: !llvm.ptr {llvm.align = 16 : i32, llvm.noalias, llvm.nonnull, llvm.noundef},
169169// CHECK-SAME: %{{.*}}: !llvm.ptr {llvm.align = 16 : i32, llvm.noalias, llvm.nonnull, llvm.noundef})
170+ // CHECK: %[[BYTES_PER_BIT:.+]] = llvm.mlir.constant(8 : i64) : i64
171+ // CHECK: %[[BITS_PER_ELEM:.+]] = llvm.mlir.constant(32 : i64) : i64
172+ // CHECK: %[[BYTE_OFFSET:.+]] = llvm.mlir.constant(128 : index) : i64
173+ // CHECK: %[[OFFSET_BITS:.+]] = llvm.mul %[[BYTE_OFFSET]], %[[BYTES_PER_BIT]]
174+ // CHECK: %[[OFFSET_ELEMS:.+]] = llvm.udiv %[[OFFSET_BITS]], %[[BITS_PER_ELEM]]
170175// CHECK: nvvm.read.ptx.sreg.tid.x
171- // CHECK: llvm.getelementptr %[[ARG0]][4] : (!llvm.ptr) -> !llvm.ptr, f32
176+ // CHECK: llvm.getelementptr %[[ARG0]][%[[OFFSET_ELEMS]]] : (!llvm.ptr, i64 ) -> !llvm.ptr, f32
172177// CHECK: llvm.fadd
173178
174179// -----
@@ -282,18 +287,18 @@ hal.executable @check_not_readonly {
282287 %c0 = arith.constant 0 : index
283288 %c128 = arith.constant 128 : index
284289 %1 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (0 ) : memref <16 xi32 >
285- %0 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (0 ) offset (%c128 ) flags (ReadOnly ) : memref <16 xf32 , strided <[1 ], offset : 32 >>
290+ %0 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (0 ) offset (%c128 ) flags (ReadOnly ) : memref <16 xf32 , strided <[1 ], offset : ? >>
286291 %b11 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (1 ) flags (ReadOnly ) : memref <16 xi32 >
287- %b12 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (1 ) offset (%c128 ) : memref <16 xf32 , strided <[1 ], offset : 32 >>
292+ %b12 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (1 ) offset (%c128 ) : memref <16 xf32 , strided <[1 ], offset : ? >>
288293 %b21 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (2 ) flags (ReadOnly ) : memref <16 xi32 >
289- %b22 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (2 ) offset (%c128 ) flags (ReadOnly ) : memref <16 xf32 , strided <[1 ], offset : 32 >>
294+ %b22 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (2 ) offset (%c128 ) flags (ReadOnly ) : memref <16 xf32 , strided <[1 ], offset : ? >>
290295 %2 = hal.interface.binding.subspan layout (#pipeline_layout ) binding (3 ) : memref <16 xf32 >
291296 %3 = gpu.block_id x
292297 %4 = gpu.block_dim x
293298 %5 = gpu.thread_id x
294299 %6 = arith.muli %3 , %4 : index
295300 %7 = arith.addi %6 , %5 : index
296- %9 = memref.load %0 [%7 ] : memref <16 xf32 , strided <[1 ], offset : 32 >>
301+ %9 = memref.load %0 [%7 ] : memref <16 xf32 , strided <[1 ], offset : ? >>
297302 %10 = memref.load %1 [%7 ] : memref <16 xi32 >
298303 %11 = arith.sitofp %10 : i32 to f32
299304 %12 = arith.addf %9 , %11 : f32
0 commit comments