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-vsubc-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
TEST(F32_VSUBC_RELU__WASMSIMD_X4,batch_eq_4)21   TEST(F32_VSUBC_RELU__WASMSIMD_X4, batch_eq_4) {
22     VBinOpCMicrokernelTester()
23       .batch_size(4)
24       .Test(xnn_f32_vsubc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
25   }
26 
TEST(F32_VSUBC_RELU__WASMSIMD_X4,batch_div_4)27   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
32     }
33   }
34 
TEST(F32_VSUBC_RELU__WASMSIMD_X4,batch_lt_4)35   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
40     }
41   }
42 
TEST(F32_VSUBC_RELU__WASMSIMD_X4,batch_gt_4)43   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
48     }
49   }
50 
TEST(F32_VSUBC_RELU__WASMSIMD_X4,inplace)51   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x4, VBinOpCMicrokernelTester::OpType::SubC);
57     }
58   }
59 #endif  // XNN_ARCH_WASMSIMD
60 
61 
62 #if XNN_ARCH_WASMSIMD
TEST(F32_VSUBC_RELU__WASMSIMD_X8,batch_eq_8)63   TEST(F32_VSUBC_RELU__WASMSIMD_X8, batch_eq_8) {
64     VBinOpCMicrokernelTester()
65       .batch_size(8)
66       .Test(xnn_f32_vsubc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
67   }
68 
TEST(F32_VSUBC_RELU__WASMSIMD_X8,batch_div_8)69   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
74     }
75   }
76 
TEST(F32_VSUBC_RELU__WASMSIMD_X8,batch_lt_8)77   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
82     }
83   }
84 
TEST(F32_VSUBC_RELU__WASMSIMD_X8,batch_gt_8)85   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
90     }
91   }
92 
TEST(F32_VSUBC_RELU__WASMSIMD_X8,inplace)93   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x8, VBinOpCMicrokernelTester::OpType::SubC);
99     }
100   }
101 #endif  // XNN_ARCH_WASMSIMD
102 
103 
104 #if XNN_ARCH_WASMSIMD
TEST(F32_VSUBC_RELU__WASMSIMD_X16,batch_eq_16)105   TEST(F32_VSUBC_RELU__WASMSIMD_X16, batch_eq_16) {
106     VBinOpCMicrokernelTester()
107       .batch_size(16)
108       .Test(xnn_f32_vsubc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
109   }
110 
TEST(F32_VSUBC_RELU__WASMSIMD_X16,batch_div_16)111   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
116     }
117   }
118 
TEST(F32_VSUBC_RELU__WASMSIMD_X16,batch_lt_16)119   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
124     }
125   }
126 
TEST(F32_VSUBC_RELU__WASMSIMD_X16,batch_gt_16)127   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
132     }
133   }
134 
TEST(F32_VSUBC_RELU__WASMSIMD_X16,inplace)135   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasmsimd_x16, VBinOpCMicrokernelTester::OpType::SubC);
141     }
142   }
143 #endif  // XNN_ARCH_WASMSIMD
144 
145 
146 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VSUBC_RELU__WASM_X1,batch_eq_1)147   TEST(F32_VSUBC_RELU__WASM_X1, batch_eq_1) {
148     VBinOpCMicrokernelTester()
149       .batch_size(1)
150       .Test(xnn_f32_vsubc_relu_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::SubC);
151   }
152 
TEST(F32_VSUBC_RELU__WASM_X1,batch_gt_1)153   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::SubC);
158     }
159   }
160 
TEST(F32_VSUBC_RELU__WASM_X1,inplace)161   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x1, VBinOpCMicrokernelTester::OpType::SubC);
167     }
168   }
169 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
170 
171 
172 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VSUBC_RELU__WASM_X2,batch_eq_2)173   TEST(F32_VSUBC_RELU__WASM_X2, batch_eq_2) {
174     VBinOpCMicrokernelTester()
175       .batch_size(2)
176       .Test(xnn_f32_vsubc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::SubC);
177   }
178 
TEST(F32_VSUBC_RELU__WASM_X2,batch_div_2)179   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::SubC);
184     }
185   }
186 
TEST(F32_VSUBC_RELU__WASM_X2,batch_lt_2)187   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::SubC);
192     }
193   }
194 
TEST(F32_VSUBC_RELU__WASM_X2,batch_gt_2)195   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::SubC);
200     }
201   }
202 
TEST(F32_VSUBC_RELU__WASM_X2,inplace)203   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x2, VBinOpCMicrokernelTester::OpType::SubC);
209     }
210   }
211 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
212 
213 
214 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VSUBC_RELU__WASM_X4,batch_eq_4)215   TEST(F32_VSUBC_RELU__WASM_X4, batch_eq_4) {
216     VBinOpCMicrokernelTester()
217       .batch_size(4)
218       .Test(xnn_f32_vsubc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::SubC);
219   }
220 
TEST(F32_VSUBC_RELU__WASM_X4,batch_div_4)221   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::SubC);
226     }
227   }
228 
TEST(F32_VSUBC_RELU__WASM_X4,batch_lt_4)229   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::SubC);
234     }
235   }
236 
TEST(F32_VSUBC_RELU__WASM_X4,batch_gt_4)237   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::SubC);
242     }
243   }
244 
TEST(F32_VSUBC_RELU__WASM_X4,inplace)245   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x4, VBinOpCMicrokernelTester::OpType::SubC);
251     }
252   }
253 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
254 
255 
256 #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
TEST(F32_VSUBC_RELU__WASM_X8,batch_eq_8)257   TEST(F32_VSUBC_RELU__WASM_X8, batch_eq_8) {
258     VBinOpCMicrokernelTester()
259       .batch_size(8)
260       .Test(xnn_f32_vsubc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::SubC);
261   }
262 
TEST(F32_VSUBC_RELU__WASM_X8,batch_div_8)263   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::SubC);
268     }
269   }
270 
TEST(F32_VSUBC_RELU__WASM_X8,batch_lt_8)271   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::SubC);
276     }
277   }
278 
TEST(F32_VSUBC_RELU__WASM_X8,batch_gt_8)279   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::SubC);
284     }
285   }
286 
TEST(F32_VSUBC_RELU__WASM_X8,inplace)287   TEST(F32_VSUBC_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_vsubc_relu_ukernel__wasm_x8, VBinOpCMicrokernelTester::OpType::SubC);
293     }
294   }
295 #endif  // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD
296 
297 
TEST(F32_VSUBC_RELU__SCALAR_X1,batch_eq_1)298 TEST(F32_VSUBC_RELU__SCALAR_X1, batch_eq_1) {
299   VBinOpCMicrokernelTester()
300     .batch_size(1)
301     .Test(xnn_f32_vsubc_relu_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
302 }
303 
TEST(F32_VSUBC_RELU__SCALAR_X1,batch_gt_1)304 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
309   }
310 }
311 
TEST(F32_VSUBC_RELU__SCALAR_X1,inplace)312 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x1, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
318   }
319 }
320 
321 
TEST(F32_VSUBC_RELU__SCALAR_X2,batch_eq_2)322 TEST(F32_VSUBC_RELU__SCALAR_X2, batch_eq_2) {
323   VBinOpCMicrokernelTester()
324     .batch_size(2)
325     .Test(xnn_f32_vsubc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
326 }
327 
TEST(F32_VSUBC_RELU__SCALAR_X2,batch_div_2)328 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
333   }
334 }
335 
TEST(F32_VSUBC_RELU__SCALAR_X2,batch_lt_2)336 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
341   }
342 }
343 
TEST(F32_VSUBC_RELU__SCALAR_X2,batch_gt_2)344 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
349   }
350 }
351 
TEST(F32_VSUBC_RELU__SCALAR_X2,inplace)352 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x2, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
358   }
359 }
360 
361 
TEST(F32_VSUBC_RELU__SCALAR_X4,batch_eq_4)362 TEST(F32_VSUBC_RELU__SCALAR_X4, batch_eq_4) {
363   VBinOpCMicrokernelTester()
364     .batch_size(4)
365     .Test(xnn_f32_vsubc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
366 }
367 
TEST(F32_VSUBC_RELU__SCALAR_X4,batch_div_4)368 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
373   }
374 }
375 
TEST(F32_VSUBC_RELU__SCALAR_X4,batch_lt_4)376 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
381   }
382 }
383 
TEST(F32_VSUBC_RELU__SCALAR_X4,batch_gt_4)384 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
389   }
390 }
391 
TEST(F32_VSUBC_RELU__SCALAR_X4,inplace)392 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x4, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
398   }
399 }
400 
401 
TEST(F32_VSUBC_RELU__SCALAR_X8,batch_eq_8)402 TEST(F32_VSUBC_RELU__SCALAR_X8, batch_eq_8) {
403   VBinOpCMicrokernelTester()
404     .batch_size(8)
405     .Test(xnn_f32_vsubc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
406 }
407 
TEST(F32_VSUBC_RELU__SCALAR_X8,batch_div_8)408 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
413   }
414 }
415 
TEST(F32_VSUBC_RELU__SCALAR_X8,batch_lt_8)416 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
421   }
422 }
423 
TEST(F32_VSUBC_RELU__SCALAR_X8,batch_gt_8)424 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
429   }
430 }
431 
TEST(F32_VSUBC_RELU__SCALAR_X8,inplace)432 TEST(F32_VSUBC_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_vsubc_relu_ukernel__scalar_x8, VBinOpCMicrokernelTester::OpType::SubC, VBinOpCMicrokernelTester::Variant::Scalar);
438   }
439 }
440