xref: /aosp_15_r20/external/XNNPACK/test/f16-vsigmoid.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/f16-vsigmoid.yaml
8 //   Generator: tools/generate-vunary-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/vunary.h>
17 #include "vunary-microkernel-tester.h"
18 
19 
20 #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8,batch_eq_8)21   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8, batch_eq_8) {
22     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
23     VUnaryMicrokernelTester()
24       .batch_size(8)
25       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
26   }
27 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8,batch_div_8)28   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8, batch_div_8) {
29     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
30     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
31       VUnaryMicrokernelTester()
32         .batch_size(batch_size)
33         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
34     }
35   }
36 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8,batch_lt_8)37   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8, batch_lt_8) {
38     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
39     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
40       VUnaryMicrokernelTester()
41         .batch_size(batch_size)
42         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
43     }
44   }
45 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8,batch_gt_8)46   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8, batch_gt_8) {
47     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
48     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
49       VUnaryMicrokernelTester()
50         .batch_size(batch_size)
51         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
52     }
53   }
54 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8,inplace)55   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X8, inplace) {
56     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
57     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
58       VUnaryMicrokernelTester()
59         .batch_size(batch_size)
60         .inplace(true)
61         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
62     }
63   }
64 #endif  // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
65 
66 
67 #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16,batch_eq_16)68   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16, batch_eq_16) {
69     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
70     VUnaryMicrokernelTester()
71       .batch_size(16)
72       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
73   }
74 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16,batch_div_16)75   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16, batch_div_16) {
76     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
77     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
78       VUnaryMicrokernelTester()
79         .batch_size(batch_size)
80         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
81     }
82   }
83 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16,batch_lt_16)84   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16, batch_lt_16) {
85     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
86     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
87       VUnaryMicrokernelTester()
88         .batch_size(batch_size)
89         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
90     }
91   }
92 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16,batch_gt_16)93   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16, batch_gt_16) {
94     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
95     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
96       VUnaryMicrokernelTester()
97         .batch_size(batch_size)
98         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
99     }
100   }
101 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16,inplace)102   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X16, inplace) {
103     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
104     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
105       VUnaryMicrokernelTester()
106         .batch_size(batch_size)
107         .inplace(true)
108         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
109     }
110   }
111 #endif  // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
112 
113 
114 #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24,batch_eq_24)115   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24, batch_eq_24) {
116     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
117     VUnaryMicrokernelTester()
118       .batch_size(24)
119       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
120   }
121 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24,batch_div_24)122   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24, batch_div_24) {
123     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
124     for (size_t batch_size = 48; batch_size < 240; batch_size += 24) {
125       VUnaryMicrokernelTester()
126         .batch_size(batch_size)
127         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
128     }
129   }
130 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24,batch_lt_24)131   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24, batch_lt_24) {
132     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
133     for (size_t batch_size = 1; batch_size < 24; batch_size++) {
134       VUnaryMicrokernelTester()
135         .batch_size(batch_size)
136         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
137     }
138   }
139 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24,batch_gt_24)140   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24, batch_gt_24) {
141     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
142     for (size_t batch_size = 25; batch_size < 48; batch_size++) {
143       VUnaryMicrokernelTester()
144         .batch_size(batch_size)
145         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
146     }
147   }
148 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24,inplace)149   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X24, inplace) {
150     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
151     for (size_t batch_size = 1; batch_size <= 120; batch_size += 23) {
152       VUnaryMicrokernelTester()
153         .batch_size(batch_size)
154         .inplace(true)
155         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
156     }
157   }
158 #endif  // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
159 
160 
161 #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32,batch_eq_32)162   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32, batch_eq_32) {
163     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
164     VUnaryMicrokernelTester()
165       .batch_size(32)
166       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
167   }
168 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32,batch_div_32)169   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32, batch_div_32) {
170     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
171     for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
172       VUnaryMicrokernelTester()
173         .batch_size(batch_size)
174         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
175     }
176   }
177 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32,batch_lt_32)178   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32, batch_lt_32) {
179     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
180     for (size_t batch_size = 1; batch_size < 32; batch_size++) {
181       VUnaryMicrokernelTester()
182         .batch_size(batch_size)
183         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
184     }
185   }
186 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32,batch_gt_32)187   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32, batch_gt_32) {
188     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
189     for (size_t batch_size = 33; batch_size < 64; batch_size++) {
190       VUnaryMicrokernelTester()
191         .batch_size(batch_size)
192         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
193     }
194   }
195 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32,inplace)196   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X32, inplace) {
197     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
198     for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
199       VUnaryMicrokernelTester()
200         .batch_size(batch_size)
201         .inplace(true)
202         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
203     }
204   }
205 #endif  // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
206 
207 
208 #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40,batch_eq_40)209   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40, batch_eq_40) {
210     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
211     VUnaryMicrokernelTester()
212       .batch_size(40)
213       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
214   }
215 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40,batch_div_40)216   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40, batch_div_40) {
217     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
218     for (size_t batch_size = 80; batch_size < 400; batch_size += 40) {
219       VUnaryMicrokernelTester()
220         .batch_size(batch_size)
221         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
222     }
223   }
224 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40,batch_lt_40)225   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40, batch_lt_40) {
226     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
227     for (size_t batch_size = 1; batch_size < 40; batch_size++) {
228       VUnaryMicrokernelTester()
229         .batch_size(batch_size)
230         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
231     }
232   }
233 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40,batch_gt_40)234   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40, batch_gt_40) {
235     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
236     for (size_t batch_size = 41; batch_size < 80; batch_size++) {
237       VUnaryMicrokernelTester()
238         .batch_size(batch_size)
239         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
240     }
241   }
242 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40,inplace)243   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X40, inplace) {
244     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
245     for (size_t batch_size = 1; batch_size <= 200; batch_size += 39) {
246       VUnaryMicrokernelTester()
247         .batch_size(batch_size)
248         .inplace(true)
249         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
250     }
251   }
252 #endif  // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
253 
254 
255 #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48,batch_eq_48)256   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48, batch_eq_48) {
257     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
258     VUnaryMicrokernelTester()
259       .batch_size(48)
260       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
261   }
262 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48,batch_div_48)263   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48, batch_div_48) {
264     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
265     for (size_t batch_size = 96; batch_size < 480; batch_size += 48) {
266       VUnaryMicrokernelTester()
267         .batch_size(batch_size)
268         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
269     }
270   }
271 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48,batch_lt_48)272   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48, batch_lt_48) {
273     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
274     for (size_t batch_size = 1; batch_size < 48; batch_size++) {
275       VUnaryMicrokernelTester()
276         .batch_size(batch_size)
277         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
278     }
279   }
280 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48,batch_gt_48)281   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48, batch_gt_48) {
282     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
283     for (size_t batch_size = 49; batch_size < 96; batch_size++) {
284       VUnaryMicrokernelTester()
285         .batch_size(batch_size)
286         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
287     }
288   }
289 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48,inplace)290   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X48, inplace) {
291     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
292     for (size_t batch_size = 1; batch_size <= 240; batch_size += 47) {
293       VUnaryMicrokernelTester()
294         .batch_size(batch_size)
295         .inplace(true)
296         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
297     }
298   }
299 #endif  // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
300 
301 
302 #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56,batch_eq_56)303   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56, batch_eq_56) {
304     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
305     VUnaryMicrokernelTester()
306       .batch_size(56)
307       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
308   }
309 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56,batch_div_56)310   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56, batch_div_56) {
311     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
312     for (size_t batch_size = 112; batch_size < 560; batch_size += 56) {
313       VUnaryMicrokernelTester()
314         .batch_size(batch_size)
315         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
316     }
317   }
318 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56,batch_lt_56)319   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56, batch_lt_56) {
320     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
321     for (size_t batch_size = 1; batch_size < 56; batch_size++) {
322       VUnaryMicrokernelTester()
323         .batch_size(batch_size)
324         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
325     }
326   }
327 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56,batch_gt_56)328   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56, batch_gt_56) {
329     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
330     for (size_t batch_size = 57; batch_size < 112; batch_size++) {
331       VUnaryMicrokernelTester()
332         .batch_size(batch_size)
333         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
334     }
335   }
336 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56,inplace)337   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X56, inplace) {
338     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
339     for (size_t batch_size = 1; batch_size <= 280; batch_size += 55) {
340       VUnaryMicrokernelTester()
341         .batch_size(batch_size)
342         .inplace(true)
343         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
344     }
345   }
346 #endif  // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
347 
348 
349 #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64,batch_eq_64)350   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64, batch_eq_64) {
351     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
352     VUnaryMicrokernelTester()
353       .batch_size(64)
354       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
355   }
356 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64,batch_div_64)357   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64, batch_div_64) {
358     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
359     for (size_t batch_size = 128; batch_size < 640; batch_size += 64) {
360       VUnaryMicrokernelTester()
361         .batch_size(batch_size)
362         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
363     }
364   }
365 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64,batch_lt_64)366   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64, batch_lt_64) {
367     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
368     for (size_t batch_size = 1; batch_size < 64; batch_size++) {
369       VUnaryMicrokernelTester()
370         .batch_size(batch_size)
371         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
372     }
373   }
374 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64,batch_gt_64)375   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64, batch_gt_64) {
376     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
377     for (size_t batch_size = 65; batch_size < 128; batch_size++) {
378       VUnaryMicrokernelTester()
379         .batch_size(batch_size)
380         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
381     }
382   }
383 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64,inplace)384   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_DIV_X64, inplace) {
385     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
386     for (size_t batch_size = 1; batch_size <= 320; batch_size += 63) {
387       VUnaryMicrokernelTester()
388         .batch_size(batch_size)
389         .inplace(true)
390         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_div_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
391     }
392   }
393 #endif  // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64
394 
395 
396 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8,batch_eq_8)397   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8, batch_eq_8) {
398     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
399     VUnaryMicrokernelTester()
400       .batch_size(8)
401       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
402   }
403 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8,batch_div_8)404   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8, batch_div_8) {
405     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
406     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
407       VUnaryMicrokernelTester()
408         .batch_size(batch_size)
409         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
410     }
411   }
412 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8,batch_lt_8)413   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8, batch_lt_8) {
414     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
415     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
416       VUnaryMicrokernelTester()
417         .batch_size(batch_size)
418         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
419     }
420   }
421 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8,batch_gt_8)422   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8, batch_gt_8) {
423     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
424     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
425       VUnaryMicrokernelTester()
426         .batch_size(batch_size)
427         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
428     }
429   }
430 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8,inplace)431   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X8, inplace) {
432     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
433     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
434       VUnaryMicrokernelTester()
435         .batch_size(batch_size)
436         .inplace(true)
437         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
438     }
439   }
440 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
441 
442 
443 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16,batch_eq_16)444   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16, batch_eq_16) {
445     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
446     VUnaryMicrokernelTester()
447       .batch_size(16)
448       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
449   }
450 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16,batch_div_16)451   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16, batch_div_16) {
452     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
453     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
454       VUnaryMicrokernelTester()
455         .batch_size(batch_size)
456         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
457     }
458   }
459 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16,batch_lt_16)460   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16, batch_lt_16) {
461     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
462     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
463       VUnaryMicrokernelTester()
464         .batch_size(batch_size)
465         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
466     }
467   }
468 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16,batch_gt_16)469   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16, batch_gt_16) {
470     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
471     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
472       VUnaryMicrokernelTester()
473         .batch_size(batch_size)
474         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
475     }
476   }
477 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16,inplace)478   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X16, inplace) {
479     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
480     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
481       VUnaryMicrokernelTester()
482         .batch_size(batch_size)
483         .inplace(true)
484         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
485     }
486   }
487 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
488 
489 
490 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24,batch_eq_24)491   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24, batch_eq_24) {
492     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
493     VUnaryMicrokernelTester()
494       .batch_size(24)
495       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
496   }
497 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24,batch_div_24)498   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24, batch_div_24) {
499     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
500     for (size_t batch_size = 48; batch_size < 240; batch_size += 24) {
501       VUnaryMicrokernelTester()
502         .batch_size(batch_size)
503         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
504     }
505   }
506 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24,batch_lt_24)507   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24, batch_lt_24) {
508     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
509     for (size_t batch_size = 1; batch_size < 24; batch_size++) {
510       VUnaryMicrokernelTester()
511         .batch_size(batch_size)
512         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
513     }
514   }
515 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24,batch_gt_24)516   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24, batch_gt_24) {
517     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
518     for (size_t batch_size = 25; batch_size < 48; batch_size++) {
519       VUnaryMicrokernelTester()
520         .batch_size(batch_size)
521         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
522     }
523   }
524 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24,inplace)525   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X24, inplace) {
526     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
527     for (size_t batch_size = 1; batch_size <= 120; batch_size += 23) {
528       VUnaryMicrokernelTester()
529         .batch_size(batch_size)
530         .inplace(true)
531         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
532     }
533   }
534 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
535 
536 
537 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32,batch_eq_32)538   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32, batch_eq_32) {
539     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
540     VUnaryMicrokernelTester()
541       .batch_size(32)
542       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
543   }
544 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32,batch_div_32)545   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32, batch_div_32) {
546     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
547     for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
548       VUnaryMicrokernelTester()
549         .batch_size(batch_size)
550         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
551     }
552   }
553 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32,batch_lt_32)554   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32, batch_lt_32) {
555     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
556     for (size_t batch_size = 1; batch_size < 32; batch_size++) {
557       VUnaryMicrokernelTester()
558         .batch_size(batch_size)
559         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
560     }
561   }
562 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32,batch_gt_32)563   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32, batch_gt_32) {
564     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
565     for (size_t batch_size = 33; batch_size < 64; batch_size++) {
566       VUnaryMicrokernelTester()
567         .batch_size(batch_size)
568         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
569     }
570   }
571 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32,inplace)572   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X32, inplace) {
573     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
574     for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
575       VUnaryMicrokernelTester()
576         .batch_size(batch_size)
577         .inplace(true)
578         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
579     }
580   }
581 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
582 
583 
584 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40,batch_eq_40)585   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40, batch_eq_40) {
586     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
587     VUnaryMicrokernelTester()
588       .batch_size(40)
589       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
590   }
591 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40,batch_div_40)592   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40, batch_div_40) {
593     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
594     for (size_t batch_size = 80; batch_size < 400; batch_size += 40) {
595       VUnaryMicrokernelTester()
596         .batch_size(batch_size)
597         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
598     }
599   }
600 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40,batch_lt_40)601   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40, batch_lt_40) {
602     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
603     for (size_t batch_size = 1; batch_size < 40; batch_size++) {
604       VUnaryMicrokernelTester()
605         .batch_size(batch_size)
606         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
607     }
608   }
609 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40,batch_gt_40)610   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40, batch_gt_40) {
611     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
612     for (size_t batch_size = 41; batch_size < 80; batch_size++) {
613       VUnaryMicrokernelTester()
614         .batch_size(batch_size)
615         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
616     }
617   }
618 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40,inplace)619   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X40, inplace) {
620     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
621     for (size_t batch_size = 1; batch_size <= 200; batch_size += 39) {
622       VUnaryMicrokernelTester()
623         .batch_size(batch_size)
624         .inplace(true)
625         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
626     }
627   }
628 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
629 
630 
631 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48,batch_eq_48)632   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48, batch_eq_48) {
633     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
634     VUnaryMicrokernelTester()
635       .batch_size(48)
636       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
637   }
638 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48,batch_div_48)639   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48, batch_div_48) {
640     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
641     for (size_t batch_size = 96; batch_size < 480; batch_size += 48) {
642       VUnaryMicrokernelTester()
643         .batch_size(batch_size)
644         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
645     }
646   }
647 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48,batch_lt_48)648   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48, batch_lt_48) {
649     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
650     for (size_t batch_size = 1; batch_size < 48; batch_size++) {
651       VUnaryMicrokernelTester()
652         .batch_size(batch_size)
653         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
654     }
655   }
656 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48,batch_gt_48)657   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48, batch_gt_48) {
658     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
659     for (size_t batch_size = 49; batch_size < 96; batch_size++) {
660       VUnaryMicrokernelTester()
661         .batch_size(batch_size)
662         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
663     }
664   }
665 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48,inplace)666   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X48, inplace) {
667     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
668     for (size_t batch_size = 1; batch_size <= 240; batch_size += 47) {
669       VUnaryMicrokernelTester()
670         .batch_size(batch_size)
671         .inplace(true)
672         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
673     }
674   }
675 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
676 
677 
678 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56,batch_eq_56)679   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56, batch_eq_56) {
680     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
681     VUnaryMicrokernelTester()
682       .batch_size(56)
683       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
684   }
685 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56,batch_div_56)686   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56, batch_div_56) {
687     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
688     for (size_t batch_size = 112; batch_size < 560; batch_size += 56) {
689       VUnaryMicrokernelTester()
690         .batch_size(batch_size)
691         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
692     }
693   }
694 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56,batch_lt_56)695   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56, batch_lt_56) {
696     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
697     for (size_t batch_size = 1; batch_size < 56; batch_size++) {
698       VUnaryMicrokernelTester()
699         .batch_size(batch_size)
700         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
701     }
702   }
703 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56,batch_gt_56)704   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56, batch_gt_56) {
705     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
706     for (size_t batch_size = 57; batch_size < 112; batch_size++) {
707       VUnaryMicrokernelTester()
708         .batch_size(batch_size)
709         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
710     }
711   }
712 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56,inplace)713   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X56, inplace) {
714     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
715     for (size_t batch_size = 1; batch_size <= 280; batch_size += 55) {
716       VUnaryMicrokernelTester()
717         .batch_size(batch_size)
718         .inplace(true)
719         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
720     }
721   }
722 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
723 
724 
725 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64,batch_eq_64)726   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64, batch_eq_64) {
727     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
728     VUnaryMicrokernelTester()
729       .batch_size(64)
730       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
731   }
732 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64,batch_div_64)733   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64, batch_div_64) {
734     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
735     for (size_t batch_size = 128; batch_size < 640; batch_size += 64) {
736       VUnaryMicrokernelTester()
737         .batch_size(batch_size)
738         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
739     }
740   }
741 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64,batch_lt_64)742   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64, batch_lt_64) {
743     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
744     for (size_t batch_size = 1; batch_size < 64; batch_size++) {
745       VUnaryMicrokernelTester()
746         .batch_size(batch_size)
747         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
748     }
749   }
750 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64,batch_gt_64)751   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64, batch_gt_64) {
752     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
753     for (size_t batch_size = 65; batch_size < 128; batch_size++) {
754       VUnaryMicrokernelTester()
755         .batch_size(batch_size)
756         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
757     }
758   }
759 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64,inplace)760   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1FMA_X64, inplace) {
761     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
762     for (size_t batch_size = 1; batch_size <= 320; batch_size += 63) {
763       VUnaryMicrokernelTester()
764         .batch_size(batch_size)
765         .inplace(true)
766         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1fma_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
767     }
768   }
769 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
770 
771 
772 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8,batch_eq_8)773   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8, batch_eq_8) {
774     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
775     VUnaryMicrokernelTester()
776       .batch_size(8)
777       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
778   }
779 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8,batch_div_8)780   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8, batch_div_8) {
781     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
782     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
783       VUnaryMicrokernelTester()
784         .batch_size(batch_size)
785         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
786     }
787   }
788 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8,batch_lt_8)789   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8, batch_lt_8) {
790     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
791     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
792       VUnaryMicrokernelTester()
793         .batch_size(batch_size)
794         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
795     }
796   }
797 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8,batch_gt_8)798   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8, batch_gt_8) {
799     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
800     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
801       VUnaryMicrokernelTester()
802         .batch_size(batch_size)
803         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
804     }
805   }
806 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8,inplace)807   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X8, inplace) {
808     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
809     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
810       VUnaryMicrokernelTester()
811         .batch_size(batch_size)
812         .inplace(true)
813         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x8, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
814     }
815   }
816 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
817 
818 
819 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16,batch_eq_16)820   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16, batch_eq_16) {
821     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
822     VUnaryMicrokernelTester()
823       .batch_size(16)
824       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
825   }
826 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16,batch_div_16)827   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16, batch_div_16) {
828     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
829     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
830       VUnaryMicrokernelTester()
831         .batch_size(batch_size)
832         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
833     }
834   }
835 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16,batch_lt_16)836   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16, batch_lt_16) {
837     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
838     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
839       VUnaryMicrokernelTester()
840         .batch_size(batch_size)
841         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
842     }
843   }
844 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16,batch_gt_16)845   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16, batch_gt_16) {
846     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
847     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
848       VUnaryMicrokernelTester()
849         .batch_size(batch_size)
850         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
851     }
852   }
853 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16,inplace)854   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X16, inplace) {
855     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
856     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
857       VUnaryMicrokernelTester()
858         .batch_size(batch_size)
859         .inplace(true)
860         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x16, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
861     }
862   }
863 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
864 
865 
866 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24,batch_eq_24)867   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24, batch_eq_24) {
868     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
869     VUnaryMicrokernelTester()
870       .batch_size(24)
871       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
872   }
873 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24,batch_div_24)874   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24, batch_div_24) {
875     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
876     for (size_t batch_size = 48; batch_size < 240; batch_size += 24) {
877       VUnaryMicrokernelTester()
878         .batch_size(batch_size)
879         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
880     }
881   }
882 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24,batch_lt_24)883   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24, batch_lt_24) {
884     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
885     for (size_t batch_size = 1; batch_size < 24; batch_size++) {
886       VUnaryMicrokernelTester()
887         .batch_size(batch_size)
888         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
889     }
890   }
891 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24,batch_gt_24)892   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24, batch_gt_24) {
893     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
894     for (size_t batch_size = 25; batch_size < 48; batch_size++) {
895       VUnaryMicrokernelTester()
896         .batch_size(batch_size)
897         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
898     }
899   }
900 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24,inplace)901   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X24, inplace) {
902     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
903     for (size_t batch_size = 1; batch_size <= 120; batch_size += 23) {
904       VUnaryMicrokernelTester()
905         .batch_size(batch_size)
906         .inplace(true)
907         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x24, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
908     }
909   }
910 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
911 
912 
913 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32,batch_eq_32)914   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32, batch_eq_32) {
915     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
916     VUnaryMicrokernelTester()
917       .batch_size(32)
918       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
919   }
920 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32,batch_div_32)921   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32, batch_div_32) {
922     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
923     for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
924       VUnaryMicrokernelTester()
925         .batch_size(batch_size)
926         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
927     }
928   }
929 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32,batch_lt_32)930   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32, batch_lt_32) {
931     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
932     for (size_t batch_size = 1; batch_size < 32; batch_size++) {
933       VUnaryMicrokernelTester()
934         .batch_size(batch_size)
935         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
936     }
937   }
938 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32,batch_gt_32)939   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32, batch_gt_32) {
940     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
941     for (size_t batch_size = 33; batch_size < 64; batch_size++) {
942       VUnaryMicrokernelTester()
943         .batch_size(batch_size)
944         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
945     }
946   }
947 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32,inplace)948   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X32, inplace) {
949     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
950     for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
951       VUnaryMicrokernelTester()
952         .batch_size(batch_size)
953         .inplace(true)
954         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x32, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
955     }
956   }
957 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
958 
959 
960 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40,batch_eq_40)961   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40, batch_eq_40) {
962     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
963     VUnaryMicrokernelTester()
964       .batch_size(40)
965       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
966   }
967 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40,batch_div_40)968   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40, batch_div_40) {
969     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
970     for (size_t batch_size = 80; batch_size < 400; batch_size += 40) {
971       VUnaryMicrokernelTester()
972         .batch_size(batch_size)
973         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
974     }
975   }
976 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40,batch_lt_40)977   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40, batch_lt_40) {
978     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
979     for (size_t batch_size = 1; batch_size < 40; batch_size++) {
980       VUnaryMicrokernelTester()
981         .batch_size(batch_size)
982         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
983     }
984   }
985 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40,batch_gt_40)986   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40, batch_gt_40) {
987     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
988     for (size_t batch_size = 41; batch_size < 80; batch_size++) {
989       VUnaryMicrokernelTester()
990         .batch_size(batch_size)
991         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
992     }
993   }
994 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40,inplace)995   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X40, inplace) {
996     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
997     for (size_t batch_size = 1; batch_size <= 200; batch_size += 39) {
998       VUnaryMicrokernelTester()
999         .batch_size(batch_size)
1000         .inplace(true)
1001         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x40, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1002     }
1003   }
1004 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
1005 
1006 
1007 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48,batch_eq_48)1008   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48, batch_eq_48) {
1009     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1010     VUnaryMicrokernelTester()
1011       .batch_size(48)
1012       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1013   }
1014 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48,batch_div_48)1015   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48, batch_div_48) {
1016     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1017     for (size_t batch_size = 96; batch_size < 480; batch_size += 48) {
1018       VUnaryMicrokernelTester()
1019         .batch_size(batch_size)
1020         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1021     }
1022   }
1023 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48,batch_lt_48)1024   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48, batch_lt_48) {
1025     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1026     for (size_t batch_size = 1; batch_size < 48; batch_size++) {
1027       VUnaryMicrokernelTester()
1028         .batch_size(batch_size)
1029         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1030     }
1031   }
1032 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48,batch_gt_48)1033   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48, batch_gt_48) {
1034     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1035     for (size_t batch_size = 49; batch_size < 96; batch_size++) {
1036       VUnaryMicrokernelTester()
1037         .batch_size(batch_size)
1038         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1039     }
1040   }
1041 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48,inplace)1042   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X48, inplace) {
1043     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1044     for (size_t batch_size = 1; batch_size <= 240; batch_size += 47) {
1045       VUnaryMicrokernelTester()
1046         .batch_size(batch_size)
1047         .inplace(true)
1048         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x48, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1049     }
1050   }
1051 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
1052 
1053 
1054 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56,batch_eq_56)1055   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56, batch_eq_56) {
1056     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1057     VUnaryMicrokernelTester()
1058       .batch_size(56)
1059       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1060   }
1061 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56,batch_div_56)1062   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56, batch_div_56) {
1063     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1064     for (size_t batch_size = 112; batch_size < 560; batch_size += 56) {
1065       VUnaryMicrokernelTester()
1066         .batch_size(batch_size)
1067         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1068     }
1069   }
1070 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56,batch_lt_56)1071   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56, batch_lt_56) {
1072     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1073     for (size_t batch_size = 1; batch_size < 56; batch_size++) {
1074       VUnaryMicrokernelTester()
1075         .batch_size(batch_size)
1076         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1077     }
1078   }
1079 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56,batch_gt_56)1080   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56, batch_gt_56) {
1081     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1082     for (size_t batch_size = 57; batch_size < 112; batch_size++) {
1083       VUnaryMicrokernelTester()
1084         .batch_size(batch_size)
1085         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1086     }
1087   }
1088 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56,inplace)1089   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X56, inplace) {
1090     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1091     for (size_t batch_size = 1; batch_size <= 280; batch_size += 55) {
1092       VUnaryMicrokernelTester()
1093         .batch_size(batch_size)
1094         .inplace(true)
1095         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x56, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1096     }
1097   }
1098 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
1099 
1100 
1101 #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64,batch_eq_64)1102   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64, batch_eq_64) {
1103     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1104     VUnaryMicrokernelTester()
1105       .batch_size(64)
1106       .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1107   }
1108 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64,batch_div_64)1109   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64, batch_div_64) {
1110     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1111     for (size_t batch_size = 128; batch_size < 640; batch_size += 64) {
1112       VUnaryMicrokernelTester()
1113         .batch_size(batch_size)
1114         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1115     }
1116   }
1117 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64,batch_lt_64)1118   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64, batch_lt_64) {
1119     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1120     for (size_t batch_size = 1; batch_size < 64; batch_size++) {
1121       VUnaryMicrokernelTester()
1122         .batch_size(batch_size)
1123         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1124     }
1125   }
1126 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64,batch_gt_64)1127   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64, batch_gt_64) {
1128     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1129     for (size_t batch_size = 65; batch_size < 128; batch_size++) {
1130       VUnaryMicrokernelTester()
1131         .batch_size(batch_size)
1132         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1133     }
1134   }
1135 
TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64,inplace)1136   TEST(F16_VSIGMOID__NEONFP16ARITH_RR2_P2_NR1RECPS_X64, inplace) {
1137     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
1138     for (size_t batch_size = 1; batch_size <= 320; batch_size += 63) {
1139       VUnaryMicrokernelTester()
1140         .batch_size(batch_size)
1141         .inplace(true)
1142         .Test(xnn_f16_vsigmoid_ukernel__neonfp16arith_rr2_p2_nr1recps_x64, xnn_init_f16_sigmoid_neonfp16arith_rr2_p2_params);
1143     }
1144   }
1145 #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
1146 
1147 
1148 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8,batch_eq_8)1149   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8, batch_eq_8) {
1150     TEST_REQUIRES_X86_AVX2;
1151     VUnaryMicrokernelTester()
1152       .batch_size(8)
1153       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1154   }
1155 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8,batch_div_8)1156   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8, batch_div_8) {
1157     TEST_REQUIRES_X86_AVX2;
1158     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
1159       VUnaryMicrokernelTester()
1160         .batch_size(batch_size)
1161         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1162     }
1163   }
1164 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8,batch_lt_8)1165   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8, batch_lt_8) {
1166     TEST_REQUIRES_X86_AVX2;
1167     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
1168       VUnaryMicrokernelTester()
1169         .batch_size(batch_size)
1170         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1171     }
1172   }
1173 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8,batch_gt_8)1174   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8, batch_gt_8) {
1175     TEST_REQUIRES_X86_AVX2;
1176     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
1177       VUnaryMicrokernelTester()
1178         .batch_size(batch_size)
1179         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1180     }
1181   }
1182 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8,inplace)1183   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X8, inplace) {
1184     TEST_REQUIRES_X86_AVX2;
1185     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1186       VUnaryMicrokernelTester()
1187         .batch_size(batch_size)
1188         .inplace(true)
1189         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1190     }
1191   }
1192 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1193 
1194 
1195 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16,batch_eq_16)1196   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16, batch_eq_16) {
1197     TEST_REQUIRES_X86_AVX2;
1198     VUnaryMicrokernelTester()
1199       .batch_size(16)
1200       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1201   }
1202 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16,batch_div_16)1203   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16, batch_div_16) {
1204     TEST_REQUIRES_X86_AVX2;
1205     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
1206       VUnaryMicrokernelTester()
1207         .batch_size(batch_size)
1208         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1209     }
1210   }
1211 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16,batch_lt_16)1212   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16, batch_lt_16) {
1213     TEST_REQUIRES_X86_AVX2;
1214     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
1215       VUnaryMicrokernelTester()
1216         .batch_size(batch_size)
1217         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1218     }
1219   }
1220 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16,batch_gt_16)1221   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16, batch_gt_16) {
1222     TEST_REQUIRES_X86_AVX2;
1223     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
1224       VUnaryMicrokernelTester()
1225         .batch_size(batch_size)
1226         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1227     }
1228   }
1229 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16,inplace)1230   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X16, inplace) {
1231     TEST_REQUIRES_X86_AVX2;
1232     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
1233       VUnaryMicrokernelTester()
1234         .batch_size(batch_size)
1235         .inplace(true)
1236         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1237     }
1238   }
1239 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1240 
1241 
1242 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24,batch_eq_24)1243   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24, batch_eq_24) {
1244     TEST_REQUIRES_X86_AVX2;
1245     VUnaryMicrokernelTester()
1246       .batch_size(24)
1247       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1248   }
1249 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24,batch_div_24)1250   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24, batch_div_24) {
1251     TEST_REQUIRES_X86_AVX2;
1252     for (size_t batch_size = 48; batch_size < 240; batch_size += 24) {
1253       VUnaryMicrokernelTester()
1254         .batch_size(batch_size)
1255         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1256     }
1257   }
1258 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24,batch_lt_24)1259   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24, batch_lt_24) {
1260     TEST_REQUIRES_X86_AVX2;
1261     for (size_t batch_size = 1; batch_size < 24; batch_size++) {
1262       VUnaryMicrokernelTester()
1263         .batch_size(batch_size)
1264         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1265     }
1266   }
1267 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24,batch_gt_24)1268   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24, batch_gt_24) {
1269     TEST_REQUIRES_X86_AVX2;
1270     for (size_t batch_size = 25; batch_size < 48; batch_size++) {
1271       VUnaryMicrokernelTester()
1272         .batch_size(batch_size)
1273         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1274     }
1275   }
1276 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24,inplace)1277   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X24, inplace) {
1278     TEST_REQUIRES_X86_AVX2;
1279     for (size_t batch_size = 1; batch_size <= 120; batch_size += 23) {
1280       VUnaryMicrokernelTester()
1281         .batch_size(batch_size)
1282         .inplace(true)
1283         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1284     }
1285   }
1286 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1287 
1288 
1289 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32,batch_eq_32)1290   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32, batch_eq_32) {
1291     TEST_REQUIRES_X86_AVX2;
1292     VUnaryMicrokernelTester()
1293       .batch_size(32)
1294       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1295   }
1296 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32,batch_div_32)1297   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32, batch_div_32) {
1298     TEST_REQUIRES_X86_AVX2;
1299     for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
1300       VUnaryMicrokernelTester()
1301         .batch_size(batch_size)
1302         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1303     }
1304   }
1305 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32,batch_lt_32)1306   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32, batch_lt_32) {
1307     TEST_REQUIRES_X86_AVX2;
1308     for (size_t batch_size = 1; batch_size < 32; batch_size++) {
1309       VUnaryMicrokernelTester()
1310         .batch_size(batch_size)
1311         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1312     }
1313   }
1314 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32,batch_gt_32)1315   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32, batch_gt_32) {
1316     TEST_REQUIRES_X86_AVX2;
1317     for (size_t batch_size = 33; batch_size < 64; batch_size++) {
1318       VUnaryMicrokernelTester()
1319         .batch_size(batch_size)
1320         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1321     }
1322   }
1323 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32,inplace)1324   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X32, inplace) {
1325     TEST_REQUIRES_X86_AVX2;
1326     for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
1327       VUnaryMicrokernelTester()
1328         .batch_size(batch_size)
1329         .inplace(true)
1330         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1331     }
1332   }
1333 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1334 
1335 
1336 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40,batch_eq_40)1337   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40, batch_eq_40) {
1338     TEST_REQUIRES_X86_AVX2;
1339     VUnaryMicrokernelTester()
1340       .batch_size(40)
1341       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1342   }
1343 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40,batch_div_40)1344   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40, batch_div_40) {
1345     TEST_REQUIRES_X86_AVX2;
1346     for (size_t batch_size = 80; batch_size < 400; batch_size += 40) {
1347       VUnaryMicrokernelTester()
1348         .batch_size(batch_size)
1349         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1350     }
1351   }
1352 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40,batch_lt_40)1353   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40, batch_lt_40) {
1354     TEST_REQUIRES_X86_AVX2;
1355     for (size_t batch_size = 1; batch_size < 40; batch_size++) {
1356       VUnaryMicrokernelTester()
1357         .batch_size(batch_size)
1358         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1359     }
1360   }
1361 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40,batch_gt_40)1362   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40, batch_gt_40) {
1363     TEST_REQUIRES_X86_AVX2;
1364     for (size_t batch_size = 41; batch_size < 80; batch_size++) {
1365       VUnaryMicrokernelTester()
1366         .batch_size(batch_size)
1367         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1368     }
1369   }
1370 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40,inplace)1371   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X40, inplace) {
1372     TEST_REQUIRES_X86_AVX2;
1373     for (size_t batch_size = 1; batch_size <= 200; batch_size += 39) {
1374       VUnaryMicrokernelTester()
1375         .batch_size(batch_size)
1376         .inplace(true)
1377         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1378     }
1379   }
1380 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1381 
1382 
1383 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48,batch_eq_48)1384   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48, batch_eq_48) {
1385     TEST_REQUIRES_X86_AVX2;
1386     VUnaryMicrokernelTester()
1387       .batch_size(48)
1388       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1389   }
1390 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48,batch_div_48)1391   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48, batch_div_48) {
1392     TEST_REQUIRES_X86_AVX2;
1393     for (size_t batch_size = 96; batch_size < 480; batch_size += 48) {
1394       VUnaryMicrokernelTester()
1395         .batch_size(batch_size)
1396         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1397     }
1398   }
1399 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48,batch_lt_48)1400   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48, batch_lt_48) {
1401     TEST_REQUIRES_X86_AVX2;
1402     for (size_t batch_size = 1; batch_size < 48; batch_size++) {
1403       VUnaryMicrokernelTester()
1404         .batch_size(batch_size)
1405         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1406     }
1407   }
1408 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48,batch_gt_48)1409   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48, batch_gt_48) {
1410     TEST_REQUIRES_X86_AVX2;
1411     for (size_t batch_size = 49; batch_size < 96; batch_size++) {
1412       VUnaryMicrokernelTester()
1413         .batch_size(batch_size)
1414         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1415     }
1416   }
1417 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48,inplace)1418   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X48, inplace) {
1419     TEST_REQUIRES_X86_AVX2;
1420     for (size_t batch_size = 1; batch_size <= 240; batch_size += 47) {
1421       VUnaryMicrokernelTester()
1422         .batch_size(batch_size)
1423         .inplace(true)
1424         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1425     }
1426   }
1427 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1428 
1429 
1430 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56,batch_eq_56)1431   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56, batch_eq_56) {
1432     TEST_REQUIRES_X86_AVX2;
1433     VUnaryMicrokernelTester()
1434       .batch_size(56)
1435       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1436   }
1437 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56,batch_div_56)1438   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56, batch_div_56) {
1439     TEST_REQUIRES_X86_AVX2;
1440     for (size_t batch_size = 112; batch_size < 560; batch_size += 56) {
1441       VUnaryMicrokernelTester()
1442         .batch_size(batch_size)
1443         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1444     }
1445   }
1446 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56,batch_lt_56)1447   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56, batch_lt_56) {
1448     TEST_REQUIRES_X86_AVX2;
1449     for (size_t batch_size = 1; batch_size < 56; batch_size++) {
1450       VUnaryMicrokernelTester()
1451         .batch_size(batch_size)
1452         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1453     }
1454   }
1455 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56,batch_gt_56)1456   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56, batch_gt_56) {
1457     TEST_REQUIRES_X86_AVX2;
1458     for (size_t batch_size = 57; batch_size < 112; batch_size++) {
1459       VUnaryMicrokernelTester()
1460         .batch_size(batch_size)
1461         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1462     }
1463   }
1464 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56,inplace)1465   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X56, inplace) {
1466     TEST_REQUIRES_X86_AVX2;
1467     for (size_t batch_size = 1; batch_size <= 280; batch_size += 55) {
1468       VUnaryMicrokernelTester()
1469         .batch_size(batch_size)
1470         .inplace(true)
1471         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1472     }
1473   }
1474 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1475 
1476 
1477 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64,batch_eq_64)1478   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64, batch_eq_64) {
1479     TEST_REQUIRES_X86_AVX2;
1480     VUnaryMicrokernelTester()
1481       .batch_size(64)
1482       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1483   }
1484 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64,batch_div_64)1485   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64, batch_div_64) {
1486     TEST_REQUIRES_X86_AVX2;
1487     for (size_t batch_size = 128; batch_size < 640; batch_size += 64) {
1488       VUnaryMicrokernelTester()
1489         .batch_size(batch_size)
1490         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1491     }
1492   }
1493 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64,batch_lt_64)1494   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64, batch_lt_64) {
1495     TEST_REQUIRES_X86_AVX2;
1496     for (size_t batch_size = 1; batch_size < 64; batch_size++) {
1497       VUnaryMicrokernelTester()
1498         .batch_size(batch_size)
1499         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1500     }
1501   }
1502 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64,batch_gt_64)1503   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64, batch_gt_64) {
1504     TEST_REQUIRES_X86_AVX2;
1505     for (size_t batch_size = 65; batch_size < 128; batch_size++) {
1506       VUnaryMicrokernelTester()
1507         .batch_size(batch_size)
1508         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1509     }
1510   }
1511 
TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64,inplace)1512   TEST(F16_VSIGMOID__AVX2_RR1_P2_DIV_X64, inplace) {
1513     TEST_REQUIRES_X86_AVX2;
1514     for (size_t batch_size = 1; batch_size <= 320; batch_size += 63) {
1515       VUnaryMicrokernelTester()
1516         .batch_size(batch_size)
1517         .inplace(true)
1518         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_div_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1519     }
1520   }
1521 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1522 
1523 
1524 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8,batch_eq_8)1525   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8, batch_eq_8) {
1526     TEST_REQUIRES_X86_AVX2;
1527     VUnaryMicrokernelTester()
1528       .batch_size(8)
1529       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1530   }
1531 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8,batch_div_8)1532   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8, batch_div_8) {
1533     TEST_REQUIRES_X86_AVX2;
1534     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
1535       VUnaryMicrokernelTester()
1536         .batch_size(batch_size)
1537         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1538     }
1539   }
1540 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8,batch_lt_8)1541   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8, batch_lt_8) {
1542     TEST_REQUIRES_X86_AVX2;
1543     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
1544       VUnaryMicrokernelTester()
1545         .batch_size(batch_size)
1546         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1547     }
1548   }
1549 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8,batch_gt_8)1550   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8, batch_gt_8) {
1551     TEST_REQUIRES_X86_AVX2;
1552     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
1553       VUnaryMicrokernelTester()
1554         .batch_size(batch_size)
1555         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1556     }
1557   }
1558 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8,inplace)1559   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X8, inplace) {
1560     TEST_REQUIRES_X86_AVX2;
1561     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
1562       VUnaryMicrokernelTester()
1563         .batch_size(batch_size)
1564         .inplace(true)
1565         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x8, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1566     }
1567   }
1568 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1569 
1570 
1571 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16,batch_eq_16)1572   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16, batch_eq_16) {
1573     TEST_REQUIRES_X86_AVX2;
1574     VUnaryMicrokernelTester()
1575       .batch_size(16)
1576       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1577   }
1578 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16,batch_div_16)1579   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16, batch_div_16) {
1580     TEST_REQUIRES_X86_AVX2;
1581     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
1582       VUnaryMicrokernelTester()
1583         .batch_size(batch_size)
1584         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1585     }
1586   }
1587 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16,batch_lt_16)1588   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16, batch_lt_16) {
1589     TEST_REQUIRES_X86_AVX2;
1590     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
1591       VUnaryMicrokernelTester()
1592         .batch_size(batch_size)
1593         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1594     }
1595   }
1596 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16,batch_gt_16)1597   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16, batch_gt_16) {
1598     TEST_REQUIRES_X86_AVX2;
1599     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
1600       VUnaryMicrokernelTester()
1601         .batch_size(batch_size)
1602         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1603     }
1604   }
1605 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16,inplace)1606   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X16, inplace) {
1607     TEST_REQUIRES_X86_AVX2;
1608     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
1609       VUnaryMicrokernelTester()
1610         .batch_size(batch_size)
1611         .inplace(true)
1612         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x16, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1613     }
1614   }
1615 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1616 
1617 
1618 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24,batch_eq_24)1619   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24, batch_eq_24) {
1620     TEST_REQUIRES_X86_AVX2;
1621     VUnaryMicrokernelTester()
1622       .batch_size(24)
1623       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1624   }
1625 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24,batch_div_24)1626   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24, batch_div_24) {
1627     TEST_REQUIRES_X86_AVX2;
1628     for (size_t batch_size = 48; batch_size < 240; batch_size += 24) {
1629       VUnaryMicrokernelTester()
1630         .batch_size(batch_size)
1631         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1632     }
1633   }
1634 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24,batch_lt_24)1635   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24, batch_lt_24) {
1636     TEST_REQUIRES_X86_AVX2;
1637     for (size_t batch_size = 1; batch_size < 24; batch_size++) {
1638       VUnaryMicrokernelTester()
1639         .batch_size(batch_size)
1640         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1641     }
1642   }
1643 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24,batch_gt_24)1644   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24, batch_gt_24) {
1645     TEST_REQUIRES_X86_AVX2;
1646     for (size_t batch_size = 25; batch_size < 48; batch_size++) {
1647       VUnaryMicrokernelTester()
1648         .batch_size(batch_size)
1649         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1650     }
1651   }
1652 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24,inplace)1653   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X24, inplace) {
1654     TEST_REQUIRES_X86_AVX2;
1655     for (size_t batch_size = 1; batch_size <= 120; batch_size += 23) {
1656       VUnaryMicrokernelTester()
1657         .batch_size(batch_size)
1658         .inplace(true)
1659         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x24, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1660     }
1661   }
1662 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1663 
1664 
1665 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32,batch_eq_32)1666   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32, batch_eq_32) {
1667     TEST_REQUIRES_X86_AVX2;
1668     VUnaryMicrokernelTester()
1669       .batch_size(32)
1670       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1671   }
1672 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32,batch_div_32)1673   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32, batch_div_32) {
1674     TEST_REQUIRES_X86_AVX2;
1675     for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
1676       VUnaryMicrokernelTester()
1677         .batch_size(batch_size)
1678         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1679     }
1680   }
1681 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32,batch_lt_32)1682   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32, batch_lt_32) {
1683     TEST_REQUIRES_X86_AVX2;
1684     for (size_t batch_size = 1; batch_size < 32; batch_size++) {
1685       VUnaryMicrokernelTester()
1686         .batch_size(batch_size)
1687         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1688     }
1689   }
1690 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32,batch_gt_32)1691   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32, batch_gt_32) {
1692     TEST_REQUIRES_X86_AVX2;
1693     for (size_t batch_size = 33; batch_size < 64; batch_size++) {
1694       VUnaryMicrokernelTester()
1695         .batch_size(batch_size)
1696         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1697     }
1698   }
1699 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32,inplace)1700   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X32, inplace) {
1701     TEST_REQUIRES_X86_AVX2;
1702     for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
1703       VUnaryMicrokernelTester()
1704         .batch_size(batch_size)
1705         .inplace(true)
1706         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x32, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1707     }
1708   }
1709 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1710 
1711 
1712 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40,batch_eq_40)1713   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40, batch_eq_40) {
1714     TEST_REQUIRES_X86_AVX2;
1715     VUnaryMicrokernelTester()
1716       .batch_size(40)
1717       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1718   }
1719 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40,batch_div_40)1720   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40, batch_div_40) {
1721     TEST_REQUIRES_X86_AVX2;
1722     for (size_t batch_size = 80; batch_size < 400; batch_size += 40) {
1723       VUnaryMicrokernelTester()
1724         .batch_size(batch_size)
1725         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1726     }
1727   }
1728 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40,batch_lt_40)1729   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40, batch_lt_40) {
1730     TEST_REQUIRES_X86_AVX2;
1731     for (size_t batch_size = 1; batch_size < 40; batch_size++) {
1732       VUnaryMicrokernelTester()
1733         .batch_size(batch_size)
1734         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1735     }
1736   }
1737 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40,batch_gt_40)1738   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40, batch_gt_40) {
1739     TEST_REQUIRES_X86_AVX2;
1740     for (size_t batch_size = 41; batch_size < 80; batch_size++) {
1741       VUnaryMicrokernelTester()
1742         .batch_size(batch_size)
1743         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1744     }
1745   }
1746 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40,inplace)1747   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X40, inplace) {
1748     TEST_REQUIRES_X86_AVX2;
1749     for (size_t batch_size = 1; batch_size <= 200; batch_size += 39) {
1750       VUnaryMicrokernelTester()
1751         .batch_size(batch_size)
1752         .inplace(true)
1753         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x40, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1754     }
1755   }
1756 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1757 
1758 
1759 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48,batch_eq_48)1760   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48, batch_eq_48) {
1761     TEST_REQUIRES_X86_AVX2;
1762     VUnaryMicrokernelTester()
1763       .batch_size(48)
1764       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1765   }
1766 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48,batch_div_48)1767   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48, batch_div_48) {
1768     TEST_REQUIRES_X86_AVX2;
1769     for (size_t batch_size = 96; batch_size < 480; batch_size += 48) {
1770       VUnaryMicrokernelTester()
1771         .batch_size(batch_size)
1772         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1773     }
1774   }
1775 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48,batch_lt_48)1776   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48, batch_lt_48) {
1777     TEST_REQUIRES_X86_AVX2;
1778     for (size_t batch_size = 1; batch_size < 48; batch_size++) {
1779       VUnaryMicrokernelTester()
1780         .batch_size(batch_size)
1781         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1782     }
1783   }
1784 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48,batch_gt_48)1785   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48, batch_gt_48) {
1786     TEST_REQUIRES_X86_AVX2;
1787     for (size_t batch_size = 49; batch_size < 96; batch_size++) {
1788       VUnaryMicrokernelTester()
1789         .batch_size(batch_size)
1790         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1791     }
1792   }
1793 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48,inplace)1794   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X48, inplace) {
1795     TEST_REQUIRES_X86_AVX2;
1796     for (size_t batch_size = 1; batch_size <= 240; batch_size += 47) {
1797       VUnaryMicrokernelTester()
1798         .batch_size(batch_size)
1799         .inplace(true)
1800         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x48, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1801     }
1802   }
1803 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1804 
1805 
1806 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56,batch_eq_56)1807   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56, batch_eq_56) {
1808     TEST_REQUIRES_X86_AVX2;
1809     VUnaryMicrokernelTester()
1810       .batch_size(56)
1811       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1812   }
1813 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56,batch_div_56)1814   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56, batch_div_56) {
1815     TEST_REQUIRES_X86_AVX2;
1816     for (size_t batch_size = 112; batch_size < 560; batch_size += 56) {
1817       VUnaryMicrokernelTester()
1818         .batch_size(batch_size)
1819         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1820     }
1821   }
1822 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56,batch_lt_56)1823   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56, batch_lt_56) {
1824     TEST_REQUIRES_X86_AVX2;
1825     for (size_t batch_size = 1; batch_size < 56; batch_size++) {
1826       VUnaryMicrokernelTester()
1827         .batch_size(batch_size)
1828         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1829     }
1830   }
1831 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56,batch_gt_56)1832   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56, batch_gt_56) {
1833     TEST_REQUIRES_X86_AVX2;
1834     for (size_t batch_size = 57; batch_size < 112; batch_size++) {
1835       VUnaryMicrokernelTester()
1836         .batch_size(batch_size)
1837         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1838     }
1839   }
1840 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56,inplace)1841   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X56, inplace) {
1842     TEST_REQUIRES_X86_AVX2;
1843     for (size_t batch_size = 1; batch_size <= 280; batch_size += 55) {
1844       VUnaryMicrokernelTester()
1845         .batch_size(batch_size)
1846         .inplace(true)
1847         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x56, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1848     }
1849   }
1850 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1851 
1852 
1853 #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64,batch_eq_64)1854   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64, batch_eq_64) {
1855     TEST_REQUIRES_X86_AVX2;
1856     VUnaryMicrokernelTester()
1857       .batch_size(64)
1858       .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1859   }
1860 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64,batch_div_64)1861   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64, batch_div_64) {
1862     TEST_REQUIRES_X86_AVX2;
1863     for (size_t batch_size = 128; batch_size < 640; batch_size += 64) {
1864       VUnaryMicrokernelTester()
1865         .batch_size(batch_size)
1866         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1867     }
1868   }
1869 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64,batch_lt_64)1870   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64, batch_lt_64) {
1871     TEST_REQUIRES_X86_AVX2;
1872     for (size_t batch_size = 1; batch_size < 64; batch_size++) {
1873       VUnaryMicrokernelTester()
1874         .batch_size(batch_size)
1875         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1876     }
1877   }
1878 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64,batch_gt_64)1879   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64, batch_gt_64) {
1880     TEST_REQUIRES_X86_AVX2;
1881     for (size_t batch_size = 65; batch_size < 128; batch_size++) {
1882       VUnaryMicrokernelTester()
1883         .batch_size(batch_size)
1884         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1885     }
1886   }
1887 
TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64,inplace)1888   TEST(F16_VSIGMOID__AVX2_RR1_P2_RCP_X64, inplace) {
1889     TEST_REQUIRES_X86_AVX2;
1890     for (size_t batch_size = 1; batch_size <= 320; batch_size += 63) {
1891       VUnaryMicrokernelTester()
1892         .batch_size(batch_size)
1893         .inplace(true)
1894         .Test(xnn_f16_vsigmoid_ukernel__avx2_rr1_p2_rcp_x64, xnn_init_f16_sigmoid_avx2_rr1_p2_params);
1895     }
1896   }
1897 #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
1898