blob: de4b96e7b859c28e14f81710b9a02c466d4444bd [file] [log] [blame]
Frank Barchard674778d2020-08-08 10:17:25 -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-relu.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
16#include <xnnpack/vbinary.h>
17#include "vbinary-microkernel-tester.h"
18
19
20#if XNN_ARCH_WASMSIMD
21 TEST(F32_VMUL_RELU__WASMSIMD_X4, batch_eq_4) {
22 VBinOpMicrokernelTester()
23 .batch_size(4)
24 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
25 }
26
27 TEST(F32_VMUL_RELU__WASMSIMD_X4, batch_div_4) {
28 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
29 VBinOpMicrokernelTester()
30 .batch_size(batch_size)
31 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
32 }
33 }
34
35 TEST(F32_VMUL_RELU__WASMSIMD_X4, batch_lt_4) {
36 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
37 VBinOpMicrokernelTester()
38 .batch_size(batch_size)
39 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
40 }
41 }
42
43 TEST(F32_VMUL_RELU__WASMSIMD_X4, batch_gt_4) {
44 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
45 VBinOpMicrokernelTester()
46 .batch_size(batch_size)
47 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
48 }
49 }
50
51 TEST(F32_VMUL_RELU__WASMSIMD_X4, inplace_a) {
52 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
53 VBinOpMicrokernelTester()
54 .batch_size(batch_size)
55 .inplace_a(true)
56 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
57 }
58 }
59
60 TEST(F32_VMUL_RELU__WASMSIMD_X4, inplace_b) {
61 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
62 VBinOpMicrokernelTester()
63 .batch_size(batch_size)
64 .inplace_b(true)
65 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
66 }
67 }
68
69 TEST(F32_VMUL_RELU__WASMSIMD_X4, inplace_a_and_b) {
70 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
71 VBinOpMicrokernelTester()
72 .batch_size(batch_size)
73 .inplace_a(true)
74 .inplace_b(true)
75 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
76 }
77 }
78#endif // XNN_ARCH_WASMSIMD
79
80
81#if XNN_ARCH_WASMSIMD
82 TEST(F32_VMUL_RELU__WASMSIMD_X8, batch_eq_8) {
83 VBinOpMicrokernelTester()
84 .batch_size(8)
85 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
86 }
87
88 TEST(F32_VMUL_RELU__WASMSIMD_X8, batch_div_8) {
89 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
90 VBinOpMicrokernelTester()
91 .batch_size(batch_size)
92 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
93 }
94 }
95
96 TEST(F32_VMUL_RELU__WASMSIMD_X8, batch_lt_8) {
97 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
98 VBinOpMicrokernelTester()
99 .batch_size(batch_size)
100 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
101 }
102 }
103
104 TEST(F32_VMUL_RELU__WASMSIMD_X8, batch_gt_8) {
105 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
106 VBinOpMicrokernelTester()
107 .batch_size(batch_size)
108 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
109 }
110 }
111
112 TEST(F32_VMUL_RELU__WASMSIMD_X8, inplace_a) {
113 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
114 VBinOpMicrokernelTester()
115 .batch_size(batch_size)
116 .inplace_a(true)
117 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
118 }
119 }
120
121 TEST(F32_VMUL_RELU__WASMSIMD_X8, inplace_b) {
122 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
123 VBinOpMicrokernelTester()
124 .batch_size(batch_size)
125 .inplace_b(true)
126 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
127 }
128 }
129
130 TEST(F32_VMUL_RELU__WASMSIMD_X8, inplace_a_and_b) {
131 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
132 VBinOpMicrokernelTester()
133 .batch_size(batch_size)
134 .inplace_a(true)
135 .inplace_b(true)
136 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
137 }
138 }
139#endif // XNN_ARCH_WASMSIMD
140
141
Frank Barchard9c7308f2020-08-31 17:03:01 -0700142#if XNN_ARCH_WASMSIMD
143 TEST(F32_VMUL_RELU__WASMSIMD_X16, batch_eq_16) {
144 VBinOpMicrokernelTester()
145 .batch_size(16)
146 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Mul);
147 }
148
149 TEST(F32_VMUL_RELU__WASMSIMD_X16, batch_div_16) {
150 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
151 VBinOpMicrokernelTester()
152 .batch_size(batch_size)
153 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Mul);
154 }
155 }
156
157 TEST(F32_VMUL_RELU__WASMSIMD_X16, batch_lt_16) {
158 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
159 VBinOpMicrokernelTester()
160 .batch_size(batch_size)
161 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Mul);
162 }
163 }
164
165 TEST(F32_VMUL_RELU__WASMSIMD_X16, batch_gt_16) {
166 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
167 VBinOpMicrokernelTester()
168 .batch_size(batch_size)
169 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Mul);
170 }
171 }
172
173 TEST(F32_VMUL_RELU__WASMSIMD_X16, inplace_a) {
174 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
175 VBinOpMicrokernelTester()
176 .batch_size(batch_size)
177 .inplace_a(true)
178 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Mul);
179 }
180 }
181
182 TEST(F32_VMUL_RELU__WASMSIMD_X16, inplace_b) {
183 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
184 VBinOpMicrokernelTester()
185 .batch_size(batch_size)
186 .inplace_b(true)
187 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Mul);
188 }
189 }
190
191 TEST(F32_VMUL_RELU__WASMSIMD_X16, inplace_a_and_b) {
192 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
193 VBinOpMicrokernelTester()
194 .batch_size(batch_size)
195 .inplace_a(true)
196 .inplace_b(true)
197 .Test(xnn_f32_vmul_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Mul);
198 }
199 }
200#endif // XNN_ARCH_WASMSIMD
201
202
Frank Barchard674778d2020-08-08 10:17:25 -0700203#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
204 TEST(F32_VMUL_RELU__WASM_X1, batch_eq_1) {
205 VBinOpMicrokernelTester()
206 .batch_size(1)
207 .Test(xnn_f32_vmul_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Mul);
208 }
209
210 TEST(F32_VMUL_RELU__WASM_X1, batch_gt_1) {
211 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
212 VBinOpMicrokernelTester()
213 .batch_size(batch_size)
214 .Test(xnn_f32_vmul_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Mul);
215 }
216 }
217
218 TEST(F32_VMUL_RELU__WASM_X1, inplace_a) {
219 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
220 VBinOpMicrokernelTester()
221 .batch_size(batch_size)
222 .inplace_a(true)
223 .Test(xnn_f32_vmul_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Mul);
224 }
225 }
226
227 TEST(F32_VMUL_RELU__WASM_X1, inplace_b) {
228 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
229 VBinOpMicrokernelTester()
230 .batch_size(batch_size)
231 .inplace_b(true)
232 .Test(xnn_f32_vmul_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Mul);
233 }
234 }
235
236 TEST(F32_VMUL_RELU__WASM_X1, inplace_a_and_b) {
237 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
238 VBinOpMicrokernelTester()
239 .batch_size(batch_size)
240 .inplace_a(true)
241 .inplace_b(true)
242 .Test(xnn_f32_vmul_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Mul);
243 }
244 }
245#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
246
247
248#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
249 TEST(F32_VMUL_RELU__WASM_X2, batch_eq_2) {
250 VBinOpMicrokernelTester()
251 .batch_size(2)
252 .Test(xnn_f32_vmul_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Mul);
253 }
254
255 TEST(F32_VMUL_RELU__WASM_X2, batch_div_2) {
256 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
257 VBinOpMicrokernelTester()
258 .batch_size(batch_size)
259 .Test(xnn_f32_vmul_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Mul);
260 }
261 }
262
263 TEST(F32_VMUL_RELU__WASM_X2, batch_lt_2) {
264 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
265 VBinOpMicrokernelTester()
266 .batch_size(batch_size)
267 .Test(xnn_f32_vmul_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Mul);
268 }
269 }
270
271 TEST(F32_VMUL_RELU__WASM_X2, batch_gt_2) {
272 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
273 VBinOpMicrokernelTester()
274 .batch_size(batch_size)
275 .Test(xnn_f32_vmul_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Mul);
276 }
277 }
278
279 TEST(F32_VMUL_RELU__WASM_X2, inplace_a) {
280 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
281 VBinOpMicrokernelTester()
282 .batch_size(batch_size)
283 .inplace_a(true)
284 .Test(xnn_f32_vmul_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Mul);
285 }
286 }
287
288 TEST(F32_VMUL_RELU__WASM_X2, inplace_b) {
289 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
290 VBinOpMicrokernelTester()
291 .batch_size(batch_size)
292 .inplace_b(true)
293 .Test(xnn_f32_vmul_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Mul);
294 }
295 }
296
297 TEST(F32_VMUL_RELU__WASM_X2, inplace_a_and_b) {
298 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
299 VBinOpMicrokernelTester()
300 .batch_size(batch_size)
301 .inplace_a(true)
302 .inplace_b(true)
303 .Test(xnn_f32_vmul_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Mul);
304 }
305 }
306#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
307
308
309#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
310 TEST(F32_VMUL_RELU__WASM_X4, batch_eq_4) {
311 VBinOpMicrokernelTester()
312 .batch_size(4)
313 .Test(xnn_f32_vmul_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Mul);
314 }
315
316 TEST(F32_VMUL_RELU__WASM_X4, batch_div_4) {
317 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
318 VBinOpMicrokernelTester()
319 .batch_size(batch_size)
320 .Test(xnn_f32_vmul_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Mul);
321 }
322 }
323
324 TEST(F32_VMUL_RELU__WASM_X4, batch_lt_4) {
325 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
326 VBinOpMicrokernelTester()
327 .batch_size(batch_size)
328 .Test(xnn_f32_vmul_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Mul);
329 }
330 }
331
332 TEST(F32_VMUL_RELU__WASM_X4, batch_gt_4) {
333 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
334 VBinOpMicrokernelTester()
335 .batch_size(batch_size)
336 .Test(xnn_f32_vmul_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Mul);
337 }
338 }
339
340 TEST(F32_VMUL_RELU__WASM_X4, inplace_a) {
341 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
342 VBinOpMicrokernelTester()
343 .batch_size(batch_size)
344 .inplace_a(true)
345 .Test(xnn_f32_vmul_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Mul);
346 }
347 }
348
349 TEST(F32_VMUL_RELU__WASM_X4, inplace_b) {
350 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
351 VBinOpMicrokernelTester()
352 .batch_size(batch_size)
353 .inplace_b(true)
354 .Test(xnn_f32_vmul_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Mul);
355 }
356 }
357
358 TEST(F32_VMUL_RELU__WASM_X4, inplace_a_and_b) {
359 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
360 VBinOpMicrokernelTester()
361 .batch_size(batch_size)
362 .inplace_a(true)
363 .inplace_b(true)
364 .Test(xnn_f32_vmul_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Mul);
365 }
366 }
367#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
368
369
Frank Barchard9c7308f2020-08-31 17:03:01 -0700370#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
371 TEST(F32_VMUL_RELU__WASM_X8, batch_eq_8) {
372 VBinOpMicrokernelTester()
373 .batch_size(8)
374 .Test(xnn_f32_vmul_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Mul);
375 }
376
377 TEST(F32_VMUL_RELU__WASM_X8, batch_div_8) {
378 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
379 VBinOpMicrokernelTester()
380 .batch_size(batch_size)
381 .Test(xnn_f32_vmul_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Mul);
382 }
383 }
384
385 TEST(F32_VMUL_RELU__WASM_X8, batch_lt_8) {
386 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
387 VBinOpMicrokernelTester()
388 .batch_size(batch_size)
389 .Test(xnn_f32_vmul_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Mul);
390 }
391 }
392
393 TEST(F32_VMUL_RELU__WASM_X8, batch_gt_8) {
394 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
395 VBinOpMicrokernelTester()
396 .batch_size(batch_size)
397 .Test(xnn_f32_vmul_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Mul);
398 }
399 }
400
401 TEST(F32_VMUL_RELU__WASM_X8, inplace_a) {
402 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
403 VBinOpMicrokernelTester()
404 .batch_size(batch_size)
405 .inplace_a(true)
406 .Test(xnn_f32_vmul_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Mul);
407 }
408 }
409
410 TEST(F32_VMUL_RELU__WASM_X8, inplace_b) {
411 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
412 VBinOpMicrokernelTester()
413 .batch_size(batch_size)
414 .inplace_b(true)
415 .Test(xnn_f32_vmul_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Mul);
416 }
417 }
418
419 TEST(F32_VMUL_RELU__WASM_X8, inplace_a_and_b) {
420 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
421 VBinOpMicrokernelTester()
422 .batch_size(batch_size)
423 .inplace_a(true)
424 .inplace_b(true)
425 .Test(xnn_f32_vmul_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Mul);
426 }
427 }
428#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
429
430
Frank Barchard674778d2020-08-08 10:17:25 -0700431TEST(F32_VMUL_RELU__SCALAR_X1, batch_eq_1) {
432 VBinOpMicrokernelTester()
433 .batch_size(1)
434 .Test(xnn_f32_vmul_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
435}
436
437TEST(F32_VMUL_RELU__SCALAR_X1, batch_gt_1) {
438 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
439 VBinOpMicrokernelTester()
440 .batch_size(batch_size)
441 .Test(xnn_f32_vmul_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
442 }
443}
444
445TEST(F32_VMUL_RELU__SCALAR_X1, inplace_a) {
446 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
447 VBinOpMicrokernelTester()
448 .batch_size(batch_size)
449 .inplace_a(true)
450 .Test(xnn_f32_vmul_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
451 }
452}
453
454TEST(F32_VMUL_RELU__SCALAR_X1, inplace_b) {
455 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
456 VBinOpMicrokernelTester()
457 .batch_size(batch_size)
458 .inplace_b(true)
459 .Test(xnn_f32_vmul_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
460 }
461}
462
463TEST(F32_VMUL_RELU__SCALAR_X1, inplace_a_and_b) {
464 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
465 VBinOpMicrokernelTester()
466 .batch_size(batch_size)
467 .inplace_a(true)
468 .inplace_b(true)
469 .Test(xnn_f32_vmul_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
470 }
471}
472
473
474TEST(F32_VMUL_RELU__SCALAR_X2, batch_eq_2) {
475 VBinOpMicrokernelTester()
476 .batch_size(2)
477 .Test(xnn_f32_vmul_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
478}
479
480TEST(F32_VMUL_RELU__SCALAR_X2, batch_div_2) {
481 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
482 VBinOpMicrokernelTester()
483 .batch_size(batch_size)
484 .Test(xnn_f32_vmul_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
485 }
486}
487
488TEST(F32_VMUL_RELU__SCALAR_X2, batch_lt_2) {
489 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
490 VBinOpMicrokernelTester()
491 .batch_size(batch_size)
492 .Test(xnn_f32_vmul_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
493 }
494}
495
496TEST(F32_VMUL_RELU__SCALAR_X2, batch_gt_2) {
497 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
498 VBinOpMicrokernelTester()
499 .batch_size(batch_size)
500 .Test(xnn_f32_vmul_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
501 }
502}
503
504TEST(F32_VMUL_RELU__SCALAR_X2, inplace_a) {
505 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
506 VBinOpMicrokernelTester()
507 .batch_size(batch_size)
508 .inplace_a(true)
509 .Test(xnn_f32_vmul_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
510 }
511}
512
513TEST(F32_VMUL_RELU__SCALAR_X2, inplace_b) {
514 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
515 VBinOpMicrokernelTester()
516 .batch_size(batch_size)
517 .inplace_b(true)
518 .Test(xnn_f32_vmul_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
519 }
520}
521
522TEST(F32_VMUL_RELU__SCALAR_X2, inplace_a_and_b) {
523 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
524 VBinOpMicrokernelTester()
525 .batch_size(batch_size)
526 .inplace_a(true)
527 .inplace_b(true)
528 .Test(xnn_f32_vmul_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
529 }
530}
531
532
533TEST(F32_VMUL_RELU__SCALAR_X4, batch_eq_4) {
534 VBinOpMicrokernelTester()
535 .batch_size(4)
536 .Test(xnn_f32_vmul_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
537}
538
539TEST(F32_VMUL_RELU__SCALAR_X4, batch_div_4) {
540 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
541 VBinOpMicrokernelTester()
542 .batch_size(batch_size)
543 .Test(xnn_f32_vmul_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
544 }
545}
546
547TEST(F32_VMUL_RELU__SCALAR_X4, batch_lt_4) {
548 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
549 VBinOpMicrokernelTester()
550 .batch_size(batch_size)
551 .Test(xnn_f32_vmul_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
552 }
553}
554
555TEST(F32_VMUL_RELU__SCALAR_X4, batch_gt_4) {
556 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
557 VBinOpMicrokernelTester()
558 .batch_size(batch_size)
559 .Test(xnn_f32_vmul_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
560 }
561}
562
563TEST(F32_VMUL_RELU__SCALAR_X4, inplace_a) {
564 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
565 VBinOpMicrokernelTester()
566 .batch_size(batch_size)
567 .inplace_a(true)
568 .Test(xnn_f32_vmul_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
569 }
570}
571
572TEST(F32_VMUL_RELU__SCALAR_X4, inplace_b) {
573 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
574 VBinOpMicrokernelTester()
575 .batch_size(batch_size)
576 .inplace_b(true)
577 .Test(xnn_f32_vmul_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
578 }
579}
580
581TEST(F32_VMUL_RELU__SCALAR_X4, inplace_a_and_b) {
582 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
583 VBinOpMicrokernelTester()
584 .batch_size(batch_size)
585 .inplace_a(true)
586 .inplace_b(true)
587 .Test(xnn_f32_vmul_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
588 }
589}
Frank Barchard9c7308f2020-08-31 17:03:01 -0700590
591
592TEST(F32_VMUL_RELU__SCALAR_X8, batch_eq_8) {
593 VBinOpMicrokernelTester()
594 .batch_size(8)
595 .Test(xnn_f32_vmul_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
596}
597
598TEST(F32_VMUL_RELU__SCALAR_X8, batch_div_8) {
599 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
600 VBinOpMicrokernelTester()
601 .batch_size(batch_size)
602 .Test(xnn_f32_vmul_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
603 }
604}
605
606TEST(F32_VMUL_RELU__SCALAR_X8, batch_lt_8) {
607 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
608 VBinOpMicrokernelTester()
609 .batch_size(batch_size)
610 .Test(xnn_f32_vmul_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
611 }
612}
613
614TEST(F32_VMUL_RELU__SCALAR_X8, batch_gt_8) {
615 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
616 VBinOpMicrokernelTester()
617 .batch_size(batch_size)
618 .Test(xnn_f32_vmul_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
619 }
620}
621
622TEST(F32_VMUL_RELU__SCALAR_X8, inplace_a) {
623 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
624 VBinOpMicrokernelTester()
625 .batch_size(batch_size)
626 .inplace_a(true)
627 .Test(xnn_f32_vmul_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
628 }
629}
630
631TEST(F32_VMUL_RELU__SCALAR_X8, inplace_b) {
632 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
633 VBinOpMicrokernelTester()
634 .batch_size(batch_size)
635 .inplace_b(true)
636 .Test(xnn_f32_vmul_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
637 }
638}
639
640TEST(F32_VMUL_RELU__SCALAR_X8, inplace_a_and_b) {
641 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
642 VBinOpMicrokernelTester()
643 .batch_size(batch_size)
644 .inplace_a(true)
645 .inplace_b(true)
646 .Test(xnn_f32_vmul_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
647 }
648}