IVGCVSW-4743: Fix CpuAcc Hal 1.3 Comparison Failures

Broadcast for QASYMM8_SIGNED was not handled.

Change-Id: Id5dbb0dce78838319218de94551bba52d697f4a4
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3131
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
diff --git a/tests/validation/NEON/Comparisons.cpp b/tests/validation/NEON/Comparisons.cpp
index 38e440e..f080c83 100644
--- a/tests/validation/NEON/Comparisons.cpp
+++ b/tests/validation/NEON/Comparisons.cpp
@@ -52,8 +52,9 @@
                                                                               DataType::F32
                                                                             }));
 
-const auto run_small_dataset = combine(datasets::ComparisonOperations(), datasets::SmallShapes());
-const auto run_large_dataset = combine(datasets::ComparisonOperations(), datasets::LargeShapes());
+const auto run_small_dataset           = combine(datasets::ComparisonOperations(), datasets::SmallShapes());
+const auto run_small_broadcast_dataset = combine(datasets::ComparisonOperations(), datasets::SmallShapesBroadcast());
+const auto run_large_dataset           = combine(datasets::ComparisonOperations(), datasets::LargeShapes());
 
 } // namespace
 
@@ -90,23 +91,6 @@
 // clang-format on
 // *INDENT-ON*
 
-DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, configure_dataset,
-               shape, data_type)
-{
-    // Create tensors
-    Tensor ref_src1 = create_tensor<Tensor>(shape, data_type);
-    Tensor ref_src2 = create_tensor<Tensor>(shape, data_type);
-    Tensor dst      = create_tensor<Tensor>(shape, DataType::U8);
-
-    // Create and Configure function
-    NEElementwiseComparison compare;
-    compare.configure(&ref_src1, &ref_src2, &dst, ComparisonOperation::Equal);
-
-    // Validate valid region
-    const ValidRegion valid_region = shape_to_valid_region(shape);
-    validate(dst.info()->valid_region(), valid_region);
-}
-
 template <typename T>
 using NEComparisonFixture = ComparisonValidationFixture<Tensor, Accessor, NEElementwiseComparison, T>;
 
@@ -154,6 +138,8 @@
 
 template <typename T>
 using NEComparisonQuantizedFixture = ComparisonValidationQuantizedFixture<Tensor, Accessor, NEElementwiseComparison, T>;
+template <typename T>
+using NEComparisonQuantizedBroadcastFixture = ComparisonQuantizedBroadcastValidationFixture<Tensor, Accessor, NEElementwiseComparison, T>;
 
 TEST_SUITE(Quantized)
 TEST_SUITE(QASYMM8)
@@ -169,11 +155,22 @@
 }
 TEST_SUITE_END()
 TEST_SUITE(QASYMM8_SIGNED)
+FIXTURE_DATA_TEST_CASE(RunSmallBroadcast,
+                       NEComparisonQuantizedBroadcastFixture<int8_t>,
+                       framework::DatasetMode::ALL,
+                       combine(combine(combine(run_small_broadcast_dataset, framework::dataset::make("DataType", DataType::QASYMM8_SIGNED)),
+                                       framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.1, -30) })),
+                               framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.3f, 2) })))
+{
+    // Validate output
+    validate(Accessor(_target), _reference);
+}
+
 FIXTURE_DATA_TEST_CASE(RunSmall,
                        NEComparisonQuantizedFixture<int8_t>,
                        framework::DatasetMode::PRECOMMIT,
                        combine(combine(combine(run_small_dataset, framework::dataset::make("DataType", DataType::QASYMM8_SIGNED)),
-                                       framework::dataset::make("QuantizationInfo", { QuantizationInfo() })),
+                                       framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.1, -30) })),
                                framework::dataset::make("QuantizationInfo", { QuantizationInfo(0.3f, 2) })))
 {
     // Validate output