Skip to content

Commit 5f172d8

Browse files
committed
s
1 parent eb8ba22 commit 5f172d8

File tree

2 files changed

+20
-21
lines changed

2 files changed

+20
-21
lines changed

mlir/lib/Dialect/Vector/IR/VectorOps.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1688,7 +1688,7 @@ static Value foldExtractFromBroadcast(ExtractOp extractOp) {
16881688
broadcastVecType.getShape().take_back(extractResultRank))
16891689
return Value();
16901690

1691-
// The dim-1 broadcast -> ExtractOp folder requires in place operation
1691+
// The dim-1 broadcast -> ExtractOp folder requires in-place operation
16921692
// modifications. For dynamic position, this means we have to change the
16931693
// number of operands. This cannot be done in place since it changes the
16941694
// operation storage. For dynamic dimensions, the dim-1 broadcasting should

mlir/test/Dialect/Vector/canonicalize.mlir

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -710,43 +710,42 @@ func.func @fold_extract_transpose(
710710

711711
// -----
712712

713-
// CHECK-LABEL: fold_extract_broadcast_same_type
713+
// CHECK-LABEL: fold_extract_broadcast_same_input_output
714714
// CHECK-SAME: %[[A:.*]]: f32
715715
// CHECK: return %[[A]] : f32
716-
func.func @fold_extract_broadcast_same_type(%a : f32,
716+
func.func @fold_extract_broadcast_same_input_output(%a : f32,
717717
%idx0 : index,
718718
%idx1 : index) -> f32 {
719719
%b = vector.broadcast %a : f32 to vector<1x2x4xf32>
720-
// The indices don't batter for this folder, so we use mixed indices.
720+
// The indices don't matter for this folder, so we use mixed indices.
721721
%r = vector.extract %b[%idx0, %idx1, 2] : f32 from vector<1x2x4xf32>
722722
return %r : f32
723723
}
724724

725725
// -----
726726

727-
// CHECK-LABEL: fold_extract_broadcast_same_type_vec
727+
// CHECK-LABEL: fold_extract_broadcast_same_input_output_vec
728728
// CHECK-SAME: %[[A:.*]]: vector<4xf32>
729729
// CHECK: return %[[A]] : vector<4xf32>
730-
func.func @fold_extract_broadcast_same_type_vec(%a : vector<4xf32>,
731-
%idx0 : index)
732-
-> vector<4xf32> {
730+
func.func @fold_extract_broadcast_same_input_output_vec(%a : vector<4xf32>,
731+
%idx0 : index) -> vector<4xf32> {
733732
%b = vector.broadcast %a : vector<4xf32> to vector<1x2x4xf32>
734-
// The indices don't batter for this folder, so we use mixed indices.
733+
// The indices don't matter for this folder, so we use mixed indices.
735734
%r = vector.extract %b[0, %idx0] : vector<4xf32> from vector<1x2x4xf32>
736735
return %r : vector<4xf32>
737736
}
738737

739738
// -----
740739

741-
// CHECK-LABEL: fold_extract_broadcast_0dvec_and_scalar
740+
// CHECK-LABEL: fold_extract_broadcast_0dvec_input_scalar_output
742741
// CHECK-SAME: %[[A:.*]]: vector<f32>
743742
// CHECK: %[[B:.+]] = vector.extractelement %[[A]][] : vector<f32>
744743
// CHECK: return %[[B]] : f32
745-
func.func @fold_extract_broadcast_0dvec_and_scalar(%a : vector<f32>,
744+
func.func @fold_extract_broadcast_0dvec_input_scalar_output(%a : vector<f32>,
746745
%idx0 : index,
747746
%idx1 : index) -> f32 {
748747
%b = vector.broadcast %a : vector<f32> to vector<1x2x4xf32>
749-
// The indices don't batter for this folder, so we use mixed indices.
748+
// The indices don't matter for this folder, so we use mixed indices.
750749
%r = vector.extract %b[%idx0, %idx1, 2] : f32 from vector<1x2x4xf32>
751750
return %r : f32
752751
}
@@ -769,7 +768,7 @@ func.func @fold_extract_broadcast_negative(%a : vector<1x1xf32>) -> vector<4xf32
769768
// CHECK: return %[[A]] : f32
770769
func.func @fold_extract_splat(%a : f32, %idx0 : index, %idx1 : index) -> f32 {
771770
%b = vector.splat %a : vector<1x2x4xf32>
772-
// The indices don't batter for this folder, so we use mixed indices.
771+
// The indices don't matter for this folder, so we use mixed indices.
773772
%r = vector.extract %b[%idx0, %idx1, 2] : f32 from vector<1x2x4xf32>
774773
return %r : f32
775774
}
@@ -788,14 +787,14 @@ func.func @fold_extract_broadcast_dim1_broadcasting(%a : vector<4xf32>) -> f32 {
788787

789788
// -----
790789

791-
// CHECK-LABEL: fold_extract_broadcast_dim1_broadcasting_dynamic_nyi
790+
// CHECK-LABEL: fold_extract_broadcast_dim1_broadcasting_dynamic_negative
792791
// CHECK-SAME: %[[A:.*]]: vector<4xf32>
793792
// CHECK-SAME: %[[IDX:.*]]: index
794793
// CHECK: %[[B:.*]] = vector.broadcast %[[A]] : vector<4xf32> to vector<1x2x4xf32>
795794
// CHECK: %[[R:.*]] = vector.extract %[[B]][%[[IDX]], 1, 2]
796795
// CHECK: return %[[R]] : f32
797796
// This folder is not yet implemented. Check that this does not fold.
798-
func.func @fold_extract_broadcast_dim1_broadcasting_dynamic_nyi(
797+
func.func @fold_extract_broadcast_dim1_broadcasting_dynamic_negative(
799798
%a : vector<4xf32>,
800799
%idx : index) -> f32 {
801800
%b = vector.broadcast %a : vector<4xf32> to vector<1x2x4xf32>
@@ -805,29 +804,29 @@ func.func @fold_extract_broadcast_dim1_broadcasting_dynamic_nyi(
805804

806805
// -----
807806

808-
// CHECK-LABEL: canonicalize_extract_broadcast_to_higher_rank
807+
// CHECK-LABEL: fold_extract_broadcast_to_higher_rank
809808
// CHECK: %[[B:.*]] = vector.broadcast %{{.*}} : f32 to vector<4xf32>
810809
// CHECK: return %[[B]] : vector<4xf32>
811-
func.func @canonicalize_extract_broadcast_to_higher_rank(%a : f32,
810+
func.func @fold_extract_broadcast_to_higher_rank(%a : f32,
812811
%idx0 : index)
813812
-> vector<4xf32> {
814813
%b = vector.broadcast %a : f32 to vector<1x2x4xf32>
815-
// The indices don't batter for this canonicalizer, so we use mixed indices.
814+
// The indices don't matter for this canonicalizer, so we use mixed indices.
816815
%r = vector.extract %b[0, %idx0] : vector<4xf32> from vector<1x2x4xf32>
817816
return %r : vector<4xf32>
818817
}
819818

820819
// -----
821820

822-
// CHECK-LABEL: canonicalize_extract_broadcast_to_equal_rank
821+
// CHECK-LABEL: fold_extract_broadcast_to_equal_rank
823822
// CHECK-SAME: %[[A:.*]]: vector<1xf32>
824823
// CHECK: %[[R:.*]] = vector.broadcast %[[A]] : vector<1xf32> to vector<8xf32>
825824
// CHECK: return %[[R]] : vector<8xf32>
826-
func.func @canonicalize_extract_broadcast_to_equal_rank(%a : vector<1xf32>,
825+
func.func @fold_extract_broadcast_to_equal_rank(%a : vector<1xf32>,
827826
%idx0 : index)
828827
-> vector<8xf32> {
829828
%b = vector.broadcast %a : vector<1xf32> to vector<1x8xf32>
830-
// The indices don't batter for this canonicalizer, so we use mixed indices.
829+
// The indices don't matter for this canonicalizer, so we use mixed indices.
831830
%r = vector.extract %b[%idx0] : vector<8xf32> from vector<1x8xf32>
832831
return %r : vector<8xf32>
833832
}

0 commit comments

Comments
 (0)