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