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 }