xref: /aosp_15_r20/external/XNNPACK/test/f32-vrdivc-minmax.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-vrdivc-minmax.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_ARM64
TEST(F32_VRDIVC_MINMAX__NEON_X4,batch_eq_4)22   TEST(F32_VRDIVC_MINMAX__NEON_X4, batch_eq_4) {
23     TEST_REQUIRES_ARM_NEON;
24     VBinaryCMicrokernelTester()
25       .batch_size(4)
26       .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
27   }
28 
TEST(F32_VRDIVC_MINMAX__NEON_X4,batch_div_4)29   TEST(F32_VRDIVC_MINMAX__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_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
35     }
36   }
37 
TEST(F32_VRDIVC_MINMAX__NEON_X4,batch_lt_4)38   TEST(F32_VRDIVC_MINMAX__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_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
44     }
45   }
46 
TEST(F32_VRDIVC_MINMAX__NEON_X4,batch_gt_4)47   TEST(F32_VRDIVC_MINMAX__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_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
53     }
54   }
55 
TEST(F32_VRDIVC_MINMAX__NEON_X4,inplace)56   TEST(F32_VRDIVC_MINMAX__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_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
63     }
64   }
65 
TEST(F32_VRDIVC_MINMAX__NEON_X4,qmin)66   TEST(F32_VRDIVC_MINMAX__NEON_X4, qmin) {
67     TEST_REQUIRES_ARM_NEON;
68     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
69       VBinaryCMicrokernelTester()
70         .batch_size(batch_size)
71         .qmin(128)
72         .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
73     }
74   }
75 
TEST(F32_VRDIVC_MINMAX__NEON_X4,qmax)76   TEST(F32_VRDIVC_MINMAX__NEON_X4, qmax) {
77     TEST_REQUIRES_ARM_NEON;
78     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
79       VBinaryCMicrokernelTester()
80         .batch_size(batch_size)
81         .qmax(128)
82         .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
83     }
84   }
85 #endif  // XNN_ARCH_ARM64
86 
87 
88 #if XNN_ARCH_ARM64
TEST(F32_VRDIVC_MINMAX__NEON_X8,batch_eq_8)89   TEST(F32_VRDIVC_MINMAX__NEON_X8, batch_eq_8) {
90     TEST_REQUIRES_ARM_NEON;
91     VBinaryCMicrokernelTester()
92       .batch_size(8)
93       .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
94   }
95 
TEST(F32_VRDIVC_MINMAX__NEON_X8,batch_div_8)96   TEST(F32_VRDIVC_MINMAX__NEON_X8, batch_div_8) {
97     TEST_REQUIRES_ARM_NEON;
98     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
99       VBinaryCMicrokernelTester()
100         .batch_size(batch_size)
101         .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
102     }
103   }
104 
TEST(F32_VRDIVC_MINMAX__NEON_X8,batch_lt_8)105   TEST(F32_VRDIVC_MINMAX__NEON_X8, batch_lt_8) {
106     TEST_REQUIRES_ARM_NEON;
107     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
108       VBinaryCMicrokernelTester()
109         .batch_size(batch_size)
110         .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
111     }
112   }
113 
TEST(F32_VRDIVC_MINMAX__NEON_X8,batch_gt_8)114   TEST(F32_VRDIVC_MINMAX__NEON_X8, batch_gt_8) {
115     TEST_REQUIRES_ARM_NEON;
116     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
117       VBinaryCMicrokernelTester()
118         .batch_size(batch_size)
119         .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
120     }
121   }
122 
TEST(F32_VRDIVC_MINMAX__NEON_X8,inplace)123   TEST(F32_VRDIVC_MINMAX__NEON_X8, inplace) {
124     TEST_REQUIRES_ARM_NEON;
125     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
126       VBinaryCMicrokernelTester()
127         .batch_size(batch_size)
128         .inplace(true)
129         .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
130     }
131   }
132 
TEST(F32_VRDIVC_MINMAX__NEON_X8,qmin)133   TEST(F32_VRDIVC_MINMAX__NEON_X8, qmin) {
134     TEST_REQUIRES_ARM_NEON;
135     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
136       VBinaryCMicrokernelTester()
137         .batch_size(batch_size)
138         .qmin(128)
139         .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
140     }
141   }
142 
TEST(F32_VRDIVC_MINMAX__NEON_X8,qmax)143   TEST(F32_VRDIVC_MINMAX__NEON_X8, qmax) {
144     TEST_REQUIRES_ARM_NEON;
145     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
146       VBinaryCMicrokernelTester()
147         .batch_size(batch_size)
148         .qmax(128)
149         .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
150     }
151   }
152 #endif  // XNN_ARCH_ARM64
153 
154 
155 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRDIVC_MINMAX__SSE_X4,batch_eq_4)156   TEST(F32_VRDIVC_MINMAX__SSE_X4, batch_eq_4) {
157     TEST_REQUIRES_X86_SSE;
158     VBinaryCMicrokernelTester()
159       .batch_size(4)
160       .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
161   }
162 
TEST(F32_VRDIVC_MINMAX__SSE_X4,batch_div_4)163   TEST(F32_VRDIVC_MINMAX__SSE_X4, batch_div_4) {
164     TEST_REQUIRES_X86_SSE;
165     for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
166       VBinaryCMicrokernelTester()
167         .batch_size(batch_size)
168         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
169     }
170   }
171 
TEST(F32_VRDIVC_MINMAX__SSE_X4,batch_lt_4)172   TEST(F32_VRDIVC_MINMAX__SSE_X4, batch_lt_4) {
173     TEST_REQUIRES_X86_SSE;
174     for (size_t batch_size = 1; batch_size < 4; batch_size++) {
175       VBinaryCMicrokernelTester()
176         .batch_size(batch_size)
177         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
178     }
179   }
180 
TEST(F32_VRDIVC_MINMAX__SSE_X4,batch_gt_4)181   TEST(F32_VRDIVC_MINMAX__SSE_X4, batch_gt_4) {
182     TEST_REQUIRES_X86_SSE;
183     for (size_t batch_size = 5; batch_size < 8; batch_size++) {
184       VBinaryCMicrokernelTester()
185         .batch_size(batch_size)
186         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
187     }
188   }
189 
TEST(F32_VRDIVC_MINMAX__SSE_X4,inplace)190   TEST(F32_VRDIVC_MINMAX__SSE_X4, inplace) {
191     TEST_REQUIRES_X86_SSE;
192     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
193       VBinaryCMicrokernelTester()
194         .batch_size(batch_size)
195         .inplace(true)
196         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
197     }
198   }
199 
TEST(F32_VRDIVC_MINMAX__SSE_X4,qmin)200   TEST(F32_VRDIVC_MINMAX__SSE_X4, qmin) {
201     TEST_REQUIRES_X86_SSE;
202     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
203       VBinaryCMicrokernelTester()
204         .batch_size(batch_size)
205         .qmin(128)
206         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
207     }
208   }
209 
TEST(F32_VRDIVC_MINMAX__SSE_X4,qmax)210   TEST(F32_VRDIVC_MINMAX__SSE_X4, qmax) {
211     TEST_REQUIRES_X86_SSE;
212     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
213       VBinaryCMicrokernelTester()
214         .batch_size(batch_size)
215         .qmax(128)
216         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
217     }
218   }
219 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
220 
221 
222 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRDIVC_MINMAX__SSE_X8,batch_eq_8)223   TEST(F32_VRDIVC_MINMAX__SSE_X8, batch_eq_8) {
224     TEST_REQUIRES_X86_SSE;
225     VBinaryCMicrokernelTester()
226       .batch_size(8)
227       .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
228   }
229 
TEST(F32_VRDIVC_MINMAX__SSE_X8,batch_div_8)230   TEST(F32_VRDIVC_MINMAX__SSE_X8, batch_div_8) {
231     TEST_REQUIRES_X86_SSE;
232     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
233       VBinaryCMicrokernelTester()
234         .batch_size(batch_size)
235         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
236     }
237   }
238 
TEST(F32_VRDIVC_MINMAX__SSE_X8,batch_lt_8)239   TEST(F32_VRDIVC_MINMAX__SSE_X8, batch_lt_8) {
240     TEST_REQUIRES_X86_SSE;
241     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
242       VBinaryCMicrokernelTester()
243         .batch_size(batch_size)
244         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
245     }
246   }
247 
TEST(F32_VRDIVC_MINMAX__SSE_X8,batch_gt_8)248   TEST(F32_VRDIVC_MINMAX__SSE_X8, batch_gt_8) {
249     TEST_REQUIRES_X86_SSE;
250     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
251       VBinaryCMicrokernelTester()
252         .batch_size(batch_size)
253         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
254     }
255   }
256 
TEST(F32_VRDIVC_MINMAX__SSE_X8,inplace)257   TEST(F32_VRDIVC_MINMAX__SSE_X8, inplace) {
258     TEST_REQUIRES_X86_SSE;
259     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
260       VBinaryCMicrokernelTester()
261         .batch_size(batch_size)
262         .inplace(true)
263         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
264     }
265   }
266 
TEST(F32_VRDIVC_MINMAX__SSE_X8,qmin)267   TEST(F32_VRDIVC_MINMAX__SSE_X8, qmin) {
268     TEST_REQUIRES_X86_SSE;
269     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
270       VBinaryCMicrokernelTester()
271         .batch_size(batch_size)
272         .qmin(128)
273         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
274     }
275   }
276 
TEST(F32_VRDIVC_MINMAX__SSE_X8,qmax)277   TEST(F32_VRDIVC_MINMAX__SSE_X8, qmax) {
278     TEST_REQUIRES_X86_SSE;
279     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
280       VBinaryCMicrokernelTester()
281         .batch_size(batch_size)
282         .qmax(128)
283         .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
284     }
285   }
286 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
287 
288 
289 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRDIVC_MINMAX__AVX_X8,batch_eq_8)290   TEST(F32_VRDIVC_MINMAX__AVX_X8, batch_eq_8) {
291     TEST_REQUIRES_X86_AVX;
292     VBinaryCMicrokernelTester()
293       .batch_size(8)
294       .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
295   }
296 
TEST(F32_VRDIVC_MINMAX__AVX_X8,batch_div_8)297   TEST(F32_VRDIVC_MINMAX__AVX_X8, batch_div_8) {
298     TEST_REQUIRES_X86_AVX;
299     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
300       VBinaryCMicrokernelTester()
301         .batch_size(batch_size)
302         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
303     }
304   }
305 
TEST(F32_VRDIVC_MINMAX__AVX_X8,batch_lt_8)306   TEST(F32_VRDIVC_MINMAX__AVX_X8, batch_lt_8) {
307     TEST_REQUIRES_X86_AVX;
308     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
309       VBinaryCMicrokernelTester()
310         .batch_size(batch_size)
311         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
312     }
313   }
314 
TEST(F32_VRDIVC_MINMAX__AVX_X8,batch_gt_8)315   TEST(F32_VRDIVC_MINMAX__AVX_X8, batch_gt_8) {
316     TEST_REQUIRES_X86_AVX;
317     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
318       VBinaryCMicrokernelTester()
319         .batch_size(batch_size)
320         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
321     }
322   }
323 
TEST(F32_VRDIVC_MINMAX__AVX_X8,inplace)324   TEST(F32_VRDIVC_MINMAX__AVX_X8, inplace) {
325     TEST_REQUIRES_X86_AVX;
326     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
327       VBinaryCMicrokernelTester()
328         .batch_size(batch_size)
329         .inplace(true)
330         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
331     }
332   }
333 
TEST(F32_VRDIVC_MINMAX__AVX_X8,qmin)334   TEST(F32_VRDIVC_MINMAX__AVX_X8, qmin) {
335     TEST_REQUIRES_X86_AVX;
336     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
337       VBinaryCMicrokernelTester()
338         .batch_size(batch_size)
339         .qmin(128)
340         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
341     }
342   }
343 
TEST(F32_VRDIVC_MINMAX__AVX_X8,qmax)344   TEST(F32_VRDIVC_MINMAX__AVX_X8, qmax) {
345     TEST_REQUIRES_X86_AVX;
346     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
347       VBinaryCMicrokernelTester()
348         .batch_size(batch_size)
349         .qmax(128)
350         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
351     }
352   }
353 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
354 
355 
356 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRDIVC_MINMAX__AVX_X16,batch_eq_16)357   TEST(F32_VRDIVC_MINMAX__AVX_X16, batch_eq_16) {
358     TEST_REQUIRES_X86_AVX;
359     VBinaryCMicrokernelTester()
360       .batch_size(16)
361       .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
362   }
363 
TEST(F32_VRDIVC_MINMAX__AVX_X16,batch_div_16)364   TEST(F32_VRDIVC_MINMAX__AVX_X16, batch_div_16) {
365     TEST_REQUIRES_X86_AVX;
366     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
367       VBinaryCMicrokernelTester()
368         .batch_size(batch_size)
369         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
370     }
371   }
372 
TEST(F32_VRDIVC_MINMAX__AVX_X16,batch_lt_16)373   TEST(F32_VRDIVC_MINMAX__AVX_X16, batch_lt_16) {
374     TEST_REQUIRES_X86_AVX;
375     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
376       VBinaryCMicrokernelTester()
377         .batch_size(batch_size)
378         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
379     }
380   }
381 
TEST(F32_VRDIVC_MINMAX__AVX_X16,batch_gt_16)382   TEST(F32_VRDIVC_MINMAX__AVX_X16, batch_gt_16) {
383     TEST_REQUIRES_X86_AVX;
384     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
385       VBinaryCMicrokernelTester()
386         .batch_size(batch_size)
387         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
388     }
389   }
390 
TEST(F32_VRDIVC_MINMAX__AVX_X16,inplace)391   TEST(F32_VRDIVC_MINMAX__AVX_X16, inplace) {
392     TEST_REQUIRES_X86_AVX;
393     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
394       VBinaryCMicrokernelTester()
395         .batch_size(batch_size)
396         .inplace(true)
397         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
398     }
399   }
400 
TEST(F32_VRDIVC_MINMAX__AVX_X16,qmin)401   TEST(F32_VRDIVC_MINMAX__AVX_X16, qmin) {
402     TEST_REQUIRES_X86_AVX;
403     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
404       VBinaryCMicrokernelTester()
405         .batch_size(batch_size)
406         .qmin(128)
407         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
408     }
409   }
410 
TEST(F32_VRDIVC_MINMAX__AVX_X16,qmax)411   TEST(F32_VRDIVC_MINMAX__AVX_X16, qmax) {
412     TEST_REQUIRES_X86_AVX;
413     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
414       VBinaryCMicrokernelTester()
415         .batch_size(batch_size)
416         .qmax(128)
417         .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
418     }
419   }
420 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
421 
422 
423 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRDIVC_MINMAX__AVX512F_X16,batch_eq_16)424   TEST(F32_VRDIVC_MINMAX__AVX512F_X16, batch_eq_16) {
425     TEST_REQUIRES_X86_AVX512F;
426     VBinaryCMicrokernelTester()
427       .batch_size(16)
428       .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
429   }
430 
TEST(F32_VRDIVC_MINMAX__AVX512F_X16,batch_div_16)431   TEST(F32_VRDIVC_MINMAX__AVX512F_X16, batch_div_16) {
432     TEST_REQUIRES_X86_AVX512F;
433     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
434       VBinaryCMicrokernelTester()
435         .batch_size(batch_size)
436         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
437     }
438   }
439 
TEST(F32_VRDIVC_MINMAX__AVX512F_X16,batch_lt_16)440   TEST(F32_VRDIVC_MINMAX__AVX512F_X16, batch_lt_16) {
441     TEST_REQUIRES_X86_AVX512F;
442     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
443       VBinaryCMicrokernelTester()
444         .batch_size(batch_size)
445         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
446     }
447   }
448 
TEST(F32_VRDIVC_MINMAX__AVX512F_X16,batch_gt_16)449   TEST(F32_VRDIVC_MINMAX__AVX512F_X16, batch_gt_16) {
450     TEST_REQUIRES_X86_AVX512F;
451     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
452       VBinaryCMicrokernelTester()
453         .batch_size(batch_size)
454         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
455     }
456   }
457 
TEST(F32_VRDIVC_MINMAX__AVX512F_X16,inplace)458   TEST(F32_VRDIVC_MINMAX__AVX512F_X16, inplace) {
459     TEST_REQUIRES_X86_AVX512F;
460     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
461       VBinaryCMicrokernelTester()
462         .batch_size(batch_size)
463         .inplace(true)
464         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
465     }
466   }
467 
TEST(F32_VRDIVC_MINMAX__AVX512F_X16,qmin)468   TEST(F32_VRDIVC_MINMAX__AVX512F_X16, qmin) {
469     TEST_REQUIRES_X86_AVX512F;
470     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
471       VBinaryCMicrokernelTester()
472         .batch_size(batch_size)
473         .qmin(128)
474         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
475     }
476   }
477 
TEST(F32_VRDIVC_MINMAX__AVX512F_X16,qmax)478   TEST(F32_VRDIVC_MINMAX__AVX512F_X16, qmax) {
479     TEST_REQUIRES_X86_AVX512F;
480     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
481       VBinaryCMicrokernelTester()
482         .batch_size(batch_size)
483         .qmax(128)
484         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
485     }
486   }
487 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
488 
489 
490 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VRDIVC_MINMAX__AVX512F_X32,batch_eq_32)491   TEST(F32_VRDIVC_MINMAX__AVX512F_X32, batch_eq_32) {
492     TEST_REQUIRES_X86_AVX512F;
493     VBinaryCMicrokernelTester()
494       .batch_size(32)
495       .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
496   }
497 
TEST(F32_VRDIVC_MINMAX__AVX512F_X32,batch_div_32)498   TEST(F32_VRDIVC_MINMAX__AVX512F_X32, batch_div_32) {
499     TEST_REQUIRES_X86_AVX512F;
500     for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
501       VBinaryCMicrokernelTester()
502         .batch_size(batch_size)
503         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
504     }
505   }
506 
TEST(F32_VRDIVC_MINMAX__AVX512F_X32,batch_lt_32)507   TEST(F32_VRDIVC_MINMAX__AVX512F_X32, batch_lt_32) {
508     TEST_REQUIRES_X86_AVX512F;
509     for (size_t batch_size = 1; batch_size < 32; batch_size++) {
510       VBinaryCMicrokernelTester()
511         .batch_size(batch_size)
512         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
513     }
514   }
515 
TEST(F32_VRDIVC_MINMAX__AVX512F_X32,batch_gt_32)516   TEST(F32_VRDIVC_MINMAX__AVX512F_X32, batch_gt_32) {
517     TEST_REQUIRES_X86_AVX512F;
518     for (size_t batch_size = 33; batch_size < 64; batch_size++) {
519       VBinaryCMicrokernelTester()
520         .batch_size(batch_size)
521         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
522     }
523   }
524 
TEST(F32_VRDIVC_MINMAX__AVX512F_X32,inplace)525   TEST(F32_VRDIVC_MINMAX__AVX512F_X32, inplace) {
526     TEST_REQUIRES_X86_AVX512F;
527     for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
528       VBinaryCMicrokernelTester()
529         .batch_size(batch_size)
530         .inplace(true)
531         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
532     }
533   }
534 
TEST(F32_VRDIVC_MINMAX__AVX512F_X32,qmin)535   TEST(F32_VRDIVC_MINMAX__AVX512F_X32, qmin) {
536     TEST_REQUIRES_X86_AVX512F;
537     for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
538       VBinaryCMicrokernelTester()
539         .batch_size(batch_size)
540         .qmin(128)
541         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
542     }
543   }
544 
TEST(F32_VRDIVC_MINMAX__AVX512F_X32,qmax)545   TEST(F32_VRDIVC_MINMAX__AVX512F_X32, qmax) {
546     TEST_REQUIRES_X86_AVX512F;
547     for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
548       VBinaryCMicrokernelTester()
549         .batch_size(batch_size)
550         .qmax(128)
551         .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
552     }
553   }
554 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
555 
556 
557 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4,batch_eq_4)558   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, batch_eq_4) {
559     VBinaryCMicrokernelTester()
560       .batch_size(4)
561       .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
562   }
563 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4,batch_div_4)564   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, batch_div_4) {
565     for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
566       VBinaryCMicrokernelTester()
567         .batch_size(batch_size)
568         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
569     }
570   }
571 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4,batch_lt_4)572   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, batch_lt_4) {
573     for (size_t batch_size = 1; batch_size < 4; batch_size++) {
574       VBinaryCMicrokernelTester()
575         .batch_size(batch_size)
576         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
577     }
578   }
579 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4,batch_gt_4)580   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, batch_gt_4) {
581     for (size_t batch_size = 5; batch_size < 8; batch_size++) {
582       VBinaryCMicrokernelTester()
583         .batch_size(batch_size)
584         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
585     }
586   }
587 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4,inplace)588   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, inplace) {
589     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
590       VBinaryCMicrokernelTester()
591         .batch_size(batch_size)
592         .inplace(true)
593         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
594     }
595   }
596 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4,qmin)597   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, qmin) {
598     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
599       VBinaryCMicrokernelTester()
600         .batch_size(batch_size)
601         .qmin(128)
602         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
603     }
604   }
605 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4,qmax)606   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, qmax) {
607     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
608       VBinaryCMicrokernelTester()
609         .batch_size(batch_size)
610         .qmax(128)
611         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
612     }
613   }
614 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
615 
616 
617 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8,batch_eq_8)618   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, batch_eq_8) {
619     VBinaryCMicrokernelTester()
620       .batch_size(8)
621       .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
622   }
623 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8,batch_div_8)624   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, batch_div_8) {
625     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
626       VBinaryCMicrokernelTester()
627         .batch_size(batch_size)
628         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
629     }
630   }
631 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8,batch_lt_8)632   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, batch_lt_8) {
633     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
634       VBinaryCMicrokernelTester()
635         .batch_size(batch_size)
636         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
637     }
638   }
639 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8,batch_gt_8)640   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, batch_gt_8) {
641     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
642       VBinaryCMicrokernelTester()
643         .batch_size(batch_size)
644         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
645     }
646   }
647 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8,inplace)648   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, inplace) {
649     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
650       VBinaryCMicrokernelTester()
651         .batch_size(batch_size)
652         .inplace(true)
653         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
654     }
655   }
656 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8,qmin)657   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, qmin) {
658     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
659       VBinaryCMicrokernelTester()
660         .batch_size(batch_size)
661         .qmin(128)
662         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
663     }
664   }
665 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8,qmax)666   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, qmax) {
667     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
668       VBinaryCMicrokernelTester()
669         .batch_size(batch_size)
670         .qmax(128)
671         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
672     }
673   }
674 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
675 
676 
677 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16,batch_eq_16)678   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, batch_eq_16) {
679     VBinaryCMicrokernelTester()
680       .batch_size(16)
681       .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
682   }
683 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16,batch_div_16)684   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, batch_div_16) {
685     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
686       VBinaryCMicrokernelTester()
687         .batch_size(batch_size)
688         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
689     }
690   }
691 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16,batch_lt_16)692   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, batch_lt_16) {
693     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
694       VBinaryCMicrokernelTester()
695         .batch_size(batch_size)
696         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
697     }
698   }
699 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16,batch_gt_16)700   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, batch_gt_16) {
701     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
702       VBinaryCMicrokernelTester()
703         .batch_size(batch_size)
704         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
705     }
706   }
707 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16,inplace)708   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, inplace) {
709     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
710       VBinaryCMicrokernelTester()
711         .batch_size(batch_size)
712         .inplace(true)
713         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
714     }
715   }
716 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16,qmin)717   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, qmin) {
718     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
719       VBinaryCMicrokernelTester()
720         .batch_size(batch_size)
721         .qmin(128)
722         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
723     }
724   }
725 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16,qmax)726   TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, qmax) {
727     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
728       VBinaryCMicrokernelTester()
729         .batch_size(batch_size)
730         .qmax(128)
731         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
732     }
733   }
734 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
735 
736 
737 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4,batch_eq_4)738   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, batch_eq_4) {
739     VBinaryCMicrokernelTester()
740       .batch_size(4)
741       .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
742   }
743 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4,batch_div_4)744   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, batch_div_4) {
745     for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
746       VBinaryCMicrokernelTester()
747         .batch_size(batch_size)
748         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
749     }
750   }
751 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4,batch_lt_4)752   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, batch_lt_4) {
753     for (size_t batch_size = 1; batch_size < 4; batch_size++) {
754       VBinaryCMicrokernelTester()
755         .batch_size(batch_size)
756         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
757     }
758   }
759 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4,batch_gt_4)760   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, batch_gt_4) {
761     for (size_t batch_size = 5; batch_size < 8; batch_size++) {
762       VBinaryCMicrokernelTester()
763         .batch_size(batch_size)
764         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
765     }
766   }
767 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4,inplace)768   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, inplace) {
769     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
770       VBinaryCMicrokernelTester()
771         .batch_size(batch_size)
772         .inplace(true)
773         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
774     }
775   }
776 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4,qmin)777   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, qmin) {
778     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
779       VBinaryCMicrokernelTester()
780         .batch_size(batch_size)
781         .qmin(128)
782         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
783     }
784   }
785 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4,qmax)786   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, qmax) {
787     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
788       VBinaryCMicrokernelTester()
789         .batch_size(batch_size)
790         .qmax(128)
791         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
792     }
793   }
794 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
795 
796 
797 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8,batch_eq_8)798   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, batch_eq_8) {
799     VBinaryCMicrokernelTester()
800       .batch_size(8)
801       .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
802   }
803 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8,batch_div_8)804   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, batch_div_8) {
805     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
806       VBinaryCMicrokernelTester()
807         .batch_size(batch_size)
808         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
809     }
810   }
811 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8,batch_lt_8)812   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, batch_lt_8) {
813     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
814       VBinaryCMicrokernelTester()
815         .batch_size(batch_size)
816         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
817     }
818   }
819 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8,batch_gt_8)820   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, batch_gt_8) {
821     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
822       VBinaryCMicrokernelTester()
823         .batch_size(batch_size)
824         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
825     }
826   }
827 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8,inplace)828   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, inplace) {
829     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
830       VBinaryCMicrokernelTester()
831         .batch_size(batch_size)
832         .inplace(true)
833         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
834     }
835   }
836 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8,qmin)837   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, qmin) {
838     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
839       VBinaryCMicrokernelTester()
840         .batch_size(batch_size)
841         .qmin(128)
842         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
843     }
844   }
845 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8,qmax)846   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, qmax) {
847     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
848       VBinaryCMicrokernelTester()
849         .batch_size(batch_size)
850         .qmax(128)
851         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
852     }
853   }
854 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
855 
856 
857 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16,batch_eq_16)858   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, batch_eq_16) {
859     VBinaryCMicrokernelTester()
860       .batch_size(16)
861       .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
862   }
863 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16,batch_div_16)864   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, batch_div_16) {
865     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
866       VBinaryCMicrokernelTester()
867         .batch_size(batch_size)
868         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
869     }
870   }
871 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16,batch_lt_16)872   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, batch_lt_16) {
873     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
874       VBinaryCMicrokernelTester()
875         .batch_size(batch_size)
876         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
877     }
878   }
879 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16,batch_gt_16)880   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, batch_gt_16) {
881     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
882       VBinaryCMicrokernelTester()
883         .batch_size(batch_size)
884         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
885     }
886   }
887 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16,inplace)888   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, inplace) {
889     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
890       VBinaryCMicrokernelTester()
891         .batch_size(batch_size)
892         .inplace(true)
893         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
894     }
895   }
896 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16,qmin)897   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, qmin) {
898     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
899       VBinaryCMicrokernelTester()
900         .batch_size(batch_size)
901         .qmin(128)
902         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
903     }
904   }
905 
TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16,qmax)906   TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, qmax) {
907     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
908       VBinaryCMicrokernelTester()
909         .batch_size(batch_size)
910         .qmax(128)
911         .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
912     }
913   }
914 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
915 
916 
917 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASM_X1,batch_eq_1)918   TEST(F32_VRDIVC_MINMAX__WASM_X1, batch_eq_1) {
919     VBinaryCMicrokernelTester()
920       .batch_size(1)
921       .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
922   }
923 
TEST(F32_VRDIVC_MINMAX__WASM_X1,batch_gt_1)924   TEST(F32_VRDIVC_MINMAX__WASM_X1, batch_gt_1) {
925     for (size_t batch_size = 2; batch_size < 10; batch_size++) {
926       VBinaryCMicrokernelTester()
927         .batch_size(batch_size)
928         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
929     }
930   }
931 
TEST(F32_VRDIVC_MINMAX__WASM_X1,inplace)932   TEST(F32_VRDIVC_MINMAX__WASM_X1, inplace) {
933     for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
934       VBinaryCMicrokernelTester()
935         .batch_size(batch_size)
936         .inplace(true)
937         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
938     }
939   }
940 
TEST(F32_VRDIVC_MINMAX__WASM_X1,qmin)941   TEST(F32_VRDIVC_MINMAX__WASM_X1, qmin) {
942     for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
943       VBinaryCMicrokernelTester()
944         .batch_size(batch_size)
945         .qmin(128)
946         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
947     }
948   }
949 
TEST(F32_VRDIVC_MINMAX__WASM_X1,qmax)950   TEST(F32_VRDIVC_MINMAX__WASM_X1, qmax) {
951     for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
952       VBinaryCMicrokernelTester()
953         .batch_size(batch_size)
954         .qmax(128)
955         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
956     }
957   }
958 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
959 
960 
961 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASM_X2,batch_eq_2)962   TEST(F32_VRDIVC_MINMAX__WASM_X2, batch_eq_2) {
963     VBinaryCMicrokernelTester()
964       .batch_size(2)
965       .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
966   }
967 
TEST(F32_VRDIVC_MINMAX__WASM_X2,batch_div_2)968   TEST(F32_VRDIVC_MINMAX__WASM_X2, batch_div_2) {
969     for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
970       VBinaryCMicrokernelTester()
971         .batch_size(batch_size)
972         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
973     }
974   }
975 
TEST(F32_VRDIVC_MINMAX__WASM_X2,batch_lt_2)976   TEST(F32_VRDIVC_MINMAX__WASM_X2, batch_lt_2) {
977     for (size_t batch_size = 1; batch_size < 2; batch_size++) {
978       VBinaryCMicrokernelTester()
979         .batch_size(batch_size)
980         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
981     }
982   }
983 
TEST(F32_VRDIVC_MINMAX__WASM_X2,batch_gt_2)984   TEST(F32_VRDIVC_MINMAX__WASM_X2, batch_gt_2) {
985     for (size_t batch_size = 3; batch_size < 4; batch_size++) {
986       VBinaryCMicrokernelTester()
987         .batch_size(batch_size)
988         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
989     }
990   }
991 
TEST(F32_VRDIVC_MINMAX__WASM_X2,inplace)992   TEST(F32_VRDIVC_MINMAX__WASM_X2, inplace) {
993     for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
994       VBinaryCMicrokernelTester()
995         .batch_size(batch_size)
996         .inplace(true)
997         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
998     }
999   }
1000 
TEST(F32_VRDIVC_MINMAX__WASM_X2,qmin)1001   TEST(F32_VRDIVC_MINMAX__WASM_X2, qmin) {
1002     for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1003       VBinaryCMicrokernelTester()
1004         .batch_size(batch_size)
1005         .qmin(128)
1006         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1007     }
1008   }
1009 
TEST(F32_VRDIVC_MINMAX__WASM_X2,qmax)1010   TEST(F32_VRDIVC_MINMAX__WASM_X2, qmax) {
1011     for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1012       VBinaryCMicrokernelTester()
1013         .batch_size(batch_size)
1014         .qmax(128)
1015         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1016     }
1017   }
1018 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
1019 
1020 
1021 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASM_X4,batch_eq_4)1022   TEST(F32_VRDIVC_MINMAX__WASM_X4, batch_eq_4) {
1023     VBinaryCMicrokernelTester()
1024       .batch_size(4)
1025       .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1026   }
1027 
TEST(F32_VRDIVC_MINMAX__WASM_X4,batch_div_4)1028   TEST(F32_VRDIVC_MINMAX__WASM_X4, batch_div_4) {
1029     for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
1030       VBinaryCMicrokernelTester()
1031         .batch_size(batch_size)
1032         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1033     }
1034   }
1035 
TEST(F32_VRDIVC_MINMAX__WASM_X4,batch_lt_4)1036   TEST(F32_VRDIVC_MINMAX__WASM_X4, batch_lt_4) {
1037     for (size_t batch_size = 1; batch_size < 4; batch_size++) {
1038       VBinaryCMicrokernelTester()
1039         .batch_size(batch_size)
1040         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1041     }
1042   }
1043 
TEST(F32_VRDIVC_MINMAX__WASM_X4,batch_gt_4)1044   TEST(F32_VRDIVC_MINMAX__WASM_X4, batch_gt_4) {
1045     for (size_t batch_size = 5; batch_size < 8; batch_size++) {
1046       VBinaryCMicrokernelTester()
1047         .batch_size(batch_size)
1048         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1049     }
1050   }
1051 
TEST(F32_VRDIVC_MINMAX__WASM_X4,inplace)1052   TEST(F32_VRDIVC_MINMAX__WASM_X4, inplace) {
1053     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1054       VBinaryCMicrokernelTester()
1055         .batch_size(batch_size)
1056         .inplace(true)
1057         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1058     }
1059   }
1060 
TEST(F32_VRDIVC_MINMAX__WASM_X4,qmin)1061   TEST(F32_VRDIVC_MINMAX__WASM_X4, qmin) {
1062     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1063       VBinaryCMicrokernelTester()
1064         .batch_size(batch_size)
1065         .qmin(128)
1066         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1067     }
1068   }
1069 
TEST(F32_VRDIVC_MINMAX__WASM_X4,qmax)1070   TEST(F32_VRDIVC_MINMAX__WASM_X4, qmax) {
1071     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1072       VBinaryCMicrokernelTester()
1073         .batch_size(batch_size)
1074         .qmax(128)
1075         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1076     }
1077   }
1078 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
1079 
1080 
1081 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VRDIVC_MINMAX__WASM_X8,batch_eq_8)1082   TEST(F32_VRDIVC_MINMAX__WASM_X8, batch_eq_8) {
1083     VBinaryCMicrokernelTester()
1084       .batch_size(8)
1085       .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1086   }
1087 
TEST(F32_VRDIVC_MINMAX__WASM_X8,batch_div_8)1088   TEST(F32_VRDIVC_MINMAX__WASM_X8, batch_div_8) {
1089     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
1090       VBinaryCMicrokernelTester()
1091         .batch_size(batch_size)
1092         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1093     }
1094   }
1095 
TEST(F32_VRDIVC_MINMAX__WASM_X8,batch_lt_8)1096   TEST(F32_VRDIVC_MINMAX__WASM_X8, batch_lt_8) {
1097     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
1098       VBinaryCMicrokernelTester()
1099         .batch_size(batch_size)
1100         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1101     }
1102   }
1103 
TEST(F32_VRDIVC_MINMAX__WASM_X8,batch_gt_8)1104   TEST(F32_VRDIVC_MINMAX__WASM_X8, batch_gt_8) {
1105     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
1106       VBinaryCMicrokernelTester()
1107         .batch_size(batch_size)
1108         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1109     }
1110   }
1111 
TEST(F32_VRDIVC_MINMAX__WASM_X8,inplace)1112   TEST(F32_VRDIVC_MINMAX__WASM_X8, inplace) {
1113     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1114       VBinaryCMicrokernelTester()
1115         .batch_size(batch_size)
1116         .inplace(true)
1117         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1118     }
1119   }
1120 
TEST(F32_VRDIVC_MINMAX__WASM_X8,qmin)1121   TEST(F32_VRDIVC_MINMAX__WASM_X8, qmin) {
1122     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1123       VBinaryCMicrokernelTester()
1124         .batch_size(batch_size)
1125         .qmin(128)
1126         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1127     }
1128   }
1129 
TEST(F32_VRDIVC_MINMAX__WASM_X8,qmax)1130   TEST(F32_VRDIVC_MINMAX__WASM_X8, qmax) {
1131     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1132       VBinaryCMicrokernelTester()
1133         .batch_size(batch_size)
1134         .qmax(128)
1135         .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1136     }
1137   }
1138 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
1139 
1140 
TEST(F32_VRDIVC_MINMAX__SCALAR_X1,batch_eq_1)1141 TEST(F32_VRDIVC_MINMAX__SCALAR_X1, batch_eq_1) {
1142   VBinaryCMicrokernelTester()
1143     .batch_size(1)
1144     .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1145 }
1146 
TEST(F32_VRDIVC_MINMAX__SCALAR_X1,batch_gt_1)1147 TEST(F32_VRDIVC_MINMAX__SCALAR_X1, batch_gt_1) {
1148   for (size_t batch_size = 2; batch_size < 10; batch_size++) {
1149     VBinaryCMicrokernelTester()
1150       .batch_size(batch_size)
1151       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1152   }
1153 }
1154 
TEST(F32_VRDIVC_MINMAX__SCALAR_X1,inplace)1155 TEST(F32_VRDIVC_MINMAX__SCALAR_X1, inplace) {
1156   for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
1157     VBinaryCMicrokernelTester()
1158       .batch_size(batch_size)
1159       .inplace(true)
1160       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1161   }
1162 }
1163 
TEST(F32_VRDIVC_MINMAX__SCALAR_X1,qmin)1164 TEST(F32_VRDIVC_MINMAX__SCALAR_X1, qmin) {
1165   for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
1166     VBinaryCMicrokernelTester()
1167       .batch_size(batch_size)
1168       .qmin(128)
1169       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1170   }
1171 }
1172 
TEST(F32_VRDIVC_MINMAX__SCALAR_X1,qmax)1173 TEST(F32_VRDIVC_MINMAX__SCALAR_X1, qmax) {
1174   for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
1175     VBinaryCMicrokernelTester()
1176       .batch_size(batch_size)
1177       .qmax(128)
1178       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1179   }
1180 }
1181 
TEST(F32_VRDIVC_MINMAX__SCALAR_X2,batch_eq_2)1182 TEST(F32_VRDIVC_MINMAX__SCALAR_X2, batch_eq_2) {
1183   VBinaryCMicrokernelTester()
1184     .batch_size(2)
1185     .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1186 }
1187 
TEST(F32_VRDIVC_MINMAX__SCALAR_X2,batch_div_2)1188 TEST(F32_VRDIVC_MINMAX__SCALAR_X2, batch_div_2) {
1189   for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
1190     VBinaryCMicrokernelTester()
1191       .batch_size(batch_size)
1192       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1193   }
1194 }
1195 
TEST(F32_VRDIVC_MINMAX__SCALAR_X2,batch_lt_2)1196 TEST(F32_VRDIVC_MINMAX__SCALAR_X2, batch_lt_2) {
1197   for (size_t batch_size = 1; batch_size < 2; batch_size++) {
1198     VBinaryCMicrokernelTester()
1199       .batch_size(batch_size)
1200       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1201   }
1202 }
1203 
TEST(F32_VRDIVC_MINMAX__SCALAR_X2,batch_gt_2)1204 TEST(F32_VRDIVC_MINMAX__SCALAR_X2, batch_gt_2) {
1205   for (size_t batch_size = 3; batch_size < 4; batch_size++) {
1206     VBinaryCMicrokernelTester()
1207       .batch_size(batch_size)
1208       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1209   }
1210 }
1211 
TEST(F32_VRDIVC_MINMAX__SCALAR_X2,inplace)1212 TEST(F32_VRDIVC_MINMAX__SCALAR_X2, inplace) {
1213   for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1214     VBinaryCMicrokernelTester()
1215       .batch_size(batch_size)
1216       .inplace(true)
1217       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1218   }
1219 }
1220 
TEST(F32_VRDIVC_MINMAX__SCALAR_X2,qmin)1221 TEST(F32_VRDIVC_MINMAX__SCALAR_X2, qmin) {
1222   for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1223     VBinaryCMicrokernelTester()
1224       .batch_size(batch_size)
1225       .qmin(128)
1226       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1227   }
1228 }
1229 
TEST(F32_VRDIVC_MINMAX__SCALAR_X2,qmax)1230 TEST(F32_VRDIVC_MINMAX__SCALAR_X2, qmax) {
1231   for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
1232     VBinaryCMicrokernelTester()
1233       .batch_size(batch_size)
1234       .qmax(128)
1235       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1236   }
1237 }
1238 
TEST(F32_VRDIVC_MINMAX__SCALAR_X4,batch_eq_4)1239 TEST(F32_VRDIVC_MINMAX__SCALAR_X4, batch_eq_4) {
1240   VBinaryCMicrokernelTester()
1241     .batch_size(4)
1242     .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1243 }
1244 
TEST(F32_VRDIVC_MINMAX__SCALAR_X4,batch_div_4)1245 TEST(F32_VRDIVC_MINMAX__SCALAR_X4, batch_div_4) {
1246   for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
1247     VBinaryCMicrokernelTester()
1248       .batch_size(batch_size)
1249       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1250   }
1251 }
1252 
TEST(F32_VRDIVC_MINMAX__SCALAR_X4,batch_lt_4)1253 TEST(F32_VRDIVC_MINMAX__SCALAR_X4, batch_lt_4) {
1254   for (size_t batch_size = 1; batch_size < 4; batch_size++) {
1255     VBinaryCMicrokernelTester()
1256       .batch_size(batch_size)
1257       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1258   }
1259 }
1260 
TEST(F32_VRDIVC_MINMAX__SCALAR_X4,batch_gt_4)1261 TEST(F32_VRDIVC_MINMAX__SCALAR_X4, batch_gt_4) {
1262   for (size_t batch_size = 5; batch_size < 8; batch_size++) {
1263     VBinaryCMicrokernelTester()
1264       .batch_size(batch_size)
1265       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1266   }
1267 }
1268 
TEST(F32_VRDIVC_MINMAX__SCALAR_X4,inplace)1269 TEST(F32_VRDIVC_MINMAX__SCALAR_X4, inplace) {
1270   for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1271     VBinaryCMicrokernelTester()
1272       .batch_size(batch_size)
1273       .inplace(true)
1274       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1275   }
1276 }
1277 
TEST(F32_VRDIVC_MINMAX__SCALAR_X4,qmin)1278 TEST(F32_VRDIVC_MINMAX__SCALAR_X4, qmin) {
1279   for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1280     VBinaryCMicrokernelTester()
1281       .batch_size(batch_size)
1282       .qmin(128)
1283       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1284   }
1285 }
1286 
TEST(F32_VRDIVC_MINMAX__SCALAR_X4,qmax)1287 TEST(F32_VRDIVC_MINMAX__SCALAR_X4, qmax) {
1288   for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
1289     VBinaryCMicrokernelTester()
1290       .batch_size(batch_size)
1291       .qmax(128)
1292       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1293   }
1294 }
1295 
TEST(F32_VRDIVC_MINMAX__SCALAR_X8,batch_eq_8)1296 TEST(F32_VRDIVC_MINMAX__SCALAR_X8, batch_eq_8) {
1297   VBinaryCMicrokernelTester()
1298     .batch_size(8)
1299     .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1300 }
1301 
TEST(F32_VRDIVC_MINMAX__SCALAR_X8,batch_div_8)1302 TEST(F32_VRDIVC_MINMAX__SCALAR_X8, batch_div_8) {
1303   for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
1304     VBinaryCMicrokernelTester()
1305       .batch_size(batch_size)
1306       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1307   }
1308 }
1309 
TEST(F32_VRDIVC_MINMAX__SCALAR_X8,batch_lt_8)1310 TEST(F32_VRDIVC_MINMAX__SCALAR_X8, batch_lt_8) {
1311   for (size_t batch_size = 1; batch_size < 8; batch_size++) {
1312     VBinaryCMicrokernelTester()
1313       .batch_size(batch_size)
1314       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1315   }
1316 }
1317 
TEST(F32_VRDIVC_MINMAX__SCALAR_X8,batch_gt_8)1318 TEST(F32_VRDIVC_MINMAX__SCALAR_X8, batch_gt_8) {
1319   for (size_t batch_size = 9; batch_size < 16; batch_size++) {
1320     VBinaryCMicrokernelTester()
1321       .batch_size(batch_size)
1322       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1323   }
1324 }
1325 
TEST(F32_VRDIVC_MINMAX__SCALAR_X8,inplace)1326 TEST(F32_VRDIVC_MINMAX__SCALAR_X8, inplace) {
1327   for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1328     VBinaryCMicrokernelTester()
1329       .batch_size(batch_size)
1330       .inplace(true)
1331       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1332   }
1333 }
1334 
TEST(F32_VRDIVC_MINMAX__SCALAR_X8,qmin)1335 TEST(F32_VRDIVC_MINMAX__SCALAR_X8, qmin) {
1336   for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1337     VBinaryCMicrokernelTester()
1338       .batch_size(batch_size)
1339       .qmin(128)
1340       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1341   }
1342 }
1343 
TEST(F32_VRDIVC_MINMAX__SCALAR_X8,qmax)1344 TEST(F32_VRDIVC_MINMAX__SCALAR_X8, qmax) {
1345   for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1346     VBinaryCMicrokernelTester()
1347       .batch_size(batch_size)
1348       .qmax(128)
1349       .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
1350   }
1351 }