blob: 829d8572888710fa27961910b7bcfe6c1b6ab2e6 [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-vsubc.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 "vbinaryc-microkernel-tester.h"
18
19
20#if XNN_ARCH_WASMSIMD
21 TEST(F32_VSUBC__WASMSIMD_X4, batch_eq_4) {
22 VBinOpCMicrokernelTester()
23 .batch_size(4)
24 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
25 }
26
27 TEST(F32_VSUBC__WASMSIMD_X4, batch_div_4) {
28 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
29 VBinOpCMicrokernelTester()
30 .batch_size(batch_size)
31 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
32 }
33 }
34
35 TEST(F32_VSUBC__WASMSIMD_X4, batch_lt_4) {
36 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
37 VBinOpCMicrokernelTester()
38 .batch_size(batch_size)
39 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
40 }
41 }
42
43 TEST(F32_VSUBC__WASMSIMD_X4, batch_gt_4) {
44 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
45 VBinOpCMicrokernelTester()
46 .batch_size(batch_size)
47 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
48 }
49 }
50
51 TEST(F32_VSUBC__WASMSIMD_X4, inplace) {
52 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
53 VBinOpCMicrokernelTester()
54 .batch_size(batch_size)
55 .inplace(true)
56 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
57 }
58 }
59#endif // XNN_ARCH_WASMSIMD
60
61
62#if XNN_ARCH_WASMSIMD
63 TEST(F32_VSUBC__WASMSIMD_X8, batch_eq_8) {
64 VBinOpCMicrokernelTester()
65 .batch_size(8)
66 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
67 }
68
69 TEST(F32_VSUBC__WASMSIMD_X8, batch_div_8) {
70 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
71 VBinOpCMicrokernelTester()
72 .batch_size(batch_size)
73 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
74 }
75 }
76
77 TEST(F32_VSUBC__WASMSIMD_X8, batch_lt_8) {
78 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
79 VBinOpCMicrokernelTester()
80 .batch_size(batch_size)
81 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
82 }
83 }
84
85 TEST(F32_VSUBC__WASMSIMD_X8, batch_gt_8) {
86 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
87 VBinOpCMicrokernelTester()
88 .batch_size(batch_size)
89 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
90 }
91 }
92
93 TEST(F32_VSUBC__WASMSIMD_X8, inplace) {
94 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
95 VBinOpCMicrokernelTester()
96 .batch_size(batch_size)
97 .inplace(true)
98 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
99 }
100 }
101#endif // XNN_ARCH_WASMSIMD
Frank Barchard8e229db2020-07-06 23:31:35 -0700102
103
Frank Barchard9c7308f2020-08-31 17:03:01 -0700104#if XNN_ARCH_WASMSIMD
105 TEST(F32_VSUBC__WASMSIMD_X16, batch_eq_16) {
106 VBinOpCMicrokernelTester()
107 .batch_size(16)
108 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
109 }
110
111 TEST(F32_VSUBC__WASMSIMD_X16, batch_div_16) {
112 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
113 VBinOpCMicrokernelTester()
114 .batch_size(batch_size)
115 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
116 }
117 }
118
119 TEST(F32_VSUBC__WASMSIMD_X16, batch_lt_16) {
120 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
121 VBinOpCMicrokernelTester()
122 .batch_size(batch_size)
123 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
124 }
125 }
126
127 TEST(F32_VSUBC__WASMSIMD_X16, batch_gt_16) {
128 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
129 VBinOpCMicrokernelTester()
130 .batch_size(batch_size)
131 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
132 }
133 }
134
135 TEST(F32_VSUBC__WASMSIMD_X16, inplace) {
136 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
137 VBinOpCMicrokernelTester()
138 .batch_size(batch_size)
139 .inplace(true)
140 .Test(xnn_f32_vsubc_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
141 }
142 }
143#endif // XNN_ARCH_WASMSIMD
144
145
Frank Barchard8e229db2020-07-06 23:31:35 -0700146TEST(F32_VSUBC__SCALAR_X1, batch_eq_1) {
147 VBinOpCMicrokernelTester()
148 .batch_size(1)
149 .Test(xnn_f32_vsubc_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
150}
151
152TEST(F32_VSUBC__SCALAR_X1, batch_gt_1) {
153 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
154 VBinOpCMicrokernelTester()
155 .batch_size(batch_size)
156 .Test(xnn_f32_vsubc_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
157 }
158}
159
160TEST(F32_VSUBC__SCALAR_X1, inplace) {
161 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
162 VBinOpCMicrokernelTester()
163 .batch_size(batch_size)
164 .inplace(true)
165 .Test(xnn_f32_vsubc_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
166 }
167}
168
169
170TEST(F32_VSUBC__SCALAR_X2, batch_eq_2) {
171 VBinOpCMicrokernelTester()
172 .batch_size(2)
173 .Test(xnn_f32_vsubc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
174}
175
176TEST(F32_VSUBC__SCALAR_X2, batch_div_2) {
177 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
178 VBinOpCMicrokernelTester()
179 .batch_size(batch_size)
180 .Test(xnn_f32_vsubc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
181 }
182}
183
184TEST(F32_VSUBC__SCALAR_X2, batch_lt_2) {
185 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
186 VBinOpCMicrokernelTester()
187 .batch_size(batch_size)
188 .Test(xnn_f32_vsubc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
189 }
190}
191
192TEST(F32_VSUBC__SCALAR_X2, batch_gt_2) {
193 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
194 VBinOpCMicrokernelTester()
195 .batch_size(batch_size)
196 .Test(xnn_f32_vsubc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
197 }
198}
199
200TEST(F32_VSUBC__SCALAR_X2, inplace) {
201 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
202 VBinOpCMicrokernelTester()
203 .batch_size(batch_size)
204 .inplace(true)
205 .Test(xnn_f32_vsubc_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
206 }
207}
208
209
210TEST(F32_VSUBC__SCALAR_X4, batch_eq_4) {
211 VBinOpCMicrokernelTester()
212 .batch_size(4)
213 .Test(xnn_f32_vsubc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
214}
215
216TEST(F32_VSUBC__SCALAR_X4, batch_div_4) {
217 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
218 VBinOpCMicrokernelTester()
219 .batch_size(batch_size)
220 .Test(xnn_f32_vsubc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
221 }
222}
223
224TEST(F32_VSUBC__SCALAR_X4, batch_lt_4) {
225 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
226 VBinOpCMicrokernelTester()
227 .batch_size(batch_size)
228 .Test(xnn_f32_vsubc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
229 }
230}
231
232TEST(F32_VSUBC__SCALAR_X4, batch_gt_4) {
233 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
234 VBinOpCMicrokernelTester()
235 .batch_size(batch_size)
236 .Test(xnn_f32_vsubc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
237 }
238}
239
240TEST(F32_VSUBC__SCALAR_X4, inplace) {
241 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
242 VBinOpCMicrokernelTester()
243 .batch_size(batch_size)
244 .inplace(true)
245 .Test(xnn_f32_vsubc_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
246 }
247}
Frank Barchard9c7308f2020-08-31 17:03:01 -0700248
249
250TEST(F32_VSUBC__SCALAR_X8, batch_eq_8) {
251 VBinOpCMicrokernelTester()
252 .batch_size(8)
253 .Test(xnn_f32_vsubc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
254}
255
256TEST(F32_VSUBC__SCALAR_X8, batch_div_8) {
257 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
258 VBinOpCMicrokernelTester()
259 .batch_size(batch_size)
260 .Test(xnn_f32_vsubc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
261 }
262}
263
264TEST(F32_VSUBC__SCALAR_X8, batch_lt_8) {
265 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
266 VBinOpCMicrokernelTester()
267 .batch_size(batch_size)
268 .Test(xnn_f32_vsubc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
269 }
270}
271
272TEST(F32_VSUBC__SCALAR_X8, batch_gt_8) {
273 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
274 VBinOpCMicrokernelTester()
275 .batch_size(batch_size)
276 .Test(xnn_f32_vsubc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
277 }
278}
279
280TEST(F32_VSUBC__SCALAR_X8, inplace) {
281 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
282 VBinOpCMicrokernelTester()
283 .batch_size(batch_size)
284 .inplace(true)
285 .Test(xnn_f32_vsubc_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
286 }
287}