1 // 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-vrelu.yaml
8 // Generator: tools/generate-vunary-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/vunary.h>
17 #include "vunary-microkernel-tester.h"
18
19
20 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_VRELU__NEON_X4,batch_eq_4)21 TEST(F32_VRELU__NEON_X4, batch_eq_4) {
22 TEST_REQUIRES_ARM_NEON;
23 VUnaryMicrokernelTester()
24 .batch_size(4)
25 .Test(xnn_f32_vrelu_ukernel__neon_x4);
26 }
27
TEST(F32_VRELU__NEON_X4,batch_div_4)28 TEST(F32_VRELU__NEON_X4, batch_div_4) {
29 TEST_REQUIRES_ARM_NEON;
30 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
31 VUnaryMicrokernelTester()
32 .batch_size(batch_size)
33 .Test(xnn_f32_vrelu_ukernel__neon_x4);
34 }
35 }
36
TEST(F32_VRELU__NEON_X4,batch_lt_4)37 TEST(F32_VRELU__NEON_X4, batch_lt_4) {
38 TEST_REQUIRES_ARM_NEON;
39 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
40 VUnaryMicrokernelTester()
41 .batch_size(batch_size)
42 .Test(xnn_f32_vrelu_ukernel__neon_x4);
43 }
44 }
45
TEST(F32_VRELU__NEON_X4,batch_gt_4)46 TEST(F32_VRELU__NEON_X4, batch_gt_4) {
47 TEST_REQUIRES_ARM_NEON;
48 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
49 VUnaryMicrokernelTester()
50 .batch_size(batch_size)
51 .Test(xnn_f32_vrelu_ukernel__neon_x4);
52 }
53 }
54
TEST(F32_VRELU__NEON_X4,inplace)55 TEST(F32_VRELU__NEON_X4, inplace) {
56 TEST_REQUIRES_ARM_NEON;
57 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
58 VUnaryMicrokernelTester()
59 .batch_size(batch_size)
60 .inplace(true)
61 .Test(xnn_f32_vrelu_ukernel__neon_x4);
62 }
63 }
64 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
65
66
67 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_VRELU__NEON_X8,batch_eq_8)68 TEST(F32_VRELU__NEON_X8, batch_eq_8) {
69 TEST_REQUIRES_ARM_NEON;
70 VUnaryMicrokernelTester()
71 .batch_size(8)
72 .Test(xnn_f32_vrelu_ukernel__neon_x8);
73 }
74
TEST(F32_VRELU__NEON_X8,batch_div_8)75 TEST(F32_VRELU__NEON_X8, batch_div_8) {
76 TEST_REQUIRES_ARM_NEON;
77 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
78 VUnaryMicrokernelTester()
79 .batch_size(batch_size)
80 .Test(xnn_f32_vrelu_ukernel__neon_x8);
81 }
82 }
83
TEST(F32_VRELU__NEON_X8,batch_lt_8)84 TEST(F32_VRELU__NEON_X8, batch_lt_8) {
85 TEST_REQUIRES_ARM_NEON;
86 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
87 VUnaryMicrokernelTester()
88 .batch_size(batch_size)
89 .Test(xnn_f32_vrelu_ukernel__neon_x8);
90 }
91 }
92
TEST(F32_VRELU__NEON_X8,batch_gt_8)93 TEST(F32_VRELU__NEON_X8, batch_gt_8) {
94 TEST_REQUIRES_ARM_NEON;
95 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
96 VUnaryMicrokernelTester()
97 .batch_size(batch_size)
98 .Test(xnn_f32_vrelu_ukernel__neon_x8);
99 }
100 }
101
TEST(F32_VRELU__NEON_X8,inplace)102 TEST(F32_VRELU__NEON_X8, inplace) {
103 TEST_REQUIRES_ARM_NEON;
104 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
105 VUnaryMicrokernelTester()
106 .batch_size(batch_size)
107 .inplace(true)
108 .Test(xnn_f32_vrelu_ukernel__neon_x8);
109 }
110 }
111 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
112
113
114 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRELU__SSE_X4,batch_eq_4)115 TEST(F32_VRELU__SSE_X4, batch_eq_4) {
116 TEST_REQUIRES_X86_SSE;
117 VUnaryMicrokernelTester()
118 .batch_size(4)
119 .Test(xnn_f32_vrelu_ukernel__sse_x4);
120 }
121
TEST(F32_VRELU__SSE_X4,batch_div_4)122 TEST(F32_VRELU__SSE_X4, batch_div_4) {
123 TEST_REQUIRES_X86_SSE;
124 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
125 VUnaryMicrokernelTester()
126 .batch_size(batch_size)
127 .Test(xnn_f32_vrelu_ukernel__sse_x4);
128 }
129 }
130
TEST(F32_VRELU__SSE_X4,batch_lt_4)131 TEST(F32_VRELU__SSE_X4, batch_lt_4) {
132 TEST_REQUIRES_X86_SSE;
133 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
134 VUnaryMicrokernelTester()
135 .batch_size(batch_size)
136 .Test(xnn_f32_vrelu_ukernel__sse_x4);
137 }
138 }
139
TEST(F32_VRELU__SSE_X4,batch_gt_4)140 TEST(F32_VRELU__SSE_X4, batch_gt_4) {
141 TEST_REQUIRES_X86_SSE;
142 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
143 VUnaryMicrokernelTester()
144 .batch_size(batch_size)
145 .Test(xnn_f32_vrelu_ukernel__sse_x4);
146 }
147 }
148
TEST(F32_VRELU__SSE_X4,inplace)149 TEST(F32_VRELU__SSE_X4, inplace) {
150 TEST_REQUIRES_X86_SSE;
151 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
152 VUnaryMicrokernelTester()
153 .batch_size(batch_size)
154 .inplace(true)
155 .Test(xnn_f32_vrelu_ukernel__sse_x4);
156 }
157 }
158 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
159
160
161 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRELU__SSE_X8,batch_eq_8)162 TEST(F32_VRELU__SSE_X8, batch_eq_8) {
163 TEST_REQUIRES_X86_SSE;
164 VUnaryMicrokernelTester()
165 .batch_size(8)
166 .Test(xnn_f32_vrelu_ukernel__sse_x8);
167 }
168
TEST(F32_VRELU__SSE_X8,batch_div_8)169 TEST(F32_VRELU__SSE_X8, batch_div_8) {
170 TEST_REQUIRES_X86_SSE;
171 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
172 VUnaryMicrokernelTester()
173 .batch_size(batch_size)
174 .Test(xnn_f32_vrelu_ukernel__sse_x8);
175 }
176 }
177
TEST(F32_VRELU__SSE_X8,batch_lt_8)178 TEST(F32_VRELU__SSE_X8, batch_lt_8) {
179 TEST_REQUIRES_X86_SSE;
180 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
181 VUnaryMicrokernelTester()
182 .batch_size(batch_size)
183 .Test(xnn_f32_vrelu_ukernel__sse_x8);
184 }
185 }
186
TEST(F32_VRELU__SSE_X8,batch_gt_8)187 TEST(F32_VRELU__SSE_X8, batch_gt_8) {
188 TEST_REQUIRES_X86_SSE;
189 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
190 VUnaryMicrokernelTester()
191 .batch_size(batch_size)
192 .Test(xnn_f32_vrelu_ukernel__sse_x8);
193 }
194 }
195
TEST(F32_VRELU__SSE_X8,inplace)196 TEST(F32_VRELU__SSE_X8, inplace) {
197 TEST_REQUIRES_X86_SSE;
198 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
199 VUnaryMicrokernelTester()
200 .batch_size(batch_size)
201 .inplace(true)
202 .Test(xnn_f32_vrelu_ukernel__sse_x8);
203 }
204 }
205 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
206
207
208 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRELU__AVX_X8,batch_eq_8)209 TEST(F32_VRELU__AVX_X8, batch_eq_8) {
210 TEST_REQUIRES_X86_AVX;
211 VUnaryMicrokernelTester()
212 .batch_size(8)
213 .Test(xnn_f32_vrelu_ukernel__avx_x8);
214 }
215
TEST(F32_VRELU__AVX_X8,batch_div_8)216 TEST(F32_VRELU__AVX_X8, batch_div_8) {
217 TEST_REQUIRES_X86_AVX;
218 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
219 VUnaryMicrokernelTester()
220 .batch_size(batch_size)
221 .Test(xnn_f32_vrelu_ukernel__avx_x8);
222 }
223 }
224
TEST(F32_VRELU__AVX_X8,batch_lt_8)225 TEST(F32_VRELU__AVX_X8, batch_lt_8) {
226 TEST_REQUIRES_X86_AVX;
227 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
228 VUnaryMicrokernelTester()
229 .batch_size(batch_size)
230 .Test(xnn_f32_vrelu_ukernel__avx_x8);
231 }
232 }
233
TEST(F32_VRELU__AVX_X8,batch_gt_8)234 TEST(F32_VRELU__AVX_X8, batch_gt_8) {
235 TEST_REQUIRES_X86_AVX;
236 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
237 VUnaryMicrokernelTester()
238 .batch_size(batch_size)
239 .Test(xnn_f32_vrelu_ukernel__avx_x8);
240 }
241 }
242
TEST(F32_VRELU__AVX_X8,inplace)243 TEST(F32_VRELU__AVX_X8, inplace) {
244 TEST_REQUIRES_X86_AVX;
245 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
246 VUnaryMicrokernelTester()
247 .batch_size(batch_size)
248 .inplace(true)
249 .Test(xnn_f32_vrelu_ukernel__avx_x8);
250 }
251 }
252 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
253
254
255 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRELU__AVX_X16,batch_eq_16)256 TEST(F32_VRELU__AVX_X16, batch_eq_16) {
257 TEST_REQUIRES_X86_AVX;
258 VUnaryMicrokernelTester()
259 .batch_size(16)
260 .Test(xnn_f32_vrelu_ukernel__avx_x16);
261 }
262
TEST(F32_VRELU__AVX_X16,batch_div_16)263 TEST(F32_VRELU__AVX_X16, batch_div_16) {
264 TEST_REQUIRES_X86_AVX;
265 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
266 VUnaryMicrokernelTester()
267 .batch_size(batch_size)
268 .Test(xnn_f32_vrelu_ukernel__avx_x16);
269 }
270 }
271
TEST(F32_VRELU__AVX_X16,batch_lt_16)272 TEST(F32_VRELU__AVX_X16, batch_lt_16) {
273 TEST_REQUIRES_X86_AVX;
274 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
275 VUnaryMicrokernelTester()
276 .batch_size(batch_size)
277 .Test(xnn_f32_vrelu_ukernel__avx_x16);
278 }
279 }
280
TEST(F32_VRELU__AVX_X16,batch_gt_16)281 TEST(F32_VRELU__AVX_X16, batch_gt_16) {
282 TEST_REQUIRES_X86_AVX;
283 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
284 VUnaryMicrokernelTester()
285 .batch_size(batch_size)
286 .Test(xnn_f32_vrelu_ukernel__avx_x16);
287 }
288 }
289
TEST(F32_VRELU__AVX_X16,inplace)290 TEST(F32_VRELU__AVX_X16, inplace) {
291 TEST_REQUIRES_X86_AVX;
292 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
293 VUnaryMicrokernelTester()
294 .batch_size(batch_size)
295 .inplace(true)
296 .Test(xnn_f32_vrelu_ukernel__avx_x16);
297 }
298 }
299 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
300
301
302 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRELU__AVX512F_X16,batch_eq_16)303 TEST(F32_VRELU__AVX512F_X16, batch_eq_16) {
304 TEST_REQUIRES_X86_AVX512F;
305 VUnaryMicrokernelTester()
306 .batch_size(16)
307 .Test(xnn_f32_vrelu_ukernel__avx512f_x16);
308 }
309
TEST(F32_VRELU__AVX512F_X16,batch_div_16)310 TEST(F32_VRELU__AVX512F_X16, batch_div_16) {
311 TEST_REQUIRES_X86_AVX512F;
312 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
313 VUnaryMicrokernelTester()
314 .batch_size(batch_size)
315 .Test(xnn_f32_vrelu_ukernel__avx512f_x16);
316 }
317 }
318
TEST(F32_VRELU__AVX512F_X16,batch_lt_16)319 TEST(F32_VRELU__AVX512F_X16, batch_lt_16) {
320 TEST_REQUIRES_X86_AVX512F;
321 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
322 VUnaryMicrokernelTester()
323 .batch_size(batch_size)
324 .Test(xnn_f32_vrelu_ukernel__avx512f_x16);
325 }
326 }
327
TEST(F32_VRELU__AVX512F_X16,batch_gt_16)328 TEST(F32_VRELU__AVX512F_X16, batch_gt_16) {
329 TEST_REQUIRES_X86_AVX512F;
330 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
331 VUnaryMicrokernelTester()
332 .batch_size(batch_size)
333 .Test(xnn_f32_vrelu_ukernel__avx512f_x16);
334 }
335 }
336
TEST(F32_VRELU__AVX512F_X16,inplace)337 TEST(F32_VRELU__AVX512F_X16, inplace) {
338 TEST_REQUIRES_X86_AVX512F;
339 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
340 VUnaryMicrokernelTester()
341 .batch_size(batch_size)
342 .inplace(true)
343 .Test(xnn_f32_vrelu_ukernel__avx512f_x16);
344 }
345 }
346 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
347
348
349 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRELU__AVX512F_X32,batch_eq_32)350 TEST(F32_VRELU__AVX512F_X32, batch_eq_32) {
351 TEST_REQUIRES_X86_AVX512F;
352 VUnaryMicrokernelTester()
353 .batch_size(32)
354 .Test(xnn_f32_vrelu_ukernel__avx512f_x32);
355 }
356
TEST(F32_VRELU__AVX512F_X32,batch_div_32)357 TEST(F32_VRELU__AVX512F_X32, batch_div_32) {
358 TEST_REQUIRES_X86_AVX512F;
359 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
360 VUnaryMicrokernelTester()
361 .batch_size(batch_size)
362 .Test(xnn_f32_vrelu_ukernel__avx512f_x32);
363 }
364 }
365
TEST(F32_VRELU__AVX512F_X32,batch_lt_32)366 TEST(F32_VRELU__AVX512F_X32, batch_lt_32) {
367 TEST_REQUIRES_X86_AVX512F;
368 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
369 VUnaryMicrokernelTester()
370 .batch_size(batch_size)
371 .Test(xnn_f32_vrelu_ukernel__avx512f_x32);
372 }
373 }
374
TEST(F32_VRELU__AVX512F_X32,batch_gt_32)375 TEST(F32_VRELU__AVX512F_X32, batch_gt_32) {
376 TEST_REQUIRES_X86_AVX512F;
377 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
378 VUnaryMicrokernelTester()
379 .batch_size(batch_size)
380 .Test(xnn_f32_vrelu_ukernel__avx512f_x32);
381 }
382 }
383
TEST(F32_VRELU__AVX512F_X32,inplace)384 TEST(F32_VRELU__AVX512F_X32, inplace) {
385 TEST_REQUIRES_X86_AVX512F;
386 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
387 VUnaryMicrokernelTester()
388 .batch_size(batch_size)
389 .inplace(true)
390 .Test(xnn_f32_vrelu_ukernel__avx512f_x32);
391 }
392 }
393 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
394
395
TEST(F32_VRELU__SCALAR_X1,batch_eq_1)396 TEST(F32_VRELU__SCALAR_X1, batch_eq_1) {
397 VUnaryMicrokernelTester()
398 .batch_size(1)
399 .Test(xnn_f32_vrelu_ukernel__scalar_x1);
400 }
401
TEST(F32_VRELU__SCALAR_X1,batch_gt_1)402 TEST(F32_VRELU__SCALAR_X1, batch_gt_1) {
403 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
404 VUnaryMicrokernelTester()
405 .batch_size(batch_size)
406 .Test(xnn_f32_vrelu_ukernel__scalar_x1);
407 }
408 }
409
TEST(F32_VRELU__SCALAR_X1,inplace)410 TEST(F32_VRELU__SCALAR_X1, inplace) {
411 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
412 VUnaryMicrokernelTester()
413 .batch_size(batch_size)
414 .inplace(true)
415 .Test(xnn_f32_vrelu_ukernel__scalar_x1);
416 }
417 }
418
419
TEST(F32_VRELU__SCALAR_X2,batch_eq_2)420 TEST(F32_VRELU__SCALAR_X2, batch_eq_2) {
421 VUnaryMicrokernelTester()
422 .batch_size(2)
423 .Test(xnn_f32_vrelu_ukernel__scalar_x2);
424 }
425
TEST(F32_VRELU__SCALAR_X2,batch_div_2)426 TEST(F32_VRELU__SCALAR_X2, batch_div_2) {
427 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
428 VUnaryMicrokernelTester()
429 .batch_size(batch_size)
430 .Test(xnn_f32_vrelu_ukernel__scalar_x2);
431 }
432 }
433
TEST(F32_VRELU__SCALAR_X2,batch_lt_2)434 TEST(F32_VRELU__SCALAR_X2, batch_lt_2) {
435 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
436 VUnaryMicrokernelTester()
437 .batch_size(batch_size)
438 .Test(xnn_f32_vrelu_ukernel__scalar_x2);
439 }
440 }
441
TEST(F32_VRELU__SCALAR_X2,batch_gt_2)442 TEST(F32_VRELU__SCALAR_X2, batch_gt_2) {
443 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
444 VUnaryMicrokernelTester()
445 .batch_size(batch_size)
446 .Test(xnn_f32_vrelu_ukernel__scalar_x2);
447 }
448 }
449
TEST(F32_VRELU__SCALAR_X2,inplace)450 TEST(F32_VRELU__SCALAR_X2, inplace) {
451 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
452 VUnaryMicrokernelTester()
453 .batch_size(batch_size)
454 .inplace(true)
455 .Test(xnn_f32_vrelu_ukernel__scalar_x2);
456 }
457 }
458
459
TEST(F32_VRELU__SCALAR_X4,batch_eq_4)460 TEST(F32_VRELU__SCALAR_X4, batch_eq_4) {
461 VUnaryMicrokernelTester()
462 .batch_size(4)
463 .Test(xnn_f32_vrelu_ukernel__scalar_x4);
464 }
465
TEST(F32_VRELU__SCALAR_X4,batch_div_4)466 TEST(F32_VRELU__SCALAR_X4, batch_div_4) {
467 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
468 VUnaryMicrokernelTester()
469 .batch_size(batch_size)
470 .Test(xnn_f32_vrelu_ukernel__scalar_x4);
471 }
472 }
473
TEST(F32_VRELU__SCALAR_X4,batch_lt_4)474 TEST(F32_VRELU__SCALAR_X4, batch_lt_4) {
475 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
476 VUnaryMicrokernelTester()
477 .batch_size(batch_size)
478 .Test(xnn_f32_vrelu_ukernel__scalar_x4);
479 }
480 }
481
TEST(F32_VRELU__SCALAR_X4,batch_gt_4)482 TEST(F32_VRELU__SCALAR_X4, batch_gt_4) {
483 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
484 VUnaryMicrokernelTester()
485 .batch_size(batch_size)
486 .Test(xnn_f32_vrelu_ukernel__scalar_x4);
487 }
488 }
489
TEST(F32_VRELU__SCALAR_X4,inplace)490 TEST(F32_VRELU__SCALAR_X4, inplace) {
491 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
492 VUnaryMicrokernelTester()
493 .batch_size(batch_size)
494 .inplace(true)
495 .Test(xnn_f32_vrelu_ukernel__scalar_x4);
496 }
497 }
498
499
TEST(F32_VRELU__SCALAR_X8,batch_eq_8)500 TEST(F32_VRELU__SCALAR_X8, batch_eq_8) {
501 VUnaryMicrokernelTester()
502 .batch_size(8)
503 .Test(xnn_f32_vrelu_ukernel__scalar_x8);
504 }
505
TEST(F32_VRELU__SCALAR_X8,batch_div_8)506 TEST(F32_VRELU__SCALAR_X8, batch_div_8) {
507 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
508 VUnaryMicrokernelTester()
509 .batch_size(batch_size)
510 .Test(xnn_f32_vrelu_ukernel__scalar_x8);
511 }
512 }
513
TEST(F32_VRELU__SCALAR_X8,batch_lt_8)514 TEST(F32_VRELU__SCALAR_X8, batch_lt_8) {
515 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
516 VUnaryMicrokernelTester()
517 .batch_size(batch_size)
518 .Test(xnn_f32_vrelu_ukernel__scalar_x8);
519 }
520 }
521
TEST(F32_VRELU__SCALAR_X8,batch_gt_8)522 TEST(F32_VRELU__SCALAR_X8, batch_gt_8) {
523 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
524 VUnaryMicrokernelTester()
525 .batch_size(batch_size)
526 .Test(xnn_f32_vrelu_ukernel__scalar_x8);
527 }
528 }
529
TEST(F32_VRELU__SCALAR_X8,inplace)530 TEST(F32_VRELU__SCALAR_X8, inplace) {
531 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
532 VUnaryMicrokernelTester()
533 .batch_size(batch_size)
534 .inplace(true)
535 .Test(xnn_f32_vrelu_ukernel__scalar_x8);
536 }
537 }
538
539
540 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRELU__WASM_X1,batch_eq_1)541 TEST(F32_VRELU__WASM_X1, batch_eq_1) {
542 VUnaryMicrokernelTester()
543 .batch_size(1)
544 .Test(xnn_f32_vrelu_ukernel__wasm_x1);
545 }
546
TEST(F32_VRELU__WASM_X1,batch_gt_1)547 TEST(F32_VRELU__WASM_X1, batch_gt_1) {
548 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
549 VUnaryMicrokernelTester()
550 .batch_size(batch_size)
551 .Test(xnn_f32_vrelu_ukernel__wasm_x1);
552 }
553 }
554
TEST(F32_VRELU__WASM_X1,inplace)555 TEST(F32_VRELU__WASM_X1, inplace) {
556 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
557 VUnaryMicrokernelTester()
558 .batch_size(batch_size)
559 .inplace(true)
560 .Test(xnn_f32_vrelu_ukernel__wasm_x1);
561 }
562 }
563 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
564
565
566 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRELU__WASM_X2,batch_eq_2)567 TEST(F32_VRELU__WASM_X2, batch_eq_2) {
568 VUnaryMicrokernelTester()
569 .batch_size(2)
570 .Test(xnn_f32_vrelu_ukernel__wasm_x2);
571 }
572
TEST(F32_VRELU__WASM_X2,batch_div_2)573 TEST(F32_VRELU__WASM_X2, batch_div_2) {
574 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
575 VUnaryMicrokernelTester()
576 .batch_size(batch_size)
577 .Test(xnn_f32_vrelu_ukernel__wasm_x2);
578 }
579 }
580
TEST(F32_VRELU__WASM_X2,batch_lt_2)581 TEST(F32_VRELU__WASM_X2, batch_lt_2) {
582 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
583 VUnaryMicrokernelTester()
584 .batch_size(batch_size)
585 .Test(xnn_f32_vrelu_ukernel__wasm_x2);
586 }
587 }
588
TEST(F32_VRELU__WASM_X2,batch_gt_2)589 TEST(F32_VRELU__WASM_X2, batch_gt_2) {
590 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
591 VUnaryMicrokernelTester()
592 .batch_size(batch_size)
593 .Test(xnn_f32_vrelu_ukernel__wasm_x2);
594 }
595 }
596
TEST(F32_VRELU__WASM_X2,inplace)597 TEST(F32_VRELU__WASM_X2, inplace) {
598 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
599 VUnaryMicrokernelTester()
600 .batch_size(batch_size)
601 .inplace(true)
602 .Test(xnn_f32_vrelu_ukernel__wasm_x2);
603 }
604 }
605 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
606
607
608 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRELU__WASM_X4,batch_eq_4)609 TEST(F32_VRELU__WASM_X4, batch_eq_4) {
610 VUnaryMicrokernelTester()
611 .batch_size(4)
612 .Test(xnn_f32_vrelu_ukernel__wasm_x4);
613 }
614
TEST(F32_VRELU__WASM_X4,batch_div_4)615 TEST(F32_VRELU__WASM_X4, batch_div_4) {
616 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
617 VUnaryMicrokernelTester()
618 .batch_size(batch_size)
619 .Test(xnn_f32_vrelu_ukernel__wasm_x4);
620 }
621 }
622
TEST(F32_VRELU__WASM_X4,batch_lt_4)623 TEST(F32_VRELU__WASM_X4, batch_lt_4) {
624 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
625 VUnaryMicrokernelTester()
626 .batch_size(batch_size)
627 .Test(xnn_f32_vrelu_ukernel__wasm_x4);
628 }
629 }
630
TEST(F32_VRELU__WASM_X4,batch_gt_4)631 TEST(F32_VRELU__WASM_X4, batch_gt_4) {
632 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
633 VUnaryMicrokernelTester()
634 .batch_size(batch_size)
635 .Test(xnn_f32_vrelu_ukernel__wasm_x4);
636 }
637 }
638
TEST(F32_VRELU__WASM_X4,inplace)639 TEST(F32_VRELU__WASM_X4, inplace) {
640 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
641 VUnaryMicrokernelTester()
642 .batch_size(batch_size)
643 .inplace(true)
644 .Test(xnn_f32_vrelu_ukernel__wasm_x4);
645 }
646 }
647 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
648
649
650 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRELU__WASM_X8,batch_eq_8)651 TEST(F32_VRELU__WASM_X8, batch_eq_8) {
652 VUnaryMicrokernelTester()
653 .batch_size(8)
654 .Test(xnn_f32_vrelu_ukernel__wasm_x8);
655 }
656
TEST(F32_VRELU__WASM_X8,batch_div_8)657 TEST(F32_VRELU__WASM_X8, batch_div_8) {
658 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
659 VUnaryMicrokernelTester()
660 .batch_size(batch_size)
661 .Test(xnn_f32_vrelu_ukernel__wasm_x8);
662 }
663 }
664
TEST(F32_VRELU__WASM_X8,batch_lt_8)665 TEST(F32_VRELU__WASM_X8, batch_lt_8) {
666 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
667 VUnaryMicrokernelTester()
668 .batch_size(batch_size)
669 .Test(xnn_f32_vrelu_ukernel__wasm_x8);
670 }
671 }
672
TEST(F32_VRELU__WASM_X8,batch_gt_8)673 TEST(F32_VRELU__WASM_X8, batch_gt_8) {
674 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
675 VUnaryMicrokernelTester()
676 .batch_size(batch_size)
677 .Test(xnn_f32_vrelu_ukernel__wasm_x8);
678 }
679 }
680
TEST(F32_VRELU__WASM_X8,inplace)681 TEST(F32_VRELU__WASM_X8, inplace) {
682 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
683 VUnaryMicrokernelTester()
684 .batch_size(batch_size)
685 .inplace(true)
686 .Test(xnn_f32_vrelu_ukernel__wasm_x8);
687 }
688 }
689 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
690
691
692 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRELU__WASMSIMD_X4,batch_eq_4)693 TEST(F32_VRELU__WASMSIMD_X4, batch_eq_4) {
694 VUnaryMicrokernelTester()
695 .batch_size(4)
696 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x4);
697 }
698
TEST(F32_VRELU__WASMSIMD_X4,batch_div_4)699 TEST(F32_VRELU__WASMSIMD_X4, batch_div_4) {
700 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
701 VUnaryMicrokernelTester()
702 .batch_size(batch_size)
703 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x4);
704 }
705 }
706
TEST(F32_VRELU__WASMSIMD_X4,batch_lt_4)707 TEST(F32_VRELU__WASMSIMD_X4, batch_lt_4) {
708 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
709 VUnaryMicrokernelTester()
710 .batch_size(batch_size)
711 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x4);
712 }
713 }
714
TEST(F32_VRELU__WASMSIMD_X4,batch_gt_4)715 TEST(F32_VRELU__WASMSIMD_X4, batch_gt_4) {
716 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
717 VUnaryMicrokernelTester()
718 .batch_size(batch_size)
719 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x4);
720 }
721 }
722
TEST(F32_VRELU__WASMSIMD_X4,inplace)723 TEST(F32_VRELU__WASMSIMD_X4, inplace) {
724 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
725 VUnaryMicrokernelTester()
726 .batch_size(batch_size)
727 .inplace(true)
728 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x4);
729 }
730 }
731 #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
732
733
734 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRELU__WASMSIMD_X8,batch_eq_8)735 TEST(F32_VRELU__WASMSIMD_X8, batch_eq_8) {
736 VUnaryMicrokernelTester()
737 .batch_size(8)
738 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x8);
739 }
740
TEST(F32_VRELU__WASMSIMD_X8,batch_div_8)741 TEST(F32_VRELU__WASMSIMD_X8, batch_div_8) {
742 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
743 VUnaryMicrokernelTester()
744 .batch_size(batch_size)
745 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x8);
746 }
747 }
748
TEST(F32_VRELU__WASMSIMD_X8,batch_lt_8)749 TEST(F32_VRELU__WASMSIMD_X8, batch_lt_8) {
750 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
751 VUnaryMicrokernelTester()
752 .batch_size(batch_size)
753 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x8);
754 }
755 }
756
TEST(F32_VRELU__WASMSIMD_X8,batch_gt_8)757 TEST(F32_VRELU__WASMSIMD_X8, batch_gt_8) {
758 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
759 VUnaryMicrokernelTester()
760 .batch_size(batch_size)
761 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x8);
762 }
763 }
764
TEST(F32_VRELU__WASMSIMD_X8,inplace)765 TEST(F32_VRELU__WASMSIMD_X8, inplace) {
766 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
767 VUnaryMicrokernelTester()
768 .batch_size(batch_size)
769 .inplace(true)
770 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x8);
771 }
772 }
773 #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
774
775
776 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRELU__WASMSIMD_X16,batch_eq_16)777 TEST(F32_VRELU__WASMSIMD_X16, batch_eq_16) {
778 VUnaryMicrokernelTester()
779 .batch_size(16)
780 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x16);
781 }
782
TEST(F32_VRELU__WASMSIMD_X16,batch_div_16)783 TEST(F32_VRELU__WASMSIMD_X16, batch_div_16) {
784 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
785 VUnaryMicrokernelTester()
786 .batch_size(batch_size)
787 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x16);
788 }
789 }
790
TEST(F32_VRELU__WASMSIMD_X16,batch_lt_16)791 TEST(F32_VRELU__WASMSIMD_X16, batch_lt_16) {
792 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
793 VUnaryMicrokernelTester()
794 .batch_size(batch_size)
795 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x16);
796 }
797 }
798
TEST(F32_VRELU__WASMSIMD_X16,batch_gt_16)799 TEST(F32_VRELU__WASMSIMD_X16, batch_gt_16) {
800 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
801 VUnaryMicrokernelTester()
802 .batch_size(batch_size)
803 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x16);
804 }
805 }
806
TEST(F32_VRELU__WASMSIMD_X16,inplace)807 TEST(F32_VRELU__WASMSIMD_X16, inplace) {
808 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
809 VUnaryMicrokernelTester()
810 .batch_size(batch_size)
811 .inplace(true)
812 .Test(xnn_f32_vrelu_ukernel__wasmsimd_x16);
813 }
814 }
815 #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
816
817
818 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VRELU__WASM32_SHR_X1,batch_eq_1)819 TEST(F32_VRELU__WASM32_SHR_X1, batch_eq_1) {
820 VUnaryMicrokernelTester()
821 .batch_size(1)
822 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x1);
823 }
824
TEST(F32_VRELU__WASM32_SHR_X1,batch_gt_1)825 TEST(F32_VRELU__WASM32_SHR_X1, batch_gt_1) {
826 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
827 VUnaryMicrokernelTester()
828 .batch_size(batch_size)
829 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x1);
830 }
831 }
832
TEST(F32_VRELU__WASM32_SHR_X1,inplace)833 TEST(F32_VRELU__WASM32_SHR_X1, inplace) {
834 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
835 VUnaryMicrokernelTester()
836 .batch_size(batch_size)
837 .inplace(true)
838 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x1);
839 }
840 }
841 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
842
843
844 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VRELU__WASM32_SHR_X2,batch_eq_2)845 TEST(F32_VRELU__WASM32_SHR_X2, batch_eq_2) {
846 VUnaryMicrokernelTester()
847 .batch_size(2)
848 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x2);
849 }
850
TEST(F32_VRELU__WASM32_SHR_X2,batch_div_2)851 TEST(F32_VRELU__WASM32_SHR_X2, batch_div_2) {
852 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
853 VUnaryMicrokernelTester()
854 .batch_size(batch_size)
855 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x2);
856 }
857 }
858
TEST(F32_VRELU__WASM32_SHR_X2,batch_lt_2)859 TEST(F32_VRELU__WASM32_SHR_X2, batch_lt_2) {
860 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
861 VUnaryMicrokernelTester()
862 .batch_size(batch_size)
863 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x2);
864 }
865 }
866
TEST(F32_VRELU__WASM32_SHR_X2,batch_gt_2)867 TEST(F32_VRELU__WASM32_SHR_X2, batch_gt_2) {
868 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
869 VUnaryMicrokernelTester()
870 .batch_size(batch_size)
871 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x2);
872 }
873 }
874
TEST(F32_VRELU__WASM32_SHR_X2,inplace)875 TEST(F32_VRELU__WASM32_SHR_X2, inplace) {
876 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
877 VUnaryMicrokernelTester()
878 .batch_size(batch_size)
879 .inplace(true)
880 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x2);
881 }
882 }
883 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
884
885
886 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VRELU__WASM32_SHR_X4,batch_eq_4)887 TEST(F32_VRELU__WASM32_SHR_X4, batch_eq_4) {
888 VUnaryMicrokernelTester()
889 .batch_size(4)
890 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x4);
891 }
892
TEST(F32_VRELU__WASM32_SHR_X4,batch_div_4)893 TEST(F32_VRELU__WASM32_SHR_X4, batch_div_4) {
894 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
895 VUnaryMicrokernelTester()
896 .batch_size(batch_size)
897 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x4);
898 }
899 }
900
TEST(F32_VRELU__WASM32_SHR_X4,batch_lt_4)901 TEST(F32_VRELU__WASM32_SHR_X4, batch_lt_4) {
902 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
903 VUnaryMicrokernelTester()
904 .batch_size(batch_size)
905 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x4);
906 }
907 }
908
TEST(F32_VRELU__WASM32_SHR_X4,batch_gt_4)909 TEST(F32_VRELU__WASM32_SHR_X4, batch_gt_4) {
910 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
911 VUnaryMicrokernelTester()
912 .batch_size(batch_size)
913 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x4);
914 }
915 }
916
TEST(F32_VRELU__WASM32_SHR_X4,inplace)917 TEST(F32_VRELU__WASM32_SHR_X4, inplace) {
918 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
919 VUnaryMicrokernelTester()
920 .batch_size(batch_size)
921 .inplace(true)
922 .Test(xnn_f32_vrelu_ukernel__wasm32_shr_x4);
923 }
924 }
925 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
926