@@ -68,6 +68,22 @@ func.func @transfer_write_unroll(%mem : memref<4x4xf32>, %vec : vector<4x4xf32>)
68
68
69
69
// -----
70
70
71
+ // Ensure that cases with mismatched target and source
72
+ // shape ranks do not lead to a crash.
73
+
74
+ // CHECK-LABEL: func @negative_transfer_write
75
+ // CHECK-NOT: vector.extract_strided_slice
76
+ // CHECK: vector.transfer_write
77
+ // CHECK: return
78
+ func.func @negative_transfer_write (%vec: vector <6 x34 x62 xi8 >) {
79
+ %c0 = arith.constant 0 : index
80
+ %alloc = memref.alloc () : memref <6 x34 x62 xi8 >
81
+ vector.transfer_write %vec , %alloc [%c0 , %c0 , %c0 ]: vector <6 x34 x62 xi8 >, memref <6 x34 x62 xi8 >
82
+ return
83
+ }
84
+
85
+ // -----
86
+
71
87
// CHECK-LABEL: func @transfer_readwrite_unroll
72
88
// CHECK-DAG: %[[C2:.*]] = arith.constant 2 : index
73
89
// CHECK-DAG: %[[C0:.*]] = arith.constant 0 : index
@@ -365,19 +381,3 @@ func.func @vector_gather_unroll(%mem : memref<?x?x?xf32>,
365
381
%res = vector.gather %mem [%c0 , %c0 , %c0 ] [%indices ], %mask , %pass_thru : memref <?x?x?xf32 >, vector <6 x4 xindex >, vector <6 x4 xi1 >, vector <6 x4 xf32 > into vector <6 x4 xf32 >
366
382
return %res : vector <6 x4 xf32 >
367
383
}
368
-
369
- // -----
370
-
371
- // Ensure that cases with mismatched target and source
372
- // shape ranks do not lead to a crash.
373
-
374
- // CHECK-LABEL: func @negative_vector_transfer_write
375
- // CHECK-NOT: vector.extract_strided_slice
376
- // CHECK: vector.transfer_write
377
- // CHECK: return
378
- func.func @negative_vector_transfer_write (%arg0: vector <6 x34 x62 xi8 >) {
379
- %c0 = arith.constant 0 : index
380
- %alloc = memref.alloc () : memref <6 x34 x62 xi8 >
381
- vector.transfer_write %arg0 , %alloc [%c0 , %c0 , %c0 ]: vector <6 x34 x62 xi8 >, memref <6 x34 x62 xi8 >
382
- return
383
- }
0 commit comments