@@ -255,16 +255,32 @@ func.func @clone_and_preceding_dealloc(%arg0: memref<?xf32>) -> memref<32xf32> {
255255func.func @tensor_cast_to_buffer (%arg0 : tensor <4 x6 x16 x32 xi8 >) ->
256256 memref <?x?x16 x32 xi8 > {
257257 %0 = tensor.cast %arg0 : tensor <4 x6 x16 x32 xi8 > to tensor <?x?x16 x32 xi8 >
258- %1 = bufferization.to_buffer %0 : tensor <?x?x16 x32 xi8 > to memref <?x?x16 x32 xi8 >
258+ %1 = bufferization.to_buffer %0 read_only : tensor <?x?x16 x32 xi8 > to memref <?x?x16 x32 xi8 >
259259 return %1 : memref <?x?x16 x32 xi8 >
260260}
261- // CHECK: %[[M:.+]] = bufferization.to_buffer %[[ARG0]] : tensor<4x6x16x32xi8>
261+ // CHECK: %[[M:.+]] = bufferization.to_buffer %[[ARG0]] read_only : tensor<4x6x16x32xi8>
262262// CHECK: %[[M1:.+]] = memref.cast %[[M]]
263263// CHECK-SAME: memref<4x6x16x32xi8> to memref<?x?x16x32xi8>
264264// CHECK: return %[[M1]] : memref<?x?x16x32xi8>
265265
266266// -----
267267
268+ // CHECK-LABEL: func @tensor_cast_to_buffer
269+ // CHECK-SAME: %[[ARG0:.+]]: tensor<4x6x16x32xi8>
270+ func.func @tensor_cast_to_buffer_layout_and_memspace (%arg0 : tensor <4 x6 x16 x32 xi8 >) ->
271+ memref <?x?x16 x32 xi8 , strided <[?, ?, ?, 1 ], offset : ?>, 1 > {
272+ %0 = tensor.cast %arg0 : tensor <4 x6 x16 x32 xi8 > to tensor <?x?x16 x32 xi8 >
273+ %1 = bufferization.to_buffer %0 : tensor <?x?x16 x32 xi8 > to memref <?x?x16 x32 xi8 , strided <[?, ?, ?, 1 ], offset : ?>, 1 >
274+ return %1 : memref <?x?x16 x32 xi8 , strided <[?, ?, ?, 1 ], offset : ?>, 1 >
275+ }
276+ // CHECK: %[[M:.+]] = bufferization.to_buffer %[[ARG0]] : tensor<4x6x16x32xi8>
277+ // CHECK: %[[M1:.+]] = memref.cast %[[M]]
278+ // CHECK-SAME: memref<4x6x16x32xi8, strided<[?, ?, ?, 1], offset: ?>, 1>
279+ // CHECK-SAME: to memref<?x?x16x32xi8, strided<[?, ?, ?, 1], offset: ?>, 1>
280+ // CHECK: return %[[M1]] : memref<?x?x16x32xi8, strided<[?, ?, ?, 1], offset: ?>, 1>
281+
282+ // -----
283+
268284// Folding of memref.load(to_buffer(%v, %idxs)) -> tensor.extract(%v, %idx)
269285// CHECK-LABEL: func @load_from_buffer_cast(
270286func.func @load_from_buffer_cast (%arg0: index , %arg1: index ,
0 commit comments