blob: 8de0a177c7449113d91cb982fda79c5894c597b6 [file] [log] [blame]
Marat Dukhan403b7d42019-12-05 12:49:11 -08001// 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-vmin.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_ARM || XNN_ARCH_ARM64
21 TEST(F32_VMIN__NEON_X4, batch_eq_4) {
22 TEST_REQUIRES_ARM_NEON;
23 VBinOpMicrokernelTester()
24 .batch_size(4)
25 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::Min);
26 }
27
28 TEST(F32_VMIN__NEON_X4, batch_div_4) {
29 TEST_REQUIRES_ARM_NEON;
30 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
31 VBinOpMicrokernelTester()
32 .batch_size(batch_size)
33 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::Min);
34 }
35 }
36
37 TEST(F32_VMIN__NEON_X4, batch_lt_4) {
38 TEST_REQUIRES_ARM_NEON;
39 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
40 VBinOpMicrokernelTester()
41 .batch_size(batch_size)
42 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::Min);
43 }
44 }
45
46 TEST(F32_VMIN__NEON_X4, batch_gt_4) {
47 TEST_REQUIRES_ARM_NEON;
48 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
49 VBinOpMicrokernelTester()
50 .batch_size(batch_size)
51 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::Min);
52 }
53 }
54
55 TEST(F32_VMIN__NEON_X4, inplace_a) {
56 TEST_REQUIRES_ARM_NEON;
57 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
58 VBinOpMicrokernelTester()
59 .batch_size(batch_size)
60 .inplace_a(true)
61 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::Min);
62 }
63 }
64
65 TEST(F32_VMIN__NEON_X4, inplace_b) {
66 TEST_REQUIRES_ARM_NEON;
67 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
68 VBinOpMicrokernelTester()
69 .batch_size(batch_size)
70 .inplace_b(true)
71 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::Min);
72 }
73 }
74
75 TEST(F32_VMIN__NEON_X4, inplace_a_and_b) {
76 TEST_REQUIRES_ARM_NEON;
77 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
78 VBinOpMicrokernelTester()
79 .batch_size(batch_size)
80 .inplace_a(true)
81 .inplace_b(true)
82 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::Min);
83 }
84 }
Marat Dukhan403b7d42019-12-05 12:49:11 -080085#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
86
87
88#if XNN_ARCH_ARM || XNN_ARCH_ARM64
89 TEST(F32_VMIN__NEON_X8, batch_eq_8) {
90 TEST_REQUIRES_ARM_NEON;
91 VBinOpMicrokernelTester()
92 .batch_size(8)
93 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::Min);
94 }
95
96 TEST(F32_VMIN__NEON_X8, batch_div_8) {
97 TEST_REQUIRES_ARM_NEON;
98 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
99 VBinOpMicrokernelTester()
100 .batch_size(batch_size)
101 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::Min);
102 }
103 }
104
105 TEST(F32_VMIN__NEON_X8, batch_lt_8) {
106 TEST_REQUIRES_ARM_NEON;
107 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
108 VBinOpMicrokernelTester()
109 .batch_size(batch_size)
110 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::Min);
111 }
112 }
113
114 TEST(F32_VMIN__NEON_X8, batch_gt_8) {
115 TEST_REQUIRES_ARM_NEON;
116 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
117 VBinOpMicrokernelTester()
118 .batch_size(batch_size)
119 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::Min);
120 }
121 }
122
123 TEST(F32_VMIN__NEON_X8, inplace_a) {
124 TEST_REQUIRES_ARM_NEON;
125 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
126 VBinOpMicrokernelTester()
127 .batch_size(batch_size)
128 .inplace_a(true)
129 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::Min);
130 }
131 }
132
133 TEST(F32_VMIN__NEON_X8, inplace_b) {
134 TEST_REQUIRES_ARM_NEON;
135 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
136 VBinOpMicrokernelTester()
137 .batch_size(batch_size)
138 .inplace_b(true)
139 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::Min);
140 }
141 }
142
143 TEST(F32_VMIN__NEON_X8, inplace_a_and_b) {
144 TEST_REQUIRES_ARM_NEON;
145 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
146 VBinOpMicrokernelTester()
147 .batch_size(batch_size)
148 .inplace_a(true)
149 .inplace_b(true)
150 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::Min);
151 }
152 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800153#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
154
155
156#if XNN_ARCH_X86 || XNN_ARCH_X86_64
157 TEST(F32_VMIN__SSE_X4, batch_eq_4) {
158 TEST_REQUIRES_X86_SSE;
159 VBinOpMicrokernelTester()
160 .batch_size(4)
161 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::Min);
162 }
163
164 TEST(F32_VMIN__SSE_X4, batch_div_4) {
165 TEST_REQUIRES_X86_SSE;
166 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
167 VBinOpMicrokernelTester()
168 .batch_size(batch_size)
169 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::Min);
170 }
171 }
172
173 TEST(F32_VMIN__SSE_X4, batch_lt_4) {
174 TEST_REQUIRES_X86_SSE;
175 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
176 VBinOpMicrokernelTester()
177 .batch_size(batch_size)
178 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::Min);
179 }
180 }
181
182 TEST(F32_VMIN__SSE_X4, batch_gt_4) {
183 TEST_REQUIRES_X86_SSE;
184 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
185 VBinOpMicrokernelTester()
186 .batch_size(batch_size)
187 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::Min);
188 }
189 }
190
191 TEST(F32_VMIN__SSE_X4, inplace_a) {
192 TEST_REQUIRES_X86_SSE;
193 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
194 VBinOpMicrokernelTester()
195 .batch_size(batch_size)
196 .inplace_a(true)
197 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::Min);
198 }
199 }
200
201 TEST(F32_VMIN__SSE_X4, inplace_b) {
202 TEST_REQUIRES_X86_SSE;
203 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
204 VBinOpMicrokernelTester()
205 .batch_size(batch_size)
206 .inplace_b(true)
207 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::Min);
208 }
209 }
210
211 TEST(F32_VMIN__SSE_X4, inplace_a_and_b) {
212 TEST_REQUIRES_X86_SSE;
213 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
214 VBinOpMicrokernelTester()
215 .batch_size(batch_size)
216 .inplace_a(true)
217 .inplace_b(true)
218 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::Min);
219 }
220 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800221#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
222
223
224#if XNN_ARCH_X86 || XNN_ARCH_X86_64
225 TEST(F32_VMIN__SSE_X8, batch_eq_8) {
226 TEST_REQUIRES_X86_SSE;
227 VBinOpMicrokernelTester()
228 .batch_size(8)
229 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::Min);
230 }
231
232 TEST(F32_VMIN__SSE_X8, batch_div_8) {
233 TEST_REQUIRES_X86_SSE;
234 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
235 VBinOpMicrokernelTester()
236 .batch_size(batch_size)
237 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::Min);
238 }
239 }
240
241 TEST(F32_VMIN__SSE_X8, batch_lt_8) {
242 TEST_REQUIRES_X86_SSE;
243 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
244 VBinOpMicrokernelTester()
245 .batch_size(batch_size)
246 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::Min);
247 }
248 }
249
250 TEST(F32_VMIN__SSE_X8, batch_gt_8) {
251 TEST_REQUIRES_X86_SSE;
252 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
253 VBinOpMicrokernelTester()
254 .batch_size(batch_size)
255 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::Min);
256 }
257 }
258
259 TEST(F32_VMIN__SSE_X8, inplace_a) {
260 TEST_REQUIRES_X86_SSE;
261 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
262 VBinOpMicrokernelTester()
263 .batch_size(batch_size)
264 .inplace_a(true)
265 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::Min);
266 }
267 }
268
269 TEST(F32_VMIN__SSE_X8, inplace_b) {
270 TEST_REQUIRES_X86_SSE;
271 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
272 VBinOpMicrokernelTester()
273 .batch_size(batch_size)
274 .inplace_b(true)
275 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::Min);
276 }
277 }
278
279 TEST(F32_VMIN__SSE_X8, inplace_a_and_b) {
280 TEST_REQUIRES_X86_SSE;
281 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
282 VBinOpMicrokernelTester()
283 .batch_size(batch_size)
284 .inplace_a(true)
285 .inplace_b(true)
286 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::Min);
287 }
288 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800289#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
290
291
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800292#if XNN_ARCH_X86 || XNN_ARCH_X86_64
293 TEST(F32_VMIN__AVX_X8, batch_eq_8) {
294 TEST_REQUIRES_X86_AVX;
295 VBinOpMicrokernelTester()
296 .batch_size(8)
297 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::Min);
298 }
299
300 TEST(F32_VMIN__AVX_X8, batch_div_8) {
301 TEST_REQUIRES_X86_AVX;
302 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
303 VBinOpMicrokernelTester()
304 .batch_size(batch_size)
305 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::Min);
306 }
307 }
308
309 TEST(F32_VMIN__AVX_X8, batch_lt_8) {
310 TEST_REQUIRES_X86_AVX;
311 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
312 VBinOpMicrokernelTester()
313 .batch_size(batch_size)
314 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::Min);
315 }
316 }
317
318 TEST(F32_VMIN__AVX_X8, batch_gt_8) {
319 TEST_REQUIRES_X86_AVX;
320 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
321 VBinOpMicrokernelTester()
322 .batch_size(batch_size)
323 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::Min);
324 }
325 }
326
327 TEST(F32_VMIN__AVX_X8, inplace_a) {
328 TEST_REQUIRES_X86_AVX;
329 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
330 VBinOpMicrokernelTester()
331 .batch_size(batch_size)
332 .inplace_a(true)
333 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::Min);
334 }
335 }
336
337 TEST(F32_VMIN__AVX_X8, inplace_b) {
338 TEST_REQUIRES_X86_AVX;
339 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
340 VBinOpMicrokernelTester()
341 .batch_size(batch_size)
342 .inplace_b(true)
343 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::Min);
344 }
345 }
346
347 TEST(F32_VMIN__AVX_X8, inplace_a_and_b) {
348 TEST_REQUIRES_X86_AVX;
349 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
350 VBinOpMicrokernelTester()
351 .batch_size(batch_size)
352 .inplace_a(true)
353 .inplace_b(true)
354 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::Min);
355 }
356 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800357#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
358
359
360#if XNN_ARCH_X86 || XNN_ARCH_X86_64
361 TEST(F32_VMIN__AVX_X16, batch_eq_16) {
362 TEST_REQUIRES_X86_AVX;
363 VBinOpMicrokernelTester()
364 .batch_size(16)
365 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::Min);
366 }
367
368 TEST(F32_VMIN__AVX_X16, batch_div_16) {
369 TEST_REQUIRES_X86_AVX;
370 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
371 VBinOpMicrokernelTester()
372 .batch_size(batch_size)
373 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::Min);
374 }
375 }
376
377 TEST(F32_VMIN__AVX_X16, batch_lt_16) {
378 TEST_REQUIRES_X86_AVX;
379 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
380 VBinOpMicrokernelTester()
381 .batch_size(batch_size)
382 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::Min);
383 }
384 }
385
386 TEST(F32_VMIN__AVX_X16, batch_gt_16) {
387 TEST_REQUIRES_X86_AVX;
388 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
389 VBinOpMicrokernelTester()
390 .batch_size(batch_size)
391 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::Min);
392 }
393 }
394
395 TEST(F32_VMIN__AVX_X16, inplace_a) {
396 TEST_REQUIRES_X86_AVX;
397 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
398 VBinOpMicrokernelTester()
399 .batch_size(batch_size)
400 .inplace_a(true)
401 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::Min);
402 }
403 }
404
405 TEST(F32_VMIN__AVX_X16, inplace_b) {
406 TEST_REQUIRES_X86_AVX;
407 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
408 VBinOpMicrokernelTester()
409 .batch_size(batch_size)
410 .inplace_b(true)
411 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::Min);
412 }
413 }
414
415 TEST(F32_VMIN__AVX_X16, inplace_a_and_b) {
416 TEST_REQUIRES_X86_AVX;
417 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
418 VBinOpMicrokernelTester()
419 .batch_size(batch_size)
420 .inplace_a(true)
421 .inplace_b(true)
422 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::Min);
423 }
424 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800425#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
426
427
428#if XNN_ARCH_X86 || XNN_ARCH_X86_64
429 TEST(F32_VMIN__AVX512F_X16, batch_eq_16) {
430 TEST_REQUIRES_X86_AVX512F;
431 VBinOpMicrokernelTester()
432 .batch_size(16)
433 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::Min);
434 }
435
436 TEST(F32_VMIN__AVX512F_X16, batch_div_16) {
437 TEST_REQUIRES_X86_AVX512F;
438 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
439 VBinOpMicrokernelTester()
440 .batch_size(batch_size)
441 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::Min);
442 }
443 }
444
445 TEST(F32_VMIN__AVX512F_X16, batch_lt_16) {
446 TEST_REQUIRES_X86_AVX512F;
447 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
448 VBinOpMicrokernelTester()
449 .batch_size(batch_size)
450 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::Min);
451 }
452 }
453
454 TEST(F32_VMIN__AVX512F_X16, batch_gt_16) {
455 TEST_REQUIRES_X86_AVX512F;
456 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
457 VBinOpMicrokernelTester()
458 .batch_size(batch_size)
459 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::Min);
460 }
461 }
462
463 TEST(F32_VMIN__AVX512F_X16, inplace_a) {
464 TEST_REQUIRES_X86_AVX512F;
465 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
466 VBinOpMicrokernelTester()
467 .batch_size(batch_size)
468 .inplace_a(true)
469 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::Min);
470 }
471 }
472
473 TEST(F32_VMIN__AVX512F_X16, inplace_b) {
474 TEST_REQUIRES_X86_AVX512F;
475 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
476 VBinOpMicrokernelTester()
477 .batch_size(batch_size)
478 .inplace_b(true)
479 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::Min);
480 }
481 }
482
483 TEST(F32_VMIN__AVX512F_X16, inplace_a_and_b) {
484 TEST_REQUIRES_X86_AVX512F;
485 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
486 VBinOpMicrokernelTester()
487 .batch_size(batch_size)
488 .inplace_a(true)
489 .inplace_b(true)
490 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::Min);
491 }
492 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800493#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
494
495
496#if XNN_ARCH_X86 || XNN_ARCH_X86_64
497 TEST(F32_VMIN__AVX512F_X32, batch_eq_32) {
498 TEST_REQUIRES_X86_AVX512F;
499 VBinOpMicrokernelTester()
500 .batch_size(32)
501 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::Min);
502 }
503
504 TEST(F32_VMIN__AVX512F_X32, batch_div_32) {
505 TEST_REQUIRES_X86_AVX512F;
506 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
507 VBinOpMicrokernelTester()
508 .batch_size(batch_size)
509 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::Min);
510 }
511 }
512
513 TEST(F32_VMIN__AVX512F_X32, batch_lt_32) {
514 TEST_REQUIRES_X86_AVX512F;
515 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
516 VBinOpMicrokernelTester()
517 .batch_size(batch_size)
518 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::Min);
519 }
520 }
521
522 TEST(F32_VMIN__AVX512F_X32, batch_gt_32) {
523 TEST_REQUIRES_X86_AVX512F;
524 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
525 VBinOpMicrokernelTester()
526 .batch_size(batch_size)
527 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::Min);
528 }
529 }
530
531 TEST(F32_VMIN__AVX512F_X32, inplace_a) {
532 TEST_REQUIRES_X86_AVX512F;
533 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
534 VBinOpMicrokernelTester()
535 .batch_size(batch_size)
536 .inplace_a(true)
537 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::Min);
538 }
539 }
540
541 TEST(F32_VMIN__AVX512F_X32, inplace_b) {
542 TEST_REQUIRES_X86_AVX512F;
543 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
544 VBinOpMicrokernelTester()
545 .batch_size(batch_size)
546 .inplace_b(true)
547 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::Min);
548 }
549 }
550
551 TEST(F32_VMIN__AVX512F_X32, inplace_a_and_b) {
552 TEST_REQUIRES_X86_AVX512F;
553 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
554 VBinOpMicrokernelTester()
555 .batch_size(batch_size)
556 .inplace_a(true)
557 .inplace_b(true)
558 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::Min);
559 }
560 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800561#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
562
563
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700564#if XNN_ARCH_WASMSIMD
565 TEST(F32_VMIN__WASMSIMD_ARM_X4, batch_eq_4) {
566 VBinOpMicrokernelTester()
567 .batch_size(4)
Marat Dukhan47387d62020-06-29 12:53:20 -0700568 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700569 }
570
571 TEST(F32_VMIN__WASMSIMD_ARM_X4, batch_div_4) {
572 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
573 VBinOpMicrokernelTester()
574 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700575 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700576 }
577 }
578
579 TEST(F32_VMIN__WASMSIMD_ARM_X4, batch_lt_4) {
580 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
581 VBinOpMicrokernelTester()
582 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700583 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700584 }
585 }
586
587 TEST(F32_VMIN__WASMSIMD_ARM_X4, batch_gt_4) {
588 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
589 VBinOpMicrokernelTester()
590 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700591 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700592 }
593 }
594
595 TEST(F32_VMIN__WASMSIMD_ARM_X4, inplace_a) {
596 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
597 VBinOpMicrokernelTester()
598 .batch_size(batch_size)
599 .inplace_a(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700600 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700601 }
602 }
603
604 TEST(F32_VMIN__WASMSIMD_ARM_X4, inplace_b) {
605 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
606 VBinOpMicrokernelTester()
607 .batch_size(batch_size)
608 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700609 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700610 }
611 }
612
613 TEST(F32_VMIN__WASMSIMD_ARM_X4, inplace_a_and_b) {
614 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
615 VBinOpMicrokernelTester()
616 .batch_size(batch_size)
617 .inplace_a(true)
618 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700619 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700620 }
621 }
622#endif // XNN_ARCH_WASMSIMD
623
624
625#if XNN_ARCH_WASMSIMD
626 TEST(F32_VMIN__WASMSIMD_ARM_X8, batch_eq_8) {
627 VBinOpMicrokernelTester()
628 .batch_size(8)
Marat Dukhan47387d62020-06-29 12:53:20 -0700629 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700630 }
631
632 TEST(F32_VMIN__WASMSIMD_ARM_X8, batch_div_8) {
633 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
634 VBinOpMicrokernelTester()
635 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700636 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700637 }
638 }
639
640 TEST(F32_VMIN__WASMSIMD_ARM_X8, batch_lt_8) {
641 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
642 VBinOpMicrokernelTester()
643 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700644 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700645 }
646 }
647
648 TEST(F32_VMIN__WASMSIMD_ARM_X8, batch_gt_8) {
649 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
650 VBinOpMicrokernelTester()
651 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700652 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700653 }
654 }
655
656 TEST(F32_VMIN__WASMSIMD_ARM_X8, inplace_a) {
657 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
658 VBinOpMicrokernelTester()
659 .batch_size(batch_size)
660 .inplace_a(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700661 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700662 }
663 }
664
665 TEST(F32_VMIN__WASMSIMD_ARM_X8, inplace_b) {
666 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
667 VBinOpMicrokernelTester()
668 .batch_size(batch_size)
669 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700670 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700671 }
672 }
673
674 TEST(F32_VMIN__WASMSIMD_ARM_X8, inplace_a_and_b) {
675 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
676 VBinOpMicrokernelTester()
677 .batch_size(batch_size)
678 .inplace_a(true)
679 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700680 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700681 }
682 }
683#endif // XNN_ARCH_WASMSIMD
684
685
686#if XNN_ARCH_WASMSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700687 TEST(F32_VMIN__WASMSIMD_ARM_X16, batch_eq_16) {
688 VBinOpMicrokernelTester()
689 .batch_size(16)
690 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinOpMicrokernelTester::OpType::Min);
691 }
692
693 TEST(F32_VMIN__WASMSIMD_ARM_X16, batch_div_16) {
694 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
695 VBinOpMicrokernelTester()
696 .batch_size(batch_size)
697 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinOpMicrokernelTester::OpType::Min);
698 }
699 }
700
701 TEST(F32_VMIN__WASMSIMD_ARM_X16, batch_lt_16) {
702 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
703 VBinOpMicrokernelTester()
704 .batch_size(batch_size)
705 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinOpMicrokernelTester::OpType::Min);
706 }
707 }
708
709 TEST(F32_VMIN__WASMSIMD_ARM_X16, batch_gt_16) {
710 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
711 VBinOpMicrokernelTester()
712 .batch_size(batch_size)
713 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinOpMicrokernelTester::OpType::Min);
714 }
715 }
716
717 TEST(F32_VMIN__WASMSIMD_ARM_X16, inplace_a) {
718 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
719 VBinOpMicrokernelTester()
720 .batch_size(batch_size)
721 .inplace_a(true)
722 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinOpMicrokernelTester::OpType::Min);
723 }
724 }
725
726 TEST(F32_VMIN__WASMSIMD_ARM_X16, inplace_b) {
727 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
728 VBinOpMicrokernelTester()
729 .batch_size(batch_size)
730 .inplace_b(true)
731 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinOpMicrokernelTester::OpType::Min);
732 }
733 }
734
735 TEST(F32_VMIN__WASMSIMD_ARM_X16, inplace_a_and_b) {
736 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
737 VBinOpMicrokernelTester()
738 .batch_size(batch_size)
739 .inplace_a(true)
740 .inplace_b(true)
741 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinOpMicrokernelTester::OpType::Min);
742 }
743 }
744#endif // XNN_ARCH_WASMSIMD
745
746
747#if XNN_ARCH_WASMSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700748 TEST(F32_VMIN__WASMSIMD_X86_X4, batch_eq_4) {
749 VBinOpMicrokernelTester()
750 .batch_size(4)
Marat Dukhan47387d62020-06-29 12:53:20 -0700751 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700752 }
753
754 TEST(F32_VMIN__WASMSIMD_X86_X4, batch_div_4) {
755 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
756 VBinOpMicrokernelTester()
757 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700758 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700759 }
760 }
761
762 TEST(F32_VMIN__WASMSIMD_X86_X4, batch_lt_4) {
763 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
764 VBinOpMicrokernelTester()
765 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700766 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700767 }
768 }
769
770 TEST(F32_VMIN__WASMSIMD_X86_X4, batch_gt_4) {
771 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
772 VBinOpMicrokernelTester()
773 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700774 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700775 }
776 }
777
778 TEST(F32_VMIN__WASMSIMD_X86_X4, inplace_a) {
779 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
780 VBinOpMicrokernelTester()
781 .batch_size(batch_size)
782 .inplace_a(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700783 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700784 }
785 }
786
787 TEST(F32_VMIN__WASMSIMD_X86_X4, inplace_b) {
788 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
789 VBinOpMicrokernelTester()
790 .batch_size(batch_size)
791 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700792 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700793 }
794 }
795
796 TEST(F32_VMIN__WASMSIMD_X86_X4, inplace_a_and_b) {
797 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
798 VBinOpMicrokernelTester()
799 .batch_size(batch_size)
800 .inplace_a(true)
801 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700802 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700803 }
804 }
805#endif // XNN_ARCH_WASMSIMD
806
807
808#if XNN_ARCH_WASMSIMD
809 TEST(F32_VMIN__WASMSIMD_X86_X8, batch_eq_8) {
810 VBinOpMicrokernelTester()
811 .batch_size(8)
Marat Dukhan47387d62020-06-29 12:53:20 -0700812 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700813 }
814
815 TEST(F32_VMIN__WASMSIMD_X86_X8, batch_div_8) {
816 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
817 VBinOpMicrokernelTester()
818 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700819 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700820 }
821 }
822
823 TEST(F32_VMIN__WASMSIMD_X86_X8, batch_lt_8) {
824 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
825 VBinOpMicrokernelTester()
826 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700827 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700828 }
829 }
830
831 TEST(F32_VMIN__WASMSIMD_X86_X8, batch_gt_8) {
832 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
833 VBinOpMicrokernelTester()
834 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700835 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700836 }
837 }
838
839 TEST(F32_VMIN__WASMSIMD_X86_X8, inplace_a) {
840 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
841 VBinOpMicrokernelTester()
842 .batch_size(batch_size)
843 .inplace_a(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700844 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700845 }
846 }
847
848 TEST(F32_VMIN__WASMSIMD_X86_X8, inplace_b) {
849 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
850 VBinOpMicrokernelTester()
851 .batch_size(batch_size)
852 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700853 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700854 }
855 }
856
857 TEST(F32_VMIN__WASMSIMD_X86_X8, inplace_a_and_b) {
858 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
859 VBinOpMicrokernelTester()
860 .batch_size(batch_size)
861 .inplace_a(true)
862 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700863 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700864 }
865 }
866#endif // XNN_ARCH_WASMSIMD
867
868
Frank Barchard9c7308f2020-08-31 17:03:01 -0700869#if XNN_ARCH_WASMSIMD
870 TEST(F32_VMIN__WASMSIMD_X86_X16, batch_eq_16) {
871 VBinOpMicrokernelTester()
872 .batch_size(16)
873 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinOpMicrokernelTester::OpType::Min);
874 }
875
876 TEST(F32_VMIN__WASMSIMD_X86_X16, batch_div_16) {
877 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
878 VBinOpMicrokernelTester()
879 .batch_size(batch_size)
880 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinOpMicrokernelTester::OpType::Min);
881 }
882 }
883
884 TEST(F32_VMIN__WASMSIMD_X86_X16, batch_lt_16) {
885 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
886 VBinOpMicrokernelTester()
887 .batch_size(batch_size)
888 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinOpMicrokernelTester::OpType::Min);
889 }
890 }
891
892 TEST(F32_VMIN__WASMSIMD_X86_X16, batch_gt_16) {
893 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
894 VBinOpMicrokernelTester()
895 .batch_size(batch_size)
896 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinOpMicrokernelTester::OpType::Min);
897 }
898 }
899
900 TEST(F32_VMIN__WASMSIMD_X86_X16, inplace_a) {
901 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
902 VBinOpMicrokernelTester()
903 .batch_size(batch_size)
904 .inplace_a(true)
905 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinOpMicrokernelTester::OpType::Min);
906 }
907 }
908
909 TEST(F32_VMIN__WASMSIMD_X86_X16, inplace_b) {
910 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
911 VBinOpMicrokernelTester()
912 .batch_size(batch_size)
913 .inplace_b(true)
914 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinOpMicrokernelTester::OpType::Min);
915 }
916 }
917
918 TEST(F32_VMIN__WASMSIMD_X86_X16, inplace_a_and_b) {
919 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
920 VBinOpMicrokernelTester()
921 .batch_size(batch_size)
922 .inplace_a(true)
923 .inplace_b(true)
924 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinOpMicrokernelTester::OpType::Min);
925 }
926 }
927#endif // XNN_ARCH_WASMSIMD
928
929
Marat Dukhanfb5b20a2020-06-26 13:14:50 -0700930#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800931 TEST(F32_VMIN__WASM_X1, batch_eq_1) {
932 VBinOpMicrokernelTester()
933 .batch_size(1)
Marat Dukhan47387d62020-06-29 12:53:20 -0700934 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800935 }
936
937 TEST(F32_VMIN__WASM_X1, batch_gt_1) {
938 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
939 VBinOpMicrokernelTester()
940 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700941 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800942 }
943 }
944
945 TEST(F32_VMIN__WASM_X1, inplace_a) {
946 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
947 VBinOpMicrokernelTester()
948 .batch_size(batch_size)
949 .inplace_a(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700950 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800951 }
952 }
953
954 TEST(F32_VMIN__WASM_X1, inplace_b) {
955 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
956 VBinOpMicrokernelTester()
957 .batch_size(batch_size)
958 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700959 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800960 }
961 }
962
963 TEST(F32_VMIN__WASM_X1, inplace_a_and_b) {
964 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
965 VBinOpMicrokernelTester()
966 .batch_size(batch_size)
967 .inplace_a(true)
968 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700969 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800970 }
971 }
Marat Dukhanfb5b20a2020-06-26 13:14:50 -0700972#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800973
974
Marat Dukhanfb5b20a2020-06-26 13:14:50 -0700975#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800976 TEST(F32_VMIN__WASM_X2, batch_eq_2) {
977 VBinOpMicrokernelTester()
978 .batch_size(2)
Marat Dukhan47387d62020-06-29 12:53:20 -0700979 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800980 }
981
982 TEST(F32_VMIN__WASM_X2, batch_div_2) {
983 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
984 VBinOpMicrokernelTester()
985 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700986 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800987 }
988 }
989
990 TEST(F32_VMIN__WASM_X2, batch_lt_2) {
991 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
992 VBinOpMicrokernelTester()
993 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700994 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800995 }
996 }
997
998 TEST(F32_VMIN__WASM_X2, batch_gt_2) {
999 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
1000 VBinOpMicrokernelTester()
1001 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -07001002 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001003 }
1004 }
1005
1006 TEST(F32_VMIN__WASM_X2, inplace_a) {
1007 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1008 VBinOpMicrokernelTester()
1009 .batch_size(batch_size)
1010 .inplace_a(true)
Marat Dukhan47387d62020-06-29 12:53:20 -07001011 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001012 }
1013 }
1014
1015 TEST(F32_VMIN__WASM_X2, inplace_b) {
1016 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1017 VBinOpMicrokernelTester()
1018 .batch_size(batch_size)
1019 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -07001020 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001021 }
1022 }
1023
1024 TEST(F32_VMIN__WASM_X2, inplace_a_and_b) {
1025 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1026 VBinOpMicrokernelTester()
1027 .batch_size(batch_size)
1028 .inplace_a(true)
1029 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -07001030 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001031 }
1032 }
Marat Dukhanfb5b20a2020-06-26 13:14:50 -07001033#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -08001034
1035
Marat Dukhanfb5b20a2020-06-26 13:14:50 -07001036#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -08001037 TEST(F32_VMIN__WASM_X4, batch_eq_4) {
1038 VBinOpMicrokernelTester()
1039 .batch_size(4)
Marat Dukhan47387d62020-06-29 12:53:20 -07001040 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001041 }
1042
1043 TEST(F32_VMIN__WASM_X4, batch_div_4) {
1044 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
1045 VBinOpMicrokernelTester()
1046 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -07001047 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001048 }
1049 }
1050
1051 TEST(F32_VMIN__WASM_X4, batch_lt_4) {
1052 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
1053 VBinOpMicrokernelTester()
1054 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -07001055 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001056 }
1057 }
1058
1059 TEST(F32_VMIN__WASM_X4, batch_gt_4) {
1060 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
1061 VBinOpMicrokernelTester()
1062 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -07001063 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001064 }
1065 }
1066
1067 TEST(F32_VMIN__WASM_X4, inplace_a) {
1068 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1069 VBinOpMicrokernelTester()
1070 .batch_size(batch_size)
1071 .inplace_a(true)
Marat Dukhan47387d62020-06-29 12:53:20 -07001072 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001073 }
1074 }
1075
1076 TEST(F32_VMIN__WASM_X4, inplace_b) {
1077 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1078 VBinOpMicrokernelTester()
1079 .batch_size(batch_size)
1080 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -07001081 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001082 }
1083 }
1084
1085 TEST(F32_VMIN__WASM_X4, inplace_a_and_b) {
1086 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1087 VBinOpMicrokernelTester()
1088 .batch_size(batch_size)
1089 .inplace_a(true)
1090 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -07001091 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001092 }
1093 }
Marat Dukhanfb5b20a2020-06-26 13:14:50 -07001094#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -08001095
1096
Frank Barchard9c7308f2020-08-31 17:03:01 -07001097#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
1098 TEST(F32_VMIN__WASM_X8, batch_eq_8) {
1099 VBinOpMicrokernelTester()
1100 .batch_size(8)
1101 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Min);
1102 }
1103
1104 TEST(F32_VMIN__WASM_X8, batch_div_8) {
1105 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
1106 VBinOpMicrokernelTester()
1107 .batch_size(batch_size)
1108 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Min);
1109 }
1110 }
1111
1112 TEST(F32_VMIN__WASM_X8, batch_lt_8) {
1113 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
1114 VBinOpMicrokernelTester()
1115 .batch_size(batch_size)
1116 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Min);
1117 }
1118 }
1119
1120 TEST(F32_VMIN__WASM_X8, batch_gt_8) {
1121 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
1122 VBinOpMicrokernelTester()
1123 .batch_size(batch_size)
1124 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Min);
1125 }
1126 }
1127
1128 TEST(F32_VMIN__WASM_X8, inplace_a) {
1129 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1130 VBinOpMicrokernelTester()
1131 .batch_size(batch_size)
1132 .inplace_a(true)
1133 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Min);
1134 }
1135 }
1136
1137 TEST(F32_VMIN__WASM_X8, inplace_b) {
1138 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1139 VBinOpMicrokernelTester()
1140 .batch_size(batch_size)
1141 .inplace_b(true)
1142 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Min);
1143 }
1144 }
1145
1146 TEST(F32_VMIN__WASM_X8, inplace_a_and_b) {
1147 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1148 VBinOpMicrokernelTester()
1149 .batch_size(batch_size)
1150 .inplace_a(true)
1151 .inplace_b(true)
1152 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Min);
1153 }
1154 }
1155#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
1156
1157
Marat Dukhan403b7d42019-12-05 12:49:11 -08001158TEST(F32_VMIN__SCALAR_X1, batch_eq_1) {
1159 VBinOpMicrokernelTester()
1160 .batch_size(1)
1161 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1162}
1163
1164TEST(F32_VMIN__SCALAR_X1, batch_gt_1) {
1165 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
1166 VBinOpMicrokernelTester()
1167 .batch_size(batch_size)
1168 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1169 }
1170}
1171
1172TEST(F32_VMIN__SCALAR_X1, inplace_a) {
1173 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
1174 VBinOpMicrokernelTester()
1175 .batch_size(batch_size)
1176 .inplace_a(true)
1177 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1178 }
1179}
1180
1181TEST(F32_VMIN__SCALAR_X1, inplace_b) {
1182 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
1183 VBinOpMicrokernelTester()
1184 .batch_size(batch_size)
1185 .inplace_b(true)
1186 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1187 }
1188}
1189
1190TEST(F32_VMIN__SCALAR_X1, inplace_a_and_b) {
1191 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
1192 VBinOpMicrokernelTester()
1193 .batch_size(batch_size)
1194 .inplace_a(true)
1195 .inplace_b(true)
1196 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1197 }
1198}
1199
Marat Dukhan403b7d42019-12-05 12:49:11 -08001200
1201TEST(F32_VMIN__SCALAR_X2, batch_eq_2) {
1202 VBinOpMicrokernelTester()
1203 .batch_size(2)
1204 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1205}
1206
1207TEST(F32_VMIN__SCALAR_X2, batch_div_2) {
1208 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
1209 VBinOpMicrokernelTester()
1210 .batch_size(batch_size)
1211 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1212 }
1213}
1214
1215TEST(F32_VMIN__SCALAR_X2, batch_lt_2) {
1216 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
1217 VBinOpMicrokernelTester()
1218 .batch_size(batch_size)
1219 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1220 }
1221}
1222
1223TEST(F32_VMIN__SCALAR_X2, batch_gt_2) {
1224 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
1225 VBinOpMicrokernelTester()
1226 .batch_size(batch_size)
1227 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1228 }
1229}
1230
1231TEST(F32_VMIN__SCALAR_X2, inplace_a) {
1232 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1233 VBinOpMicrokernelTester()
1234 .batch_size(batch_size)
1235 .inplace_a(true)
1236 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1237 }
1238}
1239
1240TEST(F32_VMIN__SCALAR_X2, inplace_b) {
1241 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1242 VBinOpMicrokernelTester()
1243 .batch_size(batch_size)
1244 .inplace_b(true)
1245 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1246 }
1247}
1248
1249TEST(F32_VMIN__SCALAR_X2, inplace_a_and_b) {
1250 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1251 VBinOpMicrokernelTester()
1252 .batch_size(batch_size)
1253 .inplace_a(true)
1254 .inplace_b(true)
1255 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1256 }
1257}
1258
Marat Dukhan403b7d42019-12-05 12:49:11 -08001259
1260TEST(F32_VMIN__SCALAR_X4, batch_eq_4) {
1261 VBinOpMicrokernelTester()
1262 .batch_size(4)
1263 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1264}
1265
1266TEST(F32_VMIN__SCALAR_X4, batch_div_4) {
1267 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
1268 VBinOpMicrokernelTester()
1269 .batch_size(batch_size)
1270 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1271 }
1272}
1273
1274TEST(F32_VMIN__SCALAR_X4, batch_lt_4) {
1275 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
1276 VBinOpMicrokernelTester()
1277 .batch_size(batch_size)
1278 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1279 }
1280}
1281
1282TEST(F32_VMIN__SCALAR_X4, batch_gt_4) {
1283 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
1284 VBinOpMicrokernelTester()
1285 .batch_size(batch_size)
1286 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1287 }
1288}
1289
1290TEST(F32_VMIN__SCALAR_X4, inplace_a) {
1291 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1292 VBinOpMicrokernelTester()
1293 .batch_size(batch_size)
1294 .inplace_a(true)
1295 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1296 }
1297}
1298
1299TEST(F32_VMIN__SCALAR_X4, inplace_b) {
1300 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1301 VBinOpMicrokernelTester()
1302 .batch_size(batch_size)
1303 .inplace_b(true)
1304 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1305 }
1306}
1307
1308TEST(F32_VMIN__SCALAR_X4, inplace_a_and_b) {
1309 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1310 VBinOpMicrokernelTester()
1311 .batch_size(batch_size)
1312 .inplace_a(true)
1313 .inplace_b(true)
1314 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1315 }
1316}
Frank Barchard9c7308f2020-08-31 17:03:01 -07001317
1318
1319TEST(F32_VMIN__SCALAR_X8, batch_eq_8) {
1320 VBinOpMicrokernelTester()
1321 .batch_size(8)
1322 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1323}
1324
1325TEST(F32_VMIN__SCALAR_X8, batch_div_8) {
1326 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
1327 VBinOpMicrokernelTester()
1328 .batch_size(batch_size)
1329 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1330 }
1331}
1332
1333TEST(F32_VMIN__SCALAR_X8, batch_lt_8) {
1334 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
1335 VBinOpMicrokernelTester()
1336 .batch_size(batch_size)
1337 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1338 }
1339}
1340
1341TEST(F32_VMIN__SCALAR_X8, batch_gt_8) {
1342 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
1343 VBinOpMicrokernelTester()
1344 .batch_size(batch_size)
1345 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1346 }
1347}
1348
1349TEST(F32_VMIN__SCALAR_X8, inplace_a) {
1350 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1351 VBinOpMicrokernelTester()
1352 .batch_size(batch_size)
1353 .inplace_a(true)
1354 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1355 }
1356}
1357
1358TEST(F32_VMIN__SCALAR_X8, inplace_b) {
1359 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1360 VBinOpMicrokernelTester()
1361 .batch_size(batch_size)
1362 .inplace_b(true)
1363 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1364 }
1365}
1366
1367TEST(F32_VMIN__SCALAR_X8, inplace_a_and_b) {
1368 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1369 VBinOpMicrokernelTester()
1370 .batch_size(batch_size)
1371 .inplace_a(true)
1372 .inplace_b(true)
1373 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Min, VBinOpMicrokernelTester::Variant::Scalar);
1374 }
1375}