xref: /aosp_15_r20/external/XNNPACK/test/f32-vsqrdiffc.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-vsqrdiffc.yaml
8 //   Generator: tools/generate-vbinary-test.py
9 
10 
11 #include <gtest/gtest.h>
12 
13 #include <xnnpack/common.h>
14 #include <xnnpack/isa-checks.h>
15 
16 #include <xnnpack/microparams-init.h>
17 #include <xnnpack/vbinary.h>
18 #include "vbinaryc-microkernel-tester.h"
19 
20 
21 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_VSQRDIFFC__NEON_X4,batch_eq_4)22   TEST(F32_VSQRDIFFC__NEON_X4, batch_eq_4) {
23     TEST_REQUIRES_ARM_NEON;
24     VBinaryCMicrokernelTester()
25       .batch_size(4)
26       .Test(xnn_f32_vsqrdiffc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
27   }
28 
TEST(F32_VSQRDIFFC__NEON_X4,batch_div_4)29   TEST(F32_VSQRDIFFC__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_vsqrdiffc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
35     }
36   }
37 
TEST(F32_VSQRDIFFC__NEON_X4,batch_lt_4)38   TEST(F32_VSQRDIFFC__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_vsqrdiffc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
44     }
45   }
46 
TEST(F32_VSQRDIFFC__NEON_X4,batch_gt_4)47   TEST(F32_VSQRDIFFC__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_vsqrdiffc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
53     }
54   }
55 
TEST(F32_VSQRDIFFC__NEON_X4,inplace)56   TEST(F32_VSQRDIFFC__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_vsqrdiffc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
63     }
64   }
65 #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
66 
67 
68 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_VSQRDIFFC__NEON_X8,batch_eq_8)69   TEST(F32_VSQRDIFFC__NEON_X8, batch_eq_8) {
70     TEST_REQUIRES_ARM_NEON;
71     VBinaryCMicrokernelTester()
72       .batch_size(8)
73       .Test(xnn_f32_vsqrdiffc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
74   }
75 
TEST(F32_VSQRDIFFC__NEON_X8,batch_div_8)76   TEST(F32_VSQRDIFFC__NEON_X8, batch_div_8) {
77     TEST_REQUIRES_ARM_NEON;
78     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
79       VBinaryCMicrokernelTester()
80         .batch_size(batch_size)
81         .Test(xnn_f32_vsqrdiffc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
82     }
83   }
84 
TEST(F32_VSQRDIFFC__NEON_X8,batch_lt_8)85   TEST(F32_VSQRDIFFC__NEON_X8, batch_lt_8) {
86     TEST_REQUIRES_ARM_NEON;
87     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
88       VBinaryCMicrokernelTester()
89         .batch_size(batch_size)
90         .Test(xnn_f32_vsqrdiffc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
91     }
92   }
93 
TEST(F32_VSQRDIFFC__NEON_X8,batch_gt_8)94   TEST(F32_VSQRDIFFC__NEON_X8, batch_gt_8) {
95     TEST_REQUIRES_ARM_NEON;
96     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
97       VBinaryCMicrokernelTester()
98         .batch_size(batch_size)
99         .Test(xnn_f32_vsqrdiffc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
100     }
101   }
102 
TEST(F32_VSQRDIFFC__NEON_X8,inplace)103   TEST(F32_VSQRDIFFC__NEON_X8, inplace) {
104     TEST_REQUIRES_ARM_NEON;
105     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
106       VBinaryCMicrokernelTester()
107         .batch_size(batch_size)
108         .inplace(true)
109         .Test(xnn_f32_vsqrdiffc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
110     }
111   }
112 #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
113 
114 
115 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VSQRDIFFC__SSE_X4,batch_eq_4)116   TEST(F32_VSQRDIFFC__SSE_X4, batch_eq_4) {
117     TEST_REQUIRES_X86_SSE;
118     VBinaryCMicrokernelTester()
119       .batch_size(4)
120       .Test(xnn_f32_vsqrdiffc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
121   }
122 
TEST(F32_VSQRDIFFC__SSE_X4,batch_div_4)123   TEST(F32_VSQRDIFFC__SSE_X4, batch_div_4) {
124     TEST_REQUIRES_X86_SSE;
125     for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
126       VBinaryCMicrokernelTester()
127         .batch_size(batch_size)
128         .Test(xnn_f32_vsqrdiffc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
129     }
130   }
131 
TEST(F32_VSQRDIFFC__SSE_X4,batch_lt_4)132   TEST(F32_VSQRDIFFC__SSE_X4, batch_lt_4) {
133     TEST_REQUIRES_X86_SSE;
134     for (size_t batch_size = 1; batch_size < 4; batch_size++) {
135       VBinaryCMicrokernelTester()
136         .batch_size(batch_size)
137         .Test(xnn_f32_vsqrdiffc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
138     }
139   }
140 
TEST(F32_VSQRDIFFC__SSE_X4,batch_gt_4)141   TEST(F32_VSQRDIFFC__SSE_X4, batch_gt_4) {
142     TEST_REQUIRES_X86_SSE;
143     for (size_t batch_size = 5; batch_size < 8; batch_size++) {
144       VBinaryCMicrokernelTester()
145         .batch_size(batch_size)
146         .Test(xnn_f32_vsqrdiffc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
147     }
148   }
149 
TEST(F32_VSQRDIFFC__SSE_X4,inplace)150   TEST(F32_VSQRDIFFC__SSE_X4, inplace) {
151     TEST_REQUIRES_X86_SSE;
152     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
153       VBinaryCMicrokernelTester()
154         .batch_size(batch_size)
155         .inplace(true)
156         .Test(xnn_f32_vsqrdiffc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
157     }
158   }
159 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
160 
161 
162 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VSQRDIFFC__SSE_X8,batch_eq_8)163   TEST(F32_VSQRDIFFC__SSE_X8, batch_eq_8) {
164     TEST_REQUIRES_X86_SSE;
165     VBinaryCMicrokernelTester()
166       .batch_size(8)
167       .Test(xnn_f32_vsqrdiffc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
168   }
169 
TEST(F32_VSQRDIFFC__SSE_X8,batch_div_8)170   TEST(F32_VSQRDIFFC__SSE_X8, batch_div_8) {
171     TEST_REQUIRES_X86_SSE;
172     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
173       VBinaryCMicrokernelTester()
174         .batch_size(batch_size)
175         .Test(xnn_f32_vsqrdiffc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
176     }
177   }
178 
TEST(F32_VSQRDIFFC__SSE_X8,batch_lt_8)179   TEST(F32_VSQRDIFFC__SSE_X8, batch_lt_8) {
180     TEST_REQUIRES_X86_SSE;
181     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
182       VBinaryCMicrokernelTester()
183         .batch_size(batch_size)
184         .Test(xnn_f32_vsqrdiffc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
185     }
186   }
187 
TEST(F32_VSQRDIFFC__SSE_X8,batch_gt_8)188   TEST(F32_VSQRDIFFC__SSE_X8, batch_gt_8) {
189     TEST_REQUIRES_X86_SSE;
190     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
191       VBinaryCMicrokernelTester()
192         .batch_size(batch_size)
193         .Test(xnn_f32_vsqrdiffc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
194     }
195   }
196 
TEST(F32_VSQRDIFFC__SSE_X8,inplace)197   TEST(F32_VSQRDIFFC__SSE_X8, inplace) {
198     TEST_REQUIRES_X86_SSE;
199     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
200       VBinaryCMicrokernelTester()
201         .batch_size(batch_size)
202         .inplace(true)
203         .Test(xnn_f32_vsqrdiffc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
204     }
205   }
206 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
207 
208 
209 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VSQRDIFFC__AVX_X8,batch_eq_8)210   TEST(F32_VSQRDIFFC__AVX_X8, batch_eq_8) {
211     TEST_REQUIRES_X86_AVX;
212     VBinaryCMicrokernelTester()
213       .batch_size(8)
214       .Test(xnn_f32_vsqrdiffc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
215   }
216 
TEST(F32_VSQRDIFFC__AVX_X8,batch_div_8)217   TEST(F32_VSQRDIFFC__AVX_X8, batch_div_8) {
218     TEST_REQUIRES_X86_AVX;
219     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
220       VBinaryCMicrokernelTester()
221         .batch_size(batch_size)
222         .Test(xnn_f32_vsqrdiffc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
223     }
224   }
225 
TEST(F32_VSQRDIFFC__AVX_X8,batch_lt_8)226   TEST(F32_VSQRDIFFC__AVX_X8, batch_lt_8) {
227     TEST_REQUIRES_X86_AVX;
228     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
229       VBinaryCMicrokernelTester()
230         .batch_size(batch_size)
231         .Test(xnn_f32_vsqrdiffc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
232     }
233   }
234 
TEST(F32_VSQRDIFFC__AVX_X8,batch_gt_8)235   TEST(F32_VSQRDIFFC__AVX_X8, batch_gt_8) {
236     TEST_REQUIRES_X86_AVX;
237     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
238       VBinaryCMicrokernelTester()
239         .batch_size(batch_size)
240         .Test(xnn_f32_vsqrdiffc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
241     }
242   }
243 
TEST(F32_VSQRDIFFC__AVX_X8,inplace)244   TEST(F32_VSQRDIFFC__AVX_X8, inplace) {
245     TEST_REQUIRES_X86_AVX;
246     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
247       VBinaryCMicrokernelTester()
248         .batch_size(batch_size)
249         .inplace(true)
250         .Test(xnn_f32_vsqrdiffc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
251     }
252   }
253 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
254 
255 
256 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VSQRDIFFC__AVX_X16,batch_eq_16)257   TEST(F32_VSQRDIFFC__AVX_X16, batch_eq_16) {
258     TEST_REQUIRES_X86_AVX;
259     VBinaryCMicrokernelTester()
260       .batch_size(16)
261       .Test(xnn_f32_vsqrdiffc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
262   }
263 
TEST(F32_VSQRDIFFC__AVX_X16,batch_div_16)264   TEST(F32_VSQRDIFFC__AVX_X16, batch_div_16) {
265     TEST_REQUIRES_X86_AVX;
266     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
267       VBinaryCMicrokernelTester()
268         .batch_size(batch_size)
269         .Test(xnn_f32_vsqrdiffc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
270     }
271   }
272 
TEST(F32_VSQRDIFFC__AVX_X16,batch_lt_16)273   TEST(F32_VSQRDIFFC__AVX_X16, batch_lt_16) {
274     TEST_REQUIRES_X86_AVX;
275     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
276       VBinaryCMicrokernelTester()
277         .batch_size(batch_size)
278         .Test(xnn_f32_vsqrdiffc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
279     }
280   }
281 
TEST(F32_VSQRDIFFC__AVX_X16,batch_gt_16)282   TEST(F32_VSQRDIFFC__AVX_X16, batch_gt_16) {
283     TEST_REQUIRES_X86_AVX;
284     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
285       VBinaryCMicrokernelTester()
286         .batch_size(batch_size)
287         .Test(xnn_f32_vsqrdiffc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
288     }
289   }
290 
TEST(F32_VSQRDIFFC__AVX_X16,inplace)291   TEST(F32_VSQRDIFFC__AVX_X16, inplace) {
292     TEST_REQUIRES_X86_AVX;
293     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
294       VBinaryCMicrokernelTester()
295         .batch_size(batch_size)
296         .inplace(true)
297         .Test(xnn_f32_vsqrdiffc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC, xnn_init_f32_default_avx_params);
298     }
299   }
300 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
301 
302 
303 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VSQRDIFFC__AVX512F_X16,batch_eq_16)304   TEST(F32_VSQRDIFFC__AVX512F_X16, batch_eq_16) {
305     TEST_REQUIRES_X86_AVX512F;
306     VBinaryCMicrokernelTester()
307       .batch_size(16)
308       .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
309   }
310 
TEST(F32_VSQRDIFFC__AVX512F_X16,batch_div_16)311   TEST(F32_VSQRDIFFC__AVX512F_X16, batch_div_16) {
312     TEST_REQUIRES_X86_AVX512F;
313     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
314       VBinaryCMicrokernelTester()
315         .batch_size(batch_size)
316         .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
317     }
318   }
319 
TEST(F32_VSQRDIFFC__AVX512F_X16,batch_lt_16)320   TEST(F32_VSQRDIFFC__AVX512F_X16, batch_lt_16) {
321     TEST_REQUIRES_X86_AVX512F;
322     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
323       VBinaryCMicrokernelTester()
324         .batch_size(batch_size)
325         .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
326     }
327   }
328 
TEST(F32_VSQRDIFFC__AVX512F_X16,batch_gt_16)329   TEST(F32_VSQRDIFFC__AVX512F_X16, batch_gt_16) {
330     TEST_REQUIRES_X86_AVX512F;
331     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
332       VBinaryCMicrokernelTester()
333         .batch_size(batch_size)
334         .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
335     }
336   }
337 
TEST(F32_VSQRDIFFC__AVX512F_X16,inplace)338   TEST(F32_VSQRDIFFC__AVX512F_X16, inplace) {
339     TEST_REQUIRES_X86_AVX512F;
340     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
341       VBinaryCMicrokernelTester()
342         .batch_size(batch_size)
343         .inplace(true)
344         .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
345     }
346   }
347 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
348 
349 
350 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_VSQRDIFFC__AVX512F_X32,batch_eq_32)351   TEST(F32_VSQRDIFFC__AVX512F_X32, batch_eq_32) {
352     TEST_REQUIRES_X86_AVX512F;
353     VBinaryCMicrokernelTester()
354       .batch_size(32)
355       .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::SqrDiffC);
356   }
357 
TEST(F32_VSQRDIFFC__AVX512F_X32,batch_div_32)358   TEST(F32_VSQRDIFFC__AVX512F_X32, batch_div_32) {
359     TEST_REQUIRES_X86_AVX512F;
360     for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
361       VBinaryCMicrokernelTester()
362         .batch_size(batch_size)
363         .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::SqrDiffC);
364     }
365   }
366 
TEST(F32_VSQRDIFFC__AVX512F_X32,batch_lt_32)367   TEST(F32_VSQRDIFFC__AVX512F_X32, batch_lt_32) {
368     TEST_REQUIRES_X86_AVX512F;
369     for (size_t batch_size = 1; batch_size < 32; batch_size++) {
370       VBinaryCMicrokernelTester()
371         .batch_size(batch_size)
372         .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::SqrDiffC);
373     }
374   }
375 
TEST(F32_VSQRDIFFC__AVX512F_X32,batch_gt_32)376   TEST(F32_VSQRDIFFC__AVX512F_X32, batch_gt_32) {
377     TEST_REQUIRES_X86_AVX512F;
378     for (size_t batch_size = 33; batch_size < 64; batch_size++) {
379       VBinaryCMicrokernelTester()
380         .batch_size(batch_size)
381         .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::SqrDiffC);
382     }
383   }
384 
TEST(F32_VSQRDIFFC__AVX512F_X32,inplace)385   TEST(F32_VSQRDIFFC__AVX512F_X32, inplace) {
386     TEST_REQUIRES_X86_AVX512F;
387     for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
388       VBinaryCMicrokernelTester()
389         .batch_size(batch_size)
390         .inplace(true)
391         .Test(xnn_f32_vsqrdiffc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::SqrDiffC);
392     }
393   }
394 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
395 
396 
397 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VSQRDIFFC__WASMSIMD_X4,batch_eq_4)398   TEST(F32_VSQRDIFFC__WASMSIMD_X4, batch_eq_4) {
399     VBinaryCMicrokernelTester()
400       .batch_size(4)
401       .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
402   }
403 
TEST(F32_VSQRDIFFC__WASMSIMD_X4,batch_div_4)404   TEST(F32_VSQRDIFFC__WASMSIMD_X4, batch_div_4) {
405     for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
406       VBinaryCMicrokernelTester()
407         .batch_size(batch_size)
408         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
409     }
410   }
411 
TEST(F32_VSQRDIFFC__WASMSIMD_X4,batch_lt_4)412   TEST(F32_VSQRDIFFC__WASMSIMD_X4, batch_lt_4) {
413     for (size_t batch_size = 1; batch_size < 4; batch_size++) {
414       VBinaryCMicrokernelTester()
415         .batch_size(batch_size)
416         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
417     }
418   }
419 
TEST(F32_VSQRDIFFC__WASMSIMD_X4,batch_gt_4)420   TEST(F32_VSQRDIFFC__WASMSIMD_X4, batch_gt_4) {
421     for (size_t batch_size = 5; batch_size < 8; batch_size++) {
422       VBinaryCMicrokernelTester()
423         .batch_size(batch_size)
424         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
425     }
426   }
427 
TEST(F32_VSQRDIFFC__WASMSIMD_X4,inplace)428   TEST(F32_VSQRDIFFC__WASMSIMD_X4, inplace) {
429     for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
430       VBinaryCMicrokernelTester()
431         .batch_size(batch_size)
432         .inplace(true)
433         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
434     }
435   }
436 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
437 
438 
439 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VSQRDIFFC__WASMSIMD_X8,batch_eq_8)440   TEST(F32_VSQRDIFFC__WASMSIMD_X8, batch_eq_8) {
441     VBinaryCMicrokernelTester()
442       .batch_size(8)
443       .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
444   }
445 
TEST(F32_VSQRDIFFC__WASMSIMD_X8,batch_div_8)446   TEST(F32_VSQRDIFFC__WASMSIMD_X8, batch_div_8) {
447     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
448       VBinaryCMicrokernelTester()
449         .batch_size(batch_size)
450         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
451     }
452   }
453 
TEST(F32_VSQRDIFFC__WASMSIMD_X8,batch_lt_8)454   TEST(F32_VSQRDIFFC__WASMSIMD_X8, batch_lt_8) {
455     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
456       VBinaryCMicrokernelTester()
457         .batch_size(batch_size)
458         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
459     }
460   }
461 
TEST(F32_VSQRDIFFC__WASMSIMD_X8,batch_gt_8)462   TEST(F32_VSQRDIFFC__WASMSIMD_X8, batch_gt_8) {
463     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
464       VBinaryCMicrokernelTester()
465         .batch_size(batch_size)
466         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
467     }
468   }
469 
TEST(F32_VSQRDIFFC__WASMSIMD_X8,inplace)470   TEST(F32_VSQRDIFFC__WASMSIMD_X8, inplace) {
471     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
472       VBinaryCMicrokernelTester()
473         .batch_size(batch_size)
474         .inplace(true)
475         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
476     }
477   }
478 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
479 
480 
481 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VSQRDIFFC__WASMSIMD_X16,batch_eq_16)482   TEST(F32_VSQRDIFFC__WASMSIMD_X16, batch_eq_16) {
483     VBinaryCMicrokernelTester()
484       .batch_size(16)
485       .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
486   }
487 
TEST(F32_VSQRDIFFC__WASMSIMD_X16,batch_div_16)488   TEST(F32_VSQRDIFFC__WASMSIMD_X16, batch_div_16) {
489     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
490       VBinaryCMicrokernelTester()
491         .batch_size(batch_size)
492         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
493     }
494   }
495 
TEST(F32_VSQRDIFFC__WASMSIMD_X16,batch_lt_16)496   TEST(F32_VSQRDIFFC__WASMSIMD_X16, batch_lt_16) {
497     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
498       VBinaryCMicrokernelTester()
499         .batch_size(batch_size)
500         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
501     }
502   }
503 
TEST(F32_VSQRDIFFC__WASMSIMD_X16,batch_gt_16)504   TEST(F32_VSQRDIFFC__WASMSIMD_X16, batch_gt_16) {
505     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
506       VBinaryCMicrokernelTester()
507         .batch_size(batch_size)
508         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
509     }
510   }
511 
TEST(F32_VSQRDIFFC__WASMSIMD_X16,inplace)512   TEST(F32_VSQRDIFFC__WASMSIMD_X16, inplace) {
513     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
514       VBinaryCMicrokernelTester()
515         .batch_size(batch_size)
516         .inplace(true)
517         .Test(xnn_f32_vsqrdiffc_ukernel__wasmsimd_x16, VBinaryCMicrokernelTester::OpType::SqrDiffC);
518     }
519   }
520 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
521 
522 
TEST(F32_VSQRDIFFC__SCALAR_X1,batch_eq_1)523 TEST(F32_VSQRDIFFC__SCALAR_X1, batch_eq_1) {
524   VBinaryCMicrokernelTester()
525     .batch_size(1)
526     .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::SqrDiffC);
527 }
528 
TEST(F32_VSQRDIFFC__SCALAR_X1,batch_gt_1)529 TEST(F32_VSQRDIFFC__SCALAR_X1, batch_gt_1) {
530   for (size_t batch_size = 2; batch_size < 10; batch_size++) {
531     VBinaryCMicrokernelTester()
532       .batch_size(batch_size)
533       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::SqrDiffC);
534   }
535 }
536 
TEST(F32_VSQRDIFFC__SCALAR_X1,inplace)537 TEST(F32_VSQRDIFFC__SCALAR_X1, inplace) {
538   for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
539     VBinaryCMicrokernelTester()
540       .batch_size(batch_size)
541       .inplace(true)
542       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::SqrDiffC);
543   }
544 }
545 
546 
TEST(F32_VSQRDIFFC__SCALAR_X2,batch_eq_2)547 TEST(F32_VSQRDIFFC__SCALAR_X2, batch_eq_2) {
548   VBinaryCMicrokernelTester()
549     .batch_size(2)
550     .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::SqrDiffC);
551 }
552 
TEST(F32_VSQRDIFFC__SCALAR_X2,batch_div_2)553 TEST(F32_VSQRDIFFC__SCALAR_X2, batch_div_2) {
554   for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
555     VBinaryCMicrokernelTester()
556       .batch_size(batch_size)
557       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::SqrDiffC);
558   }
559 }
560 
TEST(F32_VSQRDIFFC__SCALAR_X2,batch_lt_2)561 TEST(F32_VSQRDIFFC__SCALAR_X2, batch_lt_2) {
562   for (size_t batch_size = 1; batch_size < 2; batch_size++) {
563     VBinaryCMicrokernelTester()
564       .batch_size(batch_size)
565       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::SqrDiffC);
566   }
567 }
568 
TEST(F32_VSQRDIFFC__SCALAR_X2,batch_gt_2)569 TEST(F32_VSQRDIFFC__SCALAR_X2, batch_gt_2) {
570   for (size_t batch_size = 3; batch_size < 4; batch_size++) {
571     VBinaryCMicrokernelTester()
572       .batch_size(batch_size)
573       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::SqrDiffC);
574   }
575 }
576 
TEST(F32_VSQRDIFFC__SCALAR_X2,inplace)577 TEST(F32_VSQRDIFFC__SCALAR_X2, inplace) {
578   for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
579     VBinaryCMicrokernelTester()
580       .batch_size(batch_size)
581       .inplace(true)
582       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::SqrDiffC);
583   }
584 }
585 
586 
TEST(F32_VSQRDIFFC__SCALAR_X4,batch_eq_4)587 TEST(F32_VSQRDIFFC__SCALAR_X4, batch_eq_4) {
588   VBinaryCMicrokernelTester()
589     .batch_size(4)
590     .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
591 }
592 
TEST(F32_VSQRDIFFC__SCALAR_X4,batch_div_4)593 TEST(F32_VSQRDIFFC__SCALAR_X4, batch_div_4) {
594   for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
595     VBinaryCMicrokernelTester()
596       .batch_size(batch_size)
597       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
598   }
599 }
600 
TEST(F32_VSQRDIFFC__SCALAR_X4,batch_lt_4)601 TEST(F32_VSQRDIFFC__SCALAR_X4, batch_lt_4) {
602   for (size_t batch_size = 1; batch_size < 4; batch_size++) {
603     VBinaryCMicrokernelTester()
604       .batch_size(batch_size)
605       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
606   }
607 }
608 
TEST(F32_VSQRDIFFC__SCALAR_X4,batch_gt_4)609 TEST(F32_VSQRDIFFC__SCALAR_X4, batch_gt_4) {
610   for (size_t batch_size = 5; batch_size < 8; batch_size++) {
611     VBinaryCMicrokernelTester()
612       .batch_size(batch_size)
613       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
614   }
615 }
616 
TEST(F32_VSQRDIFFC__SCALAR_X4,inplace)617 TEST(F32_VSQRDIFFC__SCALAR_X4, inplace) {
618   for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
619     VBinaryCMicrokernelTester()
620       .batch_size(batch_size)
621       .inplace(true)
622       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::SqrDiffC);
623   }
624 }
625 
626 
TEST(F32_VSQRDIFFC__SCALAR_X8,batch_eq_8)627 TEST(F32_VSQRDIFFC__SCALAR_X8, batch_eq_8) {
628   VBinaryCMicrokernelTester()
629     .batch_size(8)
630     .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
631 }
632 
TEST(F32_VSQRDIFFC__SCALAR_X8,batch_div_8)633 TEST(F32_VSQRDIFFC__SCALAR_X8, batch_div_8) {
634   for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
635     VBinaryCMicrokernelTester()
636       .batch_size(batch_size)
637       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
638   }
639 }
640 
TEST(F32_VSQRDIFFC__SCALAR_X8,batch_lt_8)641 TEST(F32_VSQRDIFFC__SCALAR_X8, batch_lt_8) {
642   for (size_t batch_size = 1; batch_size < 8; batch_size++) {
643     VBinaryCMicrokernelTester()
644       .batch_size(batch_size)
645       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
646   }
647 }
648 
TEST(F32_VSQRDIFFC__SCALAR_X8,batch_gt_8)649 TEST(F32_VSQRDIFFC__SCALAR_X8, batch_gt_8) {
650   for (size_t batch_size = 9; batch_size < 16; batch_size++) {
651     VBinaryCMicrokernelTester()
652       .batch_size(batch_size)
653       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
654   }
655 }
656 
TEST(F32_VSQRDIFFC__SCALAR_X8,inplace)657 TEST(F32_VSQRDIFFC__SCALAR_X8, inplace) {
658   for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
659     VBinaryCMicrokernelTester()
660       .batch_size(batch_size)
661       .inplace(true)
662       .Test(xnn_f32_vsqrdiffc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::SqrDiffC);
663   }
664 }
665