blob: 36cbbfbd1345c295a70c6055d5abcac87edd8fcd [file] [log] [blame]
Frank Barchardd5b9f1c2020-07-01 15:00:19 -07001// Copyright 2019 Google LLC
2//
3// This source code is licensed under the BSD-style license found in the
4// LICENSE file in the root directory of this source tree.
5//
6// Auto-generated file. Do not edit!
7// Specification: test/f32-vmul.yaml
8// Generator: tools/generate-vbinary-test.py
9
10
11#include <gtest/gtest.h>
12
13#include <xnnpack/common.h>
14#include <xnnpack/isa-checks.h>
15
Marat Dukhan87bd5112021-08-02 11:43:53 -070016#include <xnnpack/params-init.h>
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070017#include <xnnpack/vbinary.h>
18#include "vbinary-microkernel-tester.h"
19
20
Marat Dukhan4c617792021-12-21 15:47:58 -080021#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070022 TEST(F32_VMUL__WASMSIMD_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070023 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070024 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070025 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070026 }
27
28 TEST(F32_VMUL__WASMSIMD_X4, batch_div_4) {
29 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070030 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070031 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070032 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070033 }
34 }
35
36 TEST(F32_VMUL__WASMSIMD_X4, batch_lt_4) {
37 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070038 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070039 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070040 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070041 }
42 }
43
44 TEST(F32_VMUL__WASMSIMD_X4, batch_gt_4) {
45 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070046 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070047 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070048 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070049 }
50 }
51
52 TEST(F32_VMUL__WASMSIMD_X4, inplace_a) {
53 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070054 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070055 .batch_size(batch_size)
56 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070057 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070058 }
59 }
60
61 TEST(F32_VMUL__WASMSIMD_X4, inplace_b) {
62 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070063 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070064 .batch_size(batch_size)
65 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070066 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070067 }
68 }
69
70 TEST(F32_VMUL__WASMSIMD_X4, inplace_a_and_b) {
71 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070072 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070073 .batch_size(batch_size)
74 .inplace_a(true)
75 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070076 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070077 }
78 }
Marat Dukhan4c617792021-12-21 15:47:58 -080079#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070080
81
Marat Dukhan4c617792021-12-21 15:47:58 -080082#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070083 TEST(F32_VMUL__WASMSIMD_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070084 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070085 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070086 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070087 }
88
89 TEST(F32_VMUL__WASMSIMD_X8, batch_div_8) {
90 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070091 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070092 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070093 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -070094 }
95 }
96
97 TEST(F32_VMUL__WASMSIMD_X8, batch_lt_8) {
98 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070099 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700100 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700101 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700102 }
103 }
104
105 TEST(F32_VMUL__WASMSIMD_X8, batch_gt_8) {
106 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700107 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700108 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700109 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700110 }
111 }
112
113 TEST(F32_VMUL__WASMSIMD_X8, inplace_a) {
114 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700115 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700116 .batch_size(batch_size)
117 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700118 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700119 }
120 }
121
122 TEST(F32_VMUL__WASMSIMD_X8, inplace_b) {
123 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700124 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700125 .batch_size(batch_size)
126 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700127 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700128 }
129 }
130
131 TEST(F32_VMUL__WASMSIMD_X8, inplace_a_and_b) {
132 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700133 VBinaryMicrokernelTester()
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700134 .batch_size(batch_size)
135 .inplace_a(true)
136 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700137 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchardd5b9f1c2020-07-01 15:00:19 -0700138 }
139 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800140#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard8e229db2020-07-06 23:31:35 -0700141
142
Marat Dukhan4c617792021-12-21 15:47:58 -0800143#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700144 TEST(F32_VMUL__WASMSIMD_X16, batch_eq_16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700145 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700146 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700147 .Test(xnn_f32_vmul_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700148 }
149
150 TEST(F32_VMUL__WASMSIMD_X16, batch_div_16) {
151 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700152 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700153 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700154 .Test(xnn_f32_vmul_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700155 }
156 }
157
158 TEST(F32_VMUL__WASMSIMD_X16, batch_lt_16) {
159 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700160 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700161 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700162 .Test(xnn_f32_vmul_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700163 }
164 }
165
166 TEST(F32_VMUL__WASMSIMD_X16, batch_gt_16) {
167 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700168 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700169 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700170 .Test(xnn_f32_vmul_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700171 }
172 }
173
174 TEST(F32_VMUL__WASMSIMD_X16, inplace_a) {
175 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700176 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700177 .batch_size(batch_size)
178 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700179 .Test(xnn_f32_vmul_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700180 }
181 }
182
183 TEST(F32_VMUL__WASMSIMD_X16, inplace_b) {
184 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700185 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700186 .batch_size(batch_size)
187 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700188 .Test(xnn_f32_vmul_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700189 }
190 }
191
192 TEST(F32_VMUL__WASMSIMD_X16, inplace_a_and_b) {
193 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700194 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700195 .batch_size(batch_size)
196 .inplace_a(true)
197 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700198 .Test(xnn_f32_vmul_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700199 }
200 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800201#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700202
203
Frank Barchard8e229db2020-07-06 23:31:35 -0700204TEST(F32_VMUL__SCALAR_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700205 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700206 .batch_size(1)
Marat Dukhan98c52152021-12-30 13:31:00 -0800207 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700208}
209
210TEST(F32_VMUL__SCALAR_X1, batch_gt_1) {
211 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700212 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700213 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800214 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700215 }
216}
217
218TEST(F32_VMUL__SCALAR_X1, inplace_a) {
219 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700220 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700221 .batch_size(batch_size)
222 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800223 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700224 }
225}
226
227TEST(F32_VMUL__SCALAR_X1, inplace_b) {
228 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700229 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700230 .batch_size(batch_size)
231 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800232 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700233 }
234}
235
236TEST(F32_VMUL__SCALAR_X1, inplace_a_and_b) {
237 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700238 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700239 .batch_size(batch_size)
240 .inplace_a(true)
241 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800242 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700243 }
244}
245
246
247TEST(F32_VMUL__SCALAR_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700248 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700249 .batch_size(2)
Marat Dukhan98c52152021-12-30 13:31:00 -0800250 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700251}
252
253TEST(F32_VMUL__SCALAR_X2, batch_div_2) {
254 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700255 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700256 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800257 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700258 }
259}
260
261TEST(F32_VMUL__SCALAR_X2, batch_lt_2) {
262 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700263 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700264 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800265 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700266 }
267}
268
269TEST(F32_VMUL__SCALAR_X2, batch_gt_2) {
270 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700271 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700272 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800273 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700274 }
275}
276
277TEST(F32_VMUL__SCALAR_X2, inplace_a) {
278 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700279 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700280 .batch_size(batch_size)
281 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800282 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700283 }
284}
285
286TEST(F32_VMUL__SCALAR_X2, inplace_b) {
287 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700288 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700289 .batch_size(batch_size)
290 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800291 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700292 }
293}
294
295TEST(F32_VMUL__SCALAR_X2, inplace_a_and_b) {
296 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700297 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700298 .batch_size(batch_size)
299 .inplace_a(true)
300 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800301 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700302 }
303}
304
305
306TEST(F32_VMUL__SCALAR_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700307 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700308 .batch_size(4)
Marat Dukhan98c52152021-12-30 13:31:00 -0800309 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700310}
311
312TEST(F32_VMUL__SCALAR_X4, batch_div_4) {
313 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700314 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700315 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800316 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700317 }
318}
319
320TEST(F32_VMUL__SCALAR_X4, batch_lt_4) {
321 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700322 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700323 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800324 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700325 }
326}
327
328TEST(F32_VMUL__SCALAR_X4, batch_gt_4) {
329 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700330 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700331 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800332 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700333 }
334}
335
336TEST(F32_VMUL__SCALAR_X4, inplace_a) {
337 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700338 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700339 .batch_size(batch_size)
340 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800341 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700342 }
343}
344
345TEST(F32_VMUL__SCALAR_X4, inplace_b) {
346 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700347 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700348 .batch_size(batch_size)
349 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800350 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700351 }
352}
353
354TEST(F32_VMUL__SCALAR_X4, inplace_a_and_b) {
355 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700356 VBinaryMicrokernelTester()
Frank Barchard8e229db2020-07-06 23:31:35 -0700357 .batch_size(batch_size)
358 .inplace_a(true)
359 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800360 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard8e229db2020-07-06 23:31:35 -0700361 }
362}
Frank Barchard9c7308f2020-08-31 17:03:01 -0700363
364
365TEST(F32_VMUL__SCALAR_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700366 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700367 .batch_size(8)
Marat Dukhan98c52152021-12-30 13:31:00 -0800368 .Test(xnn_f32_vmul_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700369}
370
371TEST(F32_VMUL__SCALAR_X8, batch_div_8) {
372 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700373 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700374 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800375 .Test(xnn_f32_vmul_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700376 }
377}
378
379TEST(F32_VMUL__SCALAR_X8, batch_lt_8) {
380 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700381 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700382 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800383 .Test(xnn_f32_vmul_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700384 }
385}
386
387TEST(F32_VMUL__SCALAR_X8, batch_gt_8) {
388 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700389 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700390 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800391 .Test(xnn_f32_vmul_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700392 }
393}
394
395TEST(F32_VMUL__SCALAR_X8, inplace_a) {
396 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700397 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700398 .batch_size(batch_size)
399 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800400 .Test(xnn_f32_vmul_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700401 }
402}
403
404TEST(F32_VMUL__SCALAR_X8, inplace_b) {
405 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700406 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700407 .batch_size(batch_size)
408 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800409 .Test(xnn_f32_vmul_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700410 }
411}
412
413TEST(F32_VMUL__SCALAR_X8, inplace_a_and_b) {
414 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700415 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700416 .batch_size(batch_size)
417 .inplace_a(true)
418 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800419 .Test(xnn_f32_vmul_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Mul);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700420 }
421}