1 // Copyright 2019 Google LLC 2 // 3 // This source code is licensed under the BSD-style license found in the 4 // LICENSE file in the root directory of this source tree. 5 // 6 // Auto-generated file. Do not edit! 7 // Specification: test/f32-vscaleextexp.yaml 8 // Generator: tools/generate-vscaleextexp-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/vscaleextexp.h> 17 #include "vscaleextexp-microkernel-tester.h" 18 19 20 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8,elements_eq_8)21 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8, elements_eq_8) { 22 TEST_REQUIRES_X86_AVX2; 23 VScaleExtExpMicrokernelTester() 24 .elements(8) 25 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x8); 26 } 27 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8,elements_div_8)28 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8, elements_div_8) { 29 TEST_REQUIRES_X86_AVX2; 30 for (size_t elements = 16; elements < 80; elements += 8) { 31 VScaleExtExpMicrokernelTester() 32 .elements(elements) 33 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x8); 34 } 35 } 36 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8,elements_lt_8)37 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8, elements_lt_8) { 38 TEST_REQUIRES_X86_AVX2; 39 for (size_t elements = 1; elements < 8; elements++) { 40 VScaleExtExpMicrokernelTester() 41 .elements(elements) 42 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x8); 43 } 44 } 45 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8,elements_gt_8)46 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8, elements_gt_8) { 47 TEST_REQUIRES_X86_AVX2; 48 for (size_t elements = 9; elements < 16; elements++) { 49 VScaleExtExpMicrokernelTester() 50 .elements(elements) 51 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x8); 52 } 53 } 54 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 55 56 57 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X16,elements_eq_16)58 TEST(F32_VSCALEEXTEXP__AVX2_P5_X16, elements_eq_16) { 59 TEST_REQUIRES_X86_AVX2; 60 VScaleExtExpMicrokernelTester() 61 .elements(16) 62 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x16); 63 } 64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X16,elements_div_16)65 TEST(F32_VSCALEEXTEXP__AVX2_P5_X16, elements_div_16) { 66 TEST_REQUIRES_X86_AVX2; 67 for (size_t elements = 32; elements < 160; elements += 16) { 68 VScaleExtExpMicrokernelTester() 69 .elements(elements) 70 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x16); 71 } 72 } 73 TEST(F32_VSCALEEXTEXP__AVX2_P5_X16,elements_lt_16)74 TEST(F32_VSCALEEXTEXP__AVX2_P5_X16, elements_lt_16) { 75 TEST_REQUIRES_X86_AVX2; 76 for (size_t elements = 1; elements < 16; elements++) { 77 VScaleExtExpMicrokernelTester() 78 .elements(elements) 79 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x16); 80 } 81 } 82 TEST(F32_VSCALEEXTEXP__AVX2_P5_X16,elements_gt_16)83 TEST(F32_VSCALEEXTEXP__AVX2_P5_X16, elements_gt_16) { 84 TEST_REQUIRES_X86_AVX2; 85 for (size_t elements = 17; elements < 32; elements++) { 86 VScaleExtExpMicrokernelTester() 87 .elements(elements) 88 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x16); 89 } 90 } 91 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 92 93 94 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X24,elements_eq_24)95 TEST(F32_VSCALEEXTEXP__AVX2_P5_X24, elements_eq_24) { 96 TEST_REQUIRES_X86_AVX2; 97 VScaleExtExpMicrokernelTester() 98 .elements(24) 99 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x24); 100 } 101 TEST(F32_VSCALEEXTEXP__AVX2_P5_X24,elements_div_24)102 TEST(F32_VSCALEEXTEXP__AVX2_P5_X24, elements_div_24) { 103 TEST_REQUIRES_X86_AVX2; 104 for (size_t elements = 48; elements < 240; elements += 24) { 105 VScaleExtExpMicrokernelTester() 106 .elements(elements) 107 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x24); 108 } 109 } 110 TEST(F32_VSCALEEXTEXP__AVX2_P5_X24,elements_lt_24)111 TEST(F32_VSCALEEXTEXP__AVX2_P5_X24, elements_lt_24) { 112 TEST_REQUIRES_X86_AVX2; 113 for (size_t elements = 1; elements < 24; elements++) { 114 VScaleExtExpMicrokernelTester() 115 .elements(elements) 116 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x24); 117 } 118 } 119 TEST(F32_VSCALEEXTEXP__AVX2_P5_X24,elements_gt_24)120 TEST(F32_VSCALEEXTEXP__AVX2_P5_X24, elements_gt_24) { 121 TEST_REQUIRES_X86_AVX2; 122 for (size_t elements = 25; elements < 48; elements++) { 123 VScaleExtExpMicrokernelTester() 124 .elements(elements) 125 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x24); 126 } 127 } 128 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 129 130 131 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X32,elements_eq_32)132 TEST(F32_VSCALEEXTEXP__AVX2_P5_X32, elements_eq_32) { 133 TEST_REQUIRES_X86_AVX2; 134 VScaleExtExpMicrokernelTester() 135 .elements(32) 136 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x32); 137 } 138 TEST(F32_VSCALEEXTEXP__AVX2_P5_X32,elements_div_32)139 TEST(F32_VSCALEEXTEXP__AVX2_P5_X32, elements_div_32) { 140 TEST_REQUIRES_X86_AVX2; 141 for (size_t elements = 64; elements < 320; elements += 32) { 142 VScaleExtExpMicrokernelTester() 143 .elements(elements) 144 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x32); 145 } 146 } 147 TEST(F32_VSCALEEXTEXP__AVX2_P5_X32,elements_lt_32)148 TEST(F32_VSCALEEXTEXP__AVX2_P5_X32, elements_lt_32) { 149 TEST_REQUIRES_X86_AVX2; 150 for (size_t elements = 1; elements < 32; elements++) { 151 VScaleExtExpMicrokernelTester() 152 .elements(elements) 153 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x32); 154 } 155 } 156 TEST(F32_VSCALEEXTEXP__AVX2_P5_X32,elements_gt_32)157 TEST(F32_VSCALEEXTEXP__AVX2_P5_X32, elements_gt_32) { 158 TEST_REQUIRES_X86_AVX2; 159 for (size_t elements = 33; elements < 64; elements++) { 160 VScaleExtExpMicrokernelTester() 161 .elements(elements) 162 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x32); 163 } 164 } 165 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 166 167 168 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X40,elements_eq_40)169 TEST(F32_VSCALEEXTEXP__AVX2_P5_X40, elements_eq_40) { 170 TEST_REQUIRES_X86_AVX2; 171 VScaleExtExpMicrokernelTester() 172 .elements(40) 173 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x40); 174 } 175 TEST(F32_VSCALEEXTEXP__AVX2_P5_X40,elements_div_40)176 TEST(F32_VSCALEEXTEXP__AVX2_P5_X40, elements_div_40) { 177 TEST_REQUIRES_X86_AVX2; 178 for (size_t elements = 80; elements < 400; elements += 40) { 179 VScaleExtExpMicrokernelTester() 180 .elements(elements) 181 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x40); 182 } 183 } 184 TEST(F32_VSCALEEXTEXP__AVX2_P5_X40,elements_lt_40)185 TEST(F32_VSCALEEXTEXP__AVX2_P5_X40, elements_lt_40) { 186 TEST_REQUIRES_X86_AVX2; 187 for (size_t elements = 1; elements < 40; elements++) { 188 VScaleExtExpMicrokernelTester() 189 .elements(elements) 190 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x40); 191 } 192 } 193 TEST(F32_VSCALEEXTEXP__AVX2_P5_X40,elements_gt_40)194 TEST(F32_VSCALEEXTEXP__AVX2_P5_X40, elements_gt_40) { 195 TEST_REQUIRES_X86_AVX2; 196 for (size_t elements = 41; elements < 80; elements++) { 197 VScaleExtExpMicrokernelTester() 198 .elements(elements) 199 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x40); 200 } 201 } 202 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 203 204 205 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X48,elements_eq_48)206 TEST(F32_VSCALEEXTEXP__AVX2_P5_X48, elements_eq_48) { 207 TEST_REQUIRES_X86_AVX2; 208 VScaleExtExpMicrokernelTester() 209 .elements(48) 210 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x48); 211 } 212 TEST(F32_VSCALEEXTEXP__AVX2_P5_X48,elements_div_48)213 TEST(F32_VSCALEEXTEXP__AVX2_P5_X48, elements_div_48) { 214 TEST_REQUIRES_X86_AVX2; 215 for (size_t elements = 96; elements < 480; elements += 48) { 216 VScaleExtExpMicrokernelTester() 217 .elements(elements) 218 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x48); 219 } 220 } 221 TEST(F32_VSCALEEXTEXP__AVX2_P5_X48,elements_lt_48)222 TEST(F32_VSCALEEXTEXP__AVX2_P5_X48, elements_lt_48) { 223 TEST_REQUIRES_X86_AVX2; 224 for (size_t elements = 1; elements < 48; elements++) { 225 VScaleExtExpMicrokernelTester() 226 .elements(elements) 227 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x48); 228 } 229 } 230 TEST(F32_VSCALEEXTEXP__AVX2_P5_X48,elements_gt_48)231 TEST(F32_VSCALEEXTEXP__AVX2_P5_X48, elements_gt_48) { 232 TEST_REQUIRES_X86_AVX2; 233 for (size_t elements = 49; elements < 96; elements++) { 234 VScaleExtExpMicrokernelTester() 235 .elements(elements) 236 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x48); 237 } 238 } 239 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 240 241 242 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X56,elements_eq_56)243 TEST(F32_VSCALEEXTEXP__AVX2_P5_X56, elements_eq_56) { 244 TEST_REQUIRES_X86_AVX2; 245 VScaleExtExpMicrokernelTester() 246 .elements(56) 247 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x56); 248 } 249 TEST(F32_VSCALEEXTEXP__AVX2_P5_X56,elements_div_56)250 TEST(F32_VSCALEEXTEXP__AVX2_P5_X56, elements_div_56) { 251 TEST_REQUIRES_X86_AVX2; 252 for (size_t elements = 112; elements < 560; elements += 56) { 253 VScaleExtExpMicrokernelTester() 254 .elements(elements) 255 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x56); 256 } 257 } 258 TEST(F32_VSCALEEXTEXP__AVX2_P5_X56,elements_lt_56)259 TEST(F32_VSCALEEXTEXP__AVX2_P5_X56, elements_lt_56) { 260 TEST_REQUIRES_X86_AVX2; 261 for (size_t elements = 1; elements < 56; elements++) { 262 VScaleExtExpMicrokernelTester() 263 .elements(elements) 264 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x56); 265 } 266 } 267 TEST(F32_VSCALEEXTEXP__AVX2_P5_X56,elements_gt_56)268 TEST(F32_VSCALEEXTEXP__AVX2_P5_X56, elements_gt_56) { 269 TEST_REQUIRES_X86_AVX2; 270 for (size_t elements = 57; elements < 112; elements++) { 271 VScaleExtExpMicrokernelTester() 272 .elements(elements) 273 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x56); 274 } 275 } 276 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 277 278 279 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X64,elements_eq_64)280 TEST(F32_VSCALEEXTEXP__AVX2_P5_X64, elements_eq_64) { 281 TEST_REQUIRES_X86_AVX2; 282 VScaleExtExpMicrokernelTester() 283 .elements(64) 284 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x64); 285 } 286 TEST(F32_VSCALEEXTEXP__AVX2_P5_X64,elements_div_64)287 TEST(F32_VSCALEEXTEXP__AVX2_P5_X64, elements_div_64) { 288 TEST_REQUIRES_X86_AVX2; 289 for (size_t elements = 128; elements < 640; elements += 64) { 290 VScaleExtExpMicrokernelTester() 291 .elements(elements) 292 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x64); 293 } 294 } 295 TEST(F32_VSCALEEXTEXP__AVX2_P5_X64,elements_lt_64)296 TEST(F32_VSCALEEXTEXP__AVX2_P5_X64, elements_lt_64) { 297 TEST_REQUIRES_X86_AVX2; 298 for (size_t elements = 1; elements < 64; elements++) { 299 VScaleExtExpMicrokernelTester() 300 .elements(elements) 301 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x64); 302 } 303 } 304 TEST(F32_VSCALEEXTEXP__AVX2_P5_X64,elements_gt_64)305 TEST(F32_VSCALEEXTEXP__AVX2_P5_X64, elements_gt_64) { 306 TEST_REQUIRES_X86_AVX2; 307 for (size_t elements = 65; elements < 128; elements++) { 308 VScaleExtExpMicrokernelTester() 309 .elements(elements) 310 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x64); 311 } 312 } 313 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 314 315 316 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X72,elements_eq_72)317 TEST(F32_VSCALEEXTEXP__AVX2_P5_X72, elements_eq_72) { 318 TEST_REQUIRES_X86_AVX2; 319 VScaleExtExpMicrokernelTester() 320 .elements(72) 321 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x72); 322 } 323 TEST(F32_VSCALEEXTEXP__AVX2_P5_X72,elements_div_72)324 TEST(F32_VSCALEEXTEXP__AVX2_P5_X72, elements_div_72) { 325 TEST_REQUIRES_X86_AVX2; 326 for (size_t elements = 144; elements < 720; elements += 72) { 327 VScaleExtExpMicrokernelTester() 328 .elements(elements) 329 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x72); 330 } 331 } 332 TEST(F32_VSCALEEXTEXP__AVX2_P5_X72,elements_lt_72)333 TEST(F32_VSCALEEXTEXP__AVX2_P5_X72, elements_lt_72) { 334 TEST_REQUIRES_X86_AVX2; 335 for (size_t elements = 1; elements < 72; elements++) { 336 VScaleExtExpMicrokernelTester() 337 .elements(elements) 338 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x72); 339 } 340 } 341 TEST(F32_VSCALEEXTEXP__AVX2_P5_X72,elements_gt_72)342 TEST(F32_VSCALEEXTEXP__AVX2_P5_X72, elements_gt_72) { 343 TEST_REQUIRES_X86_AVX2; 344 for (size_t elements = 73; elements < 144; elements++) { 345 VScaleExtExpMicrokernelTester() 346 .elements(elements) 347 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x72); 348 } 349 } 350 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 351 352 353 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X80,elements_eq_80)354 TEST(F32_VSCALEEXTEXP__AVX2_P5_X80, elements_eq_80) { 355 TEST_REQUIRES_X86_AVX2; 356 VScaleExtExpMicrokernelTester() 357 .elements(80) 358 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x80); 359 } 360 TEST(F32_VSCALEEXTEXP__AVX2_P5_X80,elements_div_80)361 TEST(F32_VSCALEEXTEXP__AVX2_P5_X80, elements_div_80) { 362 TEST_REQUIRES_X86_AVX2; 363 for (size_t elements = 160; elements < 800; elements += 80) { 364 VScaleExtExpMicrokernelTester() 365 .elements(elements) 366 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x80); 367 } 368 } 369 TEST(F32_VSCALEEXTEXP__AVX2_P5_X80,elements_lt_80)370 TEST(F32_VSCALEEXTEXP__AVX2_P5_X80, elements_lt_80) { 371 TEST_REQUIRES_X86_AVX2; 372 for (size_t elements = 1; elements < 80; elements++) { 373 VScaleExtExpMicrokernelTester() 374 .elements(elements) 375 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x80); 376 } 377 } 378 TEST(F32_VSCALEEXTEXP__AVX2_P5_X80,elements_gt_80)379 TEST(F32_VSCALEEXTEXP__AVX2_P5_X80, elements_gt_80) { 380 TEST_REQUIRES_X86_AVX2; 381 for (size_t elements = 81; elements < 160; elements++) { 382 VScaleExtExpMicrokernelTester() 383 .elements(elements) 384 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x80); 385 } 386 } 387 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 388 389 390 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X88,elements_eq_88)391 TEST(F32_VSCALEEXTEXP__AVX2_P5_X88, elements_eq_88) { 392 TEST_REQUIRES_X86_AVX2; 393 VScaleExtExpMicrokernelTester() 394 .elements(88) 395 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x88); 396 } 397 TEST(F32_VSCALEEXTEXP__AVX2_P5_X88,elements_div_88)398 TEST(F32_VSCALEEXTEXP__AVX2_P5_X88, elements_div_88) { 399 TEST_REQUIRES_X86_AVX2; 400 for (size_t elements = 176; elements < 880; elements += 88) { 401 VScaleExtExpMicrokernelTester() 402 .elements(elements) 403 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x88); 404 } 405 } 406 TEST(F32_VSCALEEXTEXP__AVX2_P5_X88,elements_lt_88)407 TEST(F32_VSCALEEXTEXP__AVX2_P5_X88, elements_lt_88) { 408 TEST_REQUIRES_X86_AVX2; 409 for (size_t elements = 1; elements < 88; elements++) { 410 VScaleExtExpMicrokernelTester() 411 .elements(elements) 412 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x88); 413 } 414 } 415 TEST(F32_VSCALEEXTEXP__AVX2_P5_X88,elements_gt_88)416 TEST(F32_VSCALEEXTEXP__AVX2_P5_X88, elements_gt_88) { 417 TEST_REQUIRES_X86_AVX2; 418 for (size_t elements = 89; elements < 176; elements++) { 419 VScaleExtExpMicrokernelTester() 420 .elements(elements) 421 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x88); 422 } 423 } 424 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 425 426 427 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX2_P5_X96,elements_eq_96)428 TEST(F32_VSCALEEXTEXP__AVX2_P5_X96, elements_eq_96) { 429 TEST_REQUIRES_X86_AVX2; 430 VScaleExtExpMicrokernelTester() 431 .elements(96) 432 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x96); 433 } 434 TEST(F32_VSCALEEXTEXP__AVX2_P5_X96,elements_div_96)435 TEST(F32_VSCALEEXTEXP__AVX2_P5_X96, elements_div_96) { 436 TEST_REQUIRES_X86_AVX2; 437 for (size_t elements = 192; elements < 960; elements += 96) { 438 VScaleExtExpMicrokernelTester() 439 .elements(elements) 440 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x96); 441 } 442 } 443 TEST(F32_VSCALEEXTEXP__AVX2_P5_X96,elements_lt_96)444 TEST(F32_VSCALEEXTEXP__AVX2_P5_X96, elements_lt_96) { 445 TEST_REQUIRES_X86_AVX2; 446 for (size_t elements = 1; elements < 96; elements++) { 447 VScaleExtExpMicrokernelTester() 448 .elements(elements) 449 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x96); 450 } 451 } 452 TEST(F32_VSCALEEXTEXP__AVX2_P5_X96,elements_gt_96)453 TEST(F32_VSCALEEXTEXP__AVX2_P5_X96, elements_gt_96) { 454 TEST_REQUIRES_X86_AVX2; 455 for (size_t elements = 97; elements < 192; elements++) { 456 VScaleExtExpMicrokernelTester() 457 .elements(elements) 458 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x96); 459 } 460 } 461 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 462 463 464 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16,elements_eq_16)465 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16, elements_eq_16) { 466 TEST_REQUIRES_X86_AVX512F; 467 VScaleExtExpMicrokernelTester() 468 .elements(16) 469 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x16); 470 } 471 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16,elements_div_16)472 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16, elements_div_16) { 473 TEST_REQUIRES_X86_AVX512F; 474 for (size_t elements = 32; elements < 160; elements += 16) { 475 VScaleExtExpMicrokernelTester() 476 .elements(elements) 477 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x16); 478 } 479 } 480 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16,elements_lt_16)481 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16, elements_lt_16) { 482 TEST_REQUIRES_X86_AVX512F; 483 for (size_t elements = 1; elements < 16; elements++) { 484 VScaleExtExpMicrokernelTester() 485 .elements(elements) 486 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x16); 487 } 488 } 489 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16,elements_gt_16)490 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16, elements_gt_16) { 491 TEST_REQUIRES_X86_AVX512F; 492 for (size_t elements = 17; elements < 32; elements++) { 493 VScaleExtExpMicrokernelTester() 494 .elements(elements) 495 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x16); 496 } 497 } 498 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 499 500 501 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X32,elements_eq_32)502 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X32, elements_eq_32) { 503 TEST_REQUIRES_X86_AVX512F; 504 VScaleExtExpMicrokernelTester() 505 .elements(32) 506 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x32); 507 } 508 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X32,elements_div_32)509 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X32, elements_div_32) { 510 TEST_REQUIRES_X86_AVX512F; 511 for (size_t elements = 64; elements < 320; elements += 32) { 512 VScaleExtExpMicrokernelTester() 513 .elements(elements) 514 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x32); 515 } 516 } 517 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X32,elements_lt_32)518 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X32, elements_lt_32) { 519 TEST_REQUIRES_X86_AVX512F; 520 for (size_t elements = 1; elements < 32; elements++) { 521 VScaleExtExpMicrokernelTester() 522 .elements(elements) 523 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x32); 524 } 525 } 526 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X32,elements_gt_32)527 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X32, elements_gt_32) { 528 TEST_REQUIRES_X86_AVX512F; 529 for (size_t elements = 33; elements < 64; elements++) { 530 VScaleExtExpMicrokernelTester() 531 .elements(elements) 532 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x32); 533 } 534 } 535 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 536 537 538 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X48,elements_eq_48)539 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X48, elements_eq_48) { 540 TEST_REQUIRES_X86_AVX512F; 541 VScaleExtExpMicrokernelTester() 542 .elements(48) 543 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x48); 544 } 545 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X48,elements_div_48)546 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X48, elements_div_48) { 547 TEST_REQUIRES_X86_AVX512F; 548 for (size_t elements = 96; elements < 480; elements += 48) { 549 VScaleExtExpMicrokernelTester() 550 .elements(elements) 551 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x48); 552 } 553 } 554 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X48,elements_lt_48)555 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X48, elements_lt_48) { 556 TEST_REQUIRES_X86_AVX512F; 557 for (size_t elements = 1; elements < 48; elements++) { 558 VScaleExtExpMicrokernelTester() 559 .elements(elements) 560 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x48); 561 } 562 } 563 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X48,elements_gt_48)564 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X48, elements_gt_48) { 565 TEST_REQUIRES_X86_AVX512F; 566 for (size_t elements = 49; elements < 96; elements++) { 567 VScaleExtExpMicrokernelTester() 568 .elements(elements) 569 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x48); 570 } 571 } 572 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 573 574 575 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X64,elements_eq_64)576 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X64, elements_eq_64) { 577 TEST_REQUIRES_X86_AVX512F; 578 VScaleExtExpMicrokernelTester() 579 .elements(64) 580 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x64); 581 } 582 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X64,elements_div_64)583 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X64, elements_div_64) { 584 TEST_REQUIRES_X86_AVX512F; 585 for (size_t elements = 128; elements < 640; elements += 64) { 586 VScaleExtExpMicrokernelTester() 587 .elements(elements) 588 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x64); 589 } 590 } 591 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X64,elements_lt_64)592 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X64, elements_lt_64) { 593 TEST_REQUIRES_X86_AVX512F; 594 for (size_t elements = 1; elements < 64; elements++) { 595 VScaleExtExpMicrokernelTester() 596 .elements(elements) 597 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x64); 598 } 599 } 600 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X64,elements_gt_64)601 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X64, elements_gt_64) { 602 TEST_REQUIRES_X86_AVX512F; 603 for (size_t elements = 65; elements < 128; elements++) { 604 VScaleExtExpMicrokernelTester() 605 .elements(elements) 606 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x64); 607 } 608 } 609 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 610 611 612 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X80,elements_eq_80)613 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X80, elements_eq_80) { 614 TEST_REQUIRES_X86_AVX512F; 615 VScaleExtExpMicrokernelTester() 616 .elements(80) 617 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x80); 618 } 619 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X80,elements_div_80)620 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X80, elements_div_80) { 621 TEST_REQUIRES_X86_AVX512F; 622 for (size_t elements = 160; elements < 800; elements += 80) { 623 VScaleExtExpMicrokernelTester() 624 .elements(elements) 625 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x80); 626 } 627 } 628 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X80,elements_lt_80)629 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X80, elements_lt_80) { 630 TEST_REQUIRES_X86_AVX512F; 631 for (size_t elements = 1; elements < 80; elements++) { 632 VScaleExtExpMicrokernelTester() 633 .elements(elements) 634 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x80); 635 } 636 } 637 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X80,elements_gt_80)638 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X80, elements_gt_80) { 639 TEST_REQUIRES_X86_AVX512F; 640 for (size_t elements = 81; elements < 160; elements++) { 641 VScaleExtExpMicrokernelTester() 642 .elements(elements) 643 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x80); 644 } 645 } 646 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 647 648 649 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X96,elements_eq_96)650 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X96, elements_eq_96) { 651 TEST_REQUIRES_X86_AVX512F; 652 VScaleExtExpMicrokernelTester() 653 .elements(96) 654 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x96); 655 } 656 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X96,elements_div_96)657 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X96, elements_div_96) { 658 TEST_REQUIRES_X86_AVX512F; 659 for (size_t elements = 192; elements < 960; elements += 96) { 660 VScaleExtExpMicrokernelTester() 661 .elements(elements) 662 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x96); 663 } 664 } 665 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X96,elements_lt_96)666 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X96, elements_lt_96) { 667 TEST_REQUIRES_X86_AVX512F; 668 for (size_t elements = 1; elements < 96; elements++) { 669 VScaleExtExpMicrokernelTester() 670 .elements(elements) 671 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x96); 672 } 673 } 674 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X96,elements_gt_96)675 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X96, elements_gt_96) { 676 TEST_REQUIRES_X86_AVX512F; 677 for (size_t elements = 97; elements < 192; elements++) { 678 VScaleExtExpMicrokernelTester() 679 .elements(elements) 680 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x96); 681 } 682 } 683 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 684 685 686 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X112,elements_eq_112)687 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X112, elements_eq_112) { 688 TEST_REQUIRES_X86_AVX512F; 689 VScaleExtExpMicrokernelTester() 690 .elements(112) 691 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x112); 692 } 693 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X112,elements_div_112)694 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X112, elements_div_112) { 695 TEST_REQUIRES_X86_AVX512F; 696 for (size_t elements = 224; elements < 1120; elements += 112) { 697 VScaleExtExpMicrokernelTester() 698 .elements(elements) 699 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x112); 700 } 701 } 702 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X112,elements_lt_112)703 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X112, elements_lt_112) { 704 TEST_REQUIRES_X86_AVX512F; 705 for (size_t elements = 1; elements < 112; elements++) { 706 VScaleExtExpMicrokernelTester() 707 .elements(elements) 708 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x112); 709 } 710 } 711 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X112,elements_gt_112)712 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X112, elements_gt_112) { 713 TEST_REQUIRES_X86_AVX512F; 714 for (size_t elements = 113; elements < 224; elements++) { 715 VScaleExtExpMicrokernelTester() 716 .elements(elements) 717 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x112); 718 } 719 } 720 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 721 722 723 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X128,elements_eq_128)724 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X128, elements_eq_128) { 725 TEST_REQUIRES_X86_AVX512F; 726 VScaleExtExpMicrokernelTester() 727 .elements(128) 728 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x128); 729 } 730 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X128,elements_div_128)731 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X128, elements_div_128) { 732 TEST_REQUIRES_X86_AVX512F; 733 for (size_t elements = 256; elements < 1280; elements += 128) { 734 VScaleExtExpMicrokernelTester() 735 .elements(elements) 736 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x128); 737 } 738 } 739 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X128,elements_lt_128)740 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X128, elements_lt_128) { 741 TEST_REQUIRES_X86_AVX512F; 742 for (size_t elements = 1; elements < 128; elements++) { 743 VScaleExtExpMicrokernelTester() 744 .elements(elements) 745 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x128); 746 } 747 } 748 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X128,elements_gt_128)749 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X128, elements_gt_128) { 750 TEST_REQUIRES_X86_AVX512F; 751 for (size_t elements = 129; elements < 256; elements++) { 752 VScaleExtExpMicrokernelTester() 753 .elements(elements) 754 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x128); 755 } 756 } 757 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 758 759 760 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X144,elements_eq_144)761 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X144, elements_eq_144) { 762 TEST_REQUIRES_X86_AVX512F; 763 VScaleExtExpMicrokernelTester() 764 .elements(144) 765 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x144); 766 } 767 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X144,elements_div_144)768 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X144, elements_div_144) { 769 TEST_REQUIRES_X86_AVX512F; 770 for (size_t elements = 288; elements < 1440; elements += 144) { 771 VScaleExtExpMicrokernelTester() 772 .elements(elements) 773 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x144); 774 } 775 } 776 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X144,elements_lt_144)777 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X144, elements_lt_144) { 778 TEST_REQUIRES_X86_AVX512F; 779 for (size_t elements = 1; elements < 144; elements++) { 780 VScaleExtExpMicrokernelTester() 781 .elements(elements) 782 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x144); 783 } 784 } 785 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X144,elements_gt_144)786 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X144, elements_gt_144) { 787 TEST_REQUIRES_X86_AVX512F; 788 for (size_t elements = 145; elements < 288; elements++) { 789 VScaleExtExpMicrokernelTester() 790 .elements(elements) 791 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x144); 792 } 793 } 794 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 795 796 797 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X160,elements_eq_160)798 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X160, elements_eq_160) { 799 TEST_REQUIRES_X86_AVX512F; 800 VScaleExtExpMicrokernelTester() 801 .elements(160) 802 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x160); 803 } 804 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X160,elements_div_160)805 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X160, elements_div_160) { 806 TEST_REQUIRES_X86_AVX512F; 807 for (size_t elements = 320; elements < 1600; elements += 160) { 808 VScaleExtExpMicrokernelTester() 809 .elements(elements) 810 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x160); 811 } 812 } 813 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X160,elements_lt_160)814 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X160, elements_lt_160) { 815 TEST_REQUIRES_X86_AVX512F; 816 for (size_t elements = 1; elements < 160; elements++) { 817 VScaleExtExpMicrokernelTester() 818 .elements(elements) 819 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x160); 820 } 821 } 822 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X160,elements_gt_160)823 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X160, elements_gt_160) { 824 TEST_REQUIRES_X86_AVX512F; 825 for (size_t elements = 161; elements < 320; elements++) { 826 VScaleExtExpMicrokernelTester() 827 .elements(elements) 828 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x160); 829 } 830 } 831 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 832 833 834 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X176,elements_eq_176)835 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X176, elements_eq_176) { 836 TEST_REQUIRES_X86_AVX512F; 837 VScaleExtExpMicrokernelTester() 838 .elements(176) 839 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x176); 840 } 841 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X176,elements_div_176)842 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X176, elements_div_176) { 843 TEST_REQUIRES_X86_AVX512F; 844 for (size_t elements = 352; elements < 1760; elements += 176) { 845 VScaleExtExpMicrokernelTester() 846 .elements(elements) 847 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x176); 848 } 849 } 850 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X176,elements_lt_176)851 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X176, elements_lt_176) { 852 TEST_REQUIRES_X86_AVX512F; 853 for (size_t elements = 1; elements < 176; elements++) { 854 VScaleExtExpMicrokernelTester() 855 .elements(elements) 856 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x176); 857 } 858 } 859 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X176,elements_gt_176)860 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X176, elements_gt_176) { 861 TEST_REQUIRES_X86_AVX512F; 862 for (size_t elements = 177; elements < 352; elements++) { 863 VScaleExtExpMicrokernelTester() 864 .elements(elements) 865 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x176); 866 } 867 } 868 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 869 870 871 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X192,elements_eq_192)872 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X192, elements_eq_192) { 873 TEST_REQUIRES_X86_AVX512F; 874 VScaleExtExpMicrokernelTester() 875 .elements(192) 876 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x192); 877 } 878 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X192,elements_div_192)879 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X192, elements_div_192) { 880 TEST_REQUIRES_X86_AVX512F; 881 for (size_t elements = 384; elements < 1920; elements += 192) { 882 VScaleExtExpMicrokernelTester() 883 .elements(elements) 884 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x192); 885 } 886 } 887 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X192,elements_lt_192)888 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X192, elements_lt_192) { 889 TEST_REQUIRES_X86_AVX512F; 890 for (size_t elements = 1; elements < 192; elements++) { 891 VScaleExtExpMicrokernelTester() 892 .elements(elements) 893 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x192); 894 } 895 } 896 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X192,elements_gt_192)897 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X192, elements_gt_192) { 898 TEST_REQUIRES_X86_AVX512F; 899 for (size_t elements = 193; elements < 384; elements++) { 900 VScaleExtExpMicrokernelTester() 901 .elements(elements) 902 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x192); 903 } 904 } 905 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 906