@@ -1641,6 +1641,50 @@ TEST_F(TransformationTestsF, EliminateConcatStridedSliceConcat) {
1641
1641
model_ref = std::make_shared<ov::Model>(ResultVector{result}, ParameterVector{param1, param2, param3});
1642
1642
}
1643
1643
}
1644
+
1645
+ TEST_F (TransformationTestsF, EliminateConcatStridedSliceConcatDiffAxis) {
1646
+ {
1647
+ int64_t axis = 2 ;
1648
+ auto param1 = make_shared<ov::op::v0::Parameter>(element::f32 , Shape{2 , 10 , 3 });
1649
+ auto param2 = make_shared<ov::op::v0::Parameter>(element::f32 , Shape{2 , 10 , 4 });
1650
+ auto param3 = make_shared<ov::op::v0::Parameter>(element::f32 , Shape{2 , 10 , 5 });
1651
+ auto concat = make_shared<ov::op::v0::Concat>(ov::as_output_vector ({param1, param2, param3}), axis);
1652
+
1653
+ auto begin_const1 = ov::op::v0::Constant::create (ov::element::i64 , ov::Shape{3 }, {0 , 0 , 0 });
1654
+ auto end_const1 = ov::op::v0::Constant::create (ov::element::i64 , ov::Shape{3 }, {0 , 3 , 0 });
1655
+ auto strided_slice1 = std::make_shared<ov::op::v1::StridedSlice>(concat,
1656
+ begin_const1,
1657
+ end_const1,
1658
+ std::vector<int64_t >{1 , 0 , 1 },
1659
+ std::vector<int64_t >{1 , 0 , 1 });
1660
+ auto relu = std::make_shared<op::v0::Relu>(strided_slice1);
1661
+
1662
+ auto result = std::make_shared<op::v0::Result>(relu);
1663
+ model = std::make_shared<ov::Model>(ResultVector{result}, ParameterVector{param1, param2, param3});
1664
+ manager.register_pass <ov::pass::EliminateConcatStridedSlice>();
1665
+ }
1666
+ {
1667
+ int64_t axis = 2 ;
1668
+ auto param1 = make_shared<ov::op::v0::Parameter>(element::f32 , Shape{2 , 10 , 3 });
1669
+ auto param2 = make_shared<ov::op::v0::Parameter>(element::f32 , Shape{2 , 10 , 4 });
1670
+ auto param3 = make_shared<ov::op::v0::Parameter>(element::f32 , Shape{2 , 10 , 5 });
1671
+ auto concat = make_shared<ov::op::v0::Concat>(ov::as_output_vector ({param1, param2, param3}), axis);
1672
+
1673
+ auto begin_const1 = ov::op::v0::Constant::create (ov::element::i64 , ov::Shape{3 }, {0 , 0 , 0 });
1674
+ auto end_const1 = ov::op::v0::Constant::create (ov::element::i64 , ov::Shape{3 }, {0 , 3 , 0 });
1675
+ auto strided_slice1 = std::make_shared<ov::op::v1::StridedSlice>(concat,
1676
+ begin_const1,
1677
+ end_const1,
1678
+ std::vector<int64_t >{1 , 0 , 1 },
1679
+ std::vector<int64_t >{1 , 0 , 1 });
1680
+ auto relu = std::make_shared<op::v0::Relu>(strided_slice1);
1681
+
1682
+ auto result = std::make_shared<op::v0::Result>(relu);
1683
+
1684
+ model_ref = std::make_shared<ov::Model>(ResultVector{result}, ParameterVector{param1, param2, param3});
1685
+ }
1686
+ }
1687
+
1644
1688
TEST_F (TransformationTestsF, EliminateStridedSlice) {
1645
1689
{
1646
1690
auto input = std::make_shared<op::v0::Parameter>(ov::element::f32 ,
0 commit comments