blob: dcaeae7577ef4c5fade3c8b3f1e3881ab4509747 [file] [log] [blame]
Frank Barchard674778d2020-08-08 10:17:25 -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-vmulc-relu.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_VMULC_RELU__WASMSIMD_X4, batch_eq_4) {
22 VBinOpCMicrokernelTester()
23 .batch_size(4)
24 .Test(xnn_f32_vmulc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::MulC);
25 }
26
27 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::MulC);
32 }
33 }
34
35 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::MulC);
40 }
41 }
42
43 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::MulC);
48 }
49 }
50
51 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::MulC);
57 }
58 }
59#endif // XNN_ARCH_WASMSIMD
60
61
62#if XNN_ARCH_WASMSIMD
63 TEST(F32_VMULC_RELU__WASMSIMD_X8, batch_eq_8) {
64 VBinOpCMicrokernelTester()
65 .batch_size(8)
66 .Test(xnn_f32_vmulc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::MulC);
67 }
68
69 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::MulC);
74 }
75 }
76
77 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::MulC);
82 }
83 }
84
85 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::MulC);
90 }
91 }
92
93 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::MulC);
99 }
100 }
101#endif // XNN_ARCH_WASMSIMD
102
103
Frank Barchard9c7308f2020-08-31 17:03:01 -0700104#if XNN_ARCH_WASMSIMD
105 TEST(F32_VMULC_RELU__WASMSIMD_X16, batch_eq_16) {
106 VBinOpCMicrokernelTester()
107 .batch_size(16)
108 .Test(xnn_f32_vmulc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::MulC);
109 }
110
111 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::MulC);
116 }
117 }
118
119 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::MulC);
124 }
125 }
126
127 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::MulC);
132 }
133 }
134
135 TEST(F32_VMULC_RELU__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_vmulc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::MulC);
141 }
142 }
143#endif // XNN_ARCH_WASMSIMD
144
145
Frank Barchard674778d2020-08-08 10:17:25 -0700146#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
147 TEST(F32_VMULC_RELU__WASM_X1, batch_eq_1) {
148 VBinOpCMicrokernelTester()
149 .batch_size(1)
150 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::MulC);
151 }
152
153 TEST(F32_VMULC_RELU__WASM_X1, batch_gt_1) {
154 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
155 VBinOpCMicrokernelTester()
156 .batch_size(batch_size)
157 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::MulC);
158 }
159 }
160
161 TEST(F32_VMULC_RELU__WASM_X1, inplace) {
162 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
163 VBinOpCMicrokernelTester()
164 .batch_size(batch_size)
165 .inplace(true)
166 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::MulC);
167 }
168 }
169#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
170
171
172#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
173 TEST(F32_VMULC_RELU__WASM_X2, batch_eq_2) {
174 VBinOpCMicrokernelTester()
175 .batch_size(2)
176 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MulC);
177 }
178
179 TEST(F32_VMULC_RELU__WASM_X2, batch_div_2) {
180 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
181 VBinOpCMicrokernelTester()
182 .batch_size(batch_size)
183 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MulC);
184 }
185 }
186
187 TEST(F32_VMULC_RELU__WASM_X2, batch_lt_2) {
188 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
189 VBinOpCMicrokernelTester()
190 .batch_size(batch_size)
191 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MulC);
192 }
193 }
194
195 TEST(F32_VMULC_RELU__WASM_X2, batch_gt_2) {
196 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
197 VBinOpCMicrokernelTester()
198 .batch_size(batch_size)
199 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MulC);
200 }
201 }
202
203 TEST(F32_VMULC_RELU__WASM_X2, inplace) {
204 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
205 VBinOpCMicrokernelTester()
206 .batch_size(batch_size)
207 .inplace(true)
208 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::MulC);
209 }
210 }
211#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
212
213
214#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
215 TEST(F32_VMULC_RELU__WASM_X4, batch_eq_4) {
216 VBinOpCMicrokernelTester()
217 .batch_size(4)
218 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MulC);
219 }
220
221 TEST(F32_VMULC_RELU__WASM_X4, batch_div_4) {
222 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
223 VBinOpCMicrokernelTester()
224 .batch_size(batch_size)
225 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MulC);
226 }
227 }
228
229 TEST(F32_VMULC_RELU__WASM_X4, batch_lt_4) {
230 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
231 VBinOpCMicrokernelTester()
232 .batch_size(batch_size)
233 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MulC);
234 }
235 }
236
237 TEST(F32_VMULC_RELU__WASM_X4, batch_gt_4) {
238 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
239 VBinOpCMicrokernelTester()
240 .batch_size(batch_size)
241 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MulC);
242 }
243 }
244
245 TEST(F32_VMULC_RELU__WASM_X4, inplace) {
246 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
247 VBinOpCMicrokernelTester()
248 .batch_size(batch_size)
249 .inplace(true)
250 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::MulC);
251 }
252 }
253#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
254
255
Frank Barchard9c7308f2020-08-31 17:03:01 -0700256#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
257 TEST(F32_VMULC_RELU__WASM_X8, batch_eq_8) {
258 VBinOpCMicrokernelTester()
259 .batch_size(8)
260 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MulC);
261 }
262
263 TEST(F32_VMULC_RELU__WASM_X8, batch_div_8) {
264 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
265 VBinOpCMicrokernelTester()
266 .batch_size(batch_size)
267 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MulC);
268 }
269 }
270
271 TEST(F32_VMULC_RELU__WASM_X8, batch_lt_8) {
272 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
273 VBinOpCMicrokernelTester()
274 .batch_size(batch_size)
275 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MulC);
276 }
277 }
278
279 TEST(F32_VMULC_RELU__WASM_X8, batch_gt_8) {
280 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
281 VBinOpCMicrokernelTester()
282 .batch_size(batch_size)
283 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MulC);
284 }
285 }
286
287 TEST(F32_VMULC_RELU__WASM_X8, inplace) {
288 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
289 VBinOpCMicrokernelTester()
290 .batch_size(batch_size)
291 .inplace(true)
292 .Test(xnn_f32_vmulc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::MulC);
293 }
294 }
295#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
296
297
Frank Barchard674778d2020-08-08 10:17:25 -0700298TEST(F32_VMULC_RELU__SCALAR_X1, batch_eq_1) {
299 VBinOpCMicrokernelTester()
300 .batch_size(1)
301 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
302}
303
304TEST(F32_VMULC_RELU__SCALAR_X1, batch_gt_1) {
305 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
306 VBinOpCMicrokernelTester()
307 .batch_size(batch_size)
308 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
309 }
310}
311
312TEST(F32_VMULC_RELU__SCALAR_X1, inplace) {
313 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
314 VBinOpCMicrokernelTester()
315 .batch_size(batch_size)
316 .inplace(true)
317 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
318 }
319}
320
321
322TEST(F32_VMULC_RELU__SCALAR_X2, batch_eq_2) {
323 VBinOpCMicrokernelTester()
324 .batch_size(2)
325 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
326}
327
328TEST(F32_VMULC_RELU__SCALAR_X2, batch_div_2) {
329 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
330 VBinOpCMicrokernelTester()
331 .batch_size(batch_size)
332 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
333 }
334}
335
336TEST(F32_VMULC_RELU__SCALAR_X2, batch_lt_2) {
337 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
338 VBinOpCMicrokernelTester()
339 .batch_size(batch_size)
340 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
341 }
342}
343
344TEST(F32_VMULC_RELU__SCALAR_X2, batch_gt_2) {
345 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
346 VBinOpCMicrokernelTester()
347 .batch_size(batch_size)
348 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
349 }
350}
351
352TEST(F32_VMULC_RELU__SCALAR_X2, inplace) {
353 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
354 VBinOpCMicrokernelTester()
355 .batch_size(batch_size)
356 .inplace(true)
357 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
358 }
359}
360
361
362TEST(F32_VMULC_RELU__SCALAR_X4, batch_eq_4) {
363 VBinOpCMicrokernelTester()
364 .batch_size(4)
365 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
366}
367
368TEST(F32_VMULC_RELU__SCALAR_X4, batch_div_4) {
369 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
370 VBinOpCMicrokernelTester()
371 .batch_size(batch_size)
372 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
373 }
374}
375
376TEST(F32_VMULC_RELU__SCALAR_X4, batch_lt_4) {
377 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
378 VBinOpCMicrokernelTester()
379 .batch_size(batch_size)
380 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
381 }
382}
383
384TEST(F32_VMULC_RELU__SCALAR_X4, batch_gt_4) {
385 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
386 VBinOpCMicrokernelTester()
387 .batch_size(batch_size)
388 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
389 }
390}
391
392TEST(F32_VMULC_RELU__SCALAR_X4, inplace) {
393 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
394 VBinOpCMicrokernelTester()
395 .batch_size(batch_size)
396 .inplace(true)
397 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
398 }
399}
Frank Barchard9c7308f2020-08-31 17:03:01 -0700400
401
402TEST(F32_VMULC_RELU__SCALAR_X8, batch_eq_8) {
403 VBinOpCMicrokernelTester()
404 .batch_size(8)
405 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
406}
407
408TEST(F32_VMULC_RELU__SCALAR_X8, batch_div_8) {
409 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
410 VBinOpCMicrokernelTester()
411 .batch_size(batch_size)
412 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
413 }
414}
415
416TEST(F32_VMULC_RELU__SCALAR_X8, batch_lt_8) {
417 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
418 VBinOpCMicrokernelTester()
419 .batch_size(batch_size)
420 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
421 }
422}
423
424TEST(F32_VMULC_RELU__SCALAR_X8, batch_gt_8) {
425 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
426 VBinOpCMicrokernelTester()
427 .batch_size(batch_size)
428 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
429 }
430}
431
432TEST(F32_VMULC_RELU__SCALAR_X8, inplace) {
433 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
434 VBinOpCMicrokernelTester()
435 .batch_size(batch_size)
436 .inplace(true)
437 .Test(xnn_f32_vmulc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::MulC, VBinOpCMicrokernelTester::Variant::Scalar);
438 }
439}