xref: /aosp_15_r20/external/XNNPACK/test/f32-vadd-relu.cc (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
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/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_VADD_RELU__WASMSIMD_X4,batch_eq_4)22   TEST(F32_VADD_RELU__WASMSIMD_X4, batch_eq_4) {
23     VBinaryMicrokernelTester()
24       .batch_size(4)
25       .Test(xnn_f32_vadd_relu_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Add);
26   }
27 
TEST(F32_VADD_RELU__WASMSIMD_X4,batch_div_4)28   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Add);
33     }
34   }
35 
TEST(F32_VADD_RELU__WASMSIMD_X4,batch_lt_4)36   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Add);
41     }
42   }
43 
TEST(F32_VADD_RELU__WASMSIMD_X4,batch_gt_4)44   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Add);
49     }
50   }
51 
TEST(F32_VADD_RELU__WASMSIMD_X4,inplace_a)52   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Add);
58     }
59   }
60 
TEST(F32_VADD_RELU__WASMSIMD_X4,inplace_b)61   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Add);
67     }
68   }
69 
TEST(F32_VADD_RELU__WASMSIMD_X4,inplace_a_and_b)70   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x4, VBinaryMicrokernelTester::OpType::Add);
77     }
78   }
79 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
80 
81 
82 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VADD_RELU__WASMSIMD_X8,batch_eq_8)83   TEST(F32_VADD_RELU__WASMSIMD_X8, batch_eq_8) {
84     VBinaryMicrokernelTester()
85       .batch_size(8)
86       .Test(xnn_f32_vadd_relu_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Add);
87   }
88 
TEST(F32_VADD_RELU__WASMSIMD_X8,batch_div_8)89   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Add);
94     }
95   }
96 
TEST(F32_VADD_RELU__WASMSIMD_X8,batch_lt_8)97   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Add);
102     }
103   }
104 
TEST(F32_VADD_RELU__WASMSIMD_X8,batch_gt_8)105   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Add);
110     }
111   }
112 
TEST(F32_VADD_RELU__WASMSIMD_X8,inplace_a)113   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Add);
119     }
120   }
121 
TEST(F32_VADD_RELU__WASMSIMD_X8,inplace_b)122   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Add);
128     }
129   }
130 
TEST(F32_VADD_RELU__WASMSIMD_X8,inplace_a_and_b)131   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x8, VBinaryMicrokernelTester::OpType::Add);
138     }
139   }
140 #endif  // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
141 
142 
143 #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_VADD_RELU__WASMSIMD_X16,batch_eq_16)144   TEST(F32_VADD_RELU__WASMSIMD_X16, batch_eq_16) {
145     VBinaryMicrokernelTester()
146       .batch_size(16)
147       .Test(xnn_f32_vadd_relu_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Add);
148   }
149 
TEST(F32_VADD_RELU__WASMSIMD_X16,batch_div_16)150   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Add);
155     }
156   }
157 
TEST(F32_VADD_RELU__WASMSIMD_X16,batch_lt_16)158   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Add);
163     }
164   }
165 
TEST(F32_VADD_RELU__WASMSIMD_X16,batch_gt_16)166   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Add);
171     }
172   }
173 
TEST(F32_VADD_RELU__WASMSIMD_X16,inplace_a)174   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Add);
180     }
181   }
182 
TEST(F32_VADD_RELU__WASMSIMD_X16,inplace_b)183   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Add);
189     }
190   }
191 
TEST(F32_VADD_RELU__WASMSIMD_X16,inplace_a_and_b)192   TEST(F32_VADD_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_vadd_relu_ukernel__wasmsimd_x16, VBinaryMicrokernelTester::OpType::Add);
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_VADD_RELU__WASM_X1,batch_eq_1)205   TEST(F32_VADD_RELU__WASM_X1, batch_eq_1) {
206     VBinaryMicrokernelTester()
207       .batch_size(1)
208       .Test(xnn_f32_vadd_relu_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Add);
209   }
210 
TEST(F32_VADD_RELU__WASM_X1,batch_gt_1)211   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Add);
216     }
217   }
218 
TEST(F32_VADD_RELU__WASM_X1,inplace_a)219   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Add);
225     }
226   }
227 
TEST(F32_VADD_RELU__WASM_X1,inplace_b)228   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Add);
234     }
235   }
236 
TEST(F32_VADD_RELU__WASM_X1,inplace_a_and_b)237   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Add);
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_VADD_RELU__WASM_X2,batch_eq_2)250   TEST(F32_VADD_RELU__WASM_X2, batch_eq_2) {
251     VBinaryMicrokernelTester()
252       .batch_size(2)
253       .Test(xnn_f32_vadd_relu_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Add);
254   }
255 
TEST(F32_VADD_RELU__WASM_X2,batch_div_2)256   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Add);
261     }
262   }
263 
TEST(F32_VADD_RELU__WASM_X2,batch_lt_2)264   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Add);
269     }
270   }
271 
TEST(F32_VADD_RELU__WASM_X2,batch_gt_2)272   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Add);
277     }
278   }
279 
TEST(F32_VADD_RELU__WASM_X2,inplace_a)280   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Add);
286     }
287   }
288 
TEST(F32_VADD_RELU__WASM_X2,inplace_b)289   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Add);
295     }
296   }
297 
TEST(F32_VADD_RELU__WASM_X2,inplace_a_and_b)298   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Add);
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_VADD_RELU__WASM_X4,batch_eq_4)311   TEST(F32_VADD_RELU__WASM_X4, batch_eq_4) {
312     VBinaryMicrokernelTester()
313       .batch_size(4)
314       .Test(xnn_f32_vadd_relu_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Add);
315   }
316 
TEST(F32_VADD_RELU__WASM_X4,batch_div_4)317   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Add);
322     }
323   }
324 
TEST(F32_VADD_RELU__WASM_X4,batch_lt_4)325   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Add);
330     }
331   }
332 
TEST(F32_VADD_RELU__WASM_X4,batch_gt_4)333   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Add);
338     }
339   }
340 
TEST(F32_VADD_RELU__WASM_X4,inplace_a)341   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Add);
347     }
348   }
349 
TEST(F32_VADD_RELU__WASM_X4,inplace_b)350   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Add);
356     }
357   }
358 
TEST(F32_VADD_RELU__WASM_X4,inplace_a_and_b)359   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Add);
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_VADD_RELU__WASM_X8,batch_eq_8)372   TEST(F32_VADD_RELU__WASM_X8, batch_eq_8) {
373     VBinaryMicrokernelTester()
374       .batch_size(8)
375       .Test(xnn_f32_vadd_relu_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Add);
376   }
377 
TEST(F32_VADD_RELU__WASM_X8,batch_div_8)378   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Add);
383     }
384   }
385 
TEST(F32_VADD_RELU__WASM_X8,batch_lt_8)386   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Add);
391     }
392   }
393 
TEST(F32_VADD_RELU__WASM_X8,batch_gt_8)394   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Add);
399     }
400   }
401 
TEST(F32_VADD_RELU__WASM_X8,inplace_a)402   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Add);
408     }
409   }
410 
TEST(F32_VADD_RELU__WASM_X8,inplace_b)411   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Add);
417     }
418   }
419 
TEST(F32_VADD_RELU__WASM_X8,inplace_a_and_b)420   TEST(F32_VADD_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_vadd_relu_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Add);
427     }
428   }
429 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
430 
431 
TEST(F32_VADD_RELU__SCALAR_X1,batch_eq_1)432 TEST(F32_VADD_RELU__SCALAR_X1, batch_eq_1) {
433   VBinaryMicrokernelTester()
434     .batch_size(1)
435     .Test(xnn_f32_vadd_relu_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Add);
436 }
437 
TEST(F32_VADD_RELU__SCALAR_X1,batch_gt_1)438 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Add);
443   }
444 }
445 
TEST(F32_VADD_RELU__SCALAR_X1,inplace_a)446 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Add);
452   }
453 }
454 
TEST(F32_VADD_RELU__SCALAR_X1,inplace_b)455 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Add);
461   }
462 }
463 
TEST(F32_VADD_RELU__SCALAR_X1,inplace_a_and_b)464 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Add);
471   }
472 }
473 
474 
TEST(F32_VADD_RELU__SCALAR_X2,batch_eq_2)475 TEST(F32_VADD_RELU__SCALAR_X2, batch_eq_2) {
476   VBinaryMicrokernelTester()
477     .batch_size(2)
478     .Test(xnn_f32_vadd_relu_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Add);
479 }
480 
TEST(F32_VADD_RELU__SCALAR_X2,batch_div_2)481 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Add);
486   }
487 }
488 
TEST(F32_VADD_RELU__SCALAR_X2,batch_lt_2)489 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Add);
494   }
495 }
496 
TEST(F32_VADD_RELU__SCALAR_X2,batch_gt_2)497 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Add);
502   }
503 }
504 
TEST(F32_VADD_RELU__SCALAR_X2,inplace_a)505 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Add);
511   }
512 }
513 
TEST(F32_VADD_RELU__SCALAR_X2,inplace_b)514 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Add);
520   }
521 }
522 
TEST(F32_VADD_RELU__SCALAR_X2,inplace_a_and_b)523 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Add);
530   }
531 }
532 
533 
TEST(F32_VADD_RELU__SCALAR_X4,batch_eq_4)534 TEST(F32_VADD_RELU__SCALAR_X4, batch_eq_4) {
535   VBinaryMicrokernelTester()
536     .batch_size(4)
537     .Test(xnn_f32_vadd_relu_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Add);
538 }
539 
TEST(F32_VADD_RELU__SCALAR_X4,batch_div_4)540 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Add);
545   }
546 }
547 
TEST(F32_VADD_RELU__SCALAR_X4,batch_lt_4)548 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Add);
553   }
554 }
555 
TEST(F32_VADD_RELU__SCALAR_X4,batch_gt_4)556 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Add);
561   }
562 }
563 
TEST(F32_VADD_RELU__SCALAR_X4,inplace_a)564 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Add);
570   }
571 }
572 
TEST(F32_VADD_RELU__SCALAR_X4,inplace_b)573 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Add);
579   }
580 }
581 
TEST(F32_VADD_RELU__SCALAR_X4,inplace_a_and_b)582 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Add);
589   }
590 }
591 
592 
TEST(F32_VADD_RELU__SCALAR_X8,batch_eq_8)593 TEST(F32_VADD_RELU__SCALAR_X8, batch_eq_8) {
594   VBinaryMicrokernelTester()
595     .batch_size(8)
596     .Test(xnn_f32_vadd_relu_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Add);
597 }
598 
TEST(F32_VADD_RELU__SCALAR_X8,batch_div_8)599 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Add);
604   }
605 }
606 
TEST(F32_VADD_RELU__SCALAR_X8,batch_lt_8)607 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Add);
612   }
613 }
614 
TEST(F32_VADD_RELU__SCALAR_X8,batch_gt_8)615 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Add);
620   }
621 }
622 
TEST(F32_VADD_RELU__SCALAR_X8,inplace_a)623 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Add);
629   }
630 }
631 
TEST(F32_VADD_RELU__SCALAR_X8,inplace_b)632 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Add);
638   }
639 }
640 
TEST(F32_VADD_RELU__SCALAR_X8,inplace_a_and_b)641 TEST(F32_VADD_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_vadd_relu_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Add);
648   }
649 }
650