1 // 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-vadd-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 "vbinary-microkernel-tester.h"
18
19
20 #if XNN_ARCH_WASMSIMD
TEST(F32_VADD_RELU__WASMSIMD_X4,batch_eq_4)21 TEST(F32_VADD_RELU__WASMSIMD_X4, batch_eq_4) {
22 VBinOpMicrokernelTester()
23 .batch_size(4)
24 .Test(xnn_f32_vadd_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Add);
25 }
26
TEST(F32_VADD_RELU__WASMSIMD_X4,batch_div_4)27 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Add);
32 }
33 }
34
TEST(F32_VADD_RELU__WASMSIMD_X4,batch_lt_4)35 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Add);
40 }
41 }
42
TEST(F32_VADD_RELU__WASMSIMD_X4,batch_gt_4)43 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Add);
48 }
49 }
50
TEST(F32_VADD_RELU__WASMSIMD_X4,inplace_a)51 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Add);
57 }
58 }
59
TEST(F32_VADD_RELU__WASMSIMD_X4,inplace_b)60 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Add);
66 }
67 }
68
TEST(F32_VADD_RELU__WASMSIMD_X4,inplace_a_and_b)69 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Add);
76 }
77 }
78 #endif // XNN_ARCH_WASMSIMD
79
80
81 #if XNN_ARCH_WASMSIMD
TEST(F32_VADD_RELU__WASMSIMD_X8,batch_eq_8)82 TEST(F32_VADD_RELU__WASMSIMD_X8, batch_eq_8) {
83 VBinOpMicrokernelTester()
84 .batch_size(8)
85 .Test(xnn_f32_vadd_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Add);
86 }
87
TEST(F32_VADD_RELU__WASMSIMD_X8,batch_div_8)88 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Add);
93 }
94 }
95
TEST(F32_VADD_RELU__WASMSIMD_X8,batch_lt_8)96 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Add);
101 }
102 }
103
TEST(F32_VADD_RELU__WASMSIMD_X8,batch_gt_8)104 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Add);
109 }
110 }
111
TEST(F32_VADD_RELU__WASMSIMD_X8,inplace_a)112 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Add);
118 }
119 }
120
TEST(F32_VADD_RELU__WASMSIMD_X8,inplace_b)121 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Add);
127 }
128 }
129
TEST(F32_VADD_RELU__WASMSIMD_X8,inplace_a_and_b)130 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Add);
137 }
138 }
139 #endif // XNN_ARCH_WASMSIMD
140
141
142 #if XNN_ARCH_WASMSIMD
TEST(F32_VADD_RELU__WASMSIMD_X16,batch_eq_16)143 TEST(F32_VADD_RELU__WASMSIMD_X16, batch_eq_16) {
144 VBinOpMicrokernelTester()
145 .batch_size(16)
146 .Test(xnn_f32_vadd_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Add);
147 }
148
TEST(F32_VADD_RELU__WASMSIMD_X16,batch_div_16)149 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Add);
154 }
155 }
156
TEST(F32_VADD_RELU__WASMSIMD_X16,batch_lt_16)157 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Add);
162 }
163 }
164
TEST(F32_VADD_RELU__WASMSIMD_X16,batch_gt_16)165 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Add);
170 }
171 }
172
TEST(F32_VADD_RELU__WASMSIMD_X16,inplace_a)173 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Add);
179 }
180 }
181
TEST(F32_VADD_RELU__WASMSIMD_X16,inplace_b)182 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Add);
188 }
189 }
190
TEST(F32_VADD_RELU__WASMSIMD_X16,inplace_a_and_b)191 TEST(F32_VADD_RELU__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_vadd_relu_ukernel__wasmsimd_x16, VBinOpMicrokernelTester::OpType::Add);
198 }
199 }
200 #endif // XNN_ARCH_WASMSIMD
201
202
203 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VADD_RELU__WASM_X1,batch_eq_1)204 TEST(F32_VADD_RELU__WASM_X1, batch_eq_1) {
205 VBinOpMicrokernelTester()
206 .batch_size(1)
207 .Test(xnn_f32_vadd_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Add);
208 }
209
TEST(F32_VADD_RELU__WASM_X1,batch_gt_1)210 TEST(F32_VADD_RELU__WASM_X1, batch_gt_1) {
211 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
212 VBinOpMicrokernelTester()
213 .batch_size(batch_size)
214 .Test(xnn_f32_vadd_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Add);
215 }
216 }
217
TEST(F32_VADD_RELU__WASM_X1,inplace_a)218 TEST(F32_VADD_RELU__WASM_X1, inplace_a) {
219 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
220 VBinOpMicrokernelTester()
221 .batch_size(batch_size)
222 .inplace_a(true)
223 .Test(xnn_f32_vadd_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Add);
224 }
225 }
226
TEST(F32_VADD_RELU__WASM_X1,inplace_b)227 TEST(F32_VADD_RELU__WASM_X1, inplace_b) {
228 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
229 VBinOpMicrokernelTester()
230 .batch_size(batch_size)
231 .inplace_b(true)
232 .Test(xnn_f32_vadd_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Add);
233 }
234 }
235
TEST(F32_VADD_RELU__WASM_X1,inplace_a_and_b)236 TEST(F32_VADD_RELU__WASM_X1, inplace_a_and_b) {
237 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
238 VBinOpMicrokernelTester()
239 .batch_size(batch_size)
240 .inplace_a(true)
241 .inplace_b(true)
242 .Test(xnn_f32_vadd_relu_ukernel__wasm_x1, VBinOpMicrokernelTester::OpType::Add);
243 }
244 }
245 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
246
247
248 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VADD_RELU__WASM_X2,batch_eq_2)249 TEST(F32_VADD_RELU__WASM_X2, batch_eq_2) {
250 VBinOpMicrokernelTester()
251 .batch_size(2)
252 .Test(xnn_f32_vadd_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Add);
253 }
254
TEST(F32_VADD_RELU__WASM_X2,batch_div_2)255 TEST(F32_VADD_RELU__WASM_X2, batch_div_2) {
256 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
257 VBinOpMicrokernelTester()
258 .batch_size(batch_size)
259 .Test(xnn_f32_vadd_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Add);
260 }
261 }
262
TEST(F32_VADD_RELU__WASM_X2,batch_lt_2)263 TEST(F32_VADD_RELU__WASM_X2, batch_lt_2) {
264 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
265 VBinOpMicrokernelTester()
266 .batch_size(batch_size)
267 .Test(xnn_f32_vadd_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Add);
268 }
269 }
270
TEST(F32_VADD_RELU__WASM_X2,batch_gt_2)271 TEST(F32_VADD_RELU__WASM_X2, batch_gt_2) {
272 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
273 VBinOpMicrokernelTester()
274 .batch_size(batch_size)
275 .Test(xnn_f32_vadd_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Add);
276 }
277 }
278
TEST(F32_VADD_RELU__WASM_X2,inplace_a)279 TEST(F32_VADD_RELU__WASM_X2, inplace_a) {
280 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
281 VBinOpMicrokernelTester()
282 .batch_size(batch_size)
283 .inplace_a(true)
284 .Test(xnn_f32_vadd_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Add);
285 }
286 }
287
TEST(F32_VADD_RELU__WASM_X2,inplace_b)288 TEST(F32_VADD_RELU__WASM_X2, inplace_b) {
289 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
290 VBinOpMicrokernelTester()
291 .batch_size(batch_size)
292 .inplace_b(true)
293 .Test(xnn_f32_vadd_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Add);
294 }
295 }
296
TEST(F32_VADD_RELU__WASM_X2,inplace_a_and_b)297 TEST(F32_VADD_RELU__WASM_X2, inplace_a_and_b) {
298 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
299 VBinOpMicrokernelTester()
300 .batch_size(batch_size)
301 .inplace_a(true)
302 .inplace_b(true)
303 .Test(xnn_f32_vadd_relu_ukernel__wasm_x2, VBinOpMicrokernelTester::OpType::Add);
304 }
305 }
306 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
307
308
309 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VADD_RELU__WASM_X4,batch_eq_4)310 TEST(F32_VADD_RELU__WASM_X4, batch_eq_4) {
311 VBinOpMicrokernelTester()
312 .batch_size(4)
313 .Test(xnn_f32_vadd_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Add);
314 }
315
TEST(F32_VADD_RELU__WASM_X4,batch_div_4)316 TEST(F32_VADD_RELU__WASM_X4, batch_div_4) {
317 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
318 VBinOpMicrokernelTester()
319 .batch_size(batch_size)
320 .Test(xnn_f32_vadd_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Add);
321 }
322 }
323
TEST(F32_VADD_RELU__WASM_X4,batch_lt_4)324 TEST(F32_VADD_RELU__WASM_X4, batch_lt_4) {
325 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
326 VBinOpMicrokernelTester()
327 .batch_size(batch_size)
328 .Test(xnn_f32_vadd_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Add);
329 }
330 }
331
TEST(F32_VADD_RELU__WASM_X4,batch_gt_4)332 TEST(F32_VADD_RELU__WASM_X4, batch_gt_4) {
333 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
334 VBinOpMicrokernelTester()
335 .batch_size(batch_size)
336 .Test(xnn_f32_vadd_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Add);
337 }
338 }
339
TEST(F32_VADD_RELU__WASM_X4,inplace_a)340 TEST(F32_VADD_RELU__WASM_X4, inplace_a) {
341 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
342 VBinOpMicrokernelTester()
343 .batch_size(batch_size)
344 .inplace_a(true)
345 .Test(xnn_f32_vadd_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Add);
346 }
347 }
348
TEST(F32_VADD_RELU__WASM_X4,inplace_b)349 TEST(F32_VADD_RELU__WASM_X4, inplace_b) {
350 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
351 VBinOpMicrokernelTester()
352 .batch_size(batch_size)
353 .inplace_b(true)
354 .Test(xnn_f32_vadd_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Add);
355 }
356 }
357
TEST(F32_VADD_RELU__WASM_X4,inplace_a_and_b)358 TEST(F32_VADD_RELU__WASM_X4, inplace_a_and_b) {
359 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
360 VBinOpMicrokernelTester()
361 .batch_size(batch_size)
362 .inplace_a(true)
363 .inplace_b(true)
364 .Test(xnn_f32_vadd_relu_ukernel__wasm_x4, VBinOpMicrokernelTester::OpType::Add);
365 }
366 }
367 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
368
369
370 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VADD_RELU__WASM_X8,batch_eq_8)371 TEST(F32_VADD_RELU__WASM_X8, batch_eq_8) {
372 VBinOpMicrokernelTester()
373 .batch_size(8)
374 .Test(xnn_f32_vadd_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Add);
375 }
376
TEST(F32_VADD_RELU__WASM_X8,batch_div_8)377 TEST(F32_VADD_RELU__WASM_X8, batch_div_8) {
378 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
379 VBinOpMicrokernelTester()
380 .batch_size(batch_size)
381 .Test(xnn_f32_vadd_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Add);
382 }
383 }
384
TEST(F32_VADD_RELU__WASM_X8,batch_lt_8)385 TEST(F32_VADD_RELU__WASM_X8, batch_lt_8) {
386 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
387 VBinOpMicrokernelTester()
388 .batch_size(batch_size)
389 .Test(xnn_f32_vadd_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Add);
390 }
391 }
392
TEST(F32_VADD_RELU__WASM_X8,batch_gt_8)393 TEST(F32_VADD_RELU__WASM_X8, batch_gt_8) {
394 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
395 VBinOpMicrokernelTester()
396 .batch_size(batch_size)
397 .Test(xnn_f32_vadd_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Add);
398 }
399 }
400
TEST(F32_VADD_RELU__WASM_X8,inplace_a)401 TEST(F32_VADD_RELU__WASM_X8, inplace_a) {
402 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
403 VBinOpMicrokernelTester()
404 .batch_size(batch_size)
405 .inplace_a(true)
406 .Test(xnn_f32_vadd_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Add);
407 }
408 }
409
TEST(F32_VADD_RELU__WASM_X8,inplace_b)410 TEST(F32_VADD_RELU__WASM_X8, inplace_b) {
411 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
412 VBinOpMicrokernelTester()
413 .batch_size(batch_size)
414 .inplace_b(true)
415 .Test(xnn_f32_vadd_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Add);
416 }
417 }
418
TEST(F32_VADD_RELU__WASM_X8,inplace_a_and_b)419 TEST(F32_VADD_RELU__WASM_X8, inplace_a_and_b) {
420 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
421 VBinOpMicrokernelTester()
422 .batch_size(batch_size)
423 .inplace_a(true)
424 .inplace_b(true)
425 .Test(xnn_f32_vadd_relu_ukernel__wasm_x8, VBinOpMicrokernelTester::OpType::Add);
426 }
427 }
428 #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
429
430
TEST(F32_VADD_RELU__SCALAR_X1,batch_eq_1)431 TEST(F32_VADD_RELU__SCALAR_X1, batch_eq_1) {
432 VBinOpMicrokernelTester()
433 .batch_size(1)
434 .Test(xnn_f32_vadd_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
435 }
436
TEST(F32_VADD_RELU__SCALAR_X1,batch_gt_1)437 TEST(F32_VADD_RELU__SCALAR_X1, batch_gt_1) {
438 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
439 VBinOpMicrokernelTester()
440 .batch_size(batch_size)
441 .Test(xnn_f32_vadd_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
442 }
443 }
444
TEST(F32_VADD_RELU__SCALAR_X1,inplace_a)445 TEST(F32_VADD_RELU__SCALAR_X1, inplace_a) {
446 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
447 VBinOpMicrokernelTester()
448 .batch_size(batch_size)
449 .inplace_a(true)
450 .Test(xnn_f32_vadd_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
451 }
452 }
453
TEST(F32_VADD_RELU__SCALAR_X1,inplace_b)454 TEST(F32_VADD_RELU__SCALAR_X1, inplace_b) {
455 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
456 VBinOpMicrokernelTester()
457 .batch_size(batch_size)
458 .inplace_b(true)
459 .Test(xnn_f32_vadd_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
460 }
461 }
462
TEST(F32_VADD_RELU__SCALAR_X1,inplace_a_and_b)463 TEST(F32_VADD_RELU__SCALAR_X1, inplace_a_and_b) {
464 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
465 VBinOpMicrokernelTester()
466 .batch_size(batch_size)
467 .inplace_a(true)
468 .inplace_b(true)
469 .Test(xnn_f32_vadd_relu_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
470 }
471 }
472
473
TEST(F32_VADD_RELU__SCALAR_X2,batch_eq_2)474 TEST(F32_VADD_RELU__SCALAR_X2, batch_eq_2) {
475 VBinOpMicrokernelTester()
476 .batch_size(2)
477 .Test(xnn_f32_vadd_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
478 }
479
TEST(F32_VADD_RELU__SCALAR_X2,batch_div_2)480 TEST(F32_VADD_RELU__SCALAR_X2, batch_div_2) {
481 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
482 VBinOpMicrokernelTester()
483 .batch_size(batch_size)
484 .Test(xnn_f32_vadd_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
485 }
486 }
487
TEST(F32_VADD_RELU__SCALAR_X2,batch_lt_2)488 TEST(F32_VADD_RELU__SCALAR_X2, batch_lt_2) {
489 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
490 VBinOpMicrokernelTester()
491 .batch_size(batch_size)
492 .Test(xnn_f32_vadd_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
493 }
494 }
495
TEST(F32_VADD_RELU__SCALAR_X2,batch_gt_2)496 TEST(F32_VADD_RELU__SCALAR_X2, batch_gt_2) {
497 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
498 VBinOpMicrokernelTester()
499 .batch_size(batch_size)
500 .Test(xnn_f32_vadd_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
501 }
502 }
503
TEST(F32_VADD_RELU__SCALAR_X2,inplace_a)504 TEST(F32_VADD_RELU__SCALAR_X2, inplace_a) {
505 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
506 VBinOpMicrokernelTester()
507 .batch_size(batch_size)
508 .inplace_a(true)
509 .Test(xnn_f32_vadd_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
510 }
511 }
512
TEST(F32_VADD_RELU__SCALAR_X2,inplace_b)513 TEST(F32_VADD_RELU__SCALAR_X2, inplace_b) {
514 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
515 VBinOpMicrokernelTester()
516 .batch_size(batch_size)
517 .inplace_b(true)
518 .Test(xnn_f32_vadd_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
519 }
520 }
521
TEST(F32_VADD_RELU__SCALAR_X2,inplace_a_and_b)522 TEST(F32_VADD_RELU__SCALAR_X2, inplace_a_and_b) {
523 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
524 VBinOpMicrokernelTester()
525 .batch_size(batch_size)
526 .inplace_a(true)
527 .inplace_b(true)
528 .Test(xnn_f32_vadd_relu_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
529 }
530 }
531
532
TEST(F32_VADD_RELU__SCALAR_X4,batch_eq_4)533 TEST(F32_VADD_RELU__SCALAR_X4, batch_eq_4) {
534 VBinOpMicrokernelTester()
535 .batch_size(4)
536 .Test(xnn_f32_vadd_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
537 }
538
TEST(F32_VADD_RELU__SCALAR_X4,batch_div_4)539 TEST(F32_VADD_RELU__SCALAR_X4, batch_div_4) {
540 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
541 VBinOpMicrokernelTester()
542 .batch_size(batch_size)
543 .Test(xnn_f32_vadd_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
544 }
545 }
546
TEST(F32_VADD_RELU__SCALAR_X4,batch_lt_4)547 TEST(F32_VADD_RELU__SCALAR_X4, batch_lt_4) {
548 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
549 VBinOpMicrokernelTester()
550 .batch_size(batch_size)
551 .Test(xnn_f32_vadd_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
552 }
553 }
554
TEST(F32_VADD_RELU__SCALAR_X4,batch_gt_4)555 TEST(F32_VADD_RELU__SCALAR_X4, batch_gt_4) {
556 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
557 VBinOpMicrokernelTester()
558 .batch_size(batch_size)
559 .Test(xnn_f32_vadd_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
560 }
561 }
562
TEST(F32_VADD_RELU__SCALAR_X4,inplace_a)563 TEST(F32_VADD_RELU__SCALAR_X4, inplace_a) {
564 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
565 VBinOpMicrokernelTester()
566 .batch_size(batch_size)
567 .inplace_a(true)
568 .Test(xnn_f32_vadd_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
569 }
570 }
571
TEST(F32_VADD_RELU__SCALAR_X4,inplace_b)572 TEST(F32_VADD_RELU__SCALAR_X4, inplace_b) {
573 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
574 VBinOpMicrokernelTester()
575 .batch_size(batch_size)
576 .inplace_b(true)
577 .Test(xnn_f32_vadd_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
578 }
579 }
580
TEST(F32_VADD_RELU__SCALAR_X4,inplace_a_and_b)581 TEST(F32_VADD_RELU__SCALAR_X4, inplace_a_and_b) {
582 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
583 VBinOpMicrokernelTester()
584 .batch_size(batch_size)
585 .inplace_a(true)
586 .inplace_b(true)
587 .Test(xnn_f32_vadd_relu_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
588 }
589 }
590
591
TEST(F32_VADD_RELU__SCALAR_X8,batch_eq_8)592 TEST(F32_VADD_RELU__SCALAR_X8, batch_eq_8) {
593 VBinOpMicrokernelTester()
594 .batch_size(8)
595 .Test(xnn_f32_vadd_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
596 }
597
TEST(F32_VADD_RELU__SCALAR_X8,batch_div_8)598 TEST(F32_VADD_RELU__SCALAR_X8, batch_div_8) {
599 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
600 VBinOpMicrokernelTester()
601 .batch_size(batch_size)
602 .Test(xnn_f32_vadd_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
603 }
604 }
605
TEST(F32_VADD_RELU__SCALAR_X8,batch_lt_8)606 TEST(F32_VADD_RELU__SCALAR_X8, batch_lt_8) {
607 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
608 VBinOpMicrokernelTester()
609 .batch_size(batch_size)
610 .Test(xnn_f32_vadd_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
611 }
612 }
613
TEST(F32_VADD_RELU__SCALAR_X8,batch_gt_8)614 TEST(F32_VADD_RELU__SCALAR_X8, batch_gt_8) {
615 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
616 VBinOpMicrokernelTester()
617 .batch_size(batch_size)
618 .Test(xnn_f32_vadd_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
619 }
620 }
621
TEST(F32_VADD_RELU__SCALAR_X8,inplace_a)622 TEST(F32_VADD_RELU__SCALAR_X8, inplace_a) {
623 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
624 VBinOpMicrokernelTester()
625 .batch_size(batch_size)
626 .inplace_a(true)
627 .Test(xnn_f32_vadd_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
628 }
629 }
630
TEST(F32_VADD_RELU__SCALAR_X8,inplace_b)631 TEST(F32_VADD_RELU__SCALAR_X8, inplace_b) {
632 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
633 VBinOpMicrokernelTester()
634 .batch_size(batch_size)
635 .inplace_b(true)
636 .Test(xnn_f32_vadd_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
637 }
638 }
639
TEST(F32_VADD_RELU__SCALAR_X8,inplace_a_and_b)640 TEST(F32_VADD_RELU__SCALAR_X8, inplace_a_and_b) {
641 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
642 VBinOpMicrokernelTester()
643 .batch_size(batch_size)
644 .inplace_a(true)
645 .inplace_b(true)
646 .Test(xnn_f32_vadd_relu_ukernel__scalar_x8, VBinOpMicrokernelTester::OpType::Add, VBinOpMicrokernelTester::Variant::Scalar);
647 }
648 }
649