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