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