blob: ec18a4076f0f29d7664c8b273d248891b2c1868a [file] [log] [blame]
Marat Dukhan6f8d4d32019-10-25 17:07:09 -07001// 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.
Marat Dukhan4c4eb002019-12-08 21:27:49 -08005//
6// Auto-generated file. Do not edit!
7// Specification: test/f32-vscaleextexp.yaml
8// Generator: tools/generate-vscaleextexp-test.py
9
Marat Dukhan6f8d4d32019-10-25 17:07:09 -070010
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
Marat Dukhan4c4eb002019-12-08 21:27:49 -080020#if XNN_ARCH_X86 || XNN_ARCH_X86_64
21 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8, elements_eq_8) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -070022 TEST_REQUIRES_X86_AVX2;
23 VScaleExtExpMicrokernelTester()
Marat Dukhan4c4eb002019-12-08 21:27:49 -080024 .elements(8)
25 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x8);
Marat Dukhan6f8d4d32019-10-25 17:07:09 -070026 }
27
Marat Dukhan4c4eb002019-12-08 21:27:49 -080028 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8, elements_div_8) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -070029 TEST_REQUIRES_X86_AVX2;
Marat Dukhan4c4eb002019-12-08 21:27:49 -080030 for (size_t elements = 16; elements < 80; elements += 8) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -070031 VScaleExtExpMicrokernelTester()
Marat Dukhan4c4eb002019-12-08 21:27:49 -080032 .elements(elements)
33 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x8);
Marat Dukhan6f8d4d32019-10-25 17:07:09 -070034 }
35 }
36
Marat Dukhan4c4eb002019-12-08 21:27:49 -080037 TEST(F32_VSCALEEXTEXP__AVX2_P5_X8, elements_lt_8) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -070038 TEST_REQUIRES_X86_AVX2;
Marat Dukhan4c4eb002019-12-08 21:27:49 -080039 for (size_t elements = 1; elements < 8; elements++) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -070040 VScaleExtExpMicrokernelTester()
Marat Dukhan4c4eb002019-12-08 21:27:49 -080041 .elements(elements)
42 .Test(xnn_f32_vscaleextexp_ukernel__avx2_p5_x8);
Marat Dukhan6f8d4d32019-10-25 17:07:09 -070043 }
44 }
45
Marat Dukhan4c4eb002019-12-08 21:27:49 -080046 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
465 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16, elements_eq_16) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -0700466 TEST_REQUIRES_X86_AVX512F;
467 VScaleExtExpMicrokernelTester()
Marat Dukhan4c4eb002019-12-08 21:27:49 -0800468 .elements(16)
469 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x16);
Marat Dukhan6f8d4d32019-10-25 17:07:09 -0700470 }
471
Marat Dukhan4c4eb002019-12-08 21:27:49 -0800472 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16, elements_div_16) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -0700473 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan4c4eb002019-12-08 21:27:49 -0800474 for (size_t elements = 32; elements < 160; elements += 16) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -0700475 VScaleExtExpMicrokernelTester()
Marat Dukhan4c4eb002019-12-08 21:27:49 -0800476 .elements(elements)
477 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x16);
Marat Dukhan6f8d4d32019-10-25 17:07:09 -0700478 }
479 }
480
Marat Dukhan4c4eb002019-12-08 21:27:49 -0800481 TEST(F32_VSCALEEXTEXP__AVX512F_P5_SCALEF_X16, elements_lt_16) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -0700482 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan4c4eb002019-12-08 21:27:49 -0800483 for (size_t elements = 1; elements < 16; elements++) {
Marat Dukhan6f8d4d32019-10-25 17:07:09 -0700484 VScaleExtExpMicrokernelTester()
Marat Dukhan4c4eb002019-12-08 21:27:49 -0800485 .elements(elements)
486 .Test(xnn_f32_vscaleextexp_ukernel__avx512f_p5_scalef_x16);
Marat Dukhan6f8d4d32019-10-25 17:07:09 -0700487 }
488 }
Marat Dukhan4c4eb002019-12-08 21:27:49 -0800489
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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