@@ -408,7 +408,7 @@ func.func @extract_strided_fold_insert(%a: vector<6x4xf32>, %b: vector<8x16xf32>
408
408
// -----
409
409
410
410
// Negative test where the extract is not a subset of the element inserted.
411
- // CHECK-LABEL: negative_extract_strided_fold
411
+ // CHECK-LABEL: extract_strided_fold_negative
412
412
// CHECK-SAME: (%[[ARG0:.*]]: vector<4x4xf32>, %[[ARG1:.*]]: vector<8x16xf32>
413
413
// CHECK: %[[INS:.*]] = vector.insert_strided_slice %[[ARG0]], %[[ARG1]]
414
414
// CHECK-SAME: {offsets = [2, 2], strides = [1, 1]}
@@ -417,7 +417,7 @@ func.func @extract_strided_fold_insert(%a: vector<6x4xf32>, %b: vector<8x16xf32>
417
417
// CHECK-SAME: {offsets = [2, 2], sizes = [6, 4], strides = [1, 1]}
418
418
// CHECK-SAME: : vector<8x16xf32> to vector<6x4xf32>
419
419
// CHECK-NEXT: return %[[EXT]] : vector<6x4xf32>
420
- func.func @negative_extract_strided_fold (%a: vector <4 x4 xf32 >, %b: vector <8 x16 xf32 >)
420
+ func.func @extract_strided_fold_negative (%a: vector <4 x4 xf32 >, %b: vector <8 x16 xf32 >)
421
421
-> (vector <6 x4 xf32 >) {
422
422
%0 = vector.insert_strided_slice %a , %b {offsets = [2 , 2 ], strides = [1 , 1 ]}
423
423
: vector <4 x4 xf32 > into vector <8 x16 xf32 >
@@ -753,10 +753,10 @@ func.func @fold_extract_broadcast_0dvec_input_scalar_output(%a : vector<f32>,
753
753
754
754
// -----
755
755
756
- // CHECK-LABEL: negative_fold_extract_broadcast
756
+ // CHECK-LABEL: fold_extract_broadcast_negative
757
757
// CHECK: vector.broadcast %{{.*}} : vector<1x1xf32> to vector<1x1x4xf32>
758
758
// CHECK: vector.extract %{{.*}}[0, 0] : vector<4xf32> from vector<1x1x4xf32>
759
- func.func @negative_fold_extract_broadcast (%a : vector <1 x1 xf32 >) -> vector <4 xf32 > {
759
+ func.func @fold_extract_broadcast_negative (%a : vector <1 x1 xf32 >) -> vector <4 xf32 > {
760
760
%b = vector.broadcast %a : vector <1 x1 xf32 > to vector <1 x1 x4 xf32 >
761
761
%r = vector.extract %b [0 , 0 ] : vector <4 xf32 > from vector <1 x1 x4 xf32 >
762
762
return %r : vector <4 xf32 >
@@ -895,11 +895,11 @@ func.func @fold_extract_shapecast_0d_source(%arg0 : vector<f32>) -> f32 {
895
895
896
896
// -----
897
897
898
- // CHECK-LABEL: negative_fold_extract_shapecast
898
+ // CHECK-LABEL: fold_extract_shapecast_negative
899
899
// CHECK: %[[V:.*]] = vector.shape_cast %{{.*}} : vector<16xf32> to vector<2x4x2xf32>
900
900
// CHECK: %[[R:.*]] = vector.extract %[[V]][1] : vector<4x2xf32> from vector<2x4x2xf32>
901
901
// CHECK: return %[[R]] : vector<4x2xf32>
902
- func.func @negative_fold_extract_shapecast (%arg0 : vector <16 xf32 >) -> vector <4 x2 xf32 > {
902
+ func.func @fold_extract_shapecast_negative (%arg0 : vector <16 xf32 >) -> vector <4 x2 xf32 > {
903
903
%0 = vector.shape_cast %arg0 : vector <16 xf32 > to vector <2 x4 x2 xf32 >
904
904
%r = vector.extract %0 [1 ] : vector <4 x2 xf32 > from vector <2 x4 x2 xf32 >
905
905
return %r : vector <4 x2 xf32 >
@@ -1460,11 +1460,11 @@ func.func @store_after_load_tensor(%arg0 : tensor<4x4xf32>) -> tensor<4x4xf32> {
1460
1460
1461
1461
// -----
1462
1462
1463
- // CHECK-LABEL: func @negative_store_after_load_tensor
1463
+ // CHECK-LABEL: func @store_after_load_tensor_negative
1464
1464
// CHECK: vector.transfer_read
1465
1465
// CHECK: vector.transfer_write
1466
1466
// CHECK: return
1467
- func.func @negative_store_after_load_tensor (%arg0 : tensor <4 x4 xf32 >) -> tensor <4 x4 xf32 > {
1467
+ func.func @store_after_load_tensor_negative (%arg0 : tensor <4 x4 xf32 >) -> tensor <4 x4 xf32 > {
1468
1468
%c1 = arith.constant 1 : index
1469
1469
%c0 = arith.constant 0 : index
1470
1470
%cf0 = arith.constant 0.0 : f32
@@ -1499,12 +1499,12 @@ func.func @store_to_load_tensor(%arg0 : tensor<4x4xf32>,
1499
1499
1500
1500
// -----
1501
1501
1502
- // CHECK-LABEL: func @negative_store_to_load_tensor
1502
+ // CHECK-LABEL: func @store_to_load_negative_tensor
1503
1503
// CHECK: vector.transfer_write
1504
1504
// CHECK: vector.transfer_write
1505
1505
// CHECK: %[[V:.*]] = vector.transfer_read
1506
1506
// CHECK: return %[[V]] : vector<1x4xf32>
1507
- func.func @negative_store_to_load_tensor (%arg0 : tensor <4 x4 xf32 >,
1507
+ func.func @store_to_load_negative_tensor (%arg0 : tensor <4 x4 xf32 >,
1508
1508
%v0 : vector <1 x4 xf32 >, %v1 : vector <1 x4 xf32 >, %i : index ) -> vector <1 x4 xf32 > {
1509
1509
%c1 = arith.constant 1 : index
1510
1510
%c2 = arith.constant 2 : index
@@ -1540,86 +1540,6 @@ func.func @store_to_load_tensor_broadcast(%arg0 : tensor<4x4xf32>,
1540
1540
1541
1541
// -----
1542
1542
1543
- // CHECK-LABEL: func @negative_store_to_load_tensor_memref
1544
- // CHECK-NOT: vector.broadcast
1545
- // CHECK-NOT: vector.transpose
1546
- // CHECK: vector.transfer_write
1547
- // CHECK: vector.transfer_read
1548
- func.func @negative_store_to_load_tensor_memref (
1549
- %arg0 : tensor <?x?xf32 >,
1550
- %arg1 : memref <?x?xf32 >,
1551
- %v0 : vector <4 x2 xf32 >
1552
- ) -> vector <4 x2 xf32 >
1553
- {
1554
- %c0 = arith.constant 0 : index
1555
- %cf0 = arith.constant 0.0 : f32
1556
- vector.transfer_write %v0 , %arg1 [%c0 , %c0 ] {in_bounds = [true , true ]} :
1557
- vector <4 x2 xf32 >, memref <?x?xf32 >
1558
- %0 = vector.transfer_read %arg0 [%c0 , %c0 ], %cf0 {in_bounds = [true , true ]} :
1559
- tensor <?x?xf32 >, vector <4 x2 xf32 >
1560
- return %0 : vector <4 x2 xf32 >
1561
- }
1562
-
1563
- // -----
1564
-
1565
- // CHECK-LABEL: func @negative_store_to_load_tensor_no_actual_broadcast
1566
- // CHECK-NOT: vector.broadcast
1567
- // CHECK-NOT: vector.transpose
1568
- // CHECK: vector.transfer_write
1569
- // CHECK: vector.transfer_read
1570
- func.func @negative_store_to_load_tensor_no_actual_broadcast (%arg0 : tensor <?x?xf32 >,
1571
- %v0 : vector <4 x2 xf32 >) -> vector <4 x2 xf32 > {
1572
- %c0 = arith.constant 0 : index
1573
- %cf0 = arith.constant 0.0 : f32
1574
- %w0 = vector.transfer_write %v0 , %arg0 [%c0 , %c0 ] :
1575
- vector <4 x2 xf32 >, tensor <?x?xf32 >
1576
- %0 = vector.transfer_read %w0 [%c0 , %c0 ], %cf0 {in_bounds = [true , true ]} :
1577
- tensor <?x?xf32 >, vector <4 x2 xf32 >
1578
- return %0 : vector <4 x2 xf32 >
1579
- }
1580
-
1581
- // -----
1582
-
1583
- // CHECK-LABEL: func @negative_store_to_load_tensor_broadcast_out_of_bounds
1584
- // CHECK-NOT: vector.broadcast
1585
- // CHECK-NOT: vector.transpose
1586
- // CHECK: vector.transfer_write
1587
- // CHECK: vector.transfer_read
1588
- func.func @negative_store_to_load_tensor_broadcast_out_of_bounds (%arg0 : tensor <?x?xf32 >,
1589
- %v0 : vector <4 x2 xf32 >) -> vector <4 x2 x6 xf32 > {
1590
- %c0 = arith.constant 0 : index
1591
- %cf0 = arith.constant 0.0 : f32
1592
- %w0 = vector.transfer_write %v0 , %arg0 [%c0 , %c0 ] :
1593
- vector <4 x2 xf32 >, tensor <?x?xf32 >
1594
- %0 = vector.transfer_read %w0 [%c0 , %c0 ], %cf0 {in_bounds = [true , true , true ],
1595
- permutation_map = affine_map <(d0 , d1 ) -> (d0 , d1 , 0 )>} :
1596
- tensor <?x?xf32 >, vector <4 x2 x6 xf32 >
1597
- return %0 : vector <4 x2 x6 xf32 >
1598
- }
1599
-
1600
- // -----
1601
-
1602
- // CHECK-LABEL: func @negative_store_to_load_tensor_broadcast_masked
1603
- // CHECK-NOT: vector.broadcast
1604
- // CHECK-NOT: vector.transpose
1605
- // CHECK: vector.transfer_write
1606
- // CHECK: vector.transfer_read
1607
- func.func @negative_store_to_load_tensor_broadcast_masked (
1608
- %arg0 : tensor <?x?xf32 >, %v0 : vector <4 x2 xf32 >, %mask : vector <4 x2 xi1 >)
1609
- -> vector <4 x2 x6 xf32 >
1610
- {
1611
- %c0 = arith.constant 0 : index
1612
- %cf0 = arith.constant 0.0 : f32
1613
- %w0 = vector.transfer_write %v0 , %arg0 [%c0 , %c0 ], %mask {in_bounds = [true , true ]} :
1614
- vector <4 x2 xf32 >, tensor <?x?xf32 >
1615
- %0 = vector.transfer_read %w0 [%c0 , %c0 ], %cf0 {in_bounds = [true , true , true ],
1616
- permutation_map = affine_map <(d0 , d1 ) -> (d0 , d1 , 0 )>} :
1617
- tensor <?x?xf32 >, vector <4 x2 x6 xf32 >
1618
- return %0 : vector <4 x2 x6 xf32 >
1619
- }
1620
-
1621
- // -----
1622
-
1623
1543
// CHECK-LABEL: func @store_to_load_tensor_broadcast_scalable
1624
1544
// CHECK-SAME: (%[[ARG:.*]]: tensor<?xf32>, %[[V0:.*]]: vector<[4]xf32>)
1625
1545
// CHECK: %[[B:.*]] = vector.broadcast %[[V0]] : vector<[4]xf32> to vector<6x[4]xf32>
@@ -1684,15 +1604,15 @@ func.func @dead_store_tensor(%arg0 : tensor<4x4xf32>,
1684
1604
1685
1605
// -----
1686
1606
1687
- // CHECK-LABEL: func @negative_dead_store_tensor
1607
+ // CHECK-LABEL: func @dead_store_tensor_negative
1688
1608
// CHECK-DAG: %[[C0:.*]] = arith.constant 0 : index
1689
1609
// CHECK-DAG: %[[C1:.*]] = arith.constant 1 : index
1690
1610
// CHECK: vector.transfer_write
1691
1611
// CHECK: vector.transfer_write
1692
1612
// CHECK: vector.transfer_read
1693
1613
// CHECK: %[[VTW:.*]] = vector.transfer_write {{.*}}, {{.*}}[%[[C1]], %[[C0]]]
1694
1614
// CHECK: return %[[VTW]] : tensor<4x4xf32>
1695
- func.func @negative_dead_store_tensor (%arg0 : tensor <4 x4 xf32 >,
1615
+ func.func @dead_store_tensor_negative (%arg0 : tensor <4 x4 xf32 >,
1696
1616
%v0 : vector <1 x4 xf32 >, %v1 : vector <1 x4 xf32 >, %i : index ) -> tensor <4 x4 xf32 > {
1697
1617
%c1 = arith.constant 1 : index
1698
1618
%c2 = arith.constant 2 : index
@@ -2143,10 +2063,10 @@ func.func @extract_insert_rank_reduce(%a: vector<4xf32>, %b: vector<8x16xf32>)
2143
2063
2144
2064
// -----
2145
2065
2146
- // CHECK-LABEL: negative_extract_insert
2066
+ // CHECK-LABEL: extract_insert_negative
2147
2067
// CHECK: vector.insert_strided_slice
2148
2068
// CHECK: vector.extract
2149
- func.func @negative_extract_insert (%a: vector <2 x15 xf32 >, %b: vector <12 x8 x16 xf32 >)
2069
+ func.func @extract_insert_negative (%a: vector <2 x15 xf32 >, %b: vector <12 x8 x16 xf32 >)
2150
2070
-> vector <16 xf32 > {
2151
2071
%0 = vector.insert_strided_slice %a , %b {offsets = [4 , 2 , 0 ], strides = [1 , 1 ]}
2152
2072
: vector <2 x15 xf32 > into vector <12 x8 x16 xf32 >
0 commit comments