1111#include " openvino/core/type/element_type.hpp"
1212#include " openvino/runtime/properties.hpp"
1313#include " utils/cpu_test_utils.hpp"
14+ #include " utils/general_utils.h"
1415
1516#if defined(OPENVINO_ARCH_RISCV64)
1617# include " nodes/kernels/riscv64/cpu_isa_traits.hpp"
@@ -166,6 +167,19 @@ void EltwiseLayerCPUTest::SetUp() {
166167 rel_threshold = 0 .05f ;
167168 }
168169
170+ #if defined(OPENVINO_ARCH_ARM)
171+ // ARM32-only: Sub/Div may be decomposed or routed to different implementations
172+ // causing variability (binary->unary or ACL/ref). Keep tests stable but localized here.
173+ if (ov::intel_cpu::any_of (eltwiseType, utils::EltwiseTypes::SUBTRACT, utils::EltwiseTypes::DIVIDE)) {
174+ // If format expectations specify two inputs, but transforms reduce arity, limit to single input.
175+ if (inFmts.size () > 1 ) {
176+ inFmts.resize (1 );
177+ }
178+ // Do not enforce specific primType (ACL vs REF) for Sub/Div on ARM32.
179+ selectedType = CPUTestsBase::any_type;
180+ }
181+ #endif
182+
169183 shapes.resize (2 );
170184 switch (opType) {
171185 case ov::test::utils::OpType::SCALAR: {
@@ -340,10 +354,8 @@ const std::vector<utils::EltwiseTypes>& eltwiseOpTypesBinInp() {
340354 static const std::vector<utils::EltwiseTypes> eltwiseOpTypesBinInp = {
341355 utils::EltwiseTypes::ADD,
342356 utils::EltwiseTypes::MULTIPLY,
343- #if defined(OPENVINO_ARCH_X86) || defined(OPENVINO_ARCH_X86_64)
344- utils::EltwiseTypes::SUBTRACT, // TODO: Fix CVS-105430
345- utils::EltwiseTypes::DIVIDE, // TODO: Fix CVS-105430
346- #endif
357+ utils::EltwiseTypes::SUBTRACT,
358+ utils::EltwiseTypes::DIVIDE,
347359 utils::EltwiseTypes::FLOOR_MOD,
348360 utils::EltwiseTypes::SQUARED_DIFF,
349361 utils::EltwiseTypes::MOD,
@@ -355,6 +367,8 @@ const std::vector<utils::EltwiseTypes>& eltwiseOpTypesBinInpSnippets() {
355367 static const std::vector<utils::EltwiseTypes> eltwiseOpTypesBinInp = {
356368 utils::EltwiseTypes::ADD,
357369 utils::EltwiseTypes::MULTIPLY,
370+ utils::EltwiseTypes::SUBTRACT,
371+ utils::EltwiseTypes::DIVIDE,
358372 utils::EltwiseTypes::FLOOR_MOD,
359373 utils::EltwiseTypes::MOD,
360374 utils::EltwiseTypes::POWER,
@@ -375,9 +389,7 @@ const std::vector<utils::EltwiseTypes>& eltwiseOpTypesBinDyn() {
375389 static const std::vector<utils::EltwiseTypes> eltwiseOpTypesBinDyn = {
376390 utils::EltwiseTypes::ADD,
377391 utils::EltwiseTypes::MULTIPLY,
378- #if defined(OPENVINO_ARCH_X86) || defined(OPENVINO_ARCH_X86_64) // TODO: Fix CVS-105430
379392 utils::EltwiseTypes::SUBTRACT,
380- #endif
381393 utils::EltwiseTypes::SQUARED_DIFF,
382394 };
383395 return eltwiseOpTypesBinDyn;
@@ -451,10 +463,8 @@ const std::vector<utils::EltwiseTypes>& eltwiseOpTypesI32() {
451463 static const std::vector<utils::EltwiseTypes> eltwiseOpTypesI32 = {
452464 utils::EltwiseTypes::ADD,
453465 utils::EltwiseTypes::MULTIPLY,
454- #if defined(OPENVINO_ARCH_X86) || defined(OPENVINO_ARCH_X86_64) // TODO: Fix CVS-105430
455466 utils::EltwiseTypes::SUBTRACT,
456467 utils::EltwiseTypes::DIVIDE,
457- #endif
458468 utils::EltwiseTypes::SQUARED_DIFF,
459469 };
460470 return eltwiseOpTypesI32;
0 commit comments