• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/vbinary.h>
17 #include "vbinaryc-microkernel-tester.h"
18 
19 
20 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_VMAXC__NEON_X4,batch_eq_4)21   TEST(F32_VMAXC__NEON_X4, batch_eq_4) {
22     TEST_REQUIRES_ARM_NEON;
23     VBinOpCMicrokernelTester()
24       .batch_size(4)
25       .Test(xnn_f32_vmaxc_ukernel__neon_x4, VBinOpCMicrokernelTester::OpType::MaxC);
26   }
27 
TEST(F32_VMAXC__NEON_X4,batch_div_4)28   TEST(F32_VMAXC__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_vmaxc_ukernel__neon_x4, VBinOpCMicrokernelTester::OpType::MaxC);
34     }
35   }
36 
TEST(F32_VMAXC__NEON_X4,batch_lt_4)37   TEST(F32_VMAXC__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_vmaxc_ukernel__neon_x4, VBinOpCMicrokernelTester::OpType::MaxC);
43     }
44   }
45 
TEST(F32_VMAXC__NEON_X4,batch_gt_4)46   TEST(F32_VMAXC__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_vmaxc_ukernel__neon_x4, VBinOpCMicrokernelTester::OpType::MaxC);
52     }
53   }
54 
TEST(F32_VMAXC__NEON_X4,inplace)55   TEST(F32_VMAXC__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_vmaxc_ukernel__neon_x4, VBinOpCMicrokernelTester::OpType::MaxC);
62     }
63   }
64 #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
65 
66 
67 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_VMAXC__NEON_X8,batch_eq_8)68   TEST(F32_VMAXC__NEON_X8, batch_eq_8) {
69     TEST_REQUIRES_ARM_NEON;
70     VBinOpCMicrokernelTester()
71       .batch_size(8)
72       .Test(xnn_f32_vmaxc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MaxC);
73   }
74 
TEST(F32_VMAXC__NEON_X8,batch_div_8)75   TEST(F32_VMAXC__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_vmaxc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MaxC);
81     }
82   }
83 
TEST(F32_VMAXC__NEON_X8,batch_lt_8)84   TEST(F32_VMAXC__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_vmaxc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MaxC);
90     }
91   }
92 
TEST(F32_VMAXC__NEON_X8,batch_gt_8)93   TEST(F32_VMAXC__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_vmaxc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MaxC);
99     }
100   }
101 
TEST(F32_VMAXC__NEON_X8,inplace)102   TEST(F32_VMAXC__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_vmaxc_ukernel__neon_x8, VBinOpCMicrokernelTester::OpType::MaxC);
109     }
110   }
111 #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
112 
113 
114 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAXC__SSE_X4,batch_eq_4)115   TEST(F32_VMAXC__SSE_X4, batch_eq_4) {
116     TEST_REQUIRES_X86_SSE;
117     VBinOpCMicrokernelTester()
118       .batch_size(4)
119       .Test(xnn_f32_vmaxc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MaxC);
120   }
121 
TEST(F32_VMAXC__SSE_X4,batch_div_4)122   TEST(F32_VMAXC__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_vmaxc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MaxC);
128     }
129   }
130 
TEST(F32_VMAXC__SSE_X4,batch_lt_4)131   TEST(F32_VMAXC__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_vmaxc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MaxC);
137     }
138   }
139 
TEST(F32_VMAXC__SSE_X4,batch_gt_4)140   TEST(F32_VMAXC__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_vmaxc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MaxC);
146     }
147   }
148 
TEST(F32_VMAXC__SSE_X4,inplace)149   TEST(F32_VMAXC__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_vmaxc_ukernel__sse_x4, VBinOpCMicrokernelTester::OpType::MaxC);
156     }
157   }
158 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
159 
160 
161 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAXC__SSE_X8,batch_eq_8)162   TEST(F32_VMAXC__SSE_X8, batch_eq_8) {
163     TEST_REQUIRES_X86_SSE;
164     VBinOpCMicrokernelTester()
165       .batch_size(8)
166       .Test(xnn_f32_vmaxc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MaxC);
167   }
168 
TEST(F32_VMAXC__SSE_X8,batch_div_8)169   TEST(F32_VMAXC__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_vmaxc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MaxC);
175     }
176   }
177 
TEST(F32_VMAXC__SSE_X8,batch_lt_8)178   TEST(F32_VMAXC__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_vmaxc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MaxC);
184     }
185   }
186 
TEST(F32_VMAXC__SSE_X8,batch_gt_8)187   TEST(F32_VMAXC__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_vmaxc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MaxC);
193     }
194   }
195 
TEST(F32_VMAXC__SSE_X8,inplace)196   TEST(F32_VMAXC__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_vmaxc_ukernel__sse_x8, VBinOpCMicrokernelTester::OpType::MaxC);
203     }
204   }
205 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
206 
207 
208 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAXC__AVX_X8,batch_eq_8)209   TEST(F32_VMAXC__AVX_X8, batch_eq_8) {
210     TEST_REQUIRES_X86_AVX;
211     VBinOpCMicrokernelTester()
212       .batch_size(8)
213       .Test(xnn_f32_vmaxc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MaxC);
214   }
215 
TEST(F32_VMAXC__AVX_X8,batch_div_8)216   TEST(F32_VMAXC__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_vmaxc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MaxC);
222     }
223   }
224 
TEST(F32_VMAXC__AVX_X8,batch_lt_8)225   TEST(F32_VMAXC__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_vmaxc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MaxC);
231     }
232   }
233 
TEST(F32_VMAXC__AVX_X8,batch_gt_8)234   TEST(F32_VMAXC__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_vmaxc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MaxC);
240     }
241   }
242 
TEST(F32_VMAXC__AVX_X8,inplace)243   TEST(F32_VMAXC__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_vmaxc_ukernel__avx_x8, VBinOpCMicrokernelTester::OpType::MaxC);
250     }
251   }
252 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
253 
254 
255 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAXC__AVX_X16,batch_eq_16)256   TEST(F32_VMAXC__AVX_X16, batch_eq_16) {
257     TEST_REQUIRES_X86_AVX;
258     VBinOpCMicrokernelTester()
259       .batch_size(16)
260       .Test(xnn_f32_vmaxc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MaxC);
261   }
262 
TEST(F32_VMAXC__AVX_X16,batch_div_16)263   TEST(F32_VMAXC__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_vmaxc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MaxC);
269     }
270   }
271 
TEST(F32_VMAXC__AVX_X16,batch_lt_16)272   TEST(F32_VMAXC__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_vmaxc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MaxC);
278     }
279   }
280 
TEST(F32_VMAXC__AVX_X16,batch_gt_16)281   TEST(F32_VMAXC__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_vmaxc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MaxC);
287     }
288   }
289 
TEST(F32_VMAXC__AVX_X16,inplace)290   TEST(F32_VMAXC__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_vmaxc_ukernel__avx_x16, VBinOpCMicrokernelTester::OpType::MaxC);
297     }
298   }
299 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
300 
301 
302 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAXC__AVX512F_X16,batch_eq_16)303   TEST(F32_VMAXC__AVX512F_X16, batch_eq_16) {
304     TEST_REQUIRES_X86_AVX512F;
305     VBinOpCMicrokernelTester()
306       .batch_size(16)
307       .Test(xnn_f32_vmaxc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MaxC);
308   }
309 
TEST(F32_VMAXC__AVX512F_X16,batch_div_16)310   TEST(F32_VMAXC__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_vmaxc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MaxC);
316     }
317   }
318 
TEST(F32_VMAXC__AVX512F_X16,batch_lt_16)319   TEST(F32_VMAXC__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_vmaxc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MaxC);
325     }
326   }
327 
TEST(F32_VMAXC__AVX512F_X16,batch_gt_16)328   TEST(F32_VMAXC__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_vmaxc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MaxC);
334     }
335   }
336 
TEST(F32_VMAXC__AVX512F_X16,inplace)337   TEST(F32_VMAXC__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_vmaxc_ukernel__avx512f_x16, VBinOpCMicrokernelTester::OpType::MaxC);
344     }
345   }
346 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
347 
348 
349 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VMAXC__AVX512F_X32,batch_eq_32)350   TEST(F32_VMAXC__AVX512F_X32, batch_eq_32) {
351     TEST_REQUIRES_X86_AVX512F;
352     VBinOpCMicrokernelTester()
353       .batch_size(32)
354       .Test(xnn_f32_vmaxc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MaxC);
355   }
356 
TEST(F32_VMAXC__AVX512F_X32,batch_div_32)357   TEST(F32_VMAXC__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_vmaxc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MaxC);
363     }
364   }
365 
TEST(F32_VMAXC__AVX512F_X32,batch_lt_32)366   TEST(F32_VMAXC__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_vmaxc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MaxC);
372     }
373   }
374 
TEST(F32_VMAXC__AVX512F_X32,batch_gt_32)375   TEST(F32_VMAXC__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_vmaxc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MaxC);
381     }
382   }
383 
TEST(F32_VMAXC__AVX512F_X32,inplace)384   TEST(F32_VMAXC__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_vmaxc_ukernel__avx512f_x32, VBinOpCMicrokernelTester::OpType::MaxC);
391     }
392   }
393 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
394 
395 
396 #if XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASMSIMD_ARM_X4,batch_eq_4)397   TEST(F32_VMAXC__WASMSIMD_ARM_X4, batch_eq_4) {
398     VBinOpCMicrokernelTester()
399       .batch_size(4)
400       .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
401   }
402 
TEST(F32_VMAXC__WASMSIMD_ARM_X4,batch_div_4)403   TEST(F32_VMAXC__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)
407         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
408     }
409   }
410 
TEST(F32_VMAXC__WASMSIMD_ARM_X4,batch_lt_4)411   TEST(F32_VMAXC__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)
415         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
416     }
417   }
418 
TEST(F32_VMAXC__WASMSIMD_ARM_X4,batch_gt_4)419   TEST(F32_VMAXC__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)
423         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
424     }
425   }
426 
TEST(F32_VMAXC__WASMSIMD_ARM_X4,inplace)427   TEST(F32_VMAXC__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)
432         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
433     }
434   }
435 #endif  // XNN_ARCH_WASMSIMD
436 
437 
438 #if XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASMSIMD_ARM_X8,batch_eq_8)439   TEST(F32_VMAXC__WASMSIMD_ARM_X8, batch_eq_8) {
440     VBinOpCMicrokernelTester()
441       .batch_size(8)
442       .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
443   }
444 
TEST(F32_VMAXC__WASMSIMD_ARM_X8,batch_div_8)445   TEST(F32_VMAXC__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)
449         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
450     }
451   }
452 
TEST(F32_VMAXC__WASMSIMD_ARM_X8,batch_lt_8)453   TEST(F32_VMAXC__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)
457         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
458     }
459   }
460 
TEST(F32_VMAXC__WASMSIMD_ARM_X8,batch_gt_8)461   TEST(F32_VMAXC__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)
465         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
466     }
467   }
468 
TEST(F32_VMAXC__WASMSIMD_ARM_X8,inplace)469   TEST(F32_VMAXC__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)
474         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
475     }
476   }
477 #endif  // XNN_ARCH_WASMSIMD
478 
479 
480 #if XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASMSIMD_ARM_X16,batch_eq_16)481   TEST(F32_VMAXC__WASMSIMD_ARM_X16, batch_eq_16) {
482     VBinOpCMicrokernelTester()
483       .batch_size(16)
484       .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MaxC);
485   }
486 
TEST(F32_VMAXC__WASMSIMD_ARM_X16,batch_div_16)487   TEST(F32_VMAXC__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_vmaxc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MaxC);
492     }
493   }
494 
TEST(F32_VMAXC__WASMSIMD_ARM_X16,batch_lt_16)495   TEST(F32_VMAXC__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_vmaxc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MaxC);
500     }
501   }
502 
TEST(F32_VMAXC__WASMSIMD_ARM_X16,batch_gt_16)503   TEST(F32_VMAXC__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_vmaxc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MaxC);
508     }
509   }
510 
TEST(F32_VMAXC__WASMSIMD_ARM_X16,inplace)511   TEST(F32_VMAXC__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_vmaxc_ukernel__wasmsimd_arm_x16, VBinOpCMicrokernelTester::OpType::MaxC);
517     }
518   }
519 #endif  // XNN_ARCH_WASMSIMD
520 
521 
522 #if XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASMSIMD_X86_X4,batch_eq_4)523   TEST(F32_VMAXC__WASMSIMD_X86_X4, batch_eq_4) {
524     VBinOpCMicrokernelTester()
525       .batch_size(4)
526       .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MaxC);
527   }
528 
TEST(F32_VMAXC__WASMSIMD_X86_X4,batch_div_4)529   TEST(F32_VMAXC__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)
533         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MaxC);
534     }
535   }
536 
TEST(F32_VMAXC__WASMSIMD_X86_X4,batch_lt_4)537   TEST(F32_VMAXC__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)
541         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MaxC);
542     }
543   }
544 
TEST(F32_VMAXC__WASMSIMD_X86_X4,batch_gt_4)545   TEST(F32_VMAXC__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)
549         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MaxC);
550     }
551   }
552 
TEST(F32_VMAXC__WASMSIMD_X86_X4,inplace)553   TEST(F32_VMAXC__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)
558         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinOpCMicrokernelTester::OpType::MaxC);
559     }
560   }
561 #endif  // XNN_ARCH_WASMSIMD
562 
563 
564 #if XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASMSIMD_X86_X8,batch_eq_8)565   TEST(F32_VMAXC__WASMSIMD_X86_X8, batch_eq_8) {
566     VBinOpCMicrokernelTester()
567       .batch_size(8)
568       .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MaxC);
569   }
570 
TEST(F32_VMAXC__WASMSIMD_X86_X8,batch_div_8)571   TEST(F32_VMAXC__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)
575         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MaxC);
576     }
577   }
578 
TEST(F32_VMAXC__WASMSIMD_X86_X8,batch_lt_8)579   TEST(F32_VMAXC__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)
583         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MaxC);
584     }
585   }
586 
TEST(F32_VMAXC__WASMSIMD_X86_X8,batch_gt_8)587   TEST(F32_VMAXC__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)
591         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MaxC);
592     }
593   }
594 
TEST(F32_VMAXC__WASMSIMD_X86_X8,inplace)595   TEST(F32_VMAXC__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)
600         .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinOpCMicrokernelTester::OpType::MaxC);
601     }
602   }
603 #endif  // XNN_ARCH_WASMSIMD
604 
605 
606 #if XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASMSIMD_X86_X16,batch_eq_16)607   TEST(F32_VMAXC__WASMSIMD_X86_X16, batch_eq_16) {
608     VBinOpCMicrokernelTester()
609       .batch_size(16)
610       .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MaxC);
611   }
612 
TEST(F32_VMAXC__WASMSIMD_X86_X16,batch_div_16)613   TEST(F32_VMAXC__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_vmaxc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MaxC);
618     }
619   }
620 
TEST(F32_VMAXC__WASMSIMD_X86_X16,batch_lt_16)621   TEST(F32_VMAXC__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_vmaxc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MaxC);
626     }
627   }
628 
TEST(F32_VMAXC__WASMSIMD_X86_X16,batch_gt_16)629   TEST(F32_VMAXC__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_vmaxc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MaxC);
634     }
635   }
636 
TEST(F32_VMAXC__WASMSIMD_X86_X16,inplace)637   TEST(F32_VMAXC__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_vmaxc_ukernel__wasmsimd_x86_x16, VBinOpCMicrokernelTester::OpType::MaxC);
643     }
644   }
645 #endif  // XNN_ARCH_WASMSIMD
646 
647 
648 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASM_X1,batch_eq_1)649   TEST(F32_VMAXC__WASM_X1, batch_eq_1) {
650     VBinOpCMicrokernelTester()
651       .batch_size(1)
652       .Test(xnn_f32_vmaxc_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::MaxC);
653   }
654 
TEST(F32_VMAXC__WASM_X1,batch_gt_1)655   TEST(F32_VMAXC__WASM_X1, batch_gt_1) {
656     for (size_t batch_size = 2; batch_size < 10; batch_size++) {
657       VBinOpCMicrokernelTester()
658         .batch_size(batch_size)
659         .Test(xnn_f32_vmaxc_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::MaxC);
660     }
661   }
662 
TEST(F32_VMAXC__WASM_X1,inplace)663   TEST(F32_VMAXC__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)
668         .Test(xnn_f32_vmaxc_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::MaxC);
669     }
670   }
671 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
672 
673 
674 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASM_X2,batch_eq_2)675   TEST(F32_VMAXC__WASM_X2, batch_eq_2) {
676     VBinOpCMicrokernelTester()
677       .batch_size(2)
678       .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MaxC);
679   }
680 
TEST(F32_VMAXC__WASM_X2,batch_div_2)681   TEST(F32_VMAXC__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)
685         .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MaxC);
686     }
687   }
688 
TEST(F32_VMAXC__WASM_X2,batch_lt_2)689   TEST(F32_VMAXC__WASM_X2, batch_lt_2) {
690     for (size_t batch_size = 1; batch_size < 2; batch_size++) {
691       VBinOpCMicrokernelTester()
692         .batch_size(batch_size)
693         .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MaxC);
694     }
695   }
696 
TEST(F32_VMAXC__WASM_X2,batch_gt_2)697   TEST(F32_VMAXC__WASM_X2, batch_gt_2) {
698     for (size_t batch_size = 3; batch_size < 4; batch_size++) {
699       VBinOpCMicrokernelTester()
700         .batch_size(batch_size)
701         .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MaxC);
702     }
703   }
704 
TEST(F32_VMAXC__WASM_X2,inplace)705   TEST(F32_VMAXC__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)
710         .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MaxC);
711     }
712   }
713 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
714 
715 
716 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASM_X4,batch_eq_4)717   TEST(F32_VMAXC__WASM_X4, batch_eq_4) {
718     VBinOpCMicrokernelTester()
719       .batch_size(4)
720       .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
721   }
722 
TEST(F32_VMAXC__WASM_X4,batch_div_4)723   TEST(F32_VMAXC__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)
727         .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
728     }
729   }
730 
TEST(F32_VMAXC__WASM_X4,batch_lt_4)731   TEST(F32_VMAXC__WASM_X4, batch_lt_4) {
732     for (size_t batch_size = 1; batch_size < 4; batch_size++) {
733       VBinOpCMicrokernelTester()
734         .batch_size(batch_size)
735         .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
736     }
737   }
738 
TEST(F32_VMAXC__WASM_X4,batch_gt_4)739   TEST(F32_VMAXC__WASM_X4, batch_gt_4) {
740     for (size_t batch_size = 5; batch_size < 8; batch_size++) {
741       VBinOpCMicrokernelTester()
742         .batch_size(batch_size)
743         .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
744     }
745   }
746 
TEST(F32_VMAXC__WASM_X4,inplace)747   TEST(F32_VMAXC__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)
752         .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MaxC);
753     }
754   }
755 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
756 
757 
758 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VMAXC__WASM_X8,batch_eq_8)759   TEST(F32_VMAXC__WASM_X8, batch_eq_8) {
760     VBinOpCMicrokernelTester()
761       .batch_size(8)
762       .Test(xnn_f32_vmaxc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
763   }
764 
TEST(F32_VMAXC__WASM_X8,batch_div_8)765   TEST(F32_VMAXC__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_vmaxc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
770     }
771   }
772 
TEST(F32_VMAXC__WASM_X8,batch_lt_8)773   TEST(F32_VMAXC__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_vmaxc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
778     }
779   }
780 
TEST(F32_VMAXC__WASM_X8,batch_gt_8)781   TEST(F32_VMAXC__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_vmaxc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
786     }
787   }
788 
TEST(F32_VMAXC__WASM_X8,inplace)789   TEST(F32_VMAXC__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_vmaxc_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MaxC);
795     }
796   }
797 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
798 
799 
TEST(F32_VMAXC__SCALAR_X1,batch_eq_1)800 TEST(F32_VMAXC__SCALAR_X1, batch_eq_1) {
801   VBinOpCMicrokernelTester()
802     .batch_size(1)
803     .Test(xnn_f32_vmaxc_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
804 }
805 
TEST(F32_VMAXC__SCALAR_X1,batch_gt_1)806 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
811   }
812 }
813 
TEST(F32_VMAXC__SCALAR_X1,inplace)814 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
820   }
821 }
822 
823 
TEST(F32_VMAXC__SCALAR_X2,batch_eq_2)824 TEST(F32_VMAXC__SCALAR_X2, batch_eq_2) {
825   VBinOpCMicrokernelTester()
826     .batch_size(2)
827     .Test(xnn_f32_vmaxc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
828 }
829 
TEST(F32_VMAXC__SCALAR_X2,batch_div_2)830 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
835   }
836 }
837 
TEST(F32_VMAXC__SCALAR_X2,batch_lt_2)838 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
843   }
844 }
845 
TEST(F32_VMAXC__SCALAR_X2,batch_gt_2)846 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
851   }
852 }
853 
TEST(F32_VMAXC__SCALAR_X2,inplace)854 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
860   }
861 }
862 
863 
TEST(F32_VMAXC__SCALAR_X4,batch_eq_4)864 TEST(F32_VMAXC__SCALAR_X4, batch_eq_4) {
865   VBinOpCMicrokernelTester()
866     .batch_size(4)
867     .Test(xnn_f32_vmaxc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
868 }
869 
TEST(F32_VMAXC__SCALAR_X4,batch_div_4)870 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
875   }
876 }
877 
TEST(F32_VMAXC__SCALAR_X4,batch_lt_4)878 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
883   }
884 }
885 
TEST(F32_VMAXC__SCALAR_X4,batch_gt_4)886 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
891   }
892 }
893 
TEST(F32_VMAXC__SCALAR_X4,inplace)894 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
900   }
901 }
902 
903 
TEST(F32_VMAXC__SCALAR_X8,batch_eq_8)904 TEST(F32_VMAXC__SCALAR_X8, batch_eq_8) {
905   VBinOpCMicrokernelTester()
906     .batch_size(8)
907     .Test(xnn_f32_vmaxc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
908 }
909 
TEST(F32_VMAXC__SCALAR_X8,batch_div_8)910 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
915   }
916 }
917 
TEST(F32_VMAXC__SCALAR_X8,batch_lt_8)918 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
923   }
924 }
925 
TEST(F32_VMAXC__SCALAR_X8,batch_gt_8)926 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
931   }
932 }
933 
TEST(F32_VMAXC__SCALAR_X8,inplace)934 TEST(F32_VMAXC__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_vmaxc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MaxC, VBinOpCMicrokernelTester::Variant::Scalar);
940   }
941 }
942