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