blob: 5c7c3b2e42d485a70c319883cf28b5e6f2ecf242 [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 }
Marat Dukhan403b7d42019-12-05 12:49:11 -080064#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
65
66
67#if XNN_ARCH_ARM || XNN_ARCH_ARM64
68 TEST(F32_VMINC__NEON_X8, batch_eq_8) {
69 TEST_REQUIRES_ARM_NEON;
70 VBinOpCMicrokernelTester()
71 .batch_size(8)
72 .Test(xnn_f32_vminc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MinC);
73 }
74
75 TEST(F32_VMINC__NEON_X8, batch_div_8) {
76 TEST_REQUIRES_ARM_NEON;
77 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
78 VBinOpCMicrokernelTester()
79 .batch_size(batch_size)
80 .Test(xnn_f32_vminc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MinC);
81 }
82 }
83
84 TEST(F32_VMINC__NEON_X8, batch_lt_8) {
85 TEST_REQUIRES_ARM_NEON;
86 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
87 VBinOpCMicrokernelTester()
88 .batch_size(batch_size)
89 .Test(xnn_f32_vminc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MinC);
90 }
91 }
92
93 TEST(F32_VMINC__NEON_X8, batch_gt_8) {
94 TEST_REQUIRES_ARM_NEON;
95 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
96 VBinOpCMicrokernelTester()
97 .batch_size(batch_size)
98 .Test(xnn_f32_vminc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MinC);
99 }
100 }
101
102 TEST(F32_VMINC__NEON_X8, inplace) {
103 TEST_REQUIRES_ARM_NEON;
104 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
105 VBinOpCMicrokernelTester()
106 .batch_size(batch_size)
107 .inplace(true)
108 .Test(xnn_f32_vminc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MinC);
109 }
110 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800111#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
112
113
114#if XNN_ARCH_X86 || XNN_ARCH_X86_64
115 TEST(F32_VMINC__SSE_X4, batch_eq_4) {
116 TEST_REQUIRES_X86_SSE;
117 VBinOpCMicrokernelTester()
118 .batch_size(4)
119 .Test(xnn_f32_vminc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MinC);
120 }
121
122 TEST(F32_VMINC__SSE_X4, batch_div_4) {
123 TEST_REQUIRES_X86_SSE;
124 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
125 VBinOpCMicrokernelTester()
126 .batch_size(batch_size)
127 .Test(xnn_f32_vminc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MinC);
128 }
129 }
130
131 TEST(F32_VMINC__SSE_X4, batch_lt_4) {
132 TEST_REQUIRES_X86_SSE;
133 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
134 VBinOpCMicrokernelTester()
135 .batch_size(batch_size)
136 .Test(xnn_f32_vminc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MinC);
137 }
138 }
139
140 TEST(F32_VMINC__SSE_X4, batch_gt_4) {
141 TEST_REQUIRES_X86_SSE;
142 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
143 VBinOpCMicrokernelTester()
144 .batch_size(batch_size)
145 .Test(xnn_f32_vminc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MinC);
146 }
147 }
148
149 TEST(F32_VMINC__SSE_X4, inplace) {
150 TEST_REQUIRES_X86_SSE;
151 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
152 VBinOpCMicrokernelTester()
153 .batch_size(batch_size)
154 .inplace(true)
155 .Test(xnn_f32_vminc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MinC);
156 }
157 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800158#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
159
160
161#if XNN_ARCH_X86 || XNN_ARCH_X86_64
162 TEST(F32_VMINC__SSE_X8, batch_eq_8) {
163 TEST_REQUIRES_X86_SSE;
164 VBinOpCMicrokernelTester()
165 .batch_size(8)
166 .Test(xnn_f32_vminc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MinC);
167 }
168
169 TEST(F32_VMINC__SSE_X8, batch_div_8) {
170 TEST_REQUIRES_X86_SSE;
171 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
172 VBinOpCMicrokernelTester()
173 .batch_size(batch_size)
174 .Test(xnn_f32_vminc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MinC);
175 }
176 }
177
178 TEST(F32_VMINC__SSE_X8, batch_lt_8) {
179 TEST_REQUIRES_X86_SSE;
180 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
181 VBinOpCMicrokernelTester()
182 .batch_size(batch_size)
183 .Test(xnn_f32_vminc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MinC);
184 }
185 }
186
187 TEST(F32_VMINC__SSE_X8, batch_gt_8) {
188 TEST_REQUIRES_X86_SSE;
189 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
190 VBinOpCMicrokernelTester()
191 .batch_size(batch_size)
192 .Test(xnn_f32_vminc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MinC);
193 }
194 }
195
196 TEST(F32_VMINC__SSE_X8, inplace) {
197 TEST_REQUIRES_X86_SSE;
198 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
199 VBinOpCMicrokernelTester()
200 .batch_size(batch_size)
201 .inplace(true)
202 .Test(xnn_f32_vminc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MinC);
203 }
204 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800205#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
206
207
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800208#if XNN_ARCH_X86 || XNN_ARCH_X86_64
209 TEST(F32_VMINC__AVX_X8, batch_eq_8) {
210 TEST_REQUIRES_X86_AVX;
211 VBinOpCMicrokernelTester()
212 .batch_size(8)
213 .Test(xnn_f32_vminc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MinC);
214 }
215
216 TEST(F32_VMINC__AVX_X8, batch_div_8) {
217 TEST_REQUIRES_X86_AVX;
218 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
219 VBinOpCMicrokernelTester()
220 .batch_size(batch_size)
221 .Test(xnn_f32_vminc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MinC);
222 }
223 }
224
225 TEST(F32_VMINC__AVX_X8, batch_lt_8) {
226 TEST_REQUIRES_X86_AVX;
227 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
228 VBinOpCMicrokernelTester()
229 .batch_size(batch_size)
230 .Test(xnn_f32_vminc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MinC);
231 }
232 }
233
234 TEST(F32_VMINC__AVX_X8, batch_gt_8) {
235 TEST_REQUIRES_X86_AVX;
236 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
237 VBinOpCMicrokernelTester()
238 .batch_size(batch_size)
239 .Test(xnn_f32_vminc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MinC);
240 }
241 }
242
243 TEST(F32_VMINC__AVX_X8, inplace) {
244 TEST_REQUIRES_X86_AVX;
245 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
246 VBinOpCMicrokernelTester()
247 .batch_size(batch_size)
248 .inplace(true)
249 .Test(xnn_f32_vminc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MinC);
250 }
251 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800252#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
253
254
255#if XNN_ARCH_X86 || XNN_ARCH_X86_64
256 TEST(F32_VMINC__AVX_X16, batch_eq_16) {
257 TEST_REQUIRES_X86_AVX;
258 VBinOpCMicrokernelTester()
259 .batch_size(16)
260 .Test(xnn_f32_vminc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MinC);
261 }
262
263 TEST(F32_VMINC__AVX_X16, batch_div_16) {
264 TEST_REQUIRES_X86_AVX;
265 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
266 VBinOpCMicrokernelTester()
267 .batch_size(batch_size)
268 .Test(xnn_f32_vminc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MinC);
269 }
270 }
271
272 TEST(F32_VMINC__AVX_X16, batch_lt_16) {
273 TEST_REQUIRES_X86_AVX;
274 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
275 VBinOpCMicrokernelTester()
276 .batch_size(batch_size)
277 .Test(xnn_f32_vminc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MinC);
278 }
279 }
280
281 TEST(F32_VMINC__AVX_X16, batch_gt_16) {
282 TEST_REQUIRES_X86_AVX;
283 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
284 VBinOpCMicrokernelTester()
285 .batch_size(batch_size)
286 .Test(xnn_f32_vminc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MinC);
287 }
288 }
289
290 TEST(F32_VMINC__AVX_X16, inplace) {
291 TEST_REQUIRES_X86_AVX;
292 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
293 VBinOpCMicrokernelTester()
294 .batch_size(batch_size)
295 .inplace(true)
296 .Test(xnn_f32_vminc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MinC);
297 }
298 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800299#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
300
301
302#if XNN_ARCH_X86 || XNN_ARCH_X86_64
303 TEST(F32_VMINC__AVX512F_X16, batch_eq_16) {
304 TEST_REQUIRES_X86_AVX512F;
305 VBinOpCMicrokernelTester()
306 .batch_size(16)
307 .Test(xnn_f32_vminc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MinC);
308 }
309
310 TEST(F32_VMINC__AVX512F_X16, batch_div_16) {
311 TEST_REQUIRES_X86_AVX512F;
312 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
313 VBinOpCMicrokernelTester()
314 .batch_size(batch_size)
315 .Test(xnn_f32_vminc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MinC);
316 }
317 }
318
319 TEST(F32_VMINC__AVX512F_X16, batch_lt_16) {
320 TEST_REQUIRES_X86_AVX512F;
321 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
322 VBinOpCMicrokernelTester()
323 .batch_size(batch_size)
324 .Test(xnn_f32_vminc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MinC);
325 }
326 }
327
328 TEST(F32_VMINC__AVX512F_X16, batch_gt_16) {
329 TEST_REQUIRES_X86_AVX512F;
330 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
331 VBinOpCMicrokernelTester()
332 .batch_size(batch_size)
333 .Test(xnn_f32_vminc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MinC);
334 }
335 }
336
337 TEST(F32_VMINC__AVX512F_X16, inplace) {
338 TEST_REQUIRES_X86_AVX512F;
339 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
340 VBinOpCMicrokernelTester()
341 .batch_size(batch_size)
342 .inplace(true)
343 .Test(xnn_f32_vminc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MinC);
344 }
345 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800346#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
347
348
349#if XNN_ARCH_X86 || XNN_ARCH_X86_64
350 TEST(F32_VMINC__AVX512F_X32, batch_eq_32) {
351 TEST_REQUIRES_X86_AVX512F;
352 VBinOpCMicrokernelTester()
353 .batch_size(32)
354 .Test(xnn_f32_vminc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MinC);
355 }
356
357 TEST(F32_VMINC__AVX512F_X32, batch_div_32) {
358 TEST_REQUIRES_X86_AVX512F;
359 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
360 VBinOpCMicrokernelTester()
361 .batch_size(batch_size)
362 .Test(xnn_f32_vminc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MinC);
363 }
364 }
365
366 TEST(F32_VMINC__AVX512F_X32, batch_lt_32) {
367 TEST_REQUIRES_X86_AVX512F;
368 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
369 VBinOpCMicrokernelTester()
370 .batch_size(batch_size)
371 .Test(xnn_f32_vminc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MinC);
372 }
373 }
374
375 TEST(F32_VMINC__AVX512F_X32, batch_gt_32) {
376 TEST_REQUIRES_X86_AVX512F;
377 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
378 VBinOpCMicrokernelTester()
379 .batch_size(batch_size)
380 .Test(xnn_f32_vminc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MinC);
381 }
382 }
383
384 TEST(F32_VMINC__AVX512F_X32, inplace) {
385 TEST_REQUIRES_X86_AVX512F;
386 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
387 VBinOpCMicrokernelTester()
388 .batch_size(batch_size)
389 .inplace(true)
390 .Test(xnn_f32_vminc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MinC);
391 }
392 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800393#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
394
395
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700396#if XNN_ARCH_WASMSIMD
397 TEST(F32_VMINC__WASMSIMD_ARM_X4, batch_eq_4) {
398 VBinOpCMicrokernelTester()
399 .batch_size(4)
Marat Dukhan47387d62020-06-29 12:53:20 -0700400 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700401 }
402
403 TEST(F32_VMINC__WASMSIMD_ARM_X4, batch_div_4) {
404 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
405 VBinOpCMicrokernelTester()
406 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700407 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700408 }
409 }
410
411 TEST(F32_VMINC__WASMSIMD_ARM_X4, batch_lt_4) {
412 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
413 VBinOpCMicrokernelTester()
414 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700415 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700416 }
417 }
418
419 TEST(F32_VMINC__WASMSIMD_ARM_X4, batch_gt_4) {
420 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
421 VBinOpCMicrokernelTester()
422 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700423 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700424 }
425 }
426
427 TEST(F32_VMINC__WASMSIMD_ARM_X4, inplace) {
428 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
429 VBinOpCMicrokernelTester()
430 .batch_size(batch_size)
431 .inplace(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700432 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700433 }
434 }
435#endif // XNN_ARCH_WASMSIMD
436
437
438#if XNN_ARCH_WASMSIMD
439 TEST(F32_VMINC__WASMSIMD_ARM_X8, batch_eq_8) {
440 VBinOpCMicrokernelTester()
441 .batch_size(8)
Marat Dukhan47387d62020-06-29 12:53:20 -0700442 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700443 }
444
445 TEST(F32_VMINC__WASMSIMD_ARM_X8, batch_div_8) {
446 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
447 VBinOpCMicrokernelTester()
448 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700449 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700450 }
451 }
452
453 TEST(F32_VMINC__WASMSIMD_ARM_X8, batch_lt_8) {
454 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
455 VBinOpCMicrokernelTester()
456 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700457 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700458 }
459 }
460
461 TEST(F32_VMINC__WASMSIMD_ARM_X8, batch_gt_8) {
462 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
463 VBinOpCMicrokernelTester()
464 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700465 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700466 }
467 }
468
469 TEST(F32_VMINC__WASMSIMD_ARM_X8, inplace) {
470 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
471 VBinOpCMicrokernelTester()
472 .batch_size(batch_size)
473 .inplace(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700474 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700475 }
476 }
477#endif // XNN_ARCH_WASMSIMD
478
479
480#if XNN_ARCH_WASMSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700481 TEST(F32_VMINC__WASMSIMD_ARM_X16, batch_eq_16) {
482 VBinOpCMicrokernelTester()
483 .batch_size(16)
484 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MinC);
485 }
486
487 TEST(F32_VMINC__WASMSIMD_ARM_X16, batch_div_16) {
488 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
489 VBinOpCMicrokernelTester()
490 .batch_size(batch_size)
491 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MinC);
492 }
493 }
494
495 TEST(F32_VMINC__WASMSIMD_ARM_X16, batch_lt_16) {
496 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
497 VBinOpCMicrokernelTester()
498 .batch_size(batch_size)
499 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MinC);
500 }
501 }
502
503 TEST(F32_VMINC__WASMSIMD_ARM_X16, batch_gt_16) {
504 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
505 VBinOpCMicrokernelTester()
506 .batch_size(batch_size)
507 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MinC);
508 }
509 }
510
511 TEST(F32_VMINC__WASMSIMD_ARM_X16, inplace) {
512 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
513 VBinOpCMicrokernelTester()
514 .batch_size(batch_size)
515 .inplace(true)
516 .Test(xnn_f32_vminc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MinC);
517 }
518 }
519#endif // XNN_ARCH_WASMSIMD
520
521
522#if XNN_ARCH_WASMSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700523 TEST(F32_VMINC__WASMSIMD_X86_X4, batch_eq_4) {
524 VBinOpCMicrokernelTester()
525 .batch_size(4)
Marat Dukhan47387d62020-06-29 12:53:20 -0700526 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700527 }
528
529 TEST(F32_VMINC__WASMSIMD_X86_X4, batch_div_4) {
530 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
531 VBinOpCMicrokernelTester()
532 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700533 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700534 }
535 }
536
537 TEST(F32_VMINC__WASMSIMD_X86_X4, batch_lt_4) {
538 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
539 VBinOpCMicrokernelTester()
540 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700541 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700542 }
543 }
544
545 TEST(F32_VMINC__WASMSIMD_X86_X4, batch_gt_4) {
546 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
547 VBinOpCMicrokernelTester()
548 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700549 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700550 }
551 }
552
553 TEST(F32_VMINC__WASMSIMD_X86_X4, inplace) {
554 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
555 VBinOpCMicrokernelTester()
556 .batch_size(batch_size)
557 .inplace(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700558 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700559 }
560 }
561#endif // XNN_ARCH_WASMSIMD
562
563
564#if XNN_ARCH_WASMSIMD
565 TEST(F32_VMINC__WASMSIMD_X86_X8, batch_eq_8) {
566 VBinOpCMicrokernelTester()
567 .batch_size(8)
Marat Dukhan47387d62020-06-29 12:53:20 -0700568 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700569 }
570
571 TEST(F32_VMINC__WASMSIMD_X86_X8, batch_div_8) {
572 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
573 VBinOpCMicrokernelTester()
574 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700575 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700576 }
577 }
578
579 TEST(F32_VMINC__WASMSIMD_X86_X8, batch_lt_8) {
580 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
581 VBinOpCMicrokernelTester()
582 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700583 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700584 }
585 }
586
587 TEST(F32_VMINC__WASMSIMD_X86_X8, batch_gt_8) {
588 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
589 VBinOpCMicrokernelTester()
590 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700591 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700592 }
593 }
594
595 TEST(F32_VMINC__WASMSIMD_X86_X8, inplace) {
596 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
597 VBinOpCMicrokernelTester()
598 .batch_size(batch_size)
599 .inplace(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700600 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700601 }
602 }
603#endif // XNN_ARCH_WASMSIMD
604
605
Frank Barchard9c7308f2020-08-31 17:03:01 -0700606#if XNN_ARCH_WASMSIMD
607 TEST(F32_VMINC__WASMSIMD_X86_X16, batch_eq_16) {
608 VBinOpCMicrokernelTester()
609 .batch_size(16)
610 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MinC);
611 }
612
613 TEST(F32_VMINC__WASMSIMD_X86_X16, batch_div_16) {
614 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
615 VBinOpCMicrokernelTester()
616 .batch_size(batch_size)
617 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MinC);
618 }
619 }
620
621 TEST(F32_VMINC__WASMSIMD_X86_X16, batch_lt_16) {
622 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
623 VBinOpCMicrokernelTester()
624 .batch_size(batch_size)
625 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MinC);
626 }
627 }
628
629 TEST(F32_VMINC__WASMSIMD_X86_X16, batch_gt_16) {
630 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
631 VBinOpCMicrokernelTester()
632 .batch_size(batch_size)
633 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MinC);
634 }
635 }
636
637 TEST(F32_VMINC__WASMSIMD_X86_X16, inplace) {
638 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
639 VBinOpCMicrokernelTester()
640 .batch_size(batch_size)
641 .inplace(true)
642 .Test(xnn_f32_vminc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MinC);
643 }
644 }
645#endif // XNN_ARCH_WASMSIMD
646
647
Marat Dukhanfb5b20a2020-06-26 13:14:50 -0700648#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800649 TEST(F32_VMINC__WASM_X1, batch_eq_1) {
650 VBinOpCMicrokernelTester()
651 .batch_size(1)
Marat Dukhan47387d62020-06-29 12:53:20 -0700652 .Test(xnn_f32_vminc_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800653 }
654
655 TEST(F32_VMINC__WASM_X1, batch_gt_1) {
656 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
657 VBinOpCMicrokernelTester()
658 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700659 .Test(xnn_f32_vminc_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800660 }
661 }
662
663 TEST(F32_VMINC__WASM_X1, inplace) {
664 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
665 VBinOpCMicrokernelTester()
666 .batch_size(batch_size)
667 .inplace(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700668 .Test(xnn_f32_vminc_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800669 }
670 }
Marat Dukhanfb5b20a2020-06-26 13:14:50 -0700671#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800672
673
Marat Dukhanfb5b20a2020-06-26 13:14:50 -0700674#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800675 TEST(F32_VMINC__WASM_X2, batch_eq_2) {
676 VBinOpCMicrokernelTester()
677 .batch_size(2)
Marat Dukhan47387d62020-06-29 12:53:20 -0700678 .Test(xnn_f32_vminc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800679 }
680
681 TEST(F32_VMINC__WASM_X2, batch_div_2) {
682 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
683 VBinOpCMicrokernelTester()
684 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700685 .Test(xnn_f32_vminc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800686 }
687 }
688
689 TEST(F32_VMINC__WASM_X2, batch_lt_2) {
690 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
691 VBinOpCMicrokernelTester()
692 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700693 .Test(xnn_f32_vminc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800694 }
695 }
696
697 TEST(F32_VMINC__WASM_X2, batch_gt_2) {
698 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
699 VBinOpCMicrokernelTester()
700 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700701 .Test(xnn_f32_vminc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800702 }
703 }
704
705 TEST(F32_VMINC__WASM_X2, inplace) {
706 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
707 VBinOpCMicrokernelTester()
708 .batch_size(batch_size)
709 .inplace(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700710 .Test(xnn_f32_vminc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800711 }
712 }
Marat Dukhanfb5b20a2020-06-26 13:14:50 -0700713#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800714
715
Marat Dukhanfb5b20a2020-06-26 13:14:50 -0700716#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800717 TEST(F32_VMINC__WASM_X4, batch_eq_4) {
718 VBinOpCMicrokernelTester()
719 .batch_size(4)
Marat Dukhan47387d62020-06-29 12:53:20 -0700720 .Test(xnn_f32_vminc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800721 }
722
723 TEST(F32_VMINC__WASM_X4, batch_div_4) {
724 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
725 VBinOpCMicrokernelTester()
726 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700727 .Test(xnn_f32_vminc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800728 }
729 }
730
731 TEST(F32_VMINC__WASM_X4, batch_lt_4) {
732 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
733 VBinOpCMicrokernelTester()
734 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700735 .Test(xnn_f32_vminc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800736 }
737 }
738
739 TEST(F32_VMINC__WASM_X4, batch_gt_4) {
740 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
741 VBinOpCMicrokernelTester()
742 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700743 .Test(xnn_f32_vminc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800744 }
745 }
746
747 TEST(F32_VMINC__WASM_X4, inplace) {
748 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
749 VBinOpCMicrokernelTester()
750 .batch_size(batch_size)
751 .inplace(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700752 .Test(xnn_f32_vminc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MinC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800753 }
754 }
Marat Dukhanfb5b20a2020-06-26 13:14:50 -0700755#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800756
757
Frank Barchard9c7308f2020-08-31 17:03:01 -0700758#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
759 TEST(F32_VMINC__WASM_X8, batch_eq_8) {
760 VBinOpCMicrokernelTester()
761 .batch_size(8)
762 .Test(xnn_f32_vminc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MinC);
763 }
764
765 TEST(F32_VMINC__WASM_X8, batch_div_8) {
766 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
767 VBinOpCMicrokernelTester()
768 .batch_size(batch_size)
769 .Test(xnn_f32_vminc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MinC);
770 }
771 }
772
773 TEST(F32_VMINC__WASM_X8, batch_lt_8) {
774 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
775 VBinOpCMicrokernelTester()
776 .batch_size(batch_size)
777 .Test(xnn_f32_vminc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MinC);
778 }
779 }
780
781 TEST(F32_VMINC__WASM_X8, batch_gt_8) {
782 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
783 VBinOpCMicrokernelTester()
784 .batch_size(batch_size)
785 .Test(xnn_f32_vminc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MinC);
786 }
787 }
788
789 TEST(F32_VMINC__WASM_X8, inplace) {
790 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
791 VBinOpCMicrokernelTester()
792 .batch_size(batch_size)
793 .inplace(true)
794 .Test(xnn_f32_vminc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MinC);
795 }
796 }
797#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
798
799
Marat Dukhan403b7d42019-12-05 12:49:11 -0800800TEST(F32_VMINC__SCALAR_X1, batch_eq_1) {
801 VBinOpCMicrokernelTester()
802 .batch_size(1)
803 .Test(xnn_f32_vminc_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
804}
805
806TEST(F32_VMINC__SCALAR_X1, batch_gt_1) {
807 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
808 VBinOpCMicrokernelTester()
809 .batch_size(batch_size)
810 .Test(xnn_f32_vminc_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
811 }
812}
813
814TEST(F32_VMINC__SCALAR_X1, inplace) {
815 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
816 VBinOpCMicrokernelTester()
817 .batch_size(batch_size)
818 .inplace(true)
819 .Test(xnn_f32_vminc_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
820 }
821}
822
Marat Dukhan403b7d42019-12-05 12:49:11 -0800823
824TEST(F32_VMINC__SCALAR_X2, batch_eq_2) {
825 VBinOpCMicrokernelTester()
826 .batch_size(2)
827 .Test(xnn_f32_vminc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
828}
829
830TEST(F32_VMINC__SCALAR_X2, batch_div_2) {
831 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
832 VBinOpCMicrokernelTester()
833 .batch_size(batch_size)
834 .Test(xnn_f32_vminc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
835 }
836}
837
838TEST(F32_VMINC__SCALAR_X2, batch_lt_2) {
839 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
840 VBinOpCMicrokernelTester()
841 .batch_size(batch_size)
842 .Test(xnn_f32_vminc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
843 }
844}
845
846TEST(F32_VMINC__SCALAR_X2, batch_gt_2) {
847 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
848 VBinOpCMicrokernelTester()
849 .batch_size(batch_size)
850 .Test(xnn_f32_vminc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
851 }
852}
853
854TEST(F32_VMINC__SCALAR_X2, inplace) {
855 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
856 VBinOpCMicrokernelTester()
857 .batch_size(batch_size)
858 .inplace(true)
859 .Test(xnn_f32_vminc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
860 }
861}
862
Marat Dukhan403b7d42019-12-05 12:49:11 -0800863
864TEST(F32_VMINC__SCALAR_X4, batch_eq_4) {
865 VBinOpCMicrokernelTester()
866 .batch_size(4)
867 .Test(xnn_f32_vminc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
868}
869
870TEST(F32_VMINC__SCALAR_X4, batch_div_4) {
871 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
872 VBinOpCMicrokernelTester()
873 .batch_size(batch_size)
874 .Test(xnn_f32_vminc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
875 }
876}
877
878TEST(F32_VMINC__SCALAR_X4, batch_lt_4) {
879 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
880 VBinOpCMicrokernelTester()
881 .batch_size(batch_size)
882 .Test(xnn_f32_vminc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
883 }
884}
885
886TEST(F32_VMINC__SCALAR_X4, batch_gt_4) {
887 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
888 VBinOpCMicrokernelTester()
889 .batch_size(batch_size)
890 .Test(xnn_f32_vminc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
891 }
892}
893
894TEST(F32_VMINC__SCALAR_X4, inplace) {
895 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
896 VBinOpCMicrokernelTester()
897 .batch_size(batch_size)
898 .inplace(true)
899 .Test(xnn_f32_vminc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
900 }
901}
Frank Barchard9c7308f2020-08-31 17:03:01 -0700902
903
904TEST(F32_VMINC__SCALAR_X8, batch_eq_8) {
905 VBinOpCMicrokernelTester()
906 .batch_size(8)
907 .Test(xnn_f32_vminc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
908}
909
910TEST(F32_VMINC__SCALAR_X8, batch_div_8) {
911 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
912 VBinOpCMicrokernelTester()
913 .batch_size(batch_size)
914 .Test(xnn_f32_vminc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
915 }
916}
917
918TEST(F32_VMINC__SCALAR_X8, batch_lt_8) {
919 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
920 VBinOpCMicrokernelTester()
921 .batch_size(batch_size)
922 .Test(xnn_f32_vminc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
923 }
924}
925
926TEST(F32_VMINC__SCALAR_X8, batch_gt_8) {
927 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
928 VBinOpCMicrokernelTester()
929 .batch_size(batch_size)
930 .Test(xnn_f32_vminc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
931 }
932}
933
934TEST(F32_VMINC__SCALAR_X8, inplace) {
935 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
936 VBinOpCMicrokernelTester()
937 .batch_size(batch_size)
938 .inplace(true)
939 .Test(xnn_f32_vminc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MinC, VBinOpCMicrokernelTester::Variant::Scalar);
940 }
941}