xref: /aosp_15_r20/external/XNNPACK/test/f32-vmaxc.cc (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
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