@@ -420,3 +420,25 @@ func.func @vector_store_2D(%mem: memref<4x4xf16>, %v: vector<4x4xf16>) {
420
420
// CHECK: vector.store %[[V2]], %[[ARG0]][%[[C2]], %[[C0]]] : memref<4x4xf16>, vector<2x2xf16>
421
421
// CHECK: %[[V3:.*]] = vector.extract_strided_slice %[[ARG1]] {offsets = [2, 2], sizes = [2, 2], strides = [1, 1]} : vector<4x4xf16> to vector<2x2xf16>
422
422
// CHECK: vector.store %[[V3]], %[[ARG0]][%[[C2]], %[[C2]]] : memref<4x4xf16>, vector<2x2xf16>
423
+
424
+ func.func @vector_transfer_read (%arg0: memref <6 x34 x62 xi8 >) -> vector <6 x34 x62 xi8 > {
425
+ %c0_i8 = arith.constant 0 : i8
426
+ %c0 = arith.constant 0 : index
427
+ %0 = vector.transfer_read %arg0 [%c0 , %c0 , %c0 ], %c0_i8 : memref <6 x34 x62 xi8 >, vector <6 x34 x62 xi8 >
428
+ return %0 : vector <6 x34 x62 xi8 >
429
+ }
430
+ // CHECK-LABEL: func @vector_transfer_read
431
+ // CHECK-NOT: vector.intert_strided_slice
432
+ // CHECK: vector.transfer_read
433
+ // CHECK: return
434
+
435
+ func.func @vector_transfer_write (%arg0: vector <6 x34 x62 xi8 >) {
436
+ %c0 = arith.constant 0 : index
437
+ %alloc = memref.alloc () : memref <6 x34 x62 xi8 >
438
+ vector.transfer_write %arg0 , %alloc [%c0 , %c0 , %c0 ]: vector <6 x34 x62 xi8 >, memref <6 x34 x62 xi8 >
439
+ return
440
+ }
441
+ // CHECK-LABEL: func @vector_transfer_write
442
+ // CHECK-NOT: vector.extract_strided_slice
443
+ // CHECK: vector.transfer_write
444
+ // CHECK: return
0 commit comments