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-vscaleexpminusmax.yaml 8 // Generator: tools/generate-vscaleexpminusmax-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/vscaleexpminusmax.h> 17 #include "vscaleexpminusmax-microkernel-tester.h" 18 19 20 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8,elements_eq_8)21 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8, elements_eq_8) { 22 TEST_REQUIRES_X86_AVX2; 23 VScaleExpMinusMaxMicrokernelTester() 24 .elements(8) 25 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x8); 26 } 27 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8,elements_div_8)28 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8, elements_div_8) { 29 TEST_REQUIRES_X86_AVX2; 30 for (size_t elements = 16; elements < 80; elements += 8) { 31 VScaleExpMinusMaxMicrokernelTester() 32 .elements(elements) 33 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x8); 34 } 35 } 36 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8,elements_lt_8)37 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8, elements_lt_8) { 38 TEST_REQUIRES_X86_AVX2; 39 for (size_t elements = 1; elements < 8; elements++) { 40 VScaleExpMinusMaxMicrokernelTester() 41 .elements(elements) 42 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x8); 43 } 44 } 45 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8,elements_gt_8)46 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8, elements_gt_8) { 47 TEST_REQUIRES_X86_AVX2; 48 for (size_t elements = 9; elements < 16; elements++) { 49 VScaleExpMinusMaxMicrokernelTester() 50 .elements(elements) 51 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x8); 52 } 53 } 54 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8,scale)55 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X8, scale) { 56 TEST_REQUIRES_X86_AVX2; 57 for (size_t elements = 1; elements <= 40; elements += 7) { 58 VScaleExpMinusMaxMicrokernelTester() 59 .elements(elements) 60 .scale(0.01f) 61 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x8); 62 VScaleExpMinusMaxMicrokernelTester() 63 .elements(elements) 64 .scale(100.0f) 65 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x8); 66 } 67 } 68 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 69 70 71 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16,elements_eq_16)72 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16, elements_eq_16) { 73 TEST_REQUIRES_X86_AVX2; 74 VScaleExpMinusMaxMicrokernelTester() 75 .elements(16) 76 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x16); 77 } 78 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16,elements_div_16)79 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16, elements_div_16) { 80 TEST_REQUIRES_X86_AVX2; 81 for (size_t elements = 32; elements < 160; elements += 16) { 82 VScaleExpMinusMaxMicrokernelTester() 83 .elements(elements) 84 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x16); 85 } 86 } 87 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16,elements_lt_16)88 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16, elements_lt_16) { 89 TEST_REQUIRES_X86_AVX2; 90 for (size_t elements = 1; elements < 16; elements++) { 91 VScaleExpMinusMaxMicrokernelTester() 92 .elements(elements) 93 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x16); 94 } 95 } 96 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16,elements_gt_16)97 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16, elements_gt_16) { 98 TEST_REQUIRES_X86_AVX2; 99 for (size_t elements = 17; elements < 32; elements++) { 100 VScaleExpMinusMaxMicrokernelTester() 101 .elements(elements) 102 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x16); 103 } 104 } 105 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16,scale)106 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X16, scale) { 107 TEST_REQUIRES_X86_AVX2; 108 for (size_t elements = 1; elements <= 80; elements += 15) { 109 VScaleExpMinusMaxMicrokernelTester() 110 .elements(elements) 111 .scale(0.01f) 112 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x16); 113 VScaleExpMinusMaxMicrokernelTester() 114 .elements(elements) 115 .scale(100.0f) 116 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x16); 117 } 118 } 119 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 120 121 122 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24,elements_eq_24)123 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24, elements_eq_24) { 124 TEST_REQUIRES_X86_AVX2; 125 VScaleExpMinusMaxMicrokernelTester() 126 .elements(24) 127 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x24); 128 } 129 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24,elements_div_24)130 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24, elements_div_24) { 131 TEST_REQUIRES_X86_AVX2; 132 for (size_t elements = 48; elements < 240; elements += 24) { 133 VScaleExpMinusMaxMicrokernelTester() 134 .elements(elements) 135 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x24); 136 } 137 } 138 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24,elements_lt_24)139 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24, elements_lt_24) { 140 TEST_REQUIRES_X86_AVX2; 141 for (size_t elements = 1; elements < 24; elements++) { 142 VScaleExpMinusMaxMicrokernelTester() 143 .elements(elements) 144 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x24); 145 } 146 } 147 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24,elements_gt_24)148 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24, elements_gt_24) { 149 TEST_REQUIRES_X86_AVX2; 150 for (size_t elements = 25; elements < 48; elements++) { 151 VScaleExpMinusMaxMicrokernelTester() 152 .elements(elements) 153 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x24); 154 } 155 } 156 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24,scale)157 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X24, scale) { 158 TEST_REQUIRES_X86_AVX2; 159 for (size_t elements = 1; elements <= 120; elements += 23) { 160 VScaleExpMinusMaxMicrokernelTester() 161 .elements(elements) 162 .scale(0.01f) 163 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x24); 164 VScaleExpMinusMaxMicrokernelTester() 165 .elements(elements) 166 .scale(100.0f) 167 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x24); 168 } 169 } 170 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 171 172 173 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32,elements_eq_32)174 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32, elements_eq_32) { 175 TEST_REQUIRES_X86_AVX2; 176 VScaleExpMinusMaxMicrokernelTester() 177 .elements(32) 178 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x32); 179 } 180 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32,elements_div_32)181 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32, elements_div_32) { 182 TEST_REQUIRES_X86_AVX2; 183 for (size_t elements = 64; elements < 320; elements += 32) { 184 VScaleExpMinusMaxMicrokernelTester() 185 .elements(elements) 186 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x32); 187 } 188 } 189 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32,elements_lt_32)190 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32, elements_lt_32) { 191 TEST_REQUIRES_X86_AVX2; 192 for (size_t elements = 1; elements < 32; elements++) { 193 VScaleExpMinusMaxMicrokernelTester() 194 .elements(elements) 195 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x32); 196 } 197 } 198 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32,elements_gt_32)199 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32, elements_gt_32) { 200 TEST_REQUIRES_X86_AVX2; 201 for (size_t elements = 33; elements < 64; elements++) { 202 VScaleExpMinusMaxMicrokernelTester() 203 .elements(elements) 204 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x32); 205 } 206 } 207 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32,scale)208 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X32, scale) { 209 TEST_REQUIRES_X86_AVX2; 210 for (size_t elements = 1; elements <= 160; elements += 31) { 211 VScaleExpMinusMaxMicrokernelTester() 212 .elements(elements) 213 .scale(0.01f) 214 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x32); 215 VScaleExpMinusMaxMicrokernelTester() 216 .elements(elements) 217 .scale(100.0f) 218 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x32); 219 } 220 } 221 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 222 223 224 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40,elements_eq_40)225 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40, elements_eq_40) { 226 TEST_REQUIRES_X86_AVX2; 227 VScaleExpMinusMaxMicrokernelTester() 228 .elements(40) 229 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x40); 230 } 231 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40,elements_div_40)232 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40, elements_div_40) { 233 TEST_REQUIRES_X86_AVX2; 234 for (size_t elements = 80; elements < 400; elements += 40) { 235 VScaleExpMinusMaxMicrokernelTester() 236 .elements(elements) 237 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x40); 238 } 239 } 240 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40,elements_lt_40)241 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40, elements_lt_40) { 242 TEST_REQUIRES_X86_AVX2; 243 for (size_t elements = 1; elements < 40; elements++) { 244 VScaleExpMinusMaxMicrokernelTester() 245 .elements(elements) 246 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x40); 247 } 248 } 249 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40,elements_gt_40)250 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40, elements_gt_40) { 251 TEST_REQUIRES_X86_AVX2; 252 for (size_t elements = 41; elements < 80; elements++) { 253 VScaleExpMinusMaxMicrokernelTester() 254 .elements(elements) 255 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x40); 256 } 257 } 258 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40,scale)259 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X40, scale) { 260 TEST_REQUIRES_X86_AVX2; 261 for (size_t elements = 1; elements <= 200; elements += 39) { 262 VScaleExpMinusMaxMicrokernelTester() 263 .elements(elements) 264 .scale(0.01f) 265 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x40); 266 VScaleExpMinusMaxMicrokernelTester() 267 .elements(elements) 268 .scale(100.0f) 269 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x40); 270 } 271 } 272 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 273 274 275 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48,elements_eq_48)276 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48, elements_eq_48) { 277 TEST_REQUIRES_X86_AVX2; 278 VScaleExpMinusMaxMicrokernelTester() 279 .elements(48) 280 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x48); 281 } 282 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48,elements_div_48)283 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48, elements_div_48) { 284 TEST_REQUIRES_X86_AVX2; 285 for (size_t elements = 96; elements < 480; elements += 48) { 286 VScaleExpMinusMaxMicrokernelTester() 287 .elements(elements) 288 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x48); 289 } 290 } 291 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48,elements_lt_48)292 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48, elements_lt_48) { 293 TEST_REQUIRES_X86_AVX2; 294 for (size_t elements = 1; elements < 48; elements++) { 295 VScaleExpMinusMaxMicrokernelTester() 296 .elements(elements) 297 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x48); 298 } 299 } 300 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48,elements_gt_48)301 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48, elements_gt_48) { 302 TEST_REQUIRES_X86_AVX2; 303 for (size_t elements = 49; elements < 96; elements++) { 304 VScaleExpMinusMaxMicrokernelTester() 305 .elements(elements) 306 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x48); 307 } 308 } 309 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48,scale)310 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X48, scale) { 311 TEST_REQUIRES_X86_AVX2; 312 for (size_t elements = 1; elements <= 240; elements += 47) { 313 VScaleExpMinusMaxMicrokernelTester() 314 .elements(elements) 315 .scale(0.01f) 316 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x48); 317 VScaleExpMinusMaxMicrokernelTester() 318 .elements(elements) 319 .scale(100.0f) 320 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x48); 321 } 322 } 323 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 324 325 326 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56,elements_eq_56)327 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56, elements_eq_56) { 328 TEST_REQUIRES_X86_AVX2; 329 VScaleExpMinusMaxMicrokernelTester() 330 .elements(56) 331 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x56); 332 } 333 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56,elements_div_56)334 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56, elements_div_56) { 335 TEST_REQUIRES_X86_AVX2; 336 for (size_t elements = 112; elements < 560; elements += 56) { 337 VScaleExpMinusMaxMicrokernelTester() 338 .elements(elements) 339 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x56); 340 } 341 } 342 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56,elements_lt_56)343 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56, elements_lt_56) { 344 TEST_REQUIRES_X86_AVX2; 345 for (size_t elements = 1; elements < 56; elements++) { 346 VScaleExpMinusMaxMicrokernelTester() 347 .elements(elements) 348 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x56); 349 } 350 } 351 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56,elements_gt_56)352 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56, elements_gt_56) { 353 TEST_REQUIRES_X86_AVX2; 354 for (size_t elements = 57; elements < 112; elements++) { 355 VScaleExpMinusMaxMicrokernelTester() 356 .elements(elements) 357 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x56); 358 } 359 } 360 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56,scale)361 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X56, scale) { 362 TEST_REQUIRES_X86_AVX2; 363 for (size_t elements = 1; elements <= 280; elements += 55) { 364 VScaleExpMinusMaxMicrokernelTester() 365 .elements(elements) 366 .scale(0.01f) 367 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x56); 368 VScaleExpMinusMaxMicrokernelTester() 369 .elements(elements) 370 .scale(100.0f) 371 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x56); 372 } 373 } 374 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 375 376 377 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64,elements_eq_64)378 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64, elements_eq_64) { 379 TEST_REQUIRES_X86_AVX2; 380 VScaleExpMinusMaxMicrokernelTester() 381 .elements(64) 382 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x64); 383 } 384 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64,elements_div_64)385 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64, elements_div_64) { 386 TEST_REQUIRES_X86_AVX2; 387 for (size_t elements = 128; elements < 640; elements += 64) { 388 VScaleExpMinusMaxMicrokernelTester() 389 .elements(elements) 390 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x64); 391 } 392 } 393 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64,elements_lt_64)394 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64, elements_lt_64) { 395 TEST_REQUIRES_X86_AVX2; 396 for (size_t elements = 1; elements < 64; elements++) { 397 VScaleExpMinusMaxMicrokernelTester() 398 .elements(elements) 399 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x64); 400 } 401 } 402 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64,elements_gt_64)403 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64, elements_gt_64) { 404 TEST_REQUIRES_X86_AVX2; 405 for (size_t elements = 65; elements < 128; elements++) { 406 VScaleExpMinusMaxMicrokernelTester() 407 .elements(elements) 408 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x64); 409 } 410 } 411 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64,scale)412 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X64, scale) { 413 TEST_REQUIRES_X86_AVX2; 414 for (size_t elements = 1; elements <= 320; elements += 63) { 415 VScaleExpMinusMaxMicrokernelTester() 416 .elements(elements) 417 .scale(0.01f) 418 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x64); 419 VScaleExpMinusMaxMicrokernelTester() 420 .elements(elements) 421 .scale(100.0f) 422 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x64); 423 } 424 } 425 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 426 427 428 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72,elements_eq_72)429 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72, elements_eq_72) { 430 TEST_REQUIRES_X86_AVX2; 431 VScaleExpMinusMaxMicrokernelTester() 432 .elements(72) 433 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x72); 434 } 435 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72,elements_div_72)436 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72, elements_div_72) { 437 TEST_REQUIRES_X86_AVX2; 438 for (size_t elements = 144; elements < 720; elements += 72) { 439 VScaleExpMinusMaxMicrokernelTester() 440 .elements(elements) 441 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x72); 442 } 443 } 444 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72,elements_lt_72)445 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72, elements_lt_72) { 446 TEST_REQUIRES_X86_AVX2; 447 for (size_t elements = 1; elements < 72; elements++) { 448 VScaleExpMinusMaxMicrokernelTester() 449 .elements(elements) 450 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x72); 451 } 452 } 453 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72,elements_gt_72)454 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72, elements_gt_72) { 455 TEST_REQUIRES_X86_AVX2; 456 for (size_t elements = 73; elements < 144; elements++) { 457 VScaleExpMinusMaxMicrokernelTester() 458 .elements(elements) 459 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x72); 460 } 461 } 462 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72,scale)463 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X72, scale) { 464 TEST_REQUIRES_X86_AVX2; 465 for (size_t elements = 1; elements <= 360; elements += 71) { 466 VScaleExpMinusMaxMicrokernelTester() 467 .elements(elements) 468 .scale(0.01f) 469 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x72); 470 VScaleExpMinusMaxMicrokernelTester() 471 .elements(elements) 472 .scale(100.0f) 473 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x72); 474 } 475 } 476 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 477 478 479 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80,elements_eq_80)480 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80, elements_eq_80) { 481 TEST_REQUIRES_X86_AVX2; 482 VScaleExpMinusMaxMicrokernelTester() 483 .elements(80) 484 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x80); 485 } 486 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80,elements_div_80)487 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80, elements_div_80) { 488 TEST_REQUIRES_X86_AVX2; 489 for (size_t elements = 160; elements < 800; elements += 80) { 490 VScaleExpMinusMaxMicrokernelTester() 491 .elements(elements) 492 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x80); 493 } 494 } 495 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80,elements_lt_80)496 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80, elements_lt_80) { 497 TEST_REQUIRES_X86_AVX2; 498 for (size_t elements = 1; elements < 80; elements++) { 499 VScaleExpMinusMaxMicrokernelTester() 500 .elements(elements) 501 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x80); 502 } 503 } 504 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80,elements_gt_80)505 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80, elements_gt_80) { 506 TEST_REQUIRES_X86_AVX2; 507 for (size_t elements = 81; elements < 160; elements++) { 508 VScaleExpMinusMaxMicrokernelTester() 509 .elements(elements) 510 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x80); 511 } 512 } 513 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80,scale)514 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X80, scale) { 515 TEST_REQUIRES_X86_AVX2; 516 for (size_t elements = 1; elements <= 400; elements += 79) { 517 VScaleExpMinusMaxMicrokernelTester() 518 .elements(elements) 519 .scale(0.01f) 520 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x80); 521 VScaleExpMinusMaxMicrokernelTester() 522 .elements(elements) 523 .scale(100.0f) 524 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x80); 525 } 526 } 527 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 528 529 530 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88,elements_eq_88)531 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88, elements_eq_88) { 532 TEST_REQUIRES_X86_AVX2; 533 VScaleExpMinusMaxMicrokernelTester() 534 .elements(88) 535 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x88); 536 } 537 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88,elements_div_88)538 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88, elements_div_88) { 539 TEST_REQUIRES_X86_AVX2; 540 for (size_t elements = 176; elements < 880; elements += 88) { 541 VScaleExpMinusMaxMicrokernelTester() 542 .elements(elements) 543 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x88); 544 } 545 } 546 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88,elements_lt_88)547 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88, elements_lt_88) { 548 TEST_REQUIRES_X86_AVX2; 549 for (size_t elements = 1; elements < 88; elements++) { 550 VScaleExpMinusMaxMicrokernelTester() 551 .elements(elements) 552 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x88); 553 } 554 } 555 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88,elements_gt_88)556 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88, elements_gt_88) { 557 TEST_REQUIRES_X86_AVX2; 558 for (size_t elements = 89; elements < 176; elements++) { 559 VScaleExpMinusMaxMicrokernelTester() 560 .elements(elements) 561 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x88); 562 } 563 } 564 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88,scale)565 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X88, scale) { 566 TEST_REQUIRES_X86_AVX2; 567 for (size_t elements = 1; elements <= 440; elements += 87) { 568 VScaleExpMinusMaxMicrokernelTester() 569 .elements(elements) 570 .scale(0.01f) 571 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x88); 572 VScaleExpMinusMaxMicrokernelTester() 573 .elements(elements) 574 .scale(100.0f) 575 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x88); 576 } 577 } 578 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 579 580 581 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96,elements_eq_96)582 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96, elements_eq_96) { 583 TEST_REQUIRES_X86_AVX2; 584 VScaleExpMinusMaxMicrokernelTester() 585 .elements(96) 586 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x96); 587 } 588 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96,elements_div_96)589 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96, elements_div_96) { 590 TEST_REQUIRES_X86_AVX2; 591 for (size_t elements = 192; elements < 960; elements += 96) { 592 VScaleExpMinusMaxMicrokernelTester() 593 .elements(elements) 594 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x96); 595 } 596 } 597 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96,elements_lt_96)598 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96, elements_lt_96) { 599 TEST_REQUIRES_X86_AVX2; 600 for (size_t elements = 1; elements < 96; elements++) { 601 VScaleExpMinusMaxMicrokernelTester() 602 .elements(elements) 603 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x96); 604 } 605 } 606 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96,elements_gt_96)607 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96, elements_gt_96) { 608 TEST_REQUIRES_X86_AVX2; 609 for (size_t elements = 97; elements < 192; elements++) { 610 VScaleExpMinusMaxMicrokernelTester() 611 .elements(elements) 612 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x96); 613 } 614 } 615 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96,scale)616 TEST(F32_VSCALEEXPMINUSMAX__AVX2_P5_X96, scale) { 617 TEST_REQUIRES_X86_AVX2; 618 for (size_t elements = 1; elements <= 480; elements += 95) { 619 VScaleExpMinusMaxMicrokernelTester() 620 .elements(elements) 621 .scale(0.01f) 622 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x96); 623 VScaleExpMinusMaxMicrokernelTester() 624 .elements(elements) 625 .scale(100.0f) 626 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx2_p5_x96); 627 } 628 } 629 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 630 631 632 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16,elements_eq_16)633 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16, elements_eq_16) { 634 TEST_REQUIRES_X86_AVX512F; 635 VScaleExpMinusMaxMicrokernelTester() 636 .elements(16) 637 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x16); 638 } 639 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16,elements_div_16)640 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16, elements_div_16) { 641 TEST_REQUIRES_X86_AVX512F; 642 for (size_t elements = 32; elements < 160; elements += 16) { 643 VScaleExpMinusMaxMicrokernelTester() 644 .elements(elements) 645 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x16); 646 } 647 } 648 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16,elements_lt_16)649 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16, elements_lt_16) { 650 TEST_REQUIRES_X86_AVX512F; 651 for (size_t elements = 1; elements < 16; elements++) { 652 VScaleExpMinusMaxMicrokernelTester() 653 .elements(elements) 654 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x16); 655 } 656 } 657 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16,elements_gt_16)658 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16, elements_gt_16) { 659 TEST_REQUIRES_X86_AVX512F; 660 for (size_t elements = 17; elements < 32; elements++) { 661 VScaleExpMinusMaxMicrokernelTester() 662 .elements(elements) 663 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x16); 664 } 665 } 666 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16,scale)667 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X16, scale) { 668 TEST_REQUIRES_X86_AVX512F; 669 for (size_t elements = 1; elements <= 80; elements += 15) { 670 VScaleExpMinusMaxMicrokernelTester() 671 .elements(elements) 672 .scale(0.01f) 673 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x16); 674 VScaleExpMinusMaxMicrokernelTester() 675 .elements(elements) 676 .scale(100.0f) 677 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x16); 678 } 679 } 680 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 681 682 683 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32,elements_eq_32)684 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32, elements_eq_32) { 685 TEST_REQUIRES_X86_AVX512F; 686 VScaleExpMinusMaxMicrokernelTester() 687 .elements(32) 688 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x32); 689 } 690 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32,elements_div_32)691 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32, elements_div_32) { 692 TEST_REQUIRES_X86_AVX512F; 693 for (size_t elements = 64; elements < 320; elements += 32) { 694 VScaleExpMinusMaxMicrokernelTester() 695 .elements(elements) 696 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x32); 697 } 698 } 699 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32,elements_lt_32)700 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32, elements_lt_32) { 701 TEST_REQUIRES_X86_AVX512F; 702 for (size_t elements = 1; elements < 32; elements++) { 703 VScaleExpMinusMaxMicrokernelTester() 704 .elements(elements) 705 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x32); 706 } 707 } 708 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32,elements_gt_32)709 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32, elements_gt_32) { 710 TEST_REQUIRES_X86_AVX512F; 711 for (size_t elements = 33; elements < 64; elements++) { 712 VScaleExpMinusMaxMicrokernelTester() 713 .elements(elements) 714 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x32); 715 } 716 } 717 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32,scale)718 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X32, scale) { 719 TEST_REQUIRES_X86_AVX512F; 720 for (size_t elements = 1; elements <= 160; elements += 31) { 721 VScaleExpMinusMaxMicrokernelTester() 722 .elements(elements) 723 .scale(0.01f) 724 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x32); 725 VScaleExpMinusMaxMicrokernelTester() 726 .elements(elements) 727 .scale(100.0f) 728 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x32); 729 } 730 } 731 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 732 733 734 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48,elements_eq_48)735 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48, elements_eq_48) { 736 TEST_REQUIRES_X86_AVX512F; 737 VScaleExpMinusMaxMicrokernelTester() 738 .elements(48) 739 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x48); 740 } 741 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48,elements_div_48)742 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48, elements_div_48) { 743 TEST_REQUIRES_X86_AVX512F; 744 for (size_t elements = 96; elements < 480; elements += 48) { 745 VScaleExpMinusMaxMicrokernelTester() 746 .elements(elements) 747 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x48); 748 } 749 } 750 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48,elements_lt_48)751 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48, elements_lt_48) { 752 TEST_REQUIRES_X86_AVX512F; 753 for (size_t elements = 1; elements < 48; elements++) { 754 VScaleExpMinusMaxMicrokernelTester() 755 .elements(elements) 756 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x48); 757 } 758 } 759 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48,elements_gt_48)760 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48, elements_gt_48) { 761 TEST_REQUIRES_X86_AVX512F; 762 for (size_t elements = 49; elements < 96; elements++) { 763 VScaleExpMinusMaxMicrokernelTester() 764 .elements(elements) 765 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x48); 766 } 767 } 768 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48,scale)769 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X48, scale) { 770 TEST_REQUIRES_X86_AVX512F; 771 for (size_t elements = 1; elements <= 240; elements += 47) { 772 VScaleExpMinusMaxMicrokernelTester() 773 .elements(elements) 774 .scale(0.01f) 775 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x48); 776 VScaleExpMinusMaxMicrokernelTester() 777 .elements(elements) 778 .scale(100.0f) 779 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x48); 780 } 781 } 782 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 783 784 785 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64,elements_eq_64)786 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64, elements_eq_64) { 787 TEST_REQUIRES_X86_AVX512F; 788 VScaleExpMinusMaxMicrokernelTester() 789 .elements(64) 790 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x64); 791 } 792 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64,elements_div_64)793 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64, elements_div_64) { 794 TEST_REQUIRES_X86_AVX512F; 795 for (size_t elements = 128; elements < 640; elements += 64) { 796 VScaleExpMinusMaxMicrokernelTester() 797 .elements(elements) 798 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x64); 799 } 800 } 801 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64,elements_lt_64)802 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64, elements_lt_64) { 803 TEST_REQUIRES_X86_AVX512F; 804 for (size_t elements = 1; elements < 64; elements++) { 805 VScaleExpMinusMaxMicrokernelTester() 806 .elements(elements) 807 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x64); 808 } 809 } 810 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64,elements_gt_64)811 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64, elements_gt_64) { 812 TEST_REQUIRES_X86_AVX512F; 813 for (size_t elements = 65; elements < 128; elements++) { 814 VScaleExpMinusMaxMicrokernelTester() 815 .elements(elements) 816 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x64); 817 } 818 } 819 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64,scale)820 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X64, scale) { 821 TEST_REQUIRES_X86_AVX512F; 822 for (size_t elements = 1; elements <= 320; elements += 63) { 823 VScaleExpMinusMaxMicrokernelTester() 824 .elements(elements) 825 .scale(0.01f) 826 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x64); 827 VScaleExpMinusMaxMicrokernelTester() 828 .elements(elements) 829 .scale(100.0f) 830 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x64); 831 } 832 } 833 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 834 835 836 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80,elements_eq_80)837 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80, elements_eq_80) { 838 TEST_REQUIRES_X86_AVX512F; 839 VScaleExpMinusMaxMicrokernelTester() 840 .elements(80) 841 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x80); 842 } 843 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80,elements_div_80)844 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80, elements_div_80) { 845 TEST_REQUIRES_X86_AVX512F; 846 for (size_t elements = 160; elements < 800; elements += 80) { 847 VScaleExpMinusMaxMicrokernelTester() 848 .elements(elements) 849 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x80); 850 } 851 } 852 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80,elements_lt_80)853 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80, elements_lt_80) { 854 TEST_REQUIRES_X86_AVX512F; 855 for (size_t elements = 1; elements < 80; elements++) { 856 VScaleExpMinusMaxMicrokernelTester() 857 .elements(elements) 858 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x80); 859 } 860 } 861 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80,elements_gt_80)862 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80, elements_gt_80) { 863 TEST_REQUIRES_X86_AVX512F; 864 for (size_t elements = 81; elements < 160; elements++) { 865 VScaleExpMinusMaxMicrokernelTester() 866 .elements(elements) 867 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x80); 868 } 869 } 870 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80,scale)871 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X80, scale) { 872 TEST_REQUIRES_X86_AVX512F; 873 for (size_t elements = 1; elements <= 400; elements += 79) { 874 VScaleExpMinusMaxMicrokernelTester() 875 .elements(elements) 876 .scale(0.01f) 877 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x80); 878 VScaleExpMinusMaxMicrokernelTester() 879 .elements(elements) 880 .scale(100.0f) 881 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x80); 882 } 883 } 884 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 885 886 887 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96,elements_eq_96)888 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96, elements_eq_96) { 889 TEST_REQUIRES_X86_AVX512F; 890 VScaleExpMinusMaxMicrokernelTester() 891 .elements(96) 892 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x96); 893 } 894 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96,elements_div_96)895 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96, elements_div_96) { 896 TEST_REQUIRES_X86_AVX512F; 897 for (size_t elements = 192; elements < 960; elements += 96) { 898 VScaleExpMinusMaxMicrokernelTester() 899 .elements(elements) 900 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x96); 901 } 902 } 903 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96,elements_lt_96)904 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96, elements_lt_96) { 905 TEST_REQUIRES_X86_AVX512F; 906 for (size_t elements = 1; elements < 96; elements++) { 907 VScaleExpMinusMaxMicrokernelTester() 908 .elements(elements) 909 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x96); 910 } 911 } 912 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96,elements_gt_96)913 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96, elements_gt_96) { 914 TEST_REQUIRES_X86_AVX512F; 915 for (size_t elements = 97; elements < 192; elements++) { 916 VScaleExpMinusMaxMicrokernelTester() 917 .elements(elements) 918 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x96); 919 } 920 } 921 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96,scale)922 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X96, scale) { 923 TEST_REQUIRES_X86_AVX512F; 924 for (size_t elements = 1; elements <= 480; elements += 95) { 925 VScaleExpMinusMaxMicrokernelTester() 926 .elements(elements) 927 .scale(0.01f) 928 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x96); 929 VScaleExpMinusMaxMicrokernelTester() 930 .elements(elements) 931 .scale(100.0f) 932 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x96); 933 } 934 } 935 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 936 937 938 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112,elements_eq_112)939 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112, elements_eq_112) { 940 TEST_REQUIRES_X86_AVX512F; 941 VScaleExpMinusMaxMicrokernelTester() 942 .elements(112) 943 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x112); 944 } 945 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112,elements_div_112)946 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112, elements_div_112) { 947 TEST_REQUIRES_X86_AVX512F; 948 for (size_t elements = 224; elements < 1120; elements += 112) { 949 VScaleExpMinusMaxMicrokernelTester() 950 .elements(elements) 951 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x112); 952 } 953 } 954 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112,elements_lt_112)955 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112, elements_lt_112) { 956 TEST_REQUIRES_X86_AVX512F; 957 for (size_t elements = 1; elements < 112; elements++) { 958 VScaleExpMinusMaxMicrokernelTester() 959 .elements(elements) 960 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x112); 961 } 962 } 963 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112,elements_gt_112)964 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112, elements_gt_112) { 965 TEST_REQUIRES_X86_AVX512F; 966 for (size_t elements = 113; elements < 224; elements++) { 967 VScaleExpMinusMaxMicrokernelTester() 968 .elements(elements) 969 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x112); 970 } 971 } 972 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112,scale)973 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X112, scale) { 974 TEST_REQUIRES_X86_AVX512F; 975 for (size_t elements = 1; elements <= 560; elements += 111) { 976 VScaleExpMinusMaxMicrokernelTester() 977 .elements(elements) 978 .scale(0.01f) 979 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x112); 980 VScaleExpMinusMaxMicrokernelTester() 981 .elements(elements) 982 .scale(100.0f) 983 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x112); 984 } 985 } 986 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 987 988 989 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128,elements_eq_128)990 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128, elements_eq_128) { 991 TEST_REQUIRES_X86_AVX512F; 992 VScaleExpMinusMaxMicrokernelTester() 993 .elements(128) 994 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x128); 995 } 996 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128,elements_div_128)997 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128, elements_div_128) { 998 TEST_REQUIRES_X86_AVX512F; 999 for (size_t elements = 256; elements < 1280; elements += 128) { 1000 VScaleExpMinusMaxMicrokernelTester() 1001 .elements(elements) 1002 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x128); 1003 } 1004 } 1005 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128,elements_lt_128)1006 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128, elements_lt_128) { 1007 TEST_REQUIRES_X86_AVX512F; 1008 for (size_t elements = 1; elements < 128; elements++) { 1009 VScaleExpMinusMaxMicrokernelTester() 1010 .elements(elements) 1011 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x128); 1012 } 1013 } 1014 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128,elements_gt_128)1015 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128, elements_gt_128) { 1016 TEST_REQUIRES_X86_AVX512F; 1017 for (size_t elements = 129; elements < 256; elements++) { 1018 VScaleExpMinusMaxMicrokernelTester() 1019 .elements(elements) 1020 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x128); 1021 } 1022 } 1023 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128,scale)1024 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X128, scale) { 1025 TEST_REQUIRES_X86_AVX512F; 1026 for (size_t elements = 1; elements <= 640; elements += 127) { 1027 VScaleExpMinusMaxMicrokernelTester() 1028 .elements(elements) 1029 .scale(0.01f) 1030 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x128); 1031 VScaleExpMinusMaxMicrokernelTester() 1032 .elements(elements) 1033 .scale(100.0f) 1034 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x128); 1035 } 1036 } 1037 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1038 1039 1040 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144,elements_eq_144)1041 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144, elements_eq_144) { 1042 TEST_REQUIRES_X86_AVX512F; 1043 VScaleExpMinusMaxMicrokernelTester() 1044 .elements(144) 1045 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x144); 1046 } 1047 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144,elements_div_144)1048 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144, elements_div_144) { 1049 TEST_REQUIRES_X86_AVX512F; 1050 for (size_t elements = 288; elements < 1440; elements += 144) { 1051 VScaleExpMinusMaxMicrokernelTester() 1052 .elements(elements) 1053 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x144); 1054 } 1055 } 1056 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144,elements_lt_144)1057 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144, elements_lt_144) { 1058 TEST_REQUIRES_X86_AVX512F; 1059 for (size_t elements = 1; elements < 144; elements++) { 1060 VScaleExpMinusMaxMicrokernelTester() 1061 .elements(elements) 1062 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x144); 1063 } 1064 } 1065 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144,elements_gt_144)1066 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144, elements_gt_144) { 1067 TEST_REQUIRES_X86_AVX512F; 1068 for (size_t elements = 145; elements < 288; elements++) { 1069 VScaleExpMinusMaxMicrokernelTester() 1070 .elements(elements) 1071 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x144); 1072 } 1073 } 1074 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144,scale)1075 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X144, scale) { 1076 TEST_REQUIRES_X86_AVX512F; 1077 for (size_t elements = 1; elements <= 720; elements += 143) { 1078 VScaleExpMinusMaxMicrokernelTester() 1079 .elements(elements) 1080 .scale(0.01f) 1081 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x144); 1082 VScaleExpMinusMaxMicrokernelTester() 1083 .elements(elements) 1084 .scale(100.0f) 1085 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x144); 1086 } 1087 } 1088 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1089 1090 1091 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160,elements_eq_160)1092 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160, elements_eq_160) { 1093 TEST_REQUIRES_X86_AVX512F; 1094 VScaleExpMinusMaxMicrokernelTester() 1095 .elements(160) 1096 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x160); 1097 } 1098 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160,elements_div_160)1099 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160, elements_div_160) { 1100 TEST_REQUIRES_X86_AVX512F; 1101 for (size_t elements = 320; elements < 1600; elements += 160) { 1102 VScaleExpMinusMaxMicrokernelTester() 1103 .elements(elements) 1104 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x160); 1105 } 1106 } 1107 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160,elements_lt_160)1108 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160, elements_lt_160) { 1109 TEST_REQUIRES_X86_AVX512F; 1110 for (size_t elements = 1; elements < 160; elements++) { 1111 VScaleExpMinusMaxMicrokernelTester() 1112 .elements(elements) 1113 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x160); 1114 } 1115 } 1116 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160,elements_gt_160)1117 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160, elements_gt_160) { 1118 TEST_REQUIRES_X86_AVX512F; 1119 for (size_t elements = 161; elements < 320; elements++) { 1120 VScaleExpMinusMaxMicrokernelTester() 1121 .elements(elements) 1122 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x160); 1123 } 1124 } 1125 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160,scale)1126 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X160, scale) { 1127 TEST_REQUIRES_X86_AVX512F; 1128 for (size_t elements = 1; elements <= 800; elements += 159) { 1129 VScaleExpMinusMaxMicrokernelTester() 1130 .elements(elements) 1131 .scale(0.01f) 1132 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x160); 1133 VScaleExpMinusMaxMicrokernelTester() 1134 .elements(elements) 1135 .scale(100.0f) 1136 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x160); 1137 } 1138 } 1139 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1140 1141 1142 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176,elements_eq_176)1143 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176, elements_eq_176) { 1144 TEST_REQUIRES_X86_AVX512F; 1145 VScaleExpMinusMaxMicrokernelTester() 1146 .elements(176) 1147 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x176); 1148 } 1149 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176,elements_div_176)1150 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176, elements_div_176) { 1151 TEST_REQUIRES_X86_AVX512F; 1152 for (size_t elements = 352; elements < 1760; elements += 176) { 1153 VScaleExpMinusMaxMicrokernelTester() 1154 .elements(elements) 1155 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x176); 1156 } 1157 } 1158 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176,elements_lt_176)1159 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176, elements_lt_176) { 1160 TEST_REQUIRES_X86_AVX512F; 1161 for (size_t elements = 1; elements < 176; elements++) { 1162 VScaleExpMinusMaxMicrokernelTester() 1163 .elements(elements) 1164 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x176); 1165 } 1166 } 1167 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176,elements_gt_176)1168 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176, elements_gt_176) { 1169 TEST_REQUIRES_X86_AVX512F; 1170 for (size_t elements = 177; elements < 352; elements++) { 1171 VScaleExpMinusMaxMicrokernelTester() 1172 .elements(elements) 1173 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x176); 1174 } 1175 } 1176 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176,scale)1177 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X176, scale) { 1178 TEST_REQUIRES_X86_AVX512F; 1179 for (size_t elements = 1; elements <= 880; elements += 175) { 1180 VScaleExpMinusMaxMicrokernelTester() 1181 .elements(elements) 1182 .scale(0.01f) 1183 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x176); 1184 VScaleExpMinusMaxMicrokernelTester() 1185 .elements(elements) 1186 .scale(100.0f) 1187 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x176); 1188 } 1189 } 1190 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1191 1192 1193 #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192,elements_eq_192)1194 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192, elements_eq_192) { 1195 TEST_REQUIRES_X86_AVX512F; 1196 VScaleExpMinusMaxMicrokernelTester() 1197 .elements(192) 1198 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x192); 1199 } 1200 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192,elements_div_192)1201 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192, elements_div_192) { 1202 TEST_REQUIRES_X86_AVX512F; 1203 for (size_t elements = 384; elements < 1920; elements += 192) { 1204 VScaleExpMinusMaxMicrokernelTester() 1205 .elements(elements) 1206 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x192); 1207 } 1208 } 1209 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192,elements_lt_192)1210 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192, elements_lt_192) { 1211 TEST_REQUIRES_X86_AVX512F; 1212 for (size_t elements = 1; elements < 192; elements++) { 1213 VScaleExpMinusMaxMicrokernelTester() 1214 .elements(elements) 1215 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x192); 1216 } 1217 } 1218 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192,elements_gt_192)1219 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192, elements_gt_192) { 1220 TEST_REQUIRES_X86_AVX512F; 1221 for (size_t elements = 193; elements < 384; elements++) { 1222 VScaleExpMinusMaxMicrokernelTester() 1223 .elements(elements) 1224 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x192); 1225 } 1226 } 1227 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192,scale)1228 TEST(F32_VSCALEEXPMINUSMAX__AVX512F_P5_SCALEF_X192, scale) { 1229 TEST_REQUIRES_X86_AVX512F; 1230 for (size_t elements = 1; elements <= 960; elements += 191) { 1231 VScaleExpMinusMaxMicrokernelTester() 1232 .elements(elements) 1233 .scale(0.01f) 1234 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x192); 1235 VScaleExpMinusMaxMicrokernelTester() 1236 .elements(elements) 1237 .scale(100.0f) 1238 .Test(xnn_f32_vscaleexpminusmax_ukernel__avx512f_p5_scalef_x192); 1239 } 1240 } 1241 #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1242