@@ -800,6 +800,43 @@ func.func @fold_extract_shapecast_to_shapecast(%arg0 : vector<3x4xf32>) -> vecto
800
800
801
801
// -----
802
802
803
+ // CHECK-LABEL: func @extract_no_fold_scalar_to_0d(
804
+ // CHECK-SAME: %[[v:.*]]: vector<f32>)
805
+ // CHECK: %[[extract:.*]] = vector.extract %[[v]][] : f32 from vector<f32>
806
+ // CHECK: return %[[extract]]
807
+ func.func @extract_no_fold_scalar_to_0d (%v: vector <f32 >) -> f32 {
808
+ %0 = vector.extract %v [] : f32 from vector <f32 >
809
+ return %0 : f32
810
+ }
811
+
812
+ // -----
813
+
814
+ // CHECK-LABEL: func @insert_fold_same_rank(
815
+ // CHECK-SAME: %[[v:.*]]: vector<2x2xf32>)
816
+ // CHECK: %[[CST:.+]] = arith.constant
817
+ // CHECK-SAME: : vector<2x2xf32>
818
+ // CHECK-NOT: vector.insert
819
+ // CHECK: return %[[CST]]
820
+ func.func @insert_fold_same_rank (%v: vector <2 x2 xf32 >) -> vector <2 x2 xf32 > {
821
+ %cst = arith.constant dense <0.000000e+00 > : vector <2 x2 xf32 >
822
+ %0 = vector.insert %cst , %v [] : vector <2 x2 xf32 > into vector <2 x2 xf32 >
823
+ return %0 : vector <2 x2 xf32 >
824
+ }
825
+
826
+ // -----
827
+
828
+ // CHECK-LABEL: func @insert_no_fold_scalar_to_0d(
829
+ // CHECK-SAME: %[[v:.*]]: vector<f32>)
830
+ // CHECK: %[[extract:.*]] = vector.insert %{{.*}}, %[[v]] [] : f32 into vector<f32>
831
+ // CHECK: return %[[extract]]
832
+ func.func @insert_no_fold_scalar_to_0d (%v: vector <f32 >) -> vector <f32 > {
833
+ %cst = arith.constant 0.000000e+00 : f32
834
+ %0 = vector.insert %cst , %v [] : f32 into vector <f32 >
835
+ return %0 : vector <f32 >
836
+ }
837
+
838
+ // -----
839
+
803
840
// CHECK-LABEL: dont_fold_expand_collapse
804
841
// CHECK: %[[A:.*]] = vector.shape_cast %{{.*}} : vector<1x1x64xf32> to vector<1x1x8x8xf32>
805
842
// CHECK: %[[B:.*]] = vector.shape_cast %{{.*}} : vector<1x1x8x8xf32> to vector<8x8xf32>
@@ -2606,17 +2643,6 @@ func.func @rank_1_shuffle_to_interleave(%arg0: vector<6xi32>, %arg1: vector<6xi3
2606
2643
2607
2644
// -----
2608
2645
2609
- // CHECK-LABEL: func @extract_from_0d_regression(
2610
- // CHECK-SAME: %[[v:.*]]: vector<f32>)
2611
- // CHECK: %[[extract:.*]] = vector.extract %[[v]][] : f32 from vector<f32>
2612
- // CHECK: return %[[extract]]
2613
- func.func @extract_from_0d_regression (%v: vector <f32 >) -> f32 {
2614
- %0 = vector.extract %v [] : f32 from vector <f32 >
2615
- return %0 : f32
2616
- }
2617
-
2618
- // -----
2619
-
2620
2646
// CHECK-LABEL: func @extract_from_0d_splat_broadcast_regression(
2621
2647
// CHECK-SAME: %[[a:.*]]: f32, %[[b:.*]]: vector<f32>, %[[c:.*]]: vector<2xf32>)
2622
2648
func.func @extract_from_0d_splat_broadcast_regression (%a: f32 , %b: vector <f32 >, %c: vector <2 xf32 >) -> (f32 , f32 , f32 , f32 , f32 , vector <6 x7 xf32 >, vector <3 xf32 >) {
0 commit comments