blob: baf5f1c42b52af5ad35c214b82f5fe476405dd9d [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;
Marat Dukhan10f1fe02021-05-13 12:51:12 -070023 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -070024 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070025 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -070026 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070031 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -070032 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070033 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -070034 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070040 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -070041 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070042 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -070043 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070049 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -070050 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070051 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -070052 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070058 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -070059 .batch_size(batch_size)
60 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070061 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -070062 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070068 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -070069 .batch_size(batch_size)
70 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070071 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -070072 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070078 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -070079 .batch_size(batch_size)
80 .inplace_a(true)
81 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070082 .Test(xnn_f32_vsqrdiff_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -070083 }
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;
Marat Dukhan10f1fe02021-05-13 12:51:12 -070091 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -070092 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070093 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -070094 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070099 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700100 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700101 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700102 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700108 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700109 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700110 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700111 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700117 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700118 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700119 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700120 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700126 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700127 .batch_size(batch_size)
128 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700129 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700130 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700136 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700137 .batch_size(batch_size)
138 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700139 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700140 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700146 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700147 .batch_size(batch_size)
148 .inplace_a(true)
149 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700150 .Test(xnn_f32_vsqrdiff_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700151 }
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;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700159 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700160 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700161 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700162 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700167 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700168 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700169 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700170 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700176 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700177 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700178 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700179 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700185 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700186 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700187 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700188 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700194 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700195 .batch_size(batch_size)
196 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700197 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700198 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700204 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700205 .batch_size(batch_size)
206 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700207 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700208 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700214 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700215 .batch_size(batch_size)
216 .inplace_a(true)
217 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700218 .Test(xnn_f32_vsqrdiff_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700219 }
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;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700227 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700228 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700229 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700230 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700235 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700236 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700237 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700238 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700244 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700245 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700246 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700247 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700253 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700254 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700255 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700256 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700262 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700263 .batch_size(batch_size)
264 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700265 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700266 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700272 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700273 .batch_size(batch_size)
274 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700275 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700276 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700282 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700283 .batch_size(batch_size)
284 .inplace_a(true)
285 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700286 .Test(xnn_f32_vsqrdiff_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700287 }
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;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700295 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700296 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700297 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700298 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700303 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700304 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700305 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700306 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700312 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700313 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700314 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700315 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700321 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700322 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700323 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700324 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700330 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700331 .batch_size(batch_size)
332 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700333 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700334 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700340 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700341 .batch_size(batch_size)
342 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700343 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700344 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700350 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700351 .batch_size(batch_size)
352 .inplace_a(true)
353 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700354 .Test(xnn_f32_vsqrdiff_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700355 }
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;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700363 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700364 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700365 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700366 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700371 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700372 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700373 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700374 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700380 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700381 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700382 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700383 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700389 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700390 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700391 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700392 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700398 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700399 .batch_size(batch_size)
400 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700401 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700402 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700408 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700409 .batch_size(batch_size)
410 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700411 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700412 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700418 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700419 .batch_size(batch_size)
420 .inplace_a(true)
421 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700422 .Test(xnn_f32_vsqrdiff_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700423 }
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;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700431 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700432 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700433 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700434 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700439 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700440 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700441 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700442 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700448 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700449 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700450 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700451 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700457 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700458 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700459 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700460 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700466 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700467 .batch_size(batch_size)
468 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700469 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700470 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700476 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700477 .batch_size(batch_size)
478 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700479 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700480 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700486 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700487 .batch_size(batch_size)
488 .inplace_a(true)
489 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700490 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700491 }
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;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700499 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700500 .batch_size(32)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700501 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700502 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700507 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700508 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700509 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700510 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700516 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700517 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700518 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700519 }
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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700525 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700526 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700527 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700528 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700534 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700535 .batch_size(batch_size)
536 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700537 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700538 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700544 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700545 .batch_size(batch_size)
546 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700547 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700548 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700554 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700555 .batch_size(batch_size)
556 .inplace_a(true)
557 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700558 .Test(xnn_f32_vsqrdiff_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::SqrDiff);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700559 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700566 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700567 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700568 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700573 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700574 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700575 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700581 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700582 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700583 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700589 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700590 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700591 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700597 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700598 .batch_size(batch_size)
599 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700600 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700606 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700607 .batch_size(batch_size)
608 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700609 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700615 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700616 .batch_size(batch_size)
617 .inplace_a(true)
618 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700619 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700627 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700628 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700629 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700634 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700635 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700636 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700642 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700643 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700644 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::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++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700650 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700651 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700652 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700658 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700659 .batch_size(batch_size)
660 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700661 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700667 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700668 .batch_size(batch_size)
669 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700670 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700676 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700677 .batch_size(batch_size)
678 .inplace_a(true)
679 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700680 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700688 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700689 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700690 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700691 }
692
693 TEST(F32_VSQRDIFF__WASMSIMD_X16, batch_div_16) {
694 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700695 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700696 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700697 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700698 }
699 }
700
701 TEST(F32_VSQRDIFF__WASMSIMD_X16, batch_lt_16) {
702 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700703 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700704 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700705 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700706 }
707 }
708
709 TEST(F32_VSQRDIFF__WASMSIMD_X16, batch_gt_16) {
710 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700711 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700712 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700713 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700714 }
715 }
716
717 TEST(F32_VSQRDIFF__WASMSIMD_X16, inplace_a) {
718 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700719 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700720 .batch_size(batch_size)
721 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700722 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700723 }
724 }
725
726 TEST(F32_VSQRDIFF__WASMSIMD_X16, inplace_b) {
727 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700728 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700729 .batch_size(batch_size)
730 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700731 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700732 }
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) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700737 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700738 .batch_size(batch_size)
739 .inplace_a(true)
740 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700741 .Test(xnn_f32_vsqrdiff_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::SqrDiff);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700742 }
743 }
744#endif // XNN_ARCH_WASMSIMD
745
746
Marat Dukhan13bafb02020-06-05 00:43:11 -0700747TEST(F32_VSQRDIFF__SCALAR_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700748 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700749 .batch_size(1)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700750 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700751}
752
753TEST(F32_VSQRDIFF__SCALAR_X1, batch_gt_1) {
754 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700755 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700756 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700757 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700758 }
759}
760
761TEST(F32_VSQRDIFF__SCALAR_X1, inplace_a) {
762 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700763 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700764 .batch_size(batch_size)
765 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700766 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700767 }
768}
769
770TEST(F32_VSQRDIFF__SCALAR_X1, inplace_b) {
771 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700772 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700773 .batch_size(batch_size)
774 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700775 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700776 }
777}
778
779TEST(F32_VSQRDIFF__SCALAR_X1, inplace_a_and_b) {
780 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700781 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700782 .batch_size(batch_size)
783 .inplace_a(true)
784 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700785 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700786 }
787}
788
789
790TEST(F32_VSQRDIFF__SCALAR_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700791 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700792 .batch_size(2)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700793 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700794}
795
796TEST(F32_VSQRDIFF__SCALAR_X2, batch_div_2) {
797 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700798 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700799 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700800 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700801 }
802}
803
804TEST(F32_VSQRDIFF__SCALAR_X2, batch_lt_2) {
805 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700806 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700807 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700808 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700809 }
810}
811
812TEST(F32_VSQRDIFF__SCALAR_X2, batch_gt_2) {
813 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700814 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700815 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700816 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700817 }
818}
819
820TEST(F32_VSQRDIFF__SCALAR_X2, inplace_a) {
821 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700822 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700823 .batch_size(batch_size)
824 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700825 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700826 }
827}
828
829TEST(F32_VSQRDIFF__SCALAR_X2, inplace_b) {
830 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700831 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700832 .batch_size(batch_size)
833 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700834 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700835 }
836}
837
838TEST(F32_VSQRDIFF__SCALAR_X2, inplace_a_and_b) {
839 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700840 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700841 .batch_size(batch_size)
842 .inplace_a(true)
843 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700844 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700845 }
846}
847
848
849TEST(F32_VSQRDIFF__SCALAR_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700850 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700851 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700852 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700853}
854
855TEST(F32_VSQRDIFF__SCALAR_X4, batch_div_4) {
856 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700857 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700858 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700859 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700860 }
861}
862
863TEST(F32_VSQRDIFF__SCALAR_X4, batch_lt_4) {
864 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700865 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700866 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700867 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700868 }
869}
870
871TEST(F32_VSQRDIFF__SCALAR_X4, batch_gt_4) {
872 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700873 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700874 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700875 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700876 }
877}
878
879TEST(F32_VSQRDIFF__SCALAR_X4, inplace_a) {
880 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700881 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700882 .batch_size(batch_size)
883 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700884 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700885 }
886}
887
888TEST(F32_VSQRDIFF__SCALAR_X4, inplace_b) {
889 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700890 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700891 .batch_size(batch_size)
892 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700893 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700894 }
895}
896
897TEST(F32_VSQRDIFF__SCALAR_X4, inplace_a_and_b) {
898 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700899 VBinaryMicrokernelTester()
Marat Dukhan13bafb02020-06-05 00:43:11 -0700900 .batch_size(batch_size)
901 .inplace_a(true)
902 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700903 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Marat Dukhan13bafb02020-06-05 00:43:11 -0700904 }
905}
Frank Barchard9c7308f2020-08-31 17:03:01 -0700906
907
908TEST(F32_VSQRDIFF__SCALAR_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700909 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700910 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700911 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700912}
913
914TEST(F32_VSQRDIFF__SCALAR_X8, batch_div_8) {
915 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700916 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700917 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700918 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700919 }
920}
921
922TEST(F32_VSQRDIFF__SCALAR_X8, batch_lt_8) {
923 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700924 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700925 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700926 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700927 }
928}
929
930TEST(F32_VSQRDIFF__SCALAR_X8, batch_gt_8) {
931 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700932 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700933 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700934 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700935 }
936}
937
938TEST(F32_VSQRDIFF__SCALAR_X8, inplace_a) {
939 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700940 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700941 .batch_size(batch_size)
942 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700943 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700944 }
945}
946
947TEST(F32_VSQRDIFF__SCALAR_X8, inplace_b) {
948 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700949 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700950 .batch_size(batch_size)
951 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700952 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700953 }
954}
955
956TEST(F32_VSQRDIFF__SCALAR_X8, inplace_a_and_b) {
957 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700958 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700959 .batch_size(batch_size)
960 .inplace_a(true)
961 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700962 .Test(xnn_f32_vsqrdiff_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::SqrDiff, VBinaryMicrokernelTester::Variant::Scalar);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700963 }
964}