blob: d65694334de7907d20c8a491dcae777b946ce80a [file] [log] [blame]
Frank Barchardd5b9f1c2020-07-01 15:00:19 -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-vsub.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_WASMSIMD
21 TEST(F32_VSUB__WASMSIMD_X4, batch_eq_4) {
22 VBinOpMicrokernelTester()
23 .batch_size(4)
24 .Test(xnn_f32_vsub_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Sub);
25 }
26
27 TEST(F32_VSUB__WASMSIMD_X4, batch_div_4) {
28 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
29 VBinOpMicrokernelTester()
30 .batch_size(batch_size)
31 .Test(xnn_f32_vsub_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Sub);
32 }
33 }
34
35 TEST(F32_VSUB__WASMSIMD_X4, batch_lt_4) {
36 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
37 VBinOpMicrokernelTester()
38 .batch_size(batch_size)
39 .Test(xnn_f32_vsub_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Sub);
40 }
41 }
42
43 TEST(F32_VSUB__WASMSIMD_X4, batch_gt_4) {
44 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
45 VBinOpMicrokernelTester()
46 .batch_size(batch_size)
47 .Test(xnn_f32_vsub_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Sub);
48 }
49 }
50
51 TEST(F32_VSUB__WASMSIMD_X4, inplace_a) {
52 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
53 VBinOpMicrokernelTester()
54 .batch_size(batch_size)
55 .inplace_a(true)
56 .Test(xnn_f32_vsub_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Sub);
57 }
58 }
59
60 TEST(F32_VSUB__WASMSIMD_X4, inplace_b) {
61 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
62 VBinOpMicrokernelTester()
63 .batch_size(batch_size)
64 .inplace_b(true)
65 .Test(xnn_f32_vsub_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Sub);
66 }
67 }
68
69 TEST(F32_VSUB__WASMSIMD_X4, inplace_a_and_b) {
70 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
71 VBinOpMicrokernelTester()
72 .batch_size(batch_size)
73 .inplace_a(true)
74 .inplace_b(true)
75 .Test(xnn_f32_vsub_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Sub);
76 }
77 }
78#endif // XNN_ARCH_WASMSIMD
79
80
81#if XNN_ARCH_WASMSIMD
82 TEST(F32_VSUB__WASMSIMD_X8, batch_eq_8) {
83 VBinOpMicrokernelTester()
84 .batch_size(8)
85 .Test(xnn_f32_vsub_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Sub);
86 }
87
88 TEST(F32_VSUB__WASMSIMD_X8, batch_div_8) {
89 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
90 VBinOpMicrokernelTester()
91 .batch_size(batch_size)
92 .Test(xnn_f32_vsub_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Sub);
93 }
94 }
95
96 TEST(F32_VSUB__WASMSIMD_X8, batch_lt_8) {
97 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
98 VBinOpMicrokernelTester()
99 .batch_size(batch_size)
100 .Test(xnn_f32_vsub_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Sub);
101 }
102 }
103
104 TEST(F32_VSUB__WASMSIMD_X8, batch_gt_8) {
105 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
106 VBinOpMicrokernelTester()
107 .batch_size(batch_size)
108 .Test(xnn_f32_vsub_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Sub);
109 }
110 }
111
112 TEST(F32_VSUB__WASMSIMD_X8, inplace_a) {
113 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
114 VBinOpMicrokernelTester()
115 .batch_size(batch_size)
116 .inplace_a(true)
117 .Test(xnn_f32_vsub_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Sub);
118 }
119 }
120
121 TEST(F32_VSUB__WASMSIMD_X8, inplace_b) {
122 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
123 VBinOpMicrokernelTester()
124 .batch_size(batch_size)
125 .inplace_b(true)
126 .Test(xnn_f32_vsub_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Sub);
127 }
128 }
129
130 TEST(F32_VSUB__WASMSIMD_X8, inplace_a_and_b) {
131 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
132 VBinOpMicrokernelTester()
133 .batch_size(batch_size)
134 .inplace_a(true)
135 .inplace_b(true)
136 .Test(xnn_f32_vsub_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Sub);
137 }
138 }
139#endif // XNN_ARCH_WASMSIMD
Frank Barchard8e229db2020-07-06 23:31:35 -0700140
141
Frank Barchard9c7308f2020-08-31 17:03:01 -0700142#if XNN_ARCH_WASMSIMD
143 TEST(F32_VSUB__WASMSIMD_X16, batch_eq_16) {
144 VBinOpMicrokernelTester()
145 .batch_size(16)
146 .Test(xnn_f32_vsub_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Sub);
147 }
148
149 TEST(F32_VSUB__WASMSIMD_X16, batch_div_16) {
150 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
151 VBinOpMicrokernelTester()
152 .batch_size(batch_size)
153 .Test(xnn_f32_vsub_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Sub);
154 }
155 }
156
157 TEST(F32_VSUB__WASMSIMD_X16, batch_lt_16) {
158 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
159 VBinOpMicrokernelTester()
160 .batch_size(batch_size)
161 .Test(xnn_f32_vsub_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Sub);
162 }
163 }
164
165 TEST(F32_VSUB__WASMSIMD_X16, batch_gt_16) {
166 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
167 VBinOpMicrokernelTester()
168 .batch_size(batch_size)
169 .Test(xnn_f32_vsub_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Sub);
170 }
171 }
172
173 TEST(F32_VSUB__WASMSIMD_X16, inplace_a) {
174 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
175 VBinOpMicrokernelTester()
176 .batch_size(batch_size)
177 .inplace_a(true)
178 .Test(xnn_f32_vsub_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Sub);
179 }
180 }
181
182 TEST(F32_VSUB__WASMSIMD_X16, inplace_b) {
183 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
184 VBinOpMicrokernelTester()
185 .batch_size(batch_size)
186 .inplace_b(true)
187 .Test(xnn_f32_vsub_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Sub);
188 }
189 }
190
191 TEST(F32_VSUB__WASMSIMD_X16, inplace_a_and_b) {
192 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
193 VBinOpMicrokernelTester()
194 .batch_size(batch_size)
195 .inplace_a(true)
196 .inplace_b(true)
197 .Test(xnn_f32_vsub_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Sub);
198 }
199 }
200#endif // XNN_ARCH_WASMSIMD
201
202
Frank Barchard8e229db2020-07-06 23:31:35 -0700203TEST(F32_VSUB__SCALAR_X1, batch_eq_1) {
204 VBinOpMicrokernelTester()
205 .batch_size(1)
206 .Test(xnn_f32_vsub_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
207}
208
209TEST(F32_VSUB__SCALAR_X1, batch_gt_1) {
210 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
211 VBinOpMicrokernelTester()
212 .batch_size(batch_size)
213 .Test(xnn_f32_vsub_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
214 }
215}
216
217TEST(F32_VSUB__SCALAR_X1, inplace_a) {
218 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
219 VBinOpMicrokernelTester()
220 .batch_size(batch_size)
221 .inplace_a(true)
222 .Test(xnn_f32_vsub_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
223 }
224}
225
226TEST(F32_VSUB__SCALAR_X1, inplace_b) {
227 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
228 VBinOpMicrokernelTester()
229 .batch_size(batch_size)
230 .inplace_b(true)
231 .Test(xnn_f32_vsub_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
232 }
233}
234
235TEST(F32_VSUB__SCALAR_X1, inplace_a_and_b) {
236 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
237 VBinOpMicrokernelTester()
238 .batch_size(batch_size)
239 .inplace_a(true)
240 .inplace_b(true)
241 .Test(xnn_f32_vsub_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
242 }
243}
244
245
246TEST(F32_VSUB__SCALAR_X2, batch_eq_2) {
247 VBinOpMicrokernelTester()
248 .batch_size(2)
249 .Test(xnn_f32_vsub_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
250}
251
252TEST(F32_VSUB__SCALAR_X2, batch_div_2) {
253 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
254 VBinOpMicrokernelTester()
255 .batch_size(batch_size)
256 .Test(xnn_f32_vsub_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
257 }
258}
259
260TEST(F32_VSUB__SCALAR_X2, batch_lt_2) {
261 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
262 VBinOpMicrokernelTester()
263 .batch_size(batch_size)
264 .Test(xnn_f32_vsub_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
265 }
266}
267
268TEST(F32_VSUB__SCALAR_X2, batch_gt_2) {
269 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
270 VBinOpMicrokernelTester()
271 .batch_size(batch_size)
272 .Test(xnn_f32_vsub_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
273 }
274}
275
276TEST(F32_VSUB__SCALAR_X2, inplace_a) {
277 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
278 VBinOpMicrokernelTester()
279 .batch_size(batch_size)
280 .inplace_a(true)
281 .Test(xnn_f32_vsub_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
282 }
283}
284
285TEST(F32_VSUB__SCALAR_X2, inplace_b) {
286 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
287 VBinOpMicrokernelTester()
288 .batch_size(batch_size)
289 .inplace_b(true)
290 .Test(xnn_f32_vsub_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
291 }
292}
293
294TEST(F32_VSUB__SCALAR_X2, inplace_a_and_b) {
295 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
296 VBinOpMicrokernelTester()
297 .batch_size(batch_size)
298 .inplace_a(true)
299 .inplace_b(true)
300 .Test(xnn_f32_vsub_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
301 }
302}
303
304
305TEST(F32_VSUB__SCALAR_X4, batch_eq_4) {
306 VBinOpMicrokernelTester()
307 .batch_size(4)
308 .Test(xnn_f32_vsub_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
309}
310
311TEST(F32_VSUB__SCALAR_X4, batch_div_4) {
312 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
313 VBinOpMicrokernelTester()
314 .batch_size(batch_size)
315 .Test(xnn_f32_vsub_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
316 }
317}
318
319TEST(F32_VSUB__SCALAR_X4, batch_lt_4) {
320 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
321 VBinOpMicrokernelTester()
322 .batch_size(batch_size)
323 .Test(xnn_f32_vsub_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
324 }
325}
326
327TEST(F32_VSUB__SCALAR_X4, batch_gt_4) {
328 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
329 VBinOpMicrokernelTester()
330 .batch_size(batch_size)
331 .Test(xnn_f32_vsub_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
332 }
333}
334
335TEST(F32_VSUB__SCALAR_X4, inplace_a) {
336 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
337 VBinOpMicrokernelTester()
338 .batch_size(batch_size)
339 .inplace_a(true)
340 .Test(xnn_f32_vsub_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
341 }
342}
343
344TEST(F32_VSUB__SCALAR_X4, inplace_b) {
345 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
346 VBinOpMicrokernelTester()
347 .batch_size(batch_size)
348 .inplace_b(true)
349 .Test(xnn_f32_vsub_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
350 }
351}
352
353TEST(F32_VSUB__SCALAR_X4, inplace_a_and_b) {
354 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
355 VBinOpMicrokernelTester()
356 .batch_size(batch_size)
357 .inplace_a(true)
358 .inplace_b(true)
359 .Test(xnn_f32_vsub_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
360 }
361}
Frank Barchard9c7308f2020-08-31 17:03:01 -0700362
363
364TEST(F32_VSUB__SCALAR_X8, batch_eq_8) {
365 VBinOpMicrokernelTester()
366 .batch_size(8)
367 .Test(xnn_f32_vsub_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
368}
369
370TEST(F32_VSUB__SCALAR_X8, batch_div_8) {
371 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
372 VBinOpMicrokernelTester()
373 .batch_size(batch_size)
374 .Test(xnn_f32_vsub_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
375 }
376}
377
378TEST(F32_VSUB__SCALAR_X8, batch_lt_8) {
379 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
380 VBinOpMicrokernelTester()
381 .batch_size(batch_size)
382 .Test(xnn_f32_vsub_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
383 }
384}
385
386TEST(F32_VSUB__SCALAR_X8, batch_gt_8) {
387 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
388 VBinOpMicrokernelTester()
389 .batch_size(batch_size)
390 .Test(xnn_f32_vsub_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
391 }
392}
393
394TEST(F32_VSUB__SCALAR_X8, inplace_a) {
395 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
396 VBinOpMicrokernelTester()
397 .batch_size(batch_size)
398 .inplace_a(true)
399 .Test(xnn_f32_vsub_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
400 }
401}
402
403TEST(F32_VSUB__SCALAR_X8, inplace_b) {
404 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
405 VBinOpMicrokernelTester()
406 .batch_size(batch_size)
407 .inplace_b(true)
408 .Test(xnn_f32_vsub_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
409 }
410}
411
412TEST(F32_VSUB__SCALAR_X8, inplace_a_and_b) {
413 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
414 VBinOpMicrokernelTester()
415 .batch_size(batch_size)
416 .inplace_a(true)
417 .inplace_b(true)
418 .Test(xnn_f32_vsub_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Sub, VBinOpMicrokernelTester::Variant::Scalar);
419 }
420}