blob: 0cc97a2c26853d390f3ce9cf688397b68fafca1b [file] [log] [blame]
John Richardsondd715f22017-09-18 16:10:48 +01001/*
Manuel Bottini79fa9a22019-02-22 17:54:22 +00002 * Copyright (c) 2017-2019 ARM Limited.
John Richardsondd715f22017-09-18 16:10:48 +01003 *
4 * SPDX-License-Identifier: MIT
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to
8 * deal in the Software without restriction, including without limitation the
9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in all
14 * copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
23 */
24#include "arm_compute/runtime/NEON/functions/NEPixelWiseMultiplication.h"
25#include "tests/NEON/Accessor.h"
26#include "tests/PaddingCalculator.h"
27#include "tests/datasets/ConvertPolicyDataset.h"
28#include "tests/datasets/ShapeDatasets.h"
29#include "tests/framework/Macros.h"
30#include "tests/validation/Validation.h"
31#include "tests/validation/fixtures/PixelWiseMultiplicationFixture.h"
32
33namespace arm_compute
34{
35namespace test
36{
37namespace validation
38{
39namespace
40{
41const float scale_unity = 1.f;
42const float scale_255 = 1.f / 255.f;
43const float scale_other = 1.f / 32768.f;
44
45#define DEFAULT_VALIDATE validate(Accessor(_target), _reference);
Manuel Bottini79fa9a22019-02-22 17:54:22 +000046#define QASYMM8_VALIDATE validate(Accessor(_target), _reference, AbsoluteTolerance<uint8_t>(1), 0.f);
John Richardson9c450cc2017-11-22 12:00:41 +000047#define VALIDATE(TYPE, TOLERANCE) validate(Accessor(_target), _reference, AbsoluteTolerance<TYPE>(TOLERANCE), 0.f);
John Richardsondd715f22017-09-18 16:10:48 +010048#define WRAP_VALIDATE(TYPE, TOLERANCE) validate_wrap(Accessor(_target), _reference, AbsoluteTolerance<TYPE>(TOLERANCE), 0.f);
49
50// *INDENT-OFF*
51// clang-format off
52#define PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(DT1, DT2, SCALE, RP) \
53 DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, \
54 combine(combine(combine(combine(combine( \
55 concat(datasets::SmallShapes(), datasets::LargeShapes()), \
56 framework::dataset::make("DataType1", DataType::DT1)), \
57 framework::dataset::make("DataType2", DataType::DT2)), \
58 framework::dataset::make("Scale", std::move(SCALE))), \
59 datasets::ConvertPolicies()), \
60 framework::dataset::make("RoundingPolicy", RoundingPolicy::RP)), \
61 shape, dt1, dt2, scale, convert_policy, rounding_policy) \
62 { \
63 validate_configuration(shape, dt1, dt2, scale, convert_policy, rounding_policy); \
64 }
65
66#define PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(TEST_NAME, FIXTURE, MODE, SHAPES, DT1, DT2, SCALE, RP, VALIDATE) \
67 FIXTURE_DATA_TEST_CASE(TEST_NAME, NEPixelWiseMultiplication##FIXTURE, framework::DatasetMode::MODE, \
68 combine(combine(combine(combine(combine( \
69 datasets::SHAPES, \
70 framework::dataset::make("DataType1", DataType::DT1)), \
71 framework::dataset::make("DataType2", DataType::DT2)), \
72 framework::dataset::make("Scale", std::move(SCALE))), \
73 datasets::ConvertPolicies()), \
74 framework::dataset::make("RoundingPolicy", RoundingPolicy::RP))) \
75 { \
76 VALIDATE \
77 }
Manuel Bottini79fa9a22019-02-22 17:54:22 +000078
79#define PIXEL_WISE_MULTIPLICATION_FIXTURE_QASYMM8_DATA_TEST_CASE(TEST_NAME, FIXTURE, MODE, SHAPES, DT1, DT2, SCALE, RP, VALIDATE) \
80 FIXTURE_DATA_TEST_CASE(TEST_NAME, NEPixelWiseMultiplication##FIXTURE, framework::DatasetMode::MODE, \
81 combine(combine(combine(combine(combine(combine(combine(combine( \
82 datasets::SHAPES, \
83 framework::dataset::make("DataType1", DataType::DT1)), \
84 framework::dataset::make("DataType2", DataType::DT2)), \
85 framework::dataset::make("Scale", std::move(SCALE))), \
86 framework::dataset::make("ConvertPolicy", ConvertPolicy::SATURATE)), \
87 framework::dataset::make("RoundingPolicy", RoundingPolicy::RP)), \
88 framework::dataset::make("QuantizationInfoIn1", QuantizationInfo(1.0 , 0))), \
89 framework::dataset::make("QuantizationInfoIn2", QuantizationInfo(1.0 , 0))), \
90 framework::dataset::make("QuantizationInfoOut", QuantizationInfo(100.0, 10)))) \
91 { \
92 VALIDATE \
93 }
94
95
John Richardsondd715f22017-09-18 16:10:48 +010096// *INDENT-ON*
97// clang-format on
98
99void validate_configuration(TensorShape shape, DataType dt1, DataType dt2, float scale, ConvertPolicy convert_policy, RoundingPolicy rounding_policy)
100{
101 Tensor src1 = create_tensor<Tensor>(shape, dt1);
102 Tensor src2 = create_tensor<Tensor>(shape, dt2);
103 Tensor dst = create_tensor<Tensor>(shape, dt2);
104
105 ARM_COMPUTE_EXPECT(src1.info()->is_resizable(), framework::LogLevel::ERRORS);
106 ARM_COMPUTE_EXPECT(src2.info()->is_resizable(), framework::LogLevel::ERRORS);
107 ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS);
108
109 // Create and configure function
110 NEPixelWiseMultiplication multiply;
111 multiply.configure(&src1, &src2, &dst, scale, convert_policy, rounding_policy);
112
113 // Validate valid region
114 const ValidRegion valid_region = shape_to_valid_region(shape);
115 validate(src1.info()->valid_region(), valid_region);
116 validate(src2.info()->valid_region(), valid_region);
117 validate(dst.info()->valid_region(), valid_region);
118
119 // Validate padding
120 const PaddingSize padding = PaddingCalculator(shape.x(), 16).required_padding();
121 validate(src1.info()->padding(), padding);
122 validate(src2.info()->padding(), padding);
123 validate(dst.info()->padding(), padding);
124}
125} // namespace
126
Manuel Bottini79fa9a22019-02-22 17:54:22 +0000127using NEPixelWiseMultiplicationToQASYMM8Fixture = PixelWiseMultiplicationQuatizedValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, uint8_t, uint8_t>;
John Richardsondd715f22017-09-18 16:10:48 +0100128template <typename T>
129using NEPixelWiseMultiplicationToU8Fixture = PixelWiseMultiplicationValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, uint8_t>;
130template <typename T>
131using NEPixelWiseMultiplicationToS16Fixture = PixelWiseMultiplicationValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, int16_t>;
132template <typename T>
133using NEPixelWiseMultiplicationToF16Fixture = PixelWiseMultiplicationValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, half_float::half>;
134template <typename T>
135using NEPixelWiseMultiplicationToF32Fixture = PixelWiseMultiplicationValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, float>;
136template <typename T>
Michalis Spyrou861f0db2018-02-26 16:47:58 +0000137using NEPixelWiseMultiplicationBroadcastFixture = PixelWiseMultiplicationBroadcastValidationFixture<Tensor, Accessor, NEPixelWiseMultiplication, T, float>;
John Richardsondd715f22017-09-18 16:10:48 +0100138
139TEST_SUITE(NEON)
140TEST_SUITE(PixelWiseMultiplication)
141
Ioan-Cristian Szabo754e9522017-11-28 18:29:43 +0000142// *INDENT-OFF*
143// clang-format off
144DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
145 framework::dataset::make("Input1Info", { TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
146 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
147 TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::U8), // Window shrink
148 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8), // Invalid scale
149 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8), // Invalid data type combination
150 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::F32), // Mismatching shapes
Manuel Bottini79fa9a22019-02-22 17:54:22 +0000151 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::F32), // Mismatching data type
152 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::QASYMM8), // Mismatching data type
Ioan-Cristian Szabo754e9522017-11-28 18:29:43 +0000153 }),
154 framework::dataset::make("Input2Info",{ TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
155 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
156 TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::U8),
157 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
158 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::S16),
159 TensorInfo(TensorShape(48U, 11U, 2U), 1, DataType::F32),
Vidhya Sudhan Loganathan0fc25452018-06-18 14:40:56 +0100160 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
Manuel Bottini79fa9a22019-02-22 17:54:22 +0000161 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
Ioan-Cristian Szabo754e9522017-11-28 18:29:43 +0000162 })),
163 framework::dataset::make("OutputInfo",{ TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::S16),
164 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
165 TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::U8),
166 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
167 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
168 TensorInfo(TensorShape(48U, 11U, 2U), 1, DataType::F32),
Vidhya Sudhan Loganathan0fc25452018-06-18 14:40:56 +0100169 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
Manuel Bottini79fa9a22019-02-22 17:54:22 +0000170 TensorInfo(TensorShape(32U, 13U, 2U), 1, DataType::U8),
Ioan-Cristian Szabo754e9522017-11-28 18:29:43 +0000171 })),
Vidhya Sudhan Loganathan0fc25452018-06-18 14:40:56 +0100172 framework::dataset::make("Scale",{ scale_unity, scale_unity, scale_unity, -1.f, scale_unity, scale_unity, scale_unity})),
Manuel Bottini79fa9a22019-02-22 17:54:22 +0000173 framework::dataset::make("Expected", { true, true, false, false, false, false, false, false })),
Ioan-Cristian Szabo754e9522017-11-28 18:29:43 +0000174 input1_info, input2_info, output_info, scale, expected)
175{
176 bool has_error = bool(NEPixelWiseMultiplication::validate(&input1_info.clone()->set_is_resizable(false), &input2_info.clone()->set_is_resizable(false), &output_info.clone()->set_is_resizable(false), scale, ConvertPolicy::WRAP, RoundingPolicy::TO_ZERO));
177 ARM_COMPUTE_EXPECT(has_error == expected, framework::LogLevel::ERRORS);
178}
179// clang-format on
180// *INDENT-ON*
181
Manuel Bottini79fa9a22019-02-22 17:54:22 +0000182TEST_SUITE(QASYMM8toQASYMM8)
183
184TEST_SUITE(Scale255)
185PIXEL_WISE_MULTIPLICATION_FIXTURE_QASYMM8_DATA_TEST_CASE(RunSmall, ToQASYMM8Fixture, PRECOMMIT, SmallShapes(), QASYMM8, QASYMM8, scale_255, TO_NEAREST_UP, WRAP_VALIDATE(uint8_t, 1))
186PIXEL_WISE_MULTIPLICATION_FIXTURE_QASYMM8_DATA_TEST_CASE(RunLarge, ToQASYMM8Fixture, NIGHTLY, LargeShapes(), QASYMM8, QASYMM8, scale_255, TO_NEAREST_UP, WRAP_VALIDATE(uint8_t, 1))
187TEST_SUITE_END() // Scale255
188
189TEST_SUITE(ScaleUnity)
190PIXEL_WISE_MULTIPLICATION_FIXTURE_QASYMM8_DATA_TEST_CASE(RunSmall, ToQASYMM8Fixture, PRECOMMIT, SmallShapes(), QASYMM8, QASYMM8, scale_unity, TO_ZERO, QASYMM8_VALIDATE)
191PIXEL_WISE_MULTIPLICATION_FIXTURE_QASYMM8_DATA_TEST_CASE(RunLarge, ToQASYMM8Fixture, NIGHTLY, LargeShapes(), QASYMM8, QASYMM8, scale_unity, TO_ZERO, QASYMM8_VALIDATE)
192TEST_SUITE_END() // ScaleUnity
193
194TEST_SUITE(ScaleOther)
195PIXEL_WISE_MULTIPLICATION_FIXTURE_QASYMM8_DATA_TEST_CASE(RunSmall, ToQASYMM8Fixture, PRECOMMIT, SmallShapes(), QASYMM8, QASYMM8, scale_other, TO_ZERO, QASYMM8_VALIDATE)
196PIXEL_WISE_MULTIPLICATION_FIXTURE_QASYMM8_DATA_TEST_CASE(RunLarge, ToQASYMM8Fixture, NIGHTLY, LargeShapes(), QASYMM8, QASYMM8, scale_other, TO_ZERO, QASYMM8_VALIDATE)
197TEST_SUITE_END() // ScaleOther
198
199TEST_SUITE_END() // QASYMM8toQASYMM8
200
John Richardsondd715f22017-09-18 16:10:48 +0100201TEST_SUITE(U8toU8)
202
203TEST_SUITE(Scale255)
204PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(U8, U8, scale_255, TO_NEAREST_UP)
205PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToU8Fixture<uint8_t>, PRECOMMIT, SmallShapes(), U8, U8, scale_255, TO_NEAREST_UP, WRAP_VALIDATE(uint8_t, 1))
206PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToU8Fixture<uint8_t>, NIGHTLY, LargeShapes(), U8, U8, scale_255, TO_NEAREST_UP, WRAP_VALIDATE(uint8_t, 1))
207TEST_SUITE_END() // Scale255
208
209TEST_SUITE(ScaleUnity)
210PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(U8, U8, scale_unity, TO_ZERO)
211PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToU8Fixture<uint8_t>, PRECOMMIT, SmallShapes(), U8, U8, scale_unity, TO_ZERO, DEFAULT_VALIDATE)
212PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToU8Fixture<uint8_t>, NIGHTLY, LargeShapes(), U8, U8, scale_unity, TO_ZERO, DEFAULT_VALIDATE)
213TEST_SUITE_END() // ScaleUnity
214
215TEST_SUITE(ScaleOther)
216PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(U8, U8, scale_other, TO_ZERO)
217PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToU8Fixture<uint8_t>, PRECOMMIT, SmallShapes(), U8, U8, scale_other, TO_ZERO, DEFAULT_VALIDATE)
218PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToU8Fixture<uint8_t>, NIGHTLY, LargeShapes(), U8, U8, scale_other, TO_ZERO, DEFAULT_VALIDATE)
219TEST_SUITE_END() // ScaleOther
220
221TEST_SUITE_END() // U8toU8
222
223TEST_SUITE(U8toS16)
224
225TEST_SUITE(Scale255)
226PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(U8, S16, scale_255, TO_NEAREST_UP)
227PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToS16Fixture<uint8_t>, PRECOMMIT, SmallShapes(), U8, S16, scale_255, TO_NEAREST_UP, WRAP_VALIDATE(int16_t, 2))
228PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToS16Fixture<uint8_t>, NIGHTLY, LargeShapes(), U8, S16, scale_255, TO_NEAREST_UP, WRAP_VALIDATE(int16_t, 2))
229TEST_SUITE_END() // Scale255
230
231TEST_SUITE(ScaleUnity)
232PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(U8, S16, scale_unity, TO_ZERO)
233PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToS16Fixture<uint8_t>, PRECOMMIT, SmallShapes(), U8, S16, scale_unity, TO_ZERO, DEFAULT_VALIDATE)
234PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToS16Fixture<uint8_t>, NIGHTLY, LargeShapes(), U8, S16, scale_unity, TO_ZERO, DEFAULT_VALIDATE)
235TEST_SUITE_END() // ScaleUnity
236
237TEST_SUITE(ScaleOther)
238PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(U8, S16, scale_other, TO_ZERO)
239PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToS16Fixture<uint8_t>, PRECOMMIT, SmallShapes(), U8, S16, scale_other, TO_ZERO, DEFAULT_VALIDATE)
240PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToS16Fixture<uint8_t>, NIGHTLY, LargeShapes(), U8, S16, scale_other, TO_ZERO, DEFAULT_VALIDATE)
241TEST_SUITE_END() // ScaleOther
242
243TEST_SUITE_END() // U8toS16
244
245TEST_SUITE(S16toS16)
246
247TEST_SUITE(Scale255)
248PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(S16, S16, scale_255, TO_NEAREST_UP)
249PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToS16Fixture<int16_t>, PRECOMMIT, SmallShapes(), S16, S16, scale_255, TO_NEAREST_UP, WRAP_VALIDATE(int16_t, 2))
250PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToS16Fixture<int16_t>, NIGHTLY, LargeShapes(), S16, S16, scale_255, TO_NEAREST_UP, WRAP_VALIDATE(int16_t, 2))
251TEST_SUITE_END() // Scale255
252
253TEST_SUITE(ScaleUnity)
254PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(S16, S16, scale_unity, TO_ZERO)
255PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToS16Fixture<int16_t>, PRECOMMIT, SmallShapes(), S16, S16, scale_unity, TO_ZERO, DEFAULT_VALIDATE)
256PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToS16Fixture<int16_t>, NIGHTLY, LargeShapes(), S16, S16, scale_unity, TO_ZERO, DEFAULT_VALIDATE)
257TEST_SUITE_END() // ScaleUnity
258
259TEST_SUITE(ScaleOther)
260PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(S16, S16, scale_other, TO_ZERO)
261PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToS16Fixture<int16_t>, PRECOMMIT, SmallShapes(), S16, S16, scale_other, TO_ZERO, DEFAULT_VALIDATE)
262PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToS16Fixture<int16_t>, NIGHTLY, LargeShapes(), S16, S16, scale_other, TO_ZERO, DEFAULT_VALIDATE)
263TEST_SUITE_END() // ScaleOther
264
265TEST_SUITE_END() // S16toS16
266
Ioan-Cristian Szabo5edbd1c2017-11-13 13:34:08 +0000267#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
John Richardsondd715f22017-09-18 16:10:48 +0100268TEST_SUITE(F16toF16)
269
270TEST_SUITE(Scale255)
John Richardson9c450cc2017-11-22 12:00:41 +0000271PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToF16Fixture<half_float::half>, PRECOMMIT, SmallShapes(), F16, F16, scale_255, TO_NEAREST_UP, VALIDATE(float, 1.f))
John Richardsondd715f22017-09-18 16:10:48 +0100272TEST_SUITE_END() // Scale255
273
274TEST_SUITE_END() // F16toF16
Ioan-Cristian Szabo5edbd1c2017-11-13 13:34:08 +0000275#endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */
John Richardsondd715f22017-09-18 16:10:48 +0100276
277TEST_SUITE(F32toF32)
278
279TEST_SUITE(Scale255)
280PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(F32, F32, scale_255, TO_NEAREST_UP)
John Richardson9c450cc2017-11-22 12:00:41 +0000281PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToF32Fixture<float>, PRECOMMIT, SmallShapes(), F32, F32, scale_255, TO_NEAREST_UP, VALIDATE(float, 1.f))
282PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToF32Fixture<float>, NIGHTLY, LargeShapes(), F32, F32, scale_255, TO_NEAREST_UP, VALIDATE(float, 1.f))
John Richardsondd715f22017-09-18 16:10:48 +0100283TEST_SUITE_END() // Scale255
284
285TEST_SUITE(ScaleUnity)
286PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(F32, F32, scale_unity, TO_ZERO)
287PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToF32Fixture<float>, PRECOMMIT, SmallShapes(), F32, F32, scale_unity, TO_ZERO, DEFAULT_VALIDATE)
288PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToF32Fixture<float>, NIGHTLY, LargeShapes(), F32, F32, scale_unity, TO_ZERO, DEFAULT_VALIDATE)
289TEST_SUITE_END() // ScaleUnity
290
291TEST_SUITE(ScaleOther)
292PIXEL_WISE_MULTIPLICATION_DATA_TEST_CASE(F32, F32, scale_other, TO_ZERO)
293PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, ToF32Fixture<float>, PRECOMMIT, SmallShapes(), F32, F32, scale_other, TO_ZERO, DEFAULT_VALIDATE)
294PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunLarge, ToF32Fixture<float>, NIGHTLY, LargeShapes(), F32, F32, scale_other, TO_ZERO, DEFAULT_VALIDATE)
295TEST_SUITE_END() // ScaleOther
296
297TEST_SUITE_END() // F32toF32
298
Michalis Spyrou861f0db2018-02-26 16:47:58 +0000299TEST_SUITE(Broadcast)
300PIXEL_WISE_MULTIPLICATION_FIXTURE_DATA_TEST_CASE(RunSmall, BroadcastFixture<float>, PRECOMMIT, SmallShapesBroadcast(), F32, F32, scale_255, TO_NEAREST_UP, VALIDATE(float, 1.f))
301TEST_SUITE_END() // Broadcast
302
John Richardsondd715f22017-09-18 16:10:48 +0100303TEST_SUITE_END()
304TEST_SUITE_END()
305} // namespace validation
306} // namespace test
307} // namespace arm_compute