blob: a1909e759701509fe9ed6d3c2fc90a0460529dcf [file] [log] [blame]
Marat Dukhan13bafb02020-06-05 00:43:11 -07001// 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-vsqrdiff.yaml
8// Generator: tools/generate-vbinary-test.py
9
10
11#include <gtest/gtest.h>
12
13#include <xnnpack/common.h>
14#include <xnnpack/isa-checks.h>
15
16#include <xnnpack/vbinary.h>
17#include "vbinary-microkernel-tester.h"
18
19
20#if XNN_ARCH_ARM || XNN_ARCH_ARM64
21 TEST(F32_VSQRDIFF__NEON_X4, batch_eq_4) {
22 TEST_REQUIRES_ARM_NEON;
23 VBinOpMicrokernelTester()
24 .batch_size(4)
25 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
26 }
27
28 TEST(F32_VSQRDIFF__NEON_X4, batch_div_4) {
29 TEST_REQUIRES_ARM_NEON;
30 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
31 VBinOpMicrokernelTester()
32 .batch_size(batch_size)
33 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
34 }
35 }
36
37 TEST(F32_VSQRDIFF__NEON_X4, batch_lt_4) {
38 TEST_REQUIRES_ARM_NEON;
39 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
40 VBinOpMicrokernelTester()
41 .batch_size(batch_size)
42 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
43 }
44 }
45
46 TEST(F32_VSQRDIFF__NEON_X4, batch_gt_4) {
47 TEST_REQUIRES_ARM_NEON;
48 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
49 VBinOpMicrokernelTester()
50 .batch_size(batch_size)
51 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
52 }
53 }
54
55 TEST(F32_VSQRDIFF__NEON_X4, inplace_a) {
56 TEST_REQUIRES_ARM_NEON;
57 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
58 VBinOpMicrokernelTester()
59 .batch_size(batch_size)
60 .inplace_a(true)
61 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
62 }
63 }
64
65 TEST(F32_VSQRDIFF__NEON_X4, inplace_b) {
66 TEST_REQUIRES_ARM_NEON;
67 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
68 VBinOpMicrokernelTester()
69 .batch_size(batch_size)
70 .inplace_b(true)
71 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
72 }
73 }
74
75 TEST(F32_VSQRDIFF__NEON_X4, inplace_a_and_b) {
76 TEST_REQUIRES_ARM_NEON;
77 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
78 VBinOpMicrokernelTester()
79 .batch_size(batch_size)
80 .inplace_a(true)
81 .inplace_b(true)
82 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
83 }
84 }
85#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
86
87
88#if XNN_ARCH_ARM || XNN_ARCH_ARM64
89 TEST(F32_VSQRDIFF__NEON_X8, batch_eq_8) {
90 TEST_REQUIRES_ARM_NEON;
91 VBinOpMicrokernelTester()
92 .batch_size(8)
93 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
94 }
95
96 TEST(F32_VSQRDIFF__NEON_X8, batch_div_8) {
97 TEST_REQUIRES_ARM_NEON;
98 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
99 VBinOpMicrokernelTester()
100 .batch_size(batch_size)
101 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
102 }
103 }
104
105 TEST(F32_VSQRDIFF__NEON_X8, batch_lt_8) {
106 TEST_REQUIRES_ARM_NEON;
107 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
108 VBinOpMicrokernelTester()
109 .batch_size(batch_size)
110 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
111 }
112 }
113
114 TEST(F32_VSQRDIFF__NEON_X8, batch_gt_8) {
115 TEST_REQUIRES_ARM_NEON;
116 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
117 VBinOpMicrokernelTester()
118 .batch_size(batch_size)
119 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
120 }
121 }
122
123 TEST(F32_VSQRDIFF__NEON_X8, inplace_a) {
124 TEST_REQUIRES_ARM_NEON;
125 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
126 VBinOpMicrokernelTester()
127 .batch_size(batch_size)
128 .inplace_a(true)
129 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
130 }
131 }
132
133 TEST(F32_VSQRDIFF__NEON_X8, inplace_b) {
134 TEST_REQUIRES_ARM_NEON;
135 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
136 VBinOpMicrokernelTester()
137 .batch_size(batch_size)
138 .inplace_b(true)
139 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
140 }
141 }
142
143 TEST(F32_VSQRDIFF__NEON_X8, inplace_a_and_b) {
144 TEST_REQUIRES_ARM_NEON;
145 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
146 VBinOpMicrokernelTester()
147 .batch_size(batch_size)
148 .inplace_a(true)
149 .inplace_b(true)
150 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
151 }
152 }
153#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
154
155
156#if XNN_ARCH_X86 || XNN_ARCH_X86_64
157 TEST(F32_VSQRDIFF__SSE_X4, batch_eq_4) {
158 TEST_REQUIRES_X86_SSE;
159 VBinOpMicrokernelTester()
160 .batch_size(4)
161 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
162 }
163
164 TEST(F32_VSQRDIFF__SSE_X4, batch_div_4) {
165 TEST_REQUIRES_X86_SSE;
166 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
167 VBinOpMicrokernelTester()
168 .batch_size(batch_size)
169 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
170 }
171 }
172
173 TEST(F32_VSQRDIFF__SSE_X4, batch_lt_4) {
174 TEST_REQUIRES_X86_SSE;
175 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
176 VBinOpMicrokernelTester()
177 .batch_size(batch_size)
178 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
179 }
180 }
181
182 TEST(F32_VSQRDIFF__SSE_X4, batch_gt_4) {
183 TEST_REQUIRES_X86_SSE;
184 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
185 VBinOpMicrokernelTester()
186 .batch_size(batch_size)
187 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
188 }
189 }
190
191 TEST(F32_VSQRDIFF__SSE_X4, inplace_a) {
192 TEST_REQUIRES_X86_SSE;
193 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
194 VBinOpMicrokernelTester()
195 .batch_size(batch_size)
196 .inplace_a(true)
197 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
198 }
199 }
200
201 TEST(F32_VSQRDIFF__SSE_X4, inplace_b) {
202 TEST_REQUIRES_X86_SSE;
203 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
204 VBinOpMicrokernelTester()
205 .batch_size(batch_size)
206 .inplace_b(true)
207 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
208 }
209 }
210
211 TEST(F32_VSQRDIFF__SSE_X4, inplace_a_and_b) {
212 TEST_REQUIRES_X86_SSE;
213 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
214 VBinOpMicrokernelTester()
215 .batch_size(batch_size)
216 .inplace_a(true)
217 .inplace_b(true)
218 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
219 }
220 }
221#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
222
223
224#if XNN_ARCH_X86 || XNN_ARCH_X86_64
225 TEST(F32_VSQRDIFF__SSE_X8, batch_eq_8) {
226 TEST_REQUIRES_X86_SSE;
227 VBinOpMicrokernelTester()
228 .batch_size(8)
229 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
230 }
231
232 TEST(F32_VSQRDIFF__SSE_X8, batch_div_8) {
233 TEST_REQUIRES_X86_SSE;
234 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
235 VBinOpMicrokernelTester()
236 .batch_size(batch_size)
237 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
238 }
239 }
240
241 TEST(F32_VSQRDIFF__SSE_X8, batch_lt_8) {
242 TEST_REQUIRES_X86_SSE;
243 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
244 VBinOpMicrokernelTester()
245 .batch_size(batch_size)
246 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
247 }
248 }
249
250 TEST(F32_VSQRDIFF__SSE_X8, batch_gt_8) {
251 TEST_REQUIRES_X86_SSE;
252 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
253 VBinOpMicrokernelTester()
254 .batch_size(batch_size)
255 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
256 }
257 }
258
259 TEST(F32_VSQRDIFF__SSE_X8, inplace_a) {
260 TEST_REQUIRES_X86_SSE;
261 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
262 VBinOpMicrokernelTester()
263 .batch_size(batch_size)
264 .inplace_a(true)
265 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
266 }
267 }
268
269 TEST(F32_VSQRDIFF__SSE_X8, inplace_b) {
270 TEST_REQUIRES_X86_SSE;
271 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
272 VBinOpMicrokernelTester()
273 .batch_size(batch_size)
274 .inplace_b(true)
275 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
276 }
277 }
278
279 TEST(F32_VSQRDIFF__SSE_X8, inplace_a_and_b) {
280 TEST_REQUIRES_X86_SSE;
281 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
282 VBinOpMicrokernelTester()
283 .batch_size(batch_size)
284 .inplace_a(true)
285 .inplace_b(true)
286 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
287 }
288 }
289#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
290
291
292#if XNN_ARCH_X86 || XNN_ARCH_X86_64
293 TEST(F32_VSQRDIFF__AVX_X8, batch_eq_8) {
294 TEST_REQUIRES_X86_AVX;
295 VBinOpMicrokernelTester()
296 .batch_size(8)
297 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
298 }
299
300 TEST(F32_VSQRDIFF__AVX_X8, batch_div_8) {
301 TEST_REQUIRES_X86_AVX;
302 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
303 VBinOpMicrokernelTester()
304 .batch_size(batch_size)
305 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
306 }
307 }
308
309 TEST(F32_VSQRDIFF__AVX_X8, batch_lt_8) {
310 TEST_REQUIRES_X86_AVX;
311 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
312 VBinOpMicrokernelTester()
313 .batch_size(batch_size)
314 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
315 }
316 }
317
318 TEST(F32_VSQRDIFF__AVX_X8, batch_gt_8) {
319 TEST_REQUIRES_X86_AVX;
320 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
321 VBinOpMicrokernelTester()
322 .batch_size(batch_size)
323 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
324 }
325 }
326
327 TEST(F32_VSQRDIFF__AVX_X8, inplace_a) {
328 TEST_REQUIRES_X86_AVX;
329 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
330 VBinOpMicrokernelTester()
331 .batch_size(batch_size)
332 .inplace_a(true)
333 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
334 }
335 }
336
337 TEST(F32_VSQRDIFF__AVX_X8, inplace_b) {
338 TEST_REQUIRES_X86_AVX;
339 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
340 VBinOpMicrokernelTester()
341 .batch_size(batch_size)
342 .inplace_b(true)
343 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
344 }
345 }
346
347 TEST(F32_VSQRDIFF__AVX_X8, inplace_a_and_b) {
348 TEST_REQUIRES_X86_AVX;
349 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
350 VBinOpMicrokernelTester()
351 .batch_size(batch_size)
352 .inplace_a(true)
353 .inplace_b(true)
354 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
355 }
356 }
357#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
358
359
360#if XNN_ARCH_X86 || XNN_ARCH_X86_64
361 TEST(F32_VSQRDIFF__AVX_X16, batch_eq_16) {
362 TEST_REQUIRES_X86_AVX;
363 VBinOpMicrokernelTester()
364 .batch_size(16)
365 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
366 }
367
368 TEST(F32_VSQRDIFF__AVX_X16, batch_div_16) {
369 TEST_REQUIRES_X86_AVX;
370 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
371 VBinOpMicrokernelTester()
372 .batch_size(batch_size)
373 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
374 }
375 }
376
377 TEST(F32_VSQRDIFF__AVX_X16, batch_lt_16) {
378 TEST_REQUIRES_X86_AVX;
379 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
380 VBinOpMicrokernelTester()
381 .batch_size(batch_size)
382 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
383 }
384 }
385
386 TEST(F32_VSQRDIFF__AVX_X16, batch_gt_16) {
387 TEST_REQUIRES_X86_AVX;
388 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
389 VBinOpMicrokernelTester()
390 .batch_size(batch_size)
391 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
392 }
393 }
394
395 TEST(F32_VSQRDIFF__AVX_X16, inplace_a) {
396 TEST_REQUIRES_X86_AVX;
397 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
398 VBinOpMicrokernelTester()
399 .batch_size(batch_size)
400 .inplace_a(true)
401 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
402 }
403 }
404
405 TEST(F32_VSQRDIFF__AVX_X16, inplace_b) {
406 TEST_REQUIRES_X86_AVX;
407 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
408 VBinOpMicrokernelTester()
409 .batch_size(batch_size)
410 .inplace_b(true)
411 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
412 }
413 }
414
415 TEST(F32_VSQRDIFF__AVX_X16, inplace_a_and_b) {
416 TEST_REQUIRES_X86_AVX;
417 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
418 VBinOpMicrokernelTester()
419 .batch_size(batch_size)
420 .inplace_a(true)
421 .inplace_b(true)
422 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
423 }
424 }
425#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
426
427
428#if XNN_ARCH_X86 || XNN_ARCH_X86_64
429 TEST(F32_VSQRDIFF__AVX512F_X16, batch_eq_16) {
430 TEST_REQUIRES_X86_AVX512F;
431 VBinOpMicrokernelTester()
432 .batch_size(16)
433 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
434 }
435
436 TEST(F32_VSQRDIFF__AVX512F_X16, batch_div_16) {
437 TEST_REQUIRES_X86_AVX512F;
438 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
439 VBinOpMicrokernelTester()
440 .batch_size(batch_size)
441 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
442 }
443 }
444
445 TEST(F32_VSQRDIFF__AVX512F_X16, batch_lt_16) {
446 TEST_REQUIRES_X86_AVX512F;
447 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
448 VBinOpMicrokernelTester()
449 .batch_size(batch_size)
450 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
451 }
452 }
453
454 TEST(F32_VSQRDIFF__AVX512F_X16, batch_gt_16) {
455 TEST_REQUIRES_X86_AVX512F;
456 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
457 VBinOpMicrokernelTester()
458 .batch_size(batch_size)
459 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
460 }
461 }
462
463 TEST(F32_VSQRDIFF__AVX512F_X16, inplace_a) {
464 TEST_REQUIRES_X86_AVX512F;
465 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
466 VBinOpMicrokernelTester()
467 .batch_size(batch_size)
468 .inplace_a(true)
469 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
470 }
471 }
472
473 TEST(F32_VSQRDIFF__AVX512F_X16, inplace_b) {
474 TEST_REQUIRES_X86_AVX512F;
475 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
476 VBinOpMicrokernelTester()
477 .batch_size(batch_size)
478 .inplace_b(true)
479 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
480 }
481 }
482
483 TEST(F32_VSQRDIFF__AVX512F_X16, inplace_a_and_b) {
484 TEST_REQUIRES_X86_AVX512F;
485 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
486 VBinOpMicrokernelTester()
487 .batch_size(batch_size)
488 .inplace_a(true)
489 .inplace_b(true)
490 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
491 }
492 }
493#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
494
495
496#if XNN_ARCH_X86 || XNN_ARCH_X86_64
497 TEST(F32_VSQRDIFF__AVX512F_X32, batch_eq_32) {
498 TEST_REQUIRES_X86_AVX512F;
499 VBinOpMicrokernelTester()
500 .batch_size(32)
501 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::SqrDiff);
502 }
503
504 TEST(F32_VSQRDIFF__AVX512F_X32, batch_div_32) {
505 TEST_REQUIRES_X86_AVX512F;
506 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
507 VBinOpMicrokernelTester()
508 .batch_size(batch_size)
509 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::SqrDiff);
510 }
511 }
512
513 TEST(F32_VSQRDIFF__AVX512F_X32, batch_lt_32) {
514 TEST_REQUIRES_X86_AVX512F;
515 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
516 VBinOpMicrokernelTester()
517 .batch_size(batch_size)
518 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::SqrDiff);
519 }
520 }
521
522 TEST(F32_VSQRDIFF__AVX512F_X32, batch_gt_32) {
523 TEST_REQUIRES_X86_AVX512F;
524 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
525 VBinOpMicrokernelTester()
526 .batch_size(batch_size)
527 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::SqrDiff);
528 }
529 }
530
531 TEST(F32_VSQRDIFF__AVX512F_X32, inplace_a) {
532 TEST_REQUIRES_X86_AVX512F;
533 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
534 VBinOpMicrokernelTester()
535 .batch_size(batch_size)
536 .inplace_a(true)
537 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::SqrDiff);
538 }
539 }
540
541 TEST(F32_VSQRDIFF__AVX512F_X32, inplace_b) {
542 TEST_REQUIRES_X86_AVX512F;
543 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
544 VBinOpMicrokernelTester()
545 .batch_size(batch_size)
546 .inplace_b(true)
547 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::SqrDiff);
548 }
549 }
550
551 TEST(F32_VSQRDIFF__AVX512F_X32, inplace_a_and_b) {
552 TEST_REQUIRES_X86_AVX512F;
553 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
554 VBinOpMicrokernelTester()
555 .batch_size(batch_size)
556 .inplace_a(true)
557 .inplace_b(true)
558 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinOpMicrokernelTester::OpType::SqrDiff);
559 }
560 }
561#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
562
563
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700564#if XNN_ARCH_WASMSIMD
565 TEST(F32_VSQRDIFF__WASMSIMD_X4, batch_eq_4) {
566 VBinOpMicrokernelTester()
567 .batch_size(4)
Marat Dukhan47387d62020-06-29 12:53:20 -0700568 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700569 }
570
571 TEST(F32_VSQRDIFF__WASMSIMD_X4, batch_div_4) {
572 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
573 VBinOpMicrokernelTester()
574 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700575 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700576 }
577 }
578
579 TEST(F32_VSQRDIFF__WASMSIMD_X4, batch_lt_4) {
580 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
581 VBinOpMicrokernelTester()
582 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700583 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700584 }
585 }
586
587 TEST(F32_VSQRDIFF__WASMSIMD_X4, batch_gt_4) {
588 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
589 VBinOpMicrokernelTester()
590 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700591 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700592 }
593 }
594
595 TEST(F32_VSQRDIFF__WASMSIMD_X4, inplace_a) {
596 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
597 VBinOpMicrokernelTester()
598 .batch_size(batch_size)
599 .inplace_a(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700600 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700601 }
602 }
603
604 TEST(F32_VSQRDIFF__WASMSIMD_X4, inplace_b) {
605 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
606 VBinOpMicrokernelTester()
607 .batch_size(batch_size)
608 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700609 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700610 }
611 }
612
613 TEST(F32_VSQRDIFF__WASMSIMD_X4, inplace_a_and_b) {
614 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
615 VBinOpMicrokernelTester()
616 .batch_size(batch_size)
617 .inplace_a(true)
618 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700619 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700620 }
621 }
622#endif // XNN_ARCH_WASMSIMD
623
624
625#if XNN_ARCH_WASMSIMD
626 TEST(F32_VSQRDIFF__WASMSIMD_X8, batch_eq_8) {
627 VBinOpMicrokernelTester()
628 .batch_size(8)
Marat Dukhan47387d62020-06-29 12:53:20 -0700629 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700630 }
631
632 TEST(F32_VSQRDIFF__WASMSIMD_X8, batch_div_8) {
633 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
634 VBinOpMicrokernelTester()
635 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700636 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700637 }
638 }
639
640 TEST(F32_VSQRDIFF__WASMSIMD_X8, batch_lt_8) {
641 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
642 VBinOpMicrokernelTester()
643 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700644 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700645 }
646 }
647
648 TEST(F32_VSQRDIFF__WASMSIMD_X8, batch_gt_8) {
649 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
650 VBinOpMicrokernelTester()
651 .batch_size(batch_size)
Marat Dukhan47387d62020-06-29 12:53:20 -0700652 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700653 }
654 }
655
656 TEST(F32_VSQRDIFF__WASMSIMD_X8, inplace_a) {
657 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
658 VBinOpMicrokernelTester()
659 .batch_size(batch_size)
660 .inplace_a(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700661 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700662 }
663 }
664
665 TEST(F32_VSQRDIFF__WASMSIMD_X8, inplace_b) {
666 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
667 VBinOpMicrokernelTester()
668 .batch_size(batch_size)
669 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700670 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700671 }
672 }
673
674 TEST(F32_VSQRDIFF__WASMSIMD_X8, inplace_a_and_b) {
675 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
676 VBinOpMicrokernelTester()
677 .batch_size(batch_size)
678 .inplace_a(true)
679 .inplace_b(true)
Marat Dukhan47387d62020-06-29 12:53:20 -0700680 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::SqrDiff);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700681 }
682 }
683#endif // XNN_ARCH_WASMSIMD
684
685
Frank Barchard9c7308f2020-08-31 17:03:01 -0700686#if XNN_ARCH_WASMSIMD
687 TEST(F32_VSQRDIFF__WASMSIMD_X16, batch_eq_16) {
688 VBinOpMicrokernelTester()
689 .batch_size(16)
690 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
691 }
692
693 TEST(F32_VSQRDIFF__WASMSIMD_X16, batch_div_16) {
694 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
695 VBinOpMicrokernelTester()
696 .batch_size(batch_size)
697 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
698 }
699 }
700
701 TEST(F32_VSQRDIFF__WASMSIMD_X16, batch_lt_16) {
702 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
703 VBinOpMicrokernelTester()
704 .batch_size(batch_size)
705 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
706 }
707 }
708
709 TEST(F32_VSQRDIFF__WASMSIMD_X16, batch_gt_16) {
710 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
711 VBinOpMicrokernelTester()
712 .batch_size(batch_size)
713 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
714 }
715 }
716
717 TEST(F32_VSQRDIFF__WASMSIMD_X16, inplace_a) {
718 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
719 VBinOpMicrokernelTester()
720 .batch_size(batch_size)
721 .inplace_a(true)
722 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
723 }
724 }
725
726 TEST(F32_VSQRDIFF__WASMSIMD_X16, inplace_b) {
727 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
728 VBinOpMicrokernelTester()
729 .batch_size(batch_size)
730 .inplace_b(true)
731 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
732 }
733 }
734
735 TEST(F32_VSQRDIFF__WASMSIMD_X16, inplace_a_and_b) {
736 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
737 VBinOpMicrokernelTester()
738 .batch_size(batch_size)
739 .inplace_a(true)
740 .inplace_b(true)
741 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::SqrDiff);
742 }
743 }
744#endif // XNN_ARCH_WASMSIMD
745
746
Marat Dukhan13bafb02020-06-05 00:43:11 -0700747TEST(F32_VSQRDIFF__SCALAR_X1, batch_eq_1) {
748 VBinOpMicrokernelTester()
749 .batch_size(1)
750 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
751}
752
753TEST(F32_VSQRDIFF__SCALAR_X1, batch_gt_1) {
754 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
755 VBinOpMicrokernelTester()
756 .batch_size(batch_size)
757 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
758 }
759}
760
761TEST(F32_VSQRDIFF__SCALAR_X1, inplace_a) {
762 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
763 VBinOpMicrokernelTester()
764 .batch_size(batch_size)
765 .inplace_a(true)
766 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
767 }
768}
769
770TEST(F32_VSQRDIFF__SCALAR_X1, inplace_b) {
771 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
772 VBinOpMicrokernelTester()
773 .batch_size(batch_size)
774 .inplace_b(true)
775 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
776 }
777}
778
779TEST(F32_VSQRDIFF__SCALAR_X1, inplace_a_and_b) {
780 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
781 VBinOpMicrokernelTester()
782 .batch_size(batch_size)
783 .inplace_a(true)
784 .inplace_b(true)
785 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
786 }
787}
788
789
790TEST(F32_VSQRDIFF__SCALAR_X2, batch_eq_2) {
791 VBinOpMicrokernelTester()
792 .batch_size(2)
793 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
794}
795
796TEST(F32_VSQRDIFF__SCALAR_X2, batch_div_2) {
797 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
798 VBinOpMicrokernelTester()
799 .batch_size(batch_size)
800 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
801 }
802}
803
804TEST(F32_VSQRDIFF__SCALAR_X2, batch_lt_2) {
805 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
806 VBinOpMicrokernelTester()
807 .batch_size(batch_size)
808 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
809 }
810}
811
812TEST(F32_VSQRDIFF__SCALAR_X2, batch_gt_2) {
813 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
814 VBinOpMicrokernelTester()
815 .batch_size(batch_size)
816 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
817 }
818}
819
820TEST(F32_VSQRDIFF__SCALAR_X2, inplace_a) {
821 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
822 VBinOpMicrokernelTester()
823 .batch_size(batch_size)
824 .inplace_a(true)
825 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
826 }
827}
828
829TEST(F32_VSQRDIFF__SCALAR_X2, inplace_b) {
830 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
831 VBinOpMicrokernelTester()
832 .batch_size(batch_size)
833 .inplace_b(true)
834 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
835 }
836}
837
838TEST(F32_VSQRDIFF__SCALAR_X2, inplace_a_and_b) {
839 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
840 VBinOpMicrokernelTester()
841 .batch_size(batch_size)
842 .inplace_a(true)
843 .inplace_b(true)
844 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
845 }
846}
847
848
849TEST(F32_VSQRDIFF__SCALAR_X4, batch_eq_4) {
850 VBinOpMicrokernelTester()
851 .batch_size(4)
852 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
853}
854
855TEST(F32_VSQRDIFF__SCALAR_X4, batch_div_4) {
856 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
857 VBinOpMicrokernelTester()
858 .batch_size(batch_size)
859 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
860 }
861}
862
863TEST(F32_VSQRDIFF__SCALAR_X4, batch_lt_4) {
864 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
865 VBinOpMicrokernelTester()
866 .batch_size(batch_size)
867 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
868 }
869}
870
871TEST(F32_VSQRDIFF__SCALAR_X4, batch_gt_4) {
872 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
873 VBinOpMicrokernelTester()
874 .batch_size(batch_size)
875 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
876 }
877}
878
879TEST(F32_VSQRDIFF__SCALAR_X4, inplace_a) {
880 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
881 VBinOpMicrokernelTester()
882 .batch_size(batch_size)
883 .inplace_a(true)
884 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
885 }
886}
887
888TEST(F32_VSQRDIFF__SCALAR_X4, inplace_b) {
889 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
890 VBinOpMicrokernelTester()
891 .batch_size(batch_size)
892 .inplace_b(true)
893 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
894 }
895}
896
897TEST(F32_VSQRDIFF__SCALAR_X4, inplace_a_and_b) {
898 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
899 VBinOpMicrokernelTester()
900 .batch_size(batch_size)
901 .inplace_a(true)
902 .inplace_b(true)
903 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
904 }
905}
Frank Barchard9c7308f2020-08-31 17:03:01 -0700906
907
908TEST(F32_VSQRDIFF__SCALAR_X8, batch_eq_8) {
909 VBinOpMicrokernelTester()
910 .batch_size(8)
911 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
912}
913
914TEST(F32_VSQRDIFF__SCALAR_X8, batch_div_8) {
915 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
916 VBinOpMicrokernelTester()
917 .batch_size(batch_size)
918 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
919 }
920}
921
922TEST(F32_VSQRDIFF__SCALAR_X8, batch_lt_8) {
923 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
924 VBinOpMicrokernelTester()
925 .batch_size(batch_size)
926 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
927 }
928}
929
930TEST(F32_VSQRDIFF__SCALAR_X8, batch_gt_8) {
931 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
932 VBinOpMicrokernelTester()
933 .batch_size(batch_size)
934 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
935 }
936}
937
938TEST(F32_VSQRDIFF__SCALAR_X8, inplace_a) {
939 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
940 VBinOpMicrokernelTester()
941 .batch_size(batch_size)
942 .inplace_a(true)
943 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
944 }
945}
946
947TEST(F32_VSQRDIFF__SCALAR_X8, inplace_b) {
948 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
949 VBinOpMicrokernelTester()
950 .batch_size(batch_size)
951 .inplace_b(true)
952 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
953 }
954}
955
956TEST(F32_VSQRDIFF__SCALAR_X8, inplace_a_and_b) {
957 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
958 VBinOpMicrokernelTester()
959 .batch_size(batch_size)
960 .inplace_a(true)
961 .inplace_b(true)
962 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::SqrDiff, VBinOpMicrokernelTester::Variant::Scalar);
963 }
964}