• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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