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