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-vmax.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/microparams-init.h>
17 #include <xnnpack/vbinary.h>
18 #include "vbinary-microkernel-tester.h"
19
20
21 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_VMAX__NEON_X4,batch_eq_4)22 TEST(F32_VMAX__NEON_X4, batch_eq_4) {
23 TEST_REQUIRES_ARM_NEON;
24 VBinaryMicrokernelTester()
25 .batch_size(4)
26 .Test(xnn_f32_vmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Max);
27 }
28
TEST(F32_VMAX__NEON_X4,batch_div_4)29 TEST(F32_VMAX__NEON_X4, batch_div_4) {
30 TEST_REQUIRES_ARM_NEON;
31 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
32 VBinaryMicrokernelTester()
33 .batch_size(batch_size)
34 .Test(xnn_f32_vmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Max);
35 }
36 }
37
TEST(F32_VMAX__NEON_X4,batch_lt_4)38 TEST(F32_VMAX__NEON_X4, batch_lt_4) {
39 TEST_REQUIRES_ARM_NEON;
40 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
41 VBinaryMicrokernelTester()
42 .batch_size(batch_size)
43 .Test(xnn_f32_vmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Max);
44 }
45 }
46
TEST(F32_VMAX__NEON_X4,batch_gt_4)47 TEST(F32_VMAX__NEON_X4, batch_gt_4) {
48 TEST_REQUIRES_ARM_NEON;
49 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
50 VBinaryMicrokernelTester()
51 .batch_size(batch_size)
52 .Test(xnn_f32_vmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Max);
53 }
54 }
55
TEST(F32_VMAX__NEON_X4,inplace_a)56 TEST(F32_VMAX__NEON_X4, inplace_a) {
57 TEST_REQUIRES_ARM_NEON;
58 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
59 VBinaryMicrokernelTester()
60 .batch_size(batch_size)
61 .inplace_a(true)
62 .Test(xnn_f32_vmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Max);
63 }
64 }
65
TEST(F32_VMAX__NEON_X4,inplace_b)66 TEST(F32_VMAX__NEON_X4, inplace_b) {
67 TEST_REQUIRES_ARM_NEON;
68 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
69 VBinaryMicrokernelTester()
70 .batch_size(batch_size)
71 .inplace_b(true)
72 .Test(xnn_f32_vmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Max);
73 }
74 }
75
TEST(F32_VMAX__NEON_X4,inplace_a_and_b)76 TEST(F32_VMAX__NEON_X4, inplace_a_and_b) {
77 TEST_REQUIRES_ARM_NEON;
78 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
79 VBinaryMicrokernelTester()
80 .batch_size(batch_size)
81 .inplace_a(true)
82 .inplace_b(true)
83 .Test(xnn_f32_vmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Max);
84 }
85 }
86 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
87
88
89 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_VMAX__NEON_X8,batch_eq_8)90 TEST(F32_VMAX__NEON_X8, batch_eq_8) {
91 TEST_REQUIRES_ARM_NEON;
92 VBinaryMicrokernelTester()
93 .batch_size(8)
94 .Test(xnn_f32_vmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Max);
95 }
96
TEST(F32_VMAX__NEON_X8,batch_div_8)97 TEST(F32_VMAX__NEON_X8, batch_div_8) {
98 TEST_REQUIRES_ARM_NEON;
99 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
100 VBinaryMicrokernelTester()
101 .batch_size(batch_size)
102 .Test(xnn_f32_vmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Max);
103 }
104 }
105
TEST(F32_VMAX__NEON_X8,batch_lt_8)106 TEST(F32_VMAX__NEON_X8, batch_lt_8) {
107 TEST_REQUIRES_ARM_NEON;
108 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
109 VBinaryMicrokernelTester()
110 .batch_size(batch_size)
111 .Test(xnn_f32_vmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Max);
112 }
113 }
114
TEST(F32_VMAX__NEON_X8,batch_gt_8)115 TEST(F32_VMAX__NEON_X8, batch_gt_8) {
116 TEST_REQUIRES_ARM_NEON;
117 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
118 VBinaryMicrokernelTester()
119 .batch_size(batch_size)
120 .Test(xnn_f32_vmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Max);
121 }
122 }
123
TEST(F32_VMAX__NEON_X8,inplace_a)124 TEST(F32_VMAX__NEON_X8, inplace_a) {
125 TEST_REQUIRES_ARM_NEON;
126 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
127 VBinaryMicrokernelTester()
128 .batch_size(batch_size)
129 .inplace_a(true)
130 .Test(xnn_f32_vmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Max);
131 }
132 }
133
TEST(F32_VMAX__NEON_X8,inplace_b)134 TEST(F32_VMAX__NEON_X8, inplace_b) {
135 TEST_REQUIRES_ARM_NEON;
136 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
137 VBinaryMicrokernelTester()
138 .batch_size(batch_size)
139 .inplace_b(true)
140 .Test(xnn_f32_vmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Max);
141 }
142 }
143
TEST(F32_VMAX__NEON_X8,inplace_a_and_b)144 TEST(F32_VMAX__NEON_X8, inplace_a_and_b) {
145 TEST_REQUIRES_ARM_NEON;
146 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
147 VBinaryMicrokernelTester()
148 .batch_size(batch_size)
149 .inplace_a(true)
150 .inplace_b(true)
151 .Test(xnn_f32_vmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Max);
152 }
153 }
154 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
155
156
157 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAX__SSE_X4,batch_eq_4)158 TEST(F32_VMAX__SSE_X4, batch_eq_4) {
159 TEST_REQUIRES_X86_SSE;
160 VBinaryMicrokernelTester()
161 .batch_size(4)
162 .Test(xnn_f32_vmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Max);
163 }
164
TEST(F32_VMAX__SSE_X4,batch_div_4)165 TEST(F32_VMAX__SSE_X4, batch_div_4) {
166 TEST_REQUIRES_X86_SSE;
167 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
168 VBinaryMicrokernelTester()
169 .batch_size(batch_size)
170 .Test(xnn_f32_vmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Max);
171 }
172 }
173
TEST(F32_VMAX__SSE_X4,batch_lt_4)174 TEST(F32_VMAX__SSE_X4, batch_lt_4) {
175 TEST_REQUIRES_X86_SSE;
176 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
177 VBinaryMicrokernelTester()
178 .batch_size(batch_size)
179 .Test(xnn_f32_vmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Max);
180 }
181 }
182
TEST(F32_VMAX__SSE_X4,batch_gt_4)183 TEST(F32_VMAX__SSE_X4, batch_gt_4) {
184 TEST_REQUIRES_X86_SSE;
185 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
186 VBinaryMicrokernelTester()
187 .batch_size(batch_size)
188 .Test(xnn_f32_vmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Max);
189 }
190 }
191
TEST(F32_VMAX__SSE_X4,inplace_a)192 TEST(F32_VMAX__SSE_X4, inplace_a) {
193 TEST_REQUIRES_X86_SSE;
194 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
195 VBinaryMicrokernelTester()
196 .batch_size(batch_size)
197 .inplace_a(true)
198 .Test(xnn_f32_vmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Max);
199 }
200 }
201
TEST(F32_VMAX__SSE_X4,inplace_b)202 TEST(F32_VMAX__SSE_X4, inplace_b) {
203 TEST_REQUIRES_X86_SSE;
204 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
205 VBinaryMicrokernelTester()
206 .batch_size(batch_size)
207 .inplace_b(true)
208 .Test(xnn_f32_vmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Max);
209 }
210 }
211
TEST(F32_VMAX__SSE_X4,inplace_a_and_b)212 TEST(F32_VMAX__SSE_X4, inplace_a_and_b) {
213 TEST_REQUIRES_X86_SSE;
214 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
215 VBinaryMicrokernelTester()
216 .batch_size(batch_size)
217 .inplace_a(true)
218 .inplace_b(true)
219 .Test(xnn_f32_vmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Max);
220 }
221 }
222 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
223
224
225 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAX__SSE_X8,batch_eq_8)226 TEST(F32_VMAX__SSE_X8, batch_eq_8) {
227 TEST_REQUIRES_X86_SSE;
228 VBinaryMicrokernelTester()
229 .batch_size(8)
230 .Test(xnn_f32_vmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Max);
231 }
232
TEST(F32_VMAX__SSE_X8,batch_div_8)233 TEST(F32_VMAX__SSE_X8, batch_div_8) {
234 TEST_REQUIRES_X86_SSE;
235 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
236 VBinaryMicrokernelTester()
237 .batch_size(batch_size)
238 .Test(xnn_f32_vmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Max);
239 }
240 }
241
TEST(F32_VMAX__SSE_X8,batch_lt_8)242 TEST(F32_VMAX__SSE_X8, batch_lt_8) {
243 TEST_REQUIRES_X86_SSE;
244 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
245 VBinaryMicrokernelTester()
246 .batch_size(batch_size)
247 .Test(xnn_f32_vmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Max);
248 }
249 }
250
TEST(F32_VMAX__SSE_X8,batch_gt_8)251 TEST(F32_VMAX__SSE_X8, batch_gt_8) {
252 TEST_REQUIRES_X86_SSE;
253 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
254 VBinaryMicrokernelTester()
255 .batch_size(batch_size)
256 .Test(xnn_f32_vmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Max);
257 }
258 }
259
TEST(F32_VMAX__SSE_X8,inplace_a)260 TEST(F32_VMAX__SSE_X8, inplace_a) {
261 TEST_REQUIRES_X86_SSE;
262 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
263 VBinaryMicrokernelTester()
264 .batch_size(batch_size)
265 .inplace_a(true)
266 .Test(xnn_f32_vmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Max);
267 }
268 }
269
TEST(F32_VMAX__SSE_X8,inplace_b)270 TEST(F32_VMAX__SSE_X8, inplace_b) {
271 TEST_REQUIRES_X86_SSE;
272 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
273 VBinaryMicrokernelTester()
274 .batch_size(batch_size)
275 .inplace_b(true)
276 .Test(xnn_f32_vmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Max);
277 }
278 }
279
TEST(F32_VMAX__SSE_X8,inplace_a_and_b)280 TEST(F32_VMAX__SSE_X8, inplace_a_and_b) {
281 TEST_REQUIRES_X86_SSE;
282 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
283 VBinaryMicrokernelTester()
284 .batch_size(batch_size)
285 .inplace_a(true)
286 .inplace_b(true)
287 .Test(xnn_f32_vmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Max);
288 }
289 }
290 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
291
292
293 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAX__AVX_X8,batch_eq_8)294 TEST(F32_VMAX__AVX_X8, batch_eq_8) {
295 TEST_REQUIRES_X86_AVX;
296 VBinaryMicrokernelTester()
297 .batch_size(8)
298 .Test(xnn_f32_vmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
299 }
300
TEST(F32_VMAX__AVX_X8,batch_div_8)301 TEST(F32_VMAX__AVX_X8, batch_div_8) {
302 TEST_REQUIRES_X86_AVX;
303 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
304 VBinaryMicrokernelTester()
305 .batch_size(batch_size)
306 .Test(xnn_f32_vmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
307 }
308 }
309
TEST(F32_VMAX__AVX_X8,batch_lt_8)310 TEST(F32_VMAX__AVX_X8, batch_lt_8) {
311 TEST_REQUIRES_X86_AVX;
312 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
313 VBinaryMicrokernelTester()
314 .batch_size(batch_size)
315 .Test(xnn_f32_vmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
316 }
317 }
318
TEST(F32_VMAX__AVX_X8,batch_gt_8)319 TEST(F32_VMAX__AVX_X8, batch_gt_8) {
320 TEST_REQUIRES_X86_AVX;
321 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
322 VBinaryMicrokernelTester()
323 .batch_size(batch_size)
324 .Test(xnn_f32_vmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
325 }
326 }
327
TEST(F32_VMAX__AVX_X8,inplace_a)328 TEST(F32_VMAX__AVX_X8, inplace_a) {
329 TEST_REQUIRES_X86_AVX;
330 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
331 VBinaryMicrokernelTester()
332 .batch_size(batch_size)
333 .inplace_a(true)
334 .Test(xnn_f32_vmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
335 }
336 }
337
TEST(F32_VMAX__AVX_X8,inplace_b)338 TEST(F32_VMAX__AVX_X8, inplace_b) {
339 TEST_REQUIRES_X86_AVX;
340 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
341 VBinaryMicrokernelTester()
342 .batch_size(batch_size)
343 .inplace_b(true)
344 .Test(xnn_f32_vmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
345 }
346 }
347
TEST(F32_VMAX__AVX_X8,inplace_a_and_b)348 TEST(F32_VMAX__AVX_X8, inplace_a_and_b) {
349 TEST_REQUIRES_X86_AVX;
350 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
351 VBinaryMicrokernelTester()
352 .batch_size(batch_size)
353 .inplace_a(true)
354 .inplace_b(true)
355 .Test(xnn_f32_vmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
356 }
357 }
358 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
359
360
361 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAX__AVX_X16,batch_eq_16)362 TEST(F32_VMAX__AVX_X16, batch_eq_16) {
363 TEST_REQUIRES_X86_AVX;
364 VBinaryMicrokernelTester()
365 .batch_size(16)
366 .Test(xnn_f32_vmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
367 }
368
TEST(F32_VMAX__AVX_X16,batch_div_16)369 TEST(F32_VMAX__AVX_X16, batch_div_16) {
370 TEST_REQUIRES_X86_AVX;
371 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
372 VBinaryMicrokernelTester()
373 .batch_size(batch_size)
374 .Test(xnn_f32_vmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
375 }
376 }
377
TEST(F32_VMAX__AVX_X16,batch_lt_16)378 TEST(F32_VMAX__AVX_X16, batch_lt_16) {
379 TEST_REQUIRES_X86_AVX;
380 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
381 VBinaryMicrokernelTester()
382 .batch_size(batch_size)
383 .Test(xnn_f32_vmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
384 }
385 }
386
TEST(F32_VMAX__AVX_X16,batch_gt_16)387 TEST(F32_VMAX__AVX_X16, batch_gt_16) {
388 TEST_REQUIRES_X86_AVX;
389 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
390 VBinaryMicrokernelTester()
391 .batch_size(batch_size)
392 .Test(xnn_f32_vmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
393 }
394 }
395
TEST(F32_VMAX__AVX_X16,inplace_a)396 TEST(F32_VMAX__AVX_X16, inplace_a) {
397 TEST_REQUIRES_X86_AVX;
398 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
399 VBinaryMicrokernelTester()
400 .batch_size(batch_size)
401 .inplace_a(true)
402 .Test(xnn_f32_vmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
403 }
404 }
405
TEST(F32_VMAX__AVX_X16,inplace_b)406 TEST(F32_VMAX__AVX_X16, inplace_b) {
407 TEST_REQUIRES_X86_AVX;
408 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
409 VBinaryMicrokernelTester()
410 .batch_size(batch_size)
411 .inplace_b(true)
412 .Test(xnn_f32_vmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
413 }
414 }
415
TEST(F32_VMAX__AVX_X16,inplace_a_and_b)416 TEST(F32_VMAX__AVX_X16, inplace_a_and_b) {
417 TEST_REQUIRES_X86_AVX;
418 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
419 VBinaryMicrokernelTester()
420 .batch_size(batch_size)
421 .inplace_a(true)
422 .inplace_b(true)
423 .Test(xnn_f32_vmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Max, xnn_init_f32_default_avx_params);
424 }
425 }
426 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
427
428
429 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAX__AVX512F_X16,batch_eq_16)430 TEST(F32_VMAX__AVX512F_X16, batch_eq_16) {
431 TEST_REQUIRES_X86_AVX512F;
432 VBinaryMicrokernelTester()
433 .batch_size(16)
434 .Test(xnn_f32_vmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Max);
435 }
436
TEST(F32_VMAX__AVX512F_X16,batch_div_16)437 TEST(F32_VMAX__AVX512F_X16, batch_div_16) {
438 TEST_REQUIRES_X86_AVX512F;
439 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
440 VBinaryMicrokernelTester()
441 .batch_size(batch_size)
442 .Test(xnn_f32_vmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Max);
443 }
444 }
445
TEST(F32_VMAX__AVX512F_X16,batch_lt_16)446 TEST(F32_VMAX__AVX512F_X16, batch_lt_16) {
447 TEST_REQUIRES_X86_AVX512F;
448 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
449 VBinaryMicrokernelTester()
450 .batch_size(batch_size)
451 .Test(xnn_f32_vmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Max);
452 }
453 }
454
TEST(F32_VMAX__AVX512F_X16,batch_gt_16)455 TEST(F32_VMAX__AVX512F_X16, batch_gt_16) {
456 TEST_REQUIRES_X86_AVX512F;
457 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
458 VBinaryMicrokernelTester()
459 .batch_size(batch_size)
460 .Test(xnn_f32_vmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Max);
461 }
462 }
463
TEST(F32_VMAX__AVX512F_X16,inplace_a)464 TEST(F32_VMAX__AVX512F_X16, inplace_a) {
465 TEST_REQUIRES_X86_AVX512F;
466 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
467 VBinaryMicrokernelTester()
468 .batch_size(batch_size)
469 .inplace_a(true)
470 .Test(xnn_f32_vmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Max);
471 }
472 }
473
TEST(F32_VMAX__AVX512F_X16,inplace_b)474 TEST(F32_VMAX__AVX512F_X16, inplace_b) {
475 TEST_REQUIRES_X86_AVX512F;
476 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
477 VBinaryMicrokernelTester()
478 .batch_size(batch_size)
479 .inplace_b(true)
480 .Test(xnn_f32_vmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Max);
481 }
482 }
483
TEST(F32_VMAX__AVX512F_X16,inplace_a_and_b)484 TEST(F32_VMAX__AVX512F_X16, inplace_a_and_b) {
485 TEST_REQUIRES_X86_AVX512F;
486 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
487 VBinaryMicrokernelTester()
488 .batch_size(batch_size)
489 .inplace_a(true)
490 .inplace_b(true)
491 .Test(xnn_f32_vmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Max);
492 }
493 }
494 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
495
496
497 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAX__AVX512F_X32,batch_eq_32)498 TEST(F32_VMAX__AVX512F_X32, batch_eq_32) {
499 TEST_REQUIRES_X86_AVX512F;
500 VBinaryMicrokernelTester()
501 .batch_size(32)
502 .Test(xnn_f32_vmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Max);
503 }
504
TEST(F32_VMAX__AVX512F_X32,batch_div_32)505 TEST(F32_VMAX__AVX512F_X32, batch_div_32) {
506 TEST_REQUIRES_X86_AVX512F;
507 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
508 VBinaryMicrokernelTester()
509 .batch_size(batch_size)
510 .Test(xnn_f32_vmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Max);
511 }
512 }
513
TEST(F32_VMAX__AVX512F_X32,batch_lt_32)514 TEST(F32_VMAX__AVX512F_X32, batch_lt_32) {
515 TEST_REQUIRES_X86_AVX512F;
516 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
517 VBinaryMicrokernelTester()
518 .batch_size(batch_size)
519 .Test(xnn_f32_vmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Max);
520 }
521 }
522
TEST(F32_VMAX__AVX512F_X32,batch_gt_32)523 TEST(F32_VMAX__AVX512F_X32, batch_gt_32) {
524 TEST_REQUIRES_X86_AVX512F;
525 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
526 VBinaryMicrokernelTester()
527 .batch_size(batch_size)
528 .Test(xnn_f32_vmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Max);
529 }
530 }
531
TEST(F32_VMAX__AVX512F_X32,inplace_a)532 TEST(F32_VMAX__AVX512F_X32, inplace_a) {
533 TEST_REQUIRES_X86_AVX512F;
534 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
535 VBinaryMicrokernelTester()
536 .batch_size(batch_size)
537 .inplace_a(true)
538 .Test(xnn_f32_vmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Max);
539 }
540 }
541
TEST(F32_VMAX__AVX512F_X32,inplace_b)542 TEST(F32_VMAX__AVX512F_X32, inplace_b) {
543 TEST_REQUIRES_X86_AVX512F;
544 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
545 VBinaryMicrokernelTester()
546 .batch_size(batch_size)
547 .inplace_b(true)
548 .Test(xnn_f32_vmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Max);
549 }
550 }
551
TEST(F32_VMAX__AVX512F_X32,inplace_a_and_b)552 TEST(F32_VMAX__AVX512F_X32, inplace_a_and_b) {
553 TEST_REQUIRES_X86_AVX512F;
554 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
555 VBinaryMicrokernelTester()
556 .batch_size(batch_size)
557 .inplace_a(true)
558 .inplace_b(true)
559 .Test(xnn_f32_vmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Max);
560 }
561 }
562 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
563
564
565 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASMSIMD_ARM_X4,batch_eq_4)566 TEST(F32_VMAX__WASMSIMD_ARM_X4, batch_eq_4) {
567 VBinaryMicrokernelTester()
568 .batch_size(4)
569 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Max);
570 }
571
TEST(F32_VMAX__WASMSIMD_ARM_X4,batch_div_4)572 TEST(F32_VMAX__WASMSIMD_ARM_X4, batch_div_4) {
573 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
574 VBinaryMicrokernelTester()
575 .batch_size(batch_size)
576 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Max);
577 }
578 }
579
TEST(F32_VMAX__WASMSIMD_ARM_X4,batch_lt_4)580 TEST(F32_VMAX__WASMSIMD_ARM_X4, batch_lt_4) {
581 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
582 VBinaryMicrokernelTester()
583 .batch_size(batch_size)
584 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Max);
585 }
586 }
587
TEST(F32_VMAX__WASMSIMD_ARM_X4,batch_gt_4)588 TEST(F32_VMAX__WASMSIMD_ARM_X4, batch_gt_4) {
589 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
590 VBinaryMicrokernelTester()
591 .batch_size(batch_size)
592 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Max);
593 }
594 }
595
TEST(F32_VMAX__WASMSIMD_ARM_X4,inplace_a)596 TEST(F32_VMAX__WASMSIMD_ARM_X4, inplace_a) {
597 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
598 VBinaryMicrokernelTester()
599 .batch_size(batch_size)
600 .inplace_a(true)
601 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Max);
602 }
603 }
604
TEST(F32_VMAX__WASMSIMD_ARM_X4,inplace_b)605 TEST(F32_VMAX__WASMSIMD_ARM_X4, inplace_b) {
606 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
607 VBinaryMicrokernelTester()
608 .batch_size(batch_size)
609 .inplace_b(true)
610 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Max);
611 }
612 }
613
TEST(F32_VMAX__WASMSIMD_ARM_X4,inplace_a_and_b)614 TEST(F32_VMAX__WASMSIMD_ARM_X4, inplace_a_and_b) {
615 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
616 VBinaryMicrokernelTester()
617 .batch_size(batch_size)
618 .inplace_a(true)
619 .inplace_b(true)
620 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Max);
621 }
622 }
623 #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
624
625
626 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASMSIMD_ARM_X8,batch_eq_8)627 TEST(F32_VMAX__WASMSIMD_ARM_X8, batch_eq_8) {
628 VBinaryMicrokernelTester()
629 .batch_size(8)
630 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Max);
631 }
632
TEST(F32_VMAX__WASMSIMD_ARM_X8,batch_div_8)633 TEST(F32_VMAX__WASMSIMD_ARM_X8, batch_div_8) {
634 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
635 VBinaryMicrokernelTester()
636 .batch_size(batch_size)
637 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Max);
638 }
639 }
640
TEST(F32_VMAX__WASMSIMD_ARM_X8,batch_lt_8)641 TEST(F32_VMAX__WASMSIMD_ARM_X8, batch_lt_8) {
642 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
643 VBinaryMicrokernelTester()
644 .batch_size(batch_size)
645 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Max);
646 }
647 }
648
TEST(F32_VMAX__WASMSIMD_ARM_X8,batch_gt_8)649 TEST(F32_VMAX__WASMSIMD_ARM_X8, batch_gt_8) {
650 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
651 VBinaryMicrokernelTester()
652 .batch_size(batch_size)
653 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Max);
654 }
655 }
656
TEST(F32_VMAX__WASMSIMD_ARM_X8,inplace_a)657 TEST(F32_VMAX__WASMSIMD_ARM_X8, inplace_a) {
658 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
659 VBinaryMicrokernelTester()
660 .batch_size(batch_size)
661 .inplace_a(true)
662 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Max);
663 }
664 }
665
TEST(F32_VMAX__WASMSIMD_ARM_X8,inplace_b)666 TEST(F32_VMAX__WASMSIMD_ARM_X8, inplace_b) {
667 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
668 VBinaryMicrokernelTester()
669 .batch_size(batch_size)
670 .inplace_b(true)
671 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Max);
672 }
673 }
674
TEST(F32_VMAX__WASMSIMD_ARM_X8,inplace_a_and_b)675 TEST(F32_VMAX__WASMSIMD_ARM_X8, inplace_a_and_b) {
676 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
677 VBinaryMicrokernelTester()
678 .batch_size(batch_size)
679 .inplace_a(true)
680 .inplace_b(true)
681 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Max);
682 }
683 }
684 #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
685
686
687 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASMSIMD_ARM_X16,batch_eq_16)688 TEST(F32_VMAX__WASMSIMD_ARM_X16, batch_eq_16) {
689 VBinaryMicrokernelTester()
690 .batch_size(16)
691 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Max);
692 }
693
TEST(F32_VMAX__WASMSIMD_ARM_X16,batch_div_16)694 TEST(F32_VMAX__WASMSIMD_ARM_X16, batch_div_16) {
695 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
696 VBinaryMicrokernelTester()
697 .batch_size(batch_size)
698 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Max);
699 }
700 }
701
TEST(F32_VMAX__WASMSIMD_ARM_X16,batch_lt_16)702 TEST(F32_VMAX__WASMSIMD_ARM_X16, batch_lt_16) {
703 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
704 VBinaryMicrokernelTester()
705 .batch_size(batch_size)
706 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Max);
707 }
708 }
709
TEST(F32_VMAX__WASMSIMD_ARM_X16,batch_gt_16)710 TEST(F32_VMAX__WASMSIMD_ARM_X16, batch_gt_16) {
711 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
712 VBinaryMicrokernelTester()
713 .batch_size(batch_size)
714 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Max);
715 }
716 }
717
TEST(F32_VMAX__WASMSIMD_ARM_X16,inplace_a)718 TEST(F32_VMAX__WASMSIMD_ARM_X16, inplace_a) {
719 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
720 VBinaryMicrokernelTester()
721 .batch_size(batch_size)
722 .inplace_a(true)
723 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Max);
724 }
725 }
726
TEST(F32_VMAX__WASMSIMD_ARM_X16,inplace_b)727 TEST(F32_VMAX__WASMSIMD_ARM_X16, inplace_b) {
728 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
729 VBinaryMicrokernelTester()
730 .batch_size(batch_size)
731 .inplace_b(true)
732 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Max);
733 }
734 }
735
TEST(F32_VMAX__WASMSIMD_ARM_X16,inplace_a_and_b)736 TEST(F32_VMAX__WASMSIMD_ARM_X16, inplace_a_and_b) {
737 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
738 VBinaryMicrokernelTester()
739 .batch_size(batch_size)
740 .inplace_a(true)
741 .inplace_b(true)
742 .Test(xnn_f32_vmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Max);
743 }
744 }
745 #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
746
747
748 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASMSIMD_X86_X4,batch_eq_4)749 TEST(F32_VMAX__WASMSIMD_X86_X4, batch_eq_4) {
750 VBinaryMicrokernelTester()
751 .batch_size(4)
752 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Max);
753 }
754
TEST(F32_VMAX__WASMSIMD_X86_X4,batch_div_4)755 TEST(F32_VMAX__WASMSIMD_X86_X4, batch_div_4) {
756 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
757 VBinaryMicrokernelTester()
758 .batch_size(batch_size)
759 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Max);
760 }
761 }
762
TEST(F32_VMAX__WASMSIMD_X86_X4,batch_lt_4)763 TEST(F32_VMAX__WASMSIMD_X86_X4, batch_lt_4) {
764 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
765 VBinaryMicrokernelTester()
766 .batch_size(batch_size)
767 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Max);
768 }
769 }
770
TEST(F32_VMAX__WASMSIMD_X86_X4,batch_gt_4)771 TEST(F32_VMAX__WASMSIMD_X86_X4, batch_gt_4) {
772 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
773 VBinaryMicrokernelTester()
774 .batch_size(batch_size)
775 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Max);
776 }
777 }
778
TEST(F32_VMAX__WASMSIMD_X86_X4,inplace_a)779 TEST(F32_VMAX__WASMSIMD_X86_X4, inplace_a) {
780 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
781 VBinaryMicrokernelTester()
782 .batch_size(batch_size)
783 .inplace_a(true)
784 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Max);
785 }
786 }
787
TEST(F32_VMAX__WASMSIMD_X86_X4,inplace_b)788 TEST(F32_VMAX__WASMSIMD_X86_X4, inplace_b) {
789 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
790 VBinaryMicrokernelTester()
791 .batch_size(batch_size)
792 .inplace_b(true)
793 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Max);
794 }
795 }
796
TEST(F32_VMAX__WASMSIMD_X86_X4,inplace_a_and_b)797 TEST(F32_VMAX__WASMSIMD_X86_X4, inplace_a_and_b) {
798 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
799 VBinaryMicrokernelTester()
800 .batch_size(batch_size)
801 .inplace_a(true)
802 .inplace_b(true)
803 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Max);
804 }
805 }
806 #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
807
808
809 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASMSIMD_X86_X8,batch_eq_8)810 TEST(F32_VMAX__WASMSIMD_X86_X8, batch_eq_8) {
811 VBinaryMicrokernelTester()
812 .batch_size(8)
813 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Max);
814 }
815
TEST(F32_VMAX__WASMSIMD_X86_X8,batch_div_8)816 TEST(F32_VMAX__WASMSIMD_X86_X8, batch_div_8) {
817 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
818 VBinaryMicrokernelTester()
819 .batch_size(batch_size)
820 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Max);
821 }
822 }
823
TEST(F32_VMAX__WASMSIMD_X86_X8,batch_lt_8)824 TEST(F32_VMAX__WASMSIMD_X86_X8, batch_lt_8) {
825 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
826 VBinaryMicrokernelTester()
827 .batch_size(batch_size)
828 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Max);
829 }
830 }
831
TEST(F32_VMAX__WASMSIMD_X86_X8,batch_gt_8)832 TEST(F32_VMAX__WASMSIMD_X86_X8, batch_gt_8) {
833 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
834 VBinaryMicrokernelTester()
835 .batch_size(batch_size)
836 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Max);
837 }
838 }
839
TEST(F32_VMAX__WASMSIMD_X86_X8,inplace_a)840 TEST(F32_VMAX__WASMSIMD_X86_X8, inplace_a) {
841 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
842 VBinaryMicrokernelTester()
843 .batch_size(batch_size)
844 .inplace_a(true)
845 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Max);
846 }
847 }
848
TEST(F32_VMAX__WASMSIMD_X86_X8,inplace_b)849 TEST(F32_VMAX__WASMSIMD_X86_X8, inplace_b) {
850 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
851 VBinaryMicrokernelTester()
852 .batch_size(batch_size)
853 .inplace_b(true)
854 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Max);
855 }
856 }
857
TEST(F32_VMAX__WASMSIMD_X86_X8,inplace_a_and_b)858 TEST(F32_VMAX__WASMSIMD_X86_X8, inplace_a_and_b) {
859 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
860 VBinaryMicrokernelTester()
861 .batch_size(batch_size)
862 .inplace_a(true)
863 .inplace_b(true)
864 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Max);
865 }
866 }
867 #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
868
869
870 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASMSIMD_X86_X16,batch_eq_16)871 TEST(F32_VMAX__WASMSIMD_X86_X16, batch_eq_16) {
872 VBinaryMicrokernelTester()
873 .batch_size(16)
874 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Max);
875 }
876
TEST(F32_VMAX__WASMSIMD_X86_X16,batch_div_16)877 TEST(F32_VMAX__WASMSIMD_X86_X16, batch_div_16) {
878 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
879 VBinaryMicrokernelTester()
880 .batch_size(batch_size)
881 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Max);
882 }
883 }
884
TEST(F32_VMAX__WASMSIMD_X86_X16,batch_lt_16)885 TEST(F32_VMAX__WASMSIMD_X86_X16, batch_lt_16) {
886 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
887 VBinaryMicrokernelTester()
888 .batch_size(batch_size)
889 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Max);
890 }
891 }
892
TEST(F32_VMAX__WASMSIMD_X86_X16,batch_gt_16)893 TEST(F32_VMAX__WASMSIMD_X86_X16, batch_gt_16) {
894 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
895 VBinaryMicrokernelTester()
896 .batch_size(batch_size)
897 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Max);
898 }
899 }
900
TEST(F32_VMAX__WASMSIMD_X86_X16,inplace_a)901 TEST(F32_VMAX__WASMSIMD_X86_X16, inplace_a) {
902 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
903 VBinaryMicrokernelTester()
904 .batch_size(batch_size)
905 .inplace_a(true)
906 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Max);
907 }
908 }
909
TEST(F32_VMAX__WASMSIMD_X86_X16,inplace_b)910 TEST(F32_VMAX__WASMSIMD_X86_X16, inplace_b) {
911 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
912 VBinaryMicrokernelTester()
913 .batch_size(batch_size)
914 .inplace_b(true)
915 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Max);
916 }
917 }
918
TEST(F32_VMAX__WASMSIMD_X86_X16,inplace_a_and_b)919 TEST(F32_VMAX__WASMSIMD_X86_X16, inplace_a_and_b) {
920 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
921 VBinaryMicrokernelTester()
922 .batch_size(batch_size)
923 .inplace_a(true)
924 .inplace_b(true)
925 .Test(xnn_f32_vmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Max);
926 }
927 }
928 #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
929
930
931 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASM_X1,batch_eq_1)932 TEST(F32_VMAX__WASM_X1, batch_eq_1) {
933 VBinaryMicrokernelTester()
934 .batch_size(1)
935 .Test(xnn_f32_vmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Max);
936 }
937
TEST(F32_VMAX__WASM_X1,batch_gt_1)938 TEST(F32_VMAX__WASM_X1, batch_gt_1) {
939 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
940 VBinaryMicrokernelTester()
941 .batch_size(batch_size)
942 .Test(xnn_f32_vmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Max);
943 }
944 }
945
TEST(F32_VMAX__WASM_X1,inplace_a)946 TEST(F32_VMAX__WASM_X1, inplace_a) {
947 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
948 VBinaryMicrokernelTester()
949 .batch_size(batch_size)
950 .inplace_a(true)
951 .Test(xnn_f32_vmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Max);
952 }
953 }
954
TEST(F32_VMAX__WASM_X1,inplace_b)955 TEST(F32_VMAX__WASM_X1, inplace_b) {
956 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
957 VBinaryMicrokernelTester()
958 .batch_size(batch_size)
959 .inplace_b(true)
960 .Test(xnn_f32_vmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Max);
961 }
962 }
963
TEST(F32_VMAX__WASM_X1,inplace_a_and_b)964 TEST(F32_VMAX__WASM_X1, inplace_a_and_b) {
965 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
966 VBinaryMicrokernelTester()
967 .batch_size(batch_size)
968 .inplace_a(true)
969 .inplace_b(true)
970 .Test(xnn_f32_vmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Max);
971 }
972 }
973 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
974
975
976 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASM_X2,batch_eq_2)977 TEST(F32_VMAX__WASM_X2, batch_eq_2) {
978 VBinaryMicrokernelTester()
979 .batch_size(2)
980 .Test(xnn_f32_vmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Max);
981 }
982
TEST(F32_VMAX__WASM_X2,batch_div_2)983 TEST(F32_VMAX__WASM_X2, batch_div_2) {
984 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
985 VBinaryMicrokernelTester()
986 .batch_size(batch_size)
987 .Test(xnn_f32_vmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Max);
988 }
989 }
990
TEST(F32_VMAX__WASM_X2,batch_lt_2)991 TEST(F32_VMAX__WASM_X2, batch_lt_2) {
992 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
993 VBinaryMicrokernelTester()
994 .batch_size(batch_size)
995 .Test(xnn_f32_vmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Max);
996 }
997 }
998
TEST(F32_VMAX__WASM_X2,batch_gt_2)999 TEST(F32_VMAX__WASM_X2, batch_gt_2) {
1000 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
1001 VBinaryMicrokernelTester()
1002 .batch_size(batch_size)
1003 .Test(xnn_f32_vmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Max);
1004 }
1005 }
1006
TEST(F32_VMAX__WASM_X2,inplace_a)1007 TEST(F32_VMAX__WASM_X2, inplace_a) {
1008 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1009 VBinaryMicrokernelTester()
1010 .batch_size(batch_size)
1011 .inplace_a(true)
1012 .Test(xnn_f32_vmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Max);
1013 }
1014 }
1015
TEST(F32_VMAX__WASM_X2,inplace_b)1016 TEST(F32_VMAX__WASM_X2, inplace_b) {
1017 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1018 VBinaryMicrokernelTester()
1019 .batch_size(batch_size)
1020 .inplace_b(true)
1021 .Test(xnn_f32_vmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Max);
1022 }
1023 }
1024
TEST(F32_VMAX__WASM_X2,inplace_a_and_b)1025 TEST(F32_VMAX__WASM_X2, inplace_a_and_b) {
1026 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1027 VBinaryMicrokernelTester()
1028 .batch_size(batch_size)
1029 .inplace_a(true)
1030 .inplace_b(true)
1031 .Test(xnn_f32_vmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Max);
1032 }
1033 }
1034 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
1035
1036
1037 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASM_X4,batch_eq_4)1038 TEST(F32_VMAX__WASM_X4, batch_eq_4) {
1039 VBinaryMicrokernelTester()
1040 .batch_size(4)
1041 .Test(xnn_f32_vmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Max);
1042 }
1043
TEST(F32_VMAX__WASM_X4,batch_div_4)1044 TEST(F32_VMAX__WASM_X4, batch_div_4) {
1045 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
1046 VBinaryMicrokernelTester()
1047 .batch_size(batch_size)
1048 .Test(xnn_f32_vmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Max);
1049 }
1050 }
1051
TEST(F32_VMAX__WASM_X4,batch_lt_4)1052 TEST(F32_VMAX__WASM_X4, batch_lt_4) {
1053 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
1054 VBinaryMicrokernelTester()
1055 .batch_size(batch_size)
1056 .Test(xnn_f32_vmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Max);
1057 }
1058 }
1059
TEST(F32_VMAX__WASM_X4,batch_gt_4)1060 TEST(F32_VMAX__WASM_X4, batch_gt_4) {
1061 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
1062 VBinaryMicrokernelTester()
1063 .batch_size(batch_size)
1064 .Test(xnn_f32_vmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Max);
1065 }
1066 }
1067
TEST(F32_VMAX__WASM_X4,inplace_a)1068 TEST(F32_VMAX__WASM_X4, inplace_a) {
1069 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1070 VBinaryMicrokernelTester()
1071 .batch_size(batch_size)
1072 .inplace_a(true)
1073 .Test(xnn_f32_vmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Max);
1074 }
1075 }
1076
TEST(F32_VMAX__WASM_X4,inplace_b)1077 TEST(F32_VMAX__WASM_X4, inplace_b) {
1078 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1079 VBinaryMicrokernelTester()
1080 .batch_size(batch_size)
1081 .inplace_b(true)
1082 .Test(xnn_f32_vmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Max);
1083 }
1084 }
1085
TEST(F32_VMAX__WASM_X4,inplace_a_and_b)1086 TEST(F32_VMAX__WASM_X4, inplace_a_and_b) {
1087 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1088 VBinaryMicrokernelTester()
1089 .batch_size(batch_size)
1090 .inplace_a(true)
1091 .inplace_b(true)
1092 .Test(xnn_f32_vmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Max);
1093 }
1094 }
1095 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
1096
1097
1098 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VMAX__WASM_X8,batch_eq_8)1099 TEST(F32_VMAX__WASM_X8, batch_eq_8) {
1100 VBinaryMicrokernelTester()
1101 .batch_size(8)
1102 .Test(xnn_f32_vmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Max);
1103 }
1104
TEST(F32_VMAX__WASM_X8,batch_div_8)1105 TEST(F32_VMAX__WASM_X8, batch_div_8) {
1106 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
1107 VBinaryMicrokernelTester()
1108 .batch_size(batch_size)
1109 .Test(xnn_f32_vmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Max);
1110 }
1111 }
1112
TEST(F32_VMAX__WASM_X8,batch_lt_8)1113 TEST(F32_VMAX__WASM_X8, batch_lt_8) {
1114 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
1115 VBinaryMicrokernelTester()
1116 .batch_size(batch_size)
1117 .Test(xnn_f32_vmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Max);
1118 }
1119 }
1120
TEST(F32_VMAX__WASM_X8,batch_gt_8)1121 TEST(F32_VMAX__WASM_X8, batch_gt_8) {
1122 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
1123 VBinaryMicrokernelTester()
1124 .batch_size(batch_size)
1125 .Test(xnn_f32_vmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Max);
1126 }
1127 }
1128
TEST(F32_VMAX__WASM_X8,inplace_a)1129 TEST(F32_VMAX__WASM_X8, inplace_a) {
1130 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1131 VBinaryMicrokernelTester()
1132 .batch_size(batch_size)
1133 .inplace_a(true)
1134 .Test(xnn_f32_vmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Max);
1135 }
1136 }
1137
TEST(F32_VMAX__WASM_X8,inplace_b)1138 TEST(F32_VMAX__WASM_X8, inplace_b) {
1139 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1140 VBinaryMicrokernelTester()
1141 .batch_size(batch_size)
1142 .inplace_b(true)
1143 .Test(xnn_f32_vmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Max);
1144 }
1145 }
1146
TEST(F32_VMAX__WASM_X8,inplace_a_and_b)1147 TEST(F32_VMAX__WASM_X8, inplace_a_and_b) {
1148 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1149 VBinaryMicrokernelTester()
1150 .batch_size(batch_size)
1151 .inplace_a(true)
1152 .inplace_b(true)
1153 .Test(xnn_f32_vmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Max);
1154 }
1155 }
1156 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
1157
1158
TEST(F32_VMAX__SCALAR_X1,batch_eq_1)1159 TEST(F32_VMAX__SCALAR_X1, batch_eq_1) {
1160 VBinaryMicrokernelTester()
1161 .batch_size(1)
1162 .Test(xnn_f32_vmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Max);
1163 }
1164
TEST(F32_VMAX__SCALAR_X1,batch_gt_1)1165 TEST(F32_VMAX__SCALAR_X1, batch_gt_1) {
1166 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
1167 VBinaryMicrokernelTester()
1168 .batch_size(batch_size)
1169 .Test(xnn_f32_vmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Max);
1170 }
1171 }
1172
TEST(F32_VMAX__SCALAR_X1,inplace_a)1173 TEST(F32_VMAX__SCALAR_X1, inplace_a) {
1174 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
1175 VBinaryMicrokernelTester()
1176 .batch_size(batch_size)
1177 .inplace_a(true)
1178 .Test(xnn_f32_vmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Max);
1179 }
1180 }
1181
TEST(F32_VMAX__SCALAR_X1,inplace_b)1182 TEST(F32_VMAX__SCALAR_X1, inplace_b) {
1183 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
1184 VBinaryMicrokernelTester()
1185 .batch_size(batch_size)
1186 .inplace_b(true)
1187 .Test(xnn_f32_vmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Max);
1188 }
1189 }
1190
TEST(F32_VMAX__SCALAR_X1,inplace_a_and_b)1191 TEST(F32_VMAX__SCALAR_X1, inplace_a_and_b) {
1192 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
1193 VBinaryMicrokernelTester()
1194 .batch_size(batch_size)
1195 .inplace_a(true)
1196 .inplace_b(true)
1197 .Test(xnn_f32_vmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Max);
1198 }
1199 }
1200
1201
TEST(F32_VMAX__SCALAR_X2,batch_eq_2)1202 TEST(F32_VMAX__SCALAR_X2, batch_eq_2) {
1203 VBinaryMicrokernelTester()
1204 .batch_size(2)
1205 .Test(xnn_f32_vmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Max);
1206 }
1207
TEST(F32_VMAX__SCALAR_X2,batch_div_2)1208 TEST(F32_VMAX__SCALAR_X2, batch_div_2) {
1209 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
1210 VBinaryMicrokernelTester()
1211 .batch_size(batch_size)
1212 .Test(xnn_f32_vmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Max);
1213 }
1214 }
1215
TEST(F32_VMAX__SCALAR_X2,batch_lt_2)1216 TEST(F32_VMAX__SCALAR_X2, batch_lt_2) {
1217 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
1218 VBinaryMicrokernelTester()
1219 .batch_size(batch_size)
1220 .Test(xnn_f32_vmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Max);
1221 }
1222 }
1223
TEST(F32_VMAX__SCALAR_X2,batch_gt_2)1224 TEST(F32_VMAX__SCALAR_X2, batch_gt_2) {
1225 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
1226 VBinaryMicrokernelTester()
1227 .batch_size(batch_size)
1228 .Test(xnn_f32_vmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Max);
1229 }
1230 }
1231
TEST(F32_VMAX__SCALAR_X2,inplace_a)1232 TEST(F32_VMAX__SCALAR_X2, inplace_a) {
1233 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1234 VBinaryMicrokernelTester()
1235 .batch_size(batch_size)
1236 .inplace_a(true)
1237 .Test(xnn_f32_vmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Max);
1238 }
1239 }
1240
TEST(F32_VMAX__SCALAR_X2,inplace_b)1241 TEST(F32_VMAX__SCALAR_X2, inplace_b) {
1242 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1243 VBinaryMicrokernelTester()
1244 .batch_size(batch_size)
1245 .inplace_b(true)
1246 .Test(xnn_f32_vmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Max);
1247 }
1248 }
1249
TEST(F32_VMAX__SCALAR_X2,inplace_a_and_b)1250 TEST(F32_VMAX__SCALAR_X2, inplace_a_and_b) {
1251 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1252 VBinaryMicrokernelTester()
1253 .batch_size(batch_size)
1254 .inplace_a(true)
1255 .inplace_b(true)
1256 .Test(xnn_f32_vmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Max);
1257 }
1258 }
1259
1260
TEST(F32_VMAX__SCALAR_X4,batch_eq_4)1261 TEST(F32_VMAX__SCALAR_X4, batch_eq_4) {
1262 VBinaryMicrokernelTester()
1263 .batch_size(4)
1264 .Test(xnn_f32_vmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Max);
1265 }
1266
TEST(F32_VMAX__SCALAR_X4,batch_div_4)1267 TEST(F32_VMAX__SCALAR_X4, batch_div_4) {
1268 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
1269 VBinaryMicrokernelTester()
1270 .batch_size(batch_size)
1271 .Test(xnn_f32_vmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Max);
1272 }
1273 }
1274
TEST(F32_VMAX__SCALAR_X4,batch_lt_4)1275 TEST(F32_VMAX__SCALAR_X4, batch_lt_4) {
1276 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
1277 VBinaryMicrokernelTester()
1278 .batch_size(batch_size)
1279 .Test(xnn_f32_vmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Max);
1280 }
1281 }
1282
TEST(F32_VMAX__SCALAR_X4,batch_gt_4)1283 TEST(F32_VMAX__SCALAR_X4, batch_gt_4) {
1284 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
1285 VBinaryMicrokernelTester()
1286 .batch_size(batch_size)
1287 .Test(xnn_f32_vmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Max);
1288 }
1289 }
1290
TEST(F32_VMAX__SCALAR_X4,inplace_a)1291 TEST(F32_VMAX__SCALAR_X4, inplace_a) {
1292 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1293 VBinaryMicrokernelTester()
1294 .batch_size(batch_size)
1295 .inplace_a(true)
1296 .Test(xnn_f32_vmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Max);
1297 }
1298 }
1299
TEST(F32_VMAX__SCALAR_X4,inplace_b)1300 TEST(F32_VMAX__SCALAR_X4, inplace_b) {
1301 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1302 VBinaryMicrokernelTester()
1303 .batch_size(batch_size)
1304 .inplace_b(true)
1305 .Test(xnn_f32_vmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Max);
1306 }
1307 }
1308
TEST(F32_VMAX__SCALAR_X4,inplace_a_and_b)1309 TEST(F32_VMAX__SCALAR_X4, inplace_a_and_b) {
1310 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1311 VBinaryMicrokernelTester()
1312 .batch_size(batch_size)
1313 .inplace_a(true)
1314 .inplace_b(true)
1315 .Test(xnn_f32_vmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Max);
1316 }
1317 }
1318
1319
TEST(F32_VMAX__SCALAR_X8,batch_eq_8)1320 TEST(F32_VMAX__SCALAR_X8, batch_eq_8) {
1321 VBinaryMicrokernelTester()
1322 .batch_size(8)
1323 .Test(xnn_f32_vmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Max);
1324 }
1325
TEST(F32_VMAX__SCALAR_X8,batch_div_8)1326 TEST(F32_VMAX__SCALAR_X8, batch_div_8) {
1327 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
1328 VBinaryMicrokernelTester()
1329 .batch_size(batch_size)
1330 .Test(xnn_f32_vmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Max);
1331 }
1332 }
1333
TEST(F32_VMAX__SCALAR_X8,batch_lt_8)1334 TEST(F32_VMAX__SCALAR_X8, batch_lt_8) {
1335 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
1336 VBinaryMicrokernelTester()
1337 .batch_size(batch_size)
1338 .Test(xnn_f32_vmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Max);
1339 }
1340 }
1341
TEST(F32_VMAX__SCALAR_X8,batch_gt_8)1342 TEST(F32_VMAX__SCALAR_X8, batch_gt_8) {
1343 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
1344 VBinaryMicrokernelTester()
1345 .batch_size(batch_size)
1346 .Test(xnn_f32_vmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Max);
1347 }
1348 }
1349
TEST(F32_VMAX__SCALAR_X8,inplace_a)1350 TEST(F32_VMAX__SCALAR_X8, inplace_a) {
1351 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1352 VBinaryMicrokernelTester()
1353 .batch_size(batch_size)
1354 .inplace_a(true)
1355 .Test(xnn_f32_vmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Max);
1356 }
1357 }
1358
TEST(F32_VMAX__SCALAR_X8,inplace_b)1359 TEST(F32_VMAX__SCALAR_X8, inplace_b) {
1360 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1361 VBinaryMicrokernelTester()
1362 .batch_size(batch_size)
1363 .inplace_b(true)
1364 .Test(xnn_f32_vmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Max);
1365 }
1366 }
1367
TEST(F32_VMAX__SCALAR_X8,inplace_a_and_b)1368 TEST(F32_VMAX__SCALAR_X8, inplace_a_and_b) {
1369 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1370 VBinaryMicrokernelTester()
1371 .batch_size(batch_size)
1372 .inplace_a(true)
1373 .inplace_b(true)
1374 .Test(xnn_f32_vmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Max);
1375 }
1376 }
1377