xref: /aosp_15_r20/external/XNNPACK/test/f16-vlrelu.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/f16-vlrelu.yaml
8*4bdc9457SAndroid Build Coastguard Worker //   Generator: tools/generate-vunary-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/vunary.h>
17*4bdc9457SAndroid Build Coastguard Worker #include "vunary-microkernel-tester.h"
18*4bdc9457SAndroid Build Coastguard Worker 
19*4bdc9457SAndroid Build Coastguard Worker 
20*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VLRELU__NEONFP16ARITH_X8,batch_eq_8)21*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X8, batch_eq_8) {
22*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
23*4bdc9457SAndroid Build Coastguard Worker     VUnaryMicrokernelTester()
24*4bdc9457SAndroid Build Coastguard Worker       .batch_size(8)
25*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x8, xnn_init_f16_lrelu_neon_params);
26*4bdc9457SAndroid Build Coastguard Worker   }
27*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X8,batch_div_8)28*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X8, batch_div_8) {
29*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
30*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
31*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
32*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
33*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x8, xnn_init_f16_lrelu_neon_params);
34*4bdc9457SAndroid Build Coastguard Worker     }
35*4bdc9457SAndroid Build Coastguard Worker   }
36*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X8,batch_lt_8)37*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X8, batch_lt_8) {
38*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
39*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
40*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
41*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
42*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x8, xnn_init_f16_lrelu_neon_params);
43*4bdc9457SAndroid Build Coastguard Worker     }
44*4bdc9457SAndroid Build Coastguard Worker   }
45*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X8,batch_gt_8)46*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X8, batch_gt_8) {
47*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
48*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
49*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
50*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
51*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x8, xnn_init_f16_lrelu_neon_params);
52*4bdc9457SAndroid Build Coastguard Worker     }
53*4bdc9457SAndroid Build Coastguard Worker   }
54*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X8,inplace)55*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X8, inplace) {
56*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
57*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
58*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
59*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
60*4bdc9457SAndroid Build Coastguard Worker         .inplace(true)
61*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x8, xnn_init_f16_lrelu_neon_params);
62*4bdc9457SAndroid Build Coastguard Worker     }
63*4bdc9457SAndroid Build Coastguard Worker   }
64*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X8,slope)65*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X8, slope) {
66*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
67*4bdc9457SAndroid Build Coastguard Worker     for (float slope : std::vector<float>({-0.7f, 0.3f, 1.3f})) {
68*4bdc9457SAndroid Build Coastguard Worker       for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
69*4bdc9457SAndroid Build Coastguard Worker         VUnaryMicrokernelTester()
70*4bdc9457SAndroid Build Coastguard Worker           .batch_size(batch_size)
71*4bdc9457SAndroid Build Coastguard Worker           .slope(slope)
72*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x8, xnn_init_f16_lrelu_neon_params);
73*4bdc9457SAndroid Build Coastguard Worker       }
74*4bdc9457SAndroid Build Coastguard Worker     }
75*4bdc9457SAndroid Build Coastguard Worker   }
76*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
77*4bdc9457SAndroid Build Coastguard Worker 
78*4bdc9457SAndroid Build Coastguard Worker 
79*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
TEST(F16_VLRELU__NEONFP16ARITH_X16,batch_eq_16)80*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X16, batch_eq_16) {
81*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
82*4bdc9457SAndroid Build Coastguard Worker     VUnaryMicrokernelTester()
83*4bdc9457SAndroid Build Coastguard Worker       .batch_size(16)
84*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x16, xnn_init_f16_lrelu_neon_params);
85*4bdc9457SAndroid Build Coastguard Worker   }
86*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X16,batch_div_16)87*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X16, batch_div_16) {
88*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
89*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
90*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
91*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
92*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x16, xnn_init_f16_lrelu_neon_params);
93*4bdc9457SAndroid Build Coastguard Worker     }
94*4bdc9457SAndroid Build Coastguard Worker   }
95*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X16,batch_lt_16)96*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X16, batch_lt_16) {
97*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
98*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
99*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
100*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
101*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x16, xnn_init_f16_lrelu_neon_params);
102*4bdc9457SAndroid Build Coastguard Worker     }
103*4bdc9457SAndroid Build Coastguard Worker   }
104*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X16,batch_gt_16)105*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X16, batch_gt_16) {
106*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
107*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
108*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
109*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
110*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x16, xnn_init_f16_lrelu_neon_params);
111*4bdc9457SAndroid Build Coastguard Worker     }
112*4bdc9457SAndroid Build Coastguard Worker   }
113*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X16,inplace)114*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X16, inplace) {
115*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
116*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
117*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
118*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
119*4bdc9457SAndroid Build Coastguard Worker         .inplace(true)
120*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x16, xnn_init_f16_lrelu_neon_params);
121*4bdc9457SAndroid Build Coastguard Worker     }
122*4bdc9457SAndroid Build Coastguard Worker   }
123*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__NEONFP16ARITH_X16,slope)124*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__NEONFP16ARITH_X16, slope) {
125*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_ARM_NEON_FP16_ARITH;
126*4bdc9457SAndroid Build Coastguard Worker     for (float slope : std::vector<float>({-0.7f, 0.3f, 1.3f})) {
127*4bdc9457SAndroid Build Coastguard Worker       for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
128*4bdc9457SAndroid Build Coastguard Worker         VUnaryMicrokernelTester()
129*4bdc9457SAndroid Build Coastguard Worker           .batch_size(batch_size)
130*4bdc9457SAndroid Build Coastguard Worker           .slope(slope)
131*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_f16_vlrelu_ukernel__neonfp16arith_x16, xnn_init_f16_lrelu_neon_params);
132*4bdc9457SAndroid Build Coastguard Worker       }
133*4bdc9457SAndroid Build Coastguard Worker     }
134*4bdc9457SAndroid Build Coastguard Worker   }
135*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64)
136*4bdc9457SAndroid Build Coastguard Worker 
137*4bdc9457SAndroid Build Coastguard Worker 
138*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VLRELU__F16C_X8,batch_eq_8)139*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X8, batch_eq_8) {
140*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
141*4bdc9457SAndroid Build Coastguard Worker     VUnaryMicrokernelTester()
142*4bdc9457SAndroid Build Coastguard Worker       .batch_size(8)
143*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_vlrelu_ukernel__f16c_x8, xnn_init_f16_lrelu_avx_params);
144*4bdc9457SAndroid Build Coastguard Worker   }
145*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X8,batch_div_8)146*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X8, batch_div_8) {
147*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
148*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
149*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
150*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
151*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__f16c_x8, xnn_init_f16_lrelu_avx_params);
152*4bdc9457SAndroid Build Coastguard Worker     }
153*4bdc9457SAndroid Build Coastguard Worker   }
154*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X8,batch_lt_8)155*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X8, batch_lt_8) {
156*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
157*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
158*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
159*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
160*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__f16c_x8, xnn_init_f16_lrelu_avx_params);
161*4bdc9457SAndroid Build Coastguard Worker     }
162*4bdc9457SAndroid Build Coastguard Worker   }
163*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X8,batch_gt_8)164*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X8, batch_gt_8) {
165*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
166*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
167*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
168*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
169*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__f16c_x8, xnn_init_f16_lrelu_avx_params);
170*4bdc9457SAndroid Build Coastguard Worker     }
171*4bdc9457SAndroid Build Coastguard Worker   }
172*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X8,inplace)173*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X8, inplace) {
174*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
175*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
176*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
177*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
178*4bdc9457SAndroid Build Coastguard Worker         .inplace(true)
179*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__f16c_x8, xnn_init_f16_lrelu_avx_params);
180*4bdc9457SAndroid Build Coastguard Worker     }
181*4bdc9457SAndroid Build Coastguard Worker   }
182*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X8,slope)183*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X8, slope) {
184*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
185*4bdc9457SAndroid Build Coastguard Worker     for (float slope : std::vector<float>({-0.7f, 0.3f, 1.3f})) {
186*4bdc9457SAndroid Build Coastguard Worker       for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
187*4bdc9457SAndroid Build Coastguard Worker         VUnaryMicrokernelTester()
188*4bdc9457SAndroid Build Coastguard Worker           .batch_size(batch_size)
189*4bdc9457SAndroid Build Coastguard Worker           .slope(slope)
190*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_f16_vlrelu_ukernel__f16c_x8, xnn_init_f16_lrelu_avx_params);
191*4bdc9457SAndroid Build Coastguard Worker       }
192*4bdc9457SAndroid Build Coastguard Worker     }
193*4bdc9457SAndroid Build Coastguard Worker   }
194*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
195*4bdc9457SAndroid Build Coastguard Worker 
196*4bdc9457SAndroid Build Coastguard Worker 
197*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F16_VLRELU__F16C_X16,batch_eq_16)198*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X16, batch_eq_16) {
199*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
200*4bdc9457SAndroid Build Coastguard Worker     VUnaryMicrokernelTester()
201*4bdc9457SAndroid Build Coastguard Worker       .batch_size(16)
202*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_f16_vlrelu_ukernel__f16c_x16, xnn_init_f16_lrelu_avx_params);
203*4bdc9457SAndroid Build Coastguard Worker   }
204*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X16,batch_div_16)205*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X16, batch_div_16) {
206*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
207*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
208*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
209*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
210*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__f16c_x16, xnn_init_f16_lrelu_avx_params);
211*4bdc9457SAndroid Build Coastguard Worker     }
212*4bdc9457SAndroid Build Coastguard Worker   }
213*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X16,batch_lt_16)214*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X16, batch_lt_16) {
215*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
216*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
217*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
218*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
219*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__f16c_x16, xnn_init_f16_lrelu_avx_params);
220*4bdc9457SAndroid Build Coastguard Worker     }
221*4bdc9457SAndroid Build Coastguard Worker   }
222*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X16,batch_gt_16)223*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X16, batch_gt_16) {
224*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
225*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
226*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
227*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
228*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__f16c_x16, xnn_init_f16_lrelu_avx_params);
229*4bdc9457SAndroid Build Coastguard Worker     }
230*4bdc9457SAndroid Build Coastguard Worker   }
231*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X16,inplace)232*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X16, inplace) {
233*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
234*4bdc9457SAndroid Build Coastguard Worker     for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
235*4bdc9457SAndroid Build Coastguard Worker       VUnaryMicrokernelTester()
236*4bdc9457SAndroid Build Coastguard Worker         .batch_size(batch_size)
237*4bdc9457SAndroid Build Coastguard Worker         .inplace(true)
238*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_f16_vlrelu_ukernel__f16c_x16, xnn_init_f16_lrelu_avx_params);
239*4bdc9457SAndroid Build Coastguard Worker     }
240*4bdc9457SAndroid Build Coastguard Worker   }
241*4bdc9457SAndroid Build Coastguard Worker 
TEST(F16_VLRELU__F16C_X16,slope)242*4bdc9457SAndroid Build Coastguard Worker   TEST(F16_VLRELU__F16C_X16, slope) {
243*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_F16C;
244*4bdc9457SAndroid Build Coastguard Worker     for (float slope : std::vector<float>({-0.7f, 0.3f, 1.3f})) {
245*4bdc9457SAndroid Build Coastguard Worker       for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
246*4bdc9457SAndroid Build Coastguard Worker         VUnaryMicrokernelTester()
247*4bdc9457SAndroid Build Coastguard Worker           .batch_size(batch_size)
248*4bdc9457SAndroid Build Coastguard Worker           .slope(slope)
249*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_f16_vlrelu_ukernel__f16c_x16, xnn_init_f16_lrelu_avx_params);
250*4bdc9457SAndroid Build Coastguard Worker       }
251*4bdc9457SAndroid Build Coastguard Worker     }
252*4bdc9457SAndroid Build Coastguard Worker   }
253*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
254