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