@@ -823,11 +823,11 @@ func.func @negative_fold_extract_broadcast(%a : vector<1x1xf32>) -> vector<4xf32
823
823
824
824
// -----
825
825
826
- // CHECK-LABEL: fold_extract_scalar_from_splat
826
+ // CHECK-LABEL: fold_extract_splatlike
827
827
// CHECK-SAME: %[[A:.*]]: f32
828
828
// CHECK: return %[[A]] : f32
829
- func.func @fold_extract_scalar_from_splat (%a : f32 , %idx0 : index , %idx1 : index , %idx2 : index ) -> f32 {
830
- %b = vector.splat %a : vector <1 x2 x4 xf32 >
829
+ func.func @fold_extract_splatlike (%a : f32 , %idx0 : index , %idx1 : index , %idx2 : index ) -> f32 {
830
+ %b = vector.broadcast %a : f32 to vector <1 x2 x4 xf32 >
831
831
%r = vector.extract %b [%idx0 , %idx1 , %idx2 ] : f32 from vector <1 x2 x4 xf32 >
832
832
return %r : f32
833
833
}
@@ -2033,11 +2033,11 @@ func.func @insert_strided_slice_full_range(%source: vector<16x16xf16>, %dest: ve
2033
2033
2034
2034
// -----
2035
2035
2036
- // CHECK-LABEL: extract_strided_splat
2037
- // CHECK: %[[B:.*]] = vector.splat %{{.*}} : vector<2x4xf16>
2036
+ // CHECK-LABEL: extract_strided_splatlike
2037
+ // CHECK: %[[B:.*]] = vector.broadcast %{{.*}} f16 to vector<2x4xf16>
2038
2038
// CHECK-NEXT: return %[[B]] : vector<2x4xf16>
2039
- func.func @extract_strided_splat (%arg0: f16 ) -> vector <2 x4 xf16 > {
2040
- %0 = vector.splat %arg0 : vector <16 x4 xf16 >
2039
+ func.func @extract_strided_splatlike (%arg0: f16 ) -> vector <2 x4 xf16 > {
2040
+ %0 = vector.broadcast %arg0 : f16 to vector <16 x4 xf16 >
2041
2041
%1 = vector.extract_strided_slice %0
2042
2042
{offsets = [1 , 0 ], sizes = [2 , 4 ], strides = [1 , 1 ]} :
2043
2043
vector <16 x4 xf16 > to vector <2 x4 xf16 >
@@ -2323,10 +2323,10 @@ func.func @extract_extract_strided2(%A: vector<2x4xf32>)
2323
2323
2324
2324
// -----
2325
2325
2326
- // CHECK-LABEL: func @splat_fold
2327
- func.func @splat_fold () -> vector <4 xf32 > {
2326
+ // CHECK-LABEL: func @splatlike_fold
2327
+ func.func @splatlike_fold () -> vector <4 xf32 > {
2328
2328
%c = arith.constant 1.0 : f32
2329
- %v = vector.splat %c : vector <4 xf32 >
2329
+ %v = vector.broadcast %c : f32 to vector <4 xf32 >
2330
2330
return %v : vector <4 xf32 >
2331
2331
2332
2332
// CHECK-NEXT: [[V:%.*]] = arith.constant dense<1.000000e+00> : vector<4xf32>
@@ -2469,24 +2469,24 @@ func.func @shuffle_nofold1(%v0 : vector<4xi32>, %v1 : vector<2xi32>) -> vector<5
2469
2469
2470
2470
// -----
2471
2471
2472
- // CHECK-LABEL: func @transpose_splat_constant
2472
+ // CHECK-LABEL: func @transpose_splatlike_constant
2473
2473
// CHECK: %[[CST:.+]] = arith.constant dense<5.000000e+00> : vector<8x4xf32>
2474
2474
// CHECK: return %[[CST]]
2475
- func.func @transpose_splat_constant () -> vector <8 x4 xf32 > {
2475
+ func.func @transpose_splatlike_constant () -> vector <8 x4 xf32 > {
2476
2476
%cst = arith.constant dense <5.0 > : vector <4 x8 xf32 >
2477
2477
%0 = vector.transpose %cst , [1 , 0 ] : vector <4 x8 xf32 > to vector <8 x4 xf32 >
2478
2478
return %0 : vector <8 x4 xf32 >
2479
2479
}
2480
2480
2481
2481
// -----
2482
2482
2483
- // CHECK-LABEL: func @transpose_splat2 (
2483
+ // CHECK-LABEL: func @transpose_splatlike2 (
2484
2484
// CHECK-SAME: %[[VAL_0:.*]]: f32) -> vector<3x4xf32> {
2485
- // CHECK: %[[VAL_1:.*]] = vector.splat %[[VAL_0]] : vector<3x4xf32>
2485
+ // CHECK: %[[VAL_1:.*]] = vector.broadcast %[[VAL_0]] : f32 to vector<3x4xf32>
2486
2486
// CHECK: return %[[VAL_1]] : vector<3x4xf32>
2487
2487
// CHECK: }
2488
- func.func @transpose_splat2 (%arg : f32 ) -> vector <3 x4 xf32 > {
2489
- %splat = vector.splat %arg : vector <4 x3 xf32 >
2488
+ func.func @transpose_splatlike2 (%arg : f32 ) -> vector <3 x4 xf32 > {
2489
+ %splat = vector.broadcast %arg : f32 to vector <4 x3 xf32 >
2490
2490
%0 = vector.transpose %splat , [1 , 0 ] : vector <4 x3 xf32 > to vector <3 x4 xf32 >
2491
2491
return %0 : vector <3 x4 xf32 >
2492
2492
}
@@ -2669,13 +2669,13 @@ func.func @bitcast(%a: vector<4x8xf32>) -> vector<4x16xi16> {
2669
2669
2670
2670
// -----
2671
2671
2672
- // CHECK-LABEL: @insert_strided_slice_splat
2672
+ // CHECK-LABEL: @insert_strided_slice_splatlike
2673
2673
// CHECK-SAME: (%[[ARG:.*]]: f32)
2674
- // CHECK-NEXT: %[[SPLAT:.*]] = vector.splat %[[ARG]] : vector<8x16xf32>
2674
+ // CHECK-NEXT: %[[SPLAT:.*]] = vector.broadcast %[[ARG]] : f32 to vector<8x16xf32>
2675
2675
// CHECK-NEXT: return %[[SPLAT]] : vector<8x16xf32>
2676
- func.func @insert_strided_slice_splat (%x: f32 ) -> (vector <8 x16 xf32 >) {
2677
- %splat0 = vector.splat %x : vector <4 x4 xf32 >
2678
- %splat1 = vector.splat %x : vector <8 x16 xf32 >
2676
+ func.func @insert_strided_slice_splatlike (%x: f32 ) -> (vector <8 x16 xf32 >) {
2677
+ %splat0 = vector.broadcast %x : f32 to vector <4 x4 xf32 >
2678
+ %splat1 = vector.broadcast %x : f32 to vector <8 x16 xf32 >
2679
2679
%0 = vector.insert_strided_slice %splat0 , %splat1 {offsets = [2 , 2 ], strides = [1 , 1 ]}
2680
2680
: vector <4 x4 xf32 > into vector <8 x16 xf32 >
2681
2681
return %0 : vector <8 x16 xf32 >
@@ -2748,27 +2748,27 @@ func.func @insert_strided_2d_constant() ->
2748
2748
2749
2749
// -----
2750
2750
2751
- // CHECK-LABEL: func @shuffle_splat
2751
+ // CHECK-LABEL: func @shuffle_splatlike
2752
2752
// CHECK-SAME: (%[[ARG:.*]]: i32)
2753
- // CHECK-NEXT: %[[SPLAT:.*]] = vector.splat %[[ARG]] : vector<4xi32>
2753
+ // CHECK-NEXT: %[[SPLAT:.*]] = vector.broadcast %[[ARG]] : i32 to vector<4xi32>
2754
2754
// CHECK-NEXT: return %[[SPLAT]] : vector<4xi32>
2755
- func.func @shuffle_splat (%x : i32 ) -> vector <4 xi32 > {
2756
- %v0 = vector.splat %x : vector <4 xi32 >
2757
- %v1 = vector.splat %x : vector <2 xi32 >
2755
+ func.func @shuffle_splatlike (%x : i32 ) -> vector <4 xi32 > {
2756
+ %v0 = vector.broadcast %x : i32 to vector <4 xi32 >
2757
+ %v1 = vector.broadcast %x : i32 to vector <2 xi32 >
2758
2758
%shuffle = vector.shuffle %v0 , %v1 [2 , 3 , 4 , 5 ] : vector <4 xi32 >, vector <2 xi32 >
2759
2759
return %shuffle : vector <4 xi32 >
2760
2760
}
2761
2761
2762
2762
2763
2763
// -----
2764
2764
2765
- // CHECK-LABEL: func @insert_splat
2765
+ // CHECK-LABEL: func @insert_splatlike
2766
2766
// CHECK-SAME: (%[[ARG:.*]]: i32)
2767
- // CHECK-NEXT: %[[SPLAT:.*]] = vector.splat %[[ARG]] : vector<2x4x3xi32>
2767
+ // CHECK-NEXT: %[[SPLAT:.*]] = vector.broadcast %[[ARG]] : i32 to vector<2x4x3xi32>
2768
2768
// CHECK-NEXT: return %[[SPLAT]] : vector<2x4x3xi32>
2769
- func.func @insert_splat (%x : i32 ) -> vector <2 x4 x3 xi32 > {
2770
- %v0 = vector.splat %x : vector <4 x3 xi32 >
2771
- %v1 = vector.splat %x : vector <2 x4 x3 xi32 >
2769
+ func.func @insert_splatlike (%x : i32 ) -> vector <2 x4 x3 xi32 > {
2770
+ %v0 = vector.broadcast %x : i32 to vector <4 x3 xi32 >
2771
+ %v1 = vector.broadcast %x : i32 to vector <2 x4 x3 xi32 >
2772
2772
%insert = vector.insert %v0 , %v1 [0 ] : vector <4 x3 xi32 > into vector <2 x4 x3 xi32 >
2773
2773
return %insert : vector <2 x4 x3 xi32 >
2774
2774
}
@@ -3000,11 +3000,11 @@ func.func @rank_1_shuffle_to_interleave(%arg0: vector<6xi32>, %arg1: vector<6xi3
3000
3000
3001
3001
// -----
3002
3002
3003
- // CHECK-LABEL: func @extract_from_0d_splat_broadcast_regression (
3003
+ // CHECK-LABEL: func @extract_from_0d_splatlike_broadcast_regression (
3004
3004
// CHECK-SAME: %[[a:.*]]: f32, %[[b:.*]]: vector<f32>, %[[c:.*]]: vector<2xf32>)
3005
- 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 >) {
3006
- // Splat scalar to 0D and extract scalar.
3007
- %0 = vector.splat %a : vector <f32 >
3005
+ func.func @extract_from_0d_splatlike_broadcast_regression (%a: f32 , %b: vector <f32 >, %c: vector <2 xf32 >) -> (f32 , f32 , f32 , f32 , f32 , vector <6 x7 xf32 >, vector <3 xf32 >) {
3006
+ // Splat/broadcast scalar to 0D and extract scalar.
3007
+ %0 = vector.broadcast %a : f32 to vector <f32 >
3008
3008
%1 = vector.extract %0 [] : f32 from vector <f32 >
3009
3009
3010
3010
// Broadcast scalar to 0D and extract scalar.
@@ -3016,8 +3016,8 @@ func.func @extract_from_0d_splat_broadcast_regression(%a: f32, %b: vector<f32>,
3016
3016
%4 = vector.broadcast %b : vector <f32 > to vector <1 x2 x4 xf32 >
3017
3017
%5 = vector.extract %4 [0 , 0 , 1 ] : f32 from vector <1 x2 x4 xf32 >
3018
3018
3019
- // Splat scalar to 2D and extract scalar.
3020
- %6 = vector.splat %a : vector <2 x3 xf32 >
3019
+ // Splat/broadcast scalar to 2D and extract scalar.
3020
+ %6 = vector.broadcast %a : f32 to vector <2 x3 xf32 >
3021
3021
%7 = vector.extract %6 [0 , 1 ] : f32 from vector <2 x3 xf32 >
3022
3022
3023
3023
// Broadcast scalar to 3D and extract scalar.
@@ -3474,7 +3474,7 @@ func.func @fold_insert_use_chain(%arg : vector<4x4xf32>, %val : f32, %pos: index
3474
3474
%v_0 = vector.insert %val , %arg [%pos , 0 ] : f32 into vector <4 x4 xf32 >
3475
3475
%v_1 = vector.insert %val , %v_0 [%pos , 0 ] : f32 into vector <4 x4 xf32 >
3476
3476
%v_2 = vector.insert %val , %v_1 [%pos , 0 ] : f32 into vector <4 x4 xf32 >
3477
- return %v_2 : vector <4 x4 xf32 >
3477
+ return %v_2 : vector <4 x4 xf32 >
3478
3478
}
3479
3479
3480
3480
// -----
@@ -3488,5 +3488,5 @@ func.func @fold_insert_use_chain(%arg : vector<4x4xf32>, %val : f32, %pos: index
3488
3488
func.func @no_fold_insert_use_chain_mismatch_static_position (%arg : vector <4 xf32 >, %val : f32 ) -> vector <4 xf32 > {
3489
3489
%v_0 = vector.insert %val , %arg [0 ] : f32 into vector <4 xf32 >
3490
3490
%v_1 = vector.insert %val , %v_0 [1 ] : f32 into vector <4 xf32 >
3491
- return %v_1 : vector <4 xf32 >
3491
+ return %v_1 : vector <4 xf32 >
3492
3492
}
0 commit comments