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-prelu.yaml
8*4bdc9457SAndroid Build Coastguard Worker // Generator: tools/generate-prelu-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/prelu.h>
17*4bdc9457SAndroid Build Coastguard Worker #include "prelu-microkernel-tester.h"
18*4bdc9457SAndroid Build Coastguard Worker
19*4bdc9457SAndroid Build Coastguard Worker
20*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_PRELU__NEON_1X4,channels_eq_4)21*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X4, channels_eq_4) {
22*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
23*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
24*4bdc9457SAndroid Build Coastguard Worker .rows(1)
25*4bdc9457SAndroid Build Coastguard Worker .channels(4)
26*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x4);
27*4bdc9457SAndroid Build Coastguard Worker }
28*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X4,channels_div_4)29*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X4, channels_div_4) {
30*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
31*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
32*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
33*4bdc9457SAndroid Build Coastguard Worker .rows(1)
34*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
35*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x4);
36*4bdc9457SAndroid Build Coastguard Worker }
37*4bdc9457SAndroid Build Coastguard Worker }
38*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X4,channels_lt_4)39*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X4, channels_lt_4) {
40*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
41*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
42*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
43*4bdc9457SAndroid Build Coastguard Worker .rows(1)
44*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
45*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x4);
46*4bdc9457SAndroid Build Coastguard Worker }
47*4bdc9457SAndroid Build Coastguard Worker }
48*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X4,channels_gt_4)49*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X4, channels_gt_4) {
50*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
51*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
52*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
53*4bdc9457SAndroid Build Coastguard Worker .rows(1)
54*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
55*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x4);
56*4bdc9457SAndroid Build Coastguard Worker }
57*4bdc9457SAndroid Build Coastguard Worker }
58*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X4,rows_gt_1)59*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X4, rows_gt_1) {
60*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
61*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 2; rows < 2; rows++) {
62*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
63*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
64*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
65*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
66*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x4);
67*4bdc9457SAndroid Build Coastguard Worker }
68*4bdc9457SAndroid Build Coastguard Worker }
69*4bdc9457SAndroid Build Coastguard Worker }
70*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X4,input_stride)71*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X4, input_stride) {
72*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
73*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
74*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
75*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
76*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
77*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
78*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
79*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
80*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x4);
81*4bdc9457SAndroid Build Coastguard Worker }
82*4bdc9457SAndroid Build Coastguard Worker }
83*4bdc9457SAndroid Build Coastguard Worker }
84*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X4,output_stride)85*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X4, output_stride) {
86*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
87*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
88*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
89*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
90*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
91*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
92*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
93*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
94*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x4);
95*4bdc9457SAndroid Build Coastguard Worker }
96*4bdc9457SAndroid Build Coastguard Worker }
97*4bdc9457SAndroid Build Coastguard Worker }
98*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X4,inplace)99*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X4, inplace) {
100*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
101*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
102*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
103*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
104*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
105*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
106*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
107*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
108*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x4);
109*4bdc9457SAndroid Build Coastguard Worker }
110*4bdc9457SAndroid Build Coastguard Worker }
111*4bdc9457SAndroid Build Coastguard Worker }
112*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
113*4bdc9457SAndroid Build Coastguard Worker
114*4bdc9457SAndroid Build Coastguard Worker
115*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_PRELU__NEON_1X8,channels_eq_8)116*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X8, channels_eq_8) {
117*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
118*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
119*4bdc9457SAndroid Build Coastguard Worker .rows(1)
120*4bdc9457SAndroid Build Coastguard Worker .channels(8)
121*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x8);
122*4bdc9457SAndroid Build Coastguard Worker }
123*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X8,channels_div_8)124*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X8, channels_div_8) {
125*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
126*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
127*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
128*4bdc9457SAndroid Build Coastguard Worker .rows(1)
129*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
130*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x8);
131*4bdc9457SAndroid Build Coastguard Worker }
132*4bdc9457SAndroid Build Coastguard Worker }
133*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X8,channels_lt_8)134*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X8, channels_lt_8) {
135*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
136*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
137*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
138*4bdc9457SAndroid Build Coastguard Worker .rows(1)
139*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
140*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x8);
141*4bdc9457SAndroid Build Coastguard Worker }
142*4bdc9457SAndroid Build Coastguard Worker }
143*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X8,channels_gt_8)144*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X8, channels_gt_8) {
145*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
146*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
147*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
148*4bdc9457SAndroid Build Coastguard Worker .rows(1)
149*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
150*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x8);
151*4bdc9457SAndroid Build Coastguard Worker }
152*4bdc9457SAndroid Build Coastguard Worker }
153*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X8,rows_gt_1)154*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X8, rows_gt_1) {
155*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
156*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 2; rows < 2; rows++) {
157*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
158*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
159*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
160*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
161*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x8);
162*4bdc9457SAndroid Build Coastguard Worker }
163*4bdc9457SAndroid Build Coastguard Worker }
164*4bdc9457SAndroid Build Coastguard Worker }
165*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X8,input_stride)166*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X8, input_stride) {
167*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
168*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
169*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
170*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
171*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
172*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
173*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
174*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
175*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x8);
176*4bdc9457SAndroid Build Coastguard Worker }
177*4bdc9457SAndroid Build Coastguard Worker }
178*4bdc9457SAndroid Build Coastguard Worker }
179*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X8,output_stride)180*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X8, output_stride) {
181*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
182*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
183*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
184*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
185*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
186*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
187*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
188*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
189*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x8);
190*4bdc9457SAndroid Build Coastguard Worker }
191*4bdc9457SAndroid Build Coastguard Worker }
192*4bdc9457SAndroid Build Coastguard Worker }
193*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X8,inplace)194*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X8, inplace) {
195*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
196*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
197*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
198*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
199*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
200*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
201*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
202*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
203*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x8);
204*4bdc9457SAndroid Build Coastguard Worker }
205*4bdc9457SAndroid Build Coastguard Worker }
206*4bdc9457SAndroid Build Coastguard Worker }
207*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
208*4bdc9457SAndroid Build Coastguard Worker
209*4bdc9457SAndroid Build Coastguard Worker
210*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_PRELU__NEON_1X16,channels_eq_16)211*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X16, channels_eq_16) {
212*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
213*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
214*4bdc9457SAndroid Build Coastguard Worker .rows(1)
215*4bdc9457SAndroid Build Coastguard Worker .channels(16)
216*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x16);
217*4bdc9457SAndroid Build Coastguard Worker }
218*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X16,channels_div_16)219*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X16, channels_div_16) {
220*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
221*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
222*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
223*4bdc9457SAndroid Build Coastguard Worker .rows(1)
224*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
225*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x16);
226*4bdc9457SAndroid Build Coastguard Worker }
227*4bdc9457SAndroid Build Coastguard Worker }
228*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X16,channels_lt_16)229*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X16, channels_lt_16) {
230*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
231*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
232*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
233*4bdc9457SAndroid Build Coastguard Worker .rows(1)
234*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
235*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x16);
236*4bdc9457SAndroid Build Coastguard Worker }
237*4bdc9457SAndroid Build Coastguard Worker }
238*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X16,channels_gt_16)239*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X16, channels_gt_16) {
240*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
241*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
242*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
243*4bdc9457SAndroid Build Coastguard Worker .rows(1)
244*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
245*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x16);
246*4bdc9457SAndroid Build Coastguard Worker }
247*4bdc9457SAndroid Build Coastguard Worker }
248*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X16,rows_gt_1)249*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X16, rows_gt_1) {
250*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
251*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 2; rows < 2; rows++) {
252*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
253*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
254*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
255*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
256*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x16);
257*4bdc9457SAndroid Build Coastguard Worker }
258*4bdc9457SAndroid Build Coastguard Worker }
259*4bdc9457SAndroid Build Coastguard Worker }
260*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X16,input_stride)261*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X16, input_stride) {
262*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
263*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
264*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
265*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
266*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
267*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
268*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
269*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
270*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x16);
271*4bdc9457SAndroid Build Coastguard Worker }
272*4bdc9457SAndroid Build Coastguard Worker }
273*4bdc9457SAndroid Build Coastguard Worker }
274*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X16,output_stride)275*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X16, output_stride) {
276*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
277*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
278*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
279*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
280*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
281*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
282*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
283*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
284*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x16);
285*4bdc9457SAndroid Build Coastguard Worker }
286*4bdc9457SAndroid Build Coastguard Worker }
287*4bdc9457SAndroid Build Coastguard Worker }
288*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_1X16,inplace)289*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_1X16, inplace) {
290*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
291*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
292*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
293*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
294*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
295*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
296*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
297*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
298*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_1x16);
299*4bdc9457SAndroid Build Coastguard Worker }
300*4bdc9457SAndroid Build Coastguard Worker }
301*4bdc9457SAndroid Build Coastguard Worker }
302*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
303*4bdc9457SAndroid Build Coastguard Worker
304*4bdc9457SAndroid Build Coastguard Worker
305*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_PRELU__NEON_2X4,channels_eq_4)306*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, channels_eq_4) {
307*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
308*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
309*4bdc9457SAndroid Build Coastguard Worker .rows(2)
310*4bdc9457SAndroid Build Coastguard Worker .channels(4)
311*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
312*4bdc9457SAndroid Build Coastguard Worker }
313*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X4,channels_div_4)314*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, channels_div_4) {
315*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
316*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
317*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
318*4bdc9457SAndroid Build Coastguard Worker .rows(2)
319*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
320*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
321*4bdc9457SAndroid Build Coastguard Worker }
322*4bdc9457SAndroid Build Coastguard Worker }
323*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X4,channels_lt_4)324*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, channels_lt_4) {
325*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
326*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
327*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
328*4bdc9457SAndroid Build Coastguard Worker .rows(2)
329*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
330*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
331*4bdc9457SAndroid Build Coastguard Worker }
332*4bdc9457SAndroid Build Coastguard Worker }
333*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X4,channels_gt_4)334*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, channels_gt_4) {
335*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
336*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
337*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
338*4bdc9457SAndroid Build Coastguard Worker .rows(2)
339*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
340*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
341*4bdc9457SAndroid Build Coastguard Worker }
342*4bdc9457SAndroid Build Coastguard Worker }
343*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X4,rows_lt_2)344*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, rows_lt_2) {
345*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
346*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
347*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
348*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
349*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
350*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
351*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
352*4bdc9457SAndroid Build Coastguard Worker }
353*4bdc9457SAndroid Build Coastguard Worker }
354*4bdc9457SAndroid Build Coastguard Worker }
355*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X4,rows_div_2)356*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, rows_div_2) {
357*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
358*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
359*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
360*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
361*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
362*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
363*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
364*4bdc9457SAndroid Build Coastguard Worker }
365*4bdc9457SAndroid Build Coastguard Worker }
366*4bdc9457SAndroid Build Coastguard Worker }
367*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X4,rows_gt_2)368*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, rows_gt_2) {
369*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
370*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
371*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
372*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
373*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
374*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
375*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
376*4bdc9457SAndroid Build Coastguard Worker }
377*4bdc9457SAndroid Build Coastguard Worker }
378*4bdc9457SAndroid Build Coastguard Worker }
379*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X4,input_stride)380*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, input_stride) {
381*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
382*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
383*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
384*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
385*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
386*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
387*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
388*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
389*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
390*4bdc9457SAndroid Build Coastguard Worker }
391*4bdc9457SAndroid Build Coastguard Worker }
392*4bdc9457SAndroid Build Coastguard Worker }
393*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X4,output_stride)394*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, output_stride) {
395*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
396*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
397*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
398*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
399*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
400*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
401*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
402*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
403*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
404*4bdc9457SAndroid Build Coastguard Worker }
405*4bdc9457SAndroid Build Coastguard Worker }
406*4bdc9457SAndroid Build Coastguard Worker }
407*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X4,inplace)408*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X4, inplace) {
409*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
410*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
411*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
412*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
413*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
414*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
415*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
416*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
417*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x4);
418*4bdc9457SAndroid Build Coastguard Worker }
419*4bdc9457SAndroid Build Coastguard Worker }
420*4bdc9457SAndroid Build Coastguard Worker }
421*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
422*4bdc9457SAndroid Build Coastguard Worker
423*4bdc9457SAndroid Build Coastguard Worker
424*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_PRELU__NEON_2X8,channels_eq_8)425*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, channels_eq_8) {
426*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
427*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
428*4bdc9457SAndroid Build Coastguard Worker .rows(2)
429*4bdc9457SAndroid Build Coastguard Worker .channels(8)
430*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
431*4bdc9457SAndroid Build Coastguard Worker }
432*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X8,channels_div_8)433*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, channels_div_8) {
434*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
435*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
436*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
437*4bdc9457SAndroid Build Coastguard Worker .rows(2)
438*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
439*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
440*4bdc9457SAndroid Build Coastguard Worker }
441*4bdc9457SAndroid Build Coastguard Worker }
442*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X8,channels_lt_8)443*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, channels_lt_8) {
444*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
445*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
446*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
447*4bdc9457SAndroid Build Coastguard Worker .rows(2)
448*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
449*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
450*4bdc9457SAndroid Build Coastguard Worker }
451*4bdc9457SAndroid Build Coastguard Worker }
452*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X8,channels_gt_8)453*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, channels_gt_8) {
454*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
455*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
456*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
457*4bdc9457SAndroid Build Coastguard Worker .rows(2)
458*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
459*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
460*4bdc9457SAndroid Build Coastguard Worker }
461*4bdc9457SAndroid Build Coastguard Worker }
462*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X8,rows_lt_2)463*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, rows_lt_2) {
464*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
465*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
466*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
467*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
468*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
469*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
470*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
471*4bdc9457SAndroid Build Coastguard Worker }
472*4bdc9457SAndroid Build Coastguard Worker }
473*4bdc9457SAndroid Build Coastguard Worker }
474*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X8,rows_div_2)475*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, rows_div_2) {
476*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
477*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
478*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
479*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
480*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
481*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
482*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
483*4bdc9457SAndroid Build Coastguard Worker }
484*4bdc9457SAndroid Build Coastguard Worker }
485*4bdc9457SAndroid Build Coastguard Worker }
486*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X8,rows_gt_2)487*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, rows_gt_2) {
488*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
489*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
490*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
491*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
492*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
493*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
494*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
495*4bdc9457SAndroid Build Coastguard Worker }
496*4bdc9457SAndroid Build Coastguard Worker }
497*4bdc9457SAndroid Build Coastguard Worker }
498*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X8,input_stride)499*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, input_stride) {
500*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
501*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
502*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
503*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
504*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
505*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
506*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
507*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
508*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
509*4bdc9457SAndroid Build Coastguard Worker }
510*4bdc9457SAndroid Build Coastguard Worker }
511*4bdc9457SAndroid Build Coastguard Worker }
512*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X8,output_stride)513*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, output_stride) {
514*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
515*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
516*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
517*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
518*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
519*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
520*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
521*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
522*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
523*4bdc9457SAndroid Build Coastguard Worker }
524*4bdc9457SAndroid Build Coastguard Worker }
525*4bdc9457SAndroid Build Coastguard Worker }
526*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X8,inplace)527*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X8, inplace) {
528*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
529*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
530*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
531*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
532*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
533*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
534*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
535*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
536*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x8);
537*4bdc9457SAndroid Build Coastguard Worker }
538*4bdc9457SAndroid Build Coastguard Worker }
539*4bdc9457SAndroid Build Coastguard Worker }
540*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
541*4bdc9457SAndroid Build Coastguard Worker
542*4bdc9457SAndroid Build Coastguard Worker
543*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_PRELU__NEON_2X16,channels_eq_16)544*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, channels_eq_16) {
545*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
546*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
547*4bdc9457SAndroid Build Coastguard Worker .rows(2)
548*4bdc9457SAndroid Build Coastguard Worker .channels(16)
549*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
550*4bdc9457SAndroid Build Coastguard Worker }
551*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X16,channels_div_16)552*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, channels_div_16) {
553*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
554*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
555*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
556*4bdc9457SAndroid Build Coastguard Worker .rows(2)
557*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
558*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
559*4bdc9457SAndroid Build Coastguard Worker }
560*4bdc9457SAndroid Build Coastguard Worker }
561*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X16,channels_lt_16)562*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, channels_lt_16) {
563*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
564*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
565*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
566*4bdc9457SAndroid Build Coastguard Worker .rows(2)
567*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
568*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
569*4bdc9457SAndroid Build Coastguard Worker }
570*4bdc9457SAndroid Build Coastguard Worker }
571*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X16,channels_gt_16)572*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, channels_gt_16) {
573*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
574*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
575*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
576*4bdc9457SAndroid Build Coastguard Worker .rows(2)
577*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
578*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
579*4bdc9457SAndroid Build Coastguard Worker }
580*4bdc9457SAndroid Build Coastguard Worker }
581*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X16,rows_lt_2)582*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, rows_lt_2) {
583*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
584*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
585*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
586*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
587*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
588*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
589*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
590*4bdc9457SAndroid Build Coastguard Worker }
591*4bdc9457SAndroid Build Coastguard Worker }
592*4bdc9457SAndroid Build Coastguard Worker }
593*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X16,rows_div_2)594*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, rows_div_2) {
595*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
596*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
597*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
598*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
599*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
600*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
601*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
602*4bdc9457SAndroid Build Coastguard Worker }
603*4bdc9457SAndroid Build Coastguard Worker }
604*4bdc9457SAndroid Build Coastguard Worker }
605*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X16,rows_gt_2)606*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, rows_gt_2) {
607*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
608*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
609*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
610*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
611*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
612*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
613*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
614*4bdc9457SAndroid Build Coastguard Worker }
615*4bdc9457SAndroid Build Coastguard Worker }
616*4bdc9457SAndroid Build Coastguard Worker }
617*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X16,input_stride)618*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, input_stride) {
619*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
620*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
621*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
622*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
623*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
624*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
625*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
626*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
627*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
628*4bdc9457SAndroid Build Coastguard Worker }
629*4bdc9457SAndroid Build Coastguard Worker }
630*4bdc9457SAndroid Build Coastguard Worker }
631*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X16,output_stride)632*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, output_stride) {
633*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
634*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
635*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
636*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
637*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
638*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
639*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
640*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
641*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
642*4bdc9457SAndroid Build Coastguard Worker }
643*4bdc9457SAndroid Build Coastguard Worker }
644*4bdc9457SAndroid Build Coastguard Worker }
645*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_2X16,inplace)646*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_2X16, inplace) {
647*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
648*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
649*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
650*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
651*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
652*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
653*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
654*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
655*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_2x16);
656*4bdc9457SAndroid Build Coastguard Worker }
657*4bdc9457SAndroid Build Coastguard Worker }
658*4bdc9457SAndroid Build Coastguard Worker }
659*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
660*4bdc9457SAndroid Build Coastguard Worker
661*4bdc9457SAndroid Build Coastguard Worker
662*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_PRELU__NEON_4X4,channels_eq_4)663*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, channels_eq_4) {
664*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
665*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
666*4bdc9457SAndroid Build Coastguard Worker .rows(4)
667*4bdc9457SAndroid Build Coastguard Worker .channels(4)
668*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
669*4bdc9457SAndroid Build Coastguard Worker }
670*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X4,channels_div_4)671*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, channels_div_4) {
672*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
673*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
674*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
675*4bdc9457SAndroid Build Coastguard Worker .rows(4)
676*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
677*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
678*4bdc9457SAndroid Build Coastguard Worker }
679*4bdc9457SAndroid Build Coastguard Worker }
680*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X4,channels_lt_4)681*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, channels_lt_4) {
682*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
683*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
684*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
685*4bdc9457SAndroid Build Coastguard Worker .rows(4)
686*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
687*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
688*4bdc9457SAndroid Build Coastguard Worker }
689*4bdc9457SAndroid Build Coastguard Worker }
690*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X4,channels_gt_4)691*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, channels_gt_4) {
692*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
693*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
694*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
695*4bdc9457SAndroid Build Coastguard Worker .rows(4)
696*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
697*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
698*4bdc9457SAndroid Build Coastguard Worker }
699*4bdc9457SAndroid Build Coastguard Worker }
700*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X4,rows_lt_4)701*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, rows_lt_4) {
702*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
703*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 4; rows++) {
704*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
705*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
706*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
707*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
708*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
709*4bdc9457SAndroid Build Coastguard Worker }
710*4bdc9457SAndroid Build Coastguard Worker }
711*4bdc9457SAndroid Build Coastguard Worker }
712*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X4,rows_div_4)713*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, rows_div_4) {
714*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
715*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows <= 16; rows += 4) {
716*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
717*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
718*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
719*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
720*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
721*4bdc9457SAndroid Build Coastguard Worker }
722*4bdc9457SAndroid Build Coastguard Worker }
723*4bdc9457SAndroid Build Coastguard Worker }
724*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X4,rows_gt_4)725*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, rows_gt_4) {
726*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
727*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 5; rows < 8; rows++) {
728*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
729*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
730*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
731*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
732*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
733*4bdc9457SAndroid Build Coastguard Worker }
734*4bdc9457SAndroid Build Coastguard Worker }
735*4bdc9457SAndroid Build Coastguard Worker }
736*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X4,input_stride)737*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, input_stride) {
738*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
739*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
740*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
741*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
742*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
743*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
744*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
745*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
746*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
747*4bdc9457SAndroid Build Coastguard Worker }
748*4bdc9457SAndroid Build Coastguard Worker }
749*4bdc9457SAndroid Build Coastguard Worker }
750*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X4,output_stride)751*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, output_stride) {
752*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
753*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
754*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
755*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
756*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
757*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
758*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
759*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
760*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
761*4bdc9457SAndroid Build Coastguard Worker }
762*4bdc9457SAndroid Build Coastguard Worker }
763*4bdc9457SAndroid Build Coastguard Worker }
764*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X4,inplace)765*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X4, inplace) {
766*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
767*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
768*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
769*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
770*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
771*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
772*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
773*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
774*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x4);
775*4bdc9457SAndroid Build Coastguard Worker }
776*4bdc9457SAndroid Build Coastguard Worker }
777*4bdc9457SAndroid Build Coastguard Worker }
778*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
779*4bdc9457SAndroid Build Coastguard Worker
780*4bdc9457SAndroid Build Coastguard Worker
781*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_PRELU__NEON_4X8,channels_eq_8)782*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, channels_eq_8) {
783*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
784*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
785*4bdc9457SAndroid Build Coastguard Worker .rows(4)
786*4bdc9457SAndroid Build Coastguard Worker .channels(8)
787*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
788*4bdc9457SAndroid Build Coastguard Worker }
789*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X8,channels_div_8)790*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, channels_div_8) {
791*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
792*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
793*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
794*4bdc9457SAndroid Build Coastguard Worker .rows(4)
795*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
796*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
797*4bdc9457SAndroid Build Coastguard Worker }
798*4bdc9457SAndroid Build Coastguard Worker }
799*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X8,channels_lt_8)800*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, channels_lt_8) {
801*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
802*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
803*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
804*4bdc9457SAndroid Build Coastguard Worker .rows(4)
805*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
806*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
807*4bdc9457SAndroid Build Coastguard Worker }
808*4bdc9457SAndroid Build Coastguard Worker }
809*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X8,channels_gt_8)810*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, channels_gt_8) {
811*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
812*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
813*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
814*4bdc9457SAndroid Build Coastguard Worker .rows(4)
815*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
816*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
817*4bdc9457SAndroid Build Coastguard Worker }
818*4bdc9457SAndroid Build Coastguard Worker }
819*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X8,rows_lt_4)820*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, rows_lt_4) {
821*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
822*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 4; rows++) {
823*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
824*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
825*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
826*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
827*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
828*4bdc9457SAndroid Build Coastguard Worker }
829*4bdc9457SAndroid Build Coastguard Worker }
830*4bdc9457SAndroid Build Coastguard Worker }
831*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X8,rows_div_4)832*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, rows_div_4) {
833*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
834*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows <= 16; rows += 4) {
835*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
836*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
837*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
838*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
839*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
840*4bdc9457SAndroid Build Coastguard Worker }
841*4bdc9457SAndroid Build Coastguard Worker }
842*4bdc9457SAndroid Build Coastguard Worker }
843*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X8,rows_gt_4)844*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, rows_gt_4) {
845*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
846*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 5; rows < 8; rows++) {
847*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
848*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
849*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
850*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
851*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
852*4bdc9457SAndroid Build Coastguard Worker }
853*4bdc9457SAndroid Build Coastguard Worker }
854*4bdc9457SAndroid Build Coastguard Worker }
855*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X8,input_stride)856*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, input_stride) {
857*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
858*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
859*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
860*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
861*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
862*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
863*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
864*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
865*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
866*4bdc9457SAndroid Build Coastguard Worker }
867*4bdc9457SAndroid Build Coastguard Worker }
868*4bdc9457SAndroid Build Coastguard Worker }
869*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X8,output_stride)870*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, output_stride) {
871*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
872*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
873*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
874*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
875*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
876*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
877*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
878*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
879*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
880*4bdc9457SAndroid Build Coastguard Worker }
881*4bdc9457SAndroid Build Coastguard Worker }
882*4bdc9457SAndroid Build Coastguard Worker }
883*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X8,inplace)884*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X8, inplace) {
885*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
886*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
887*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
888*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
889*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
890*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
891*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
892*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
893*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x8);
894*4bdc9457SAndroid Build Coastguard Worker }
895*4bdc9457SAndroid Build Coastguard Worker }
896*4bdc9457SAndroid Build Coastguard Worker }
897*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
898*4bdc9457SAndroid Build Coastguard Worker
899*4bdc9457SAndroid Build Coastguard Worker
900*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(F32_PRELU__NEON_4X16,channels_eq_16)901*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, channels_eq_16) {
902*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
903*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
904*4bdc9457SAndroid Build Coastguard Worker .rows(4)
905*4bdc9457SAndroid Build Coastguard Worker .channels(16)
906*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
907*4bdc9457SAndroid Build Coastguard Worker }
908*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X16,channels_div_16)909*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, channels_div_16) {
910*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
911*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
912*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
913*4bdc9457SAndroid Build Coastguard Worker .rows(4)
914*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
915*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
916*4bdc9457SAndroid Build Coastguard Worker }
917*4bdc9457SAndroid Build Coastguard Worker }
918*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X16,channels_lt_16)919*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, channels_lt_16) {
920*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
921*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
922*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
923*4bdc9457SAndroid Build Coastguard Worker .rows(4)
924*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
925*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
926*4bdc9457SAndroid Build Coastguard Worker }
927*4bdc9457SAndroid Build Coastguard Worker }
928*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X16,channels_gt_16)929*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, channels_gt_16) {
930*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
931*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
932*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
933*4bdc9457SAndroid Build Coastguard Worker .rows(4)
934*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
935*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
936*4bdc9457SAndroid Build Coastguard Worker }
937*4bdc9457SAndroid Build Coastguard Worker }
938*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X16,rows_lt_4)939*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, rows_lt_4) {
940*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
941*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 4; rows++) {
942*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
943*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
944*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
945*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
946*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
947*4bdc9457SAndroid Build Coastguard Worker }
948*4bdc9457SAndroid Build Coastguard Worker }
949*4bdc9457SAndroid Build Coastguard Worker }
950*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X16,rows_div_4)951*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, rows_div_4) {
952*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
953*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows <= 16; rows += 4) {
954*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
955*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
956*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
957*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
958*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
959*4bdc9457SAndroid Build Coastguard Worker }
960*4bdc9457SAndroid Build Coastguard Worker }
961*4bdc9457SAndroid Build Coastguard Worker }
962*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X16,rows_gt_4)963*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, rows_gt_4) {
964*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
965*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 5; rows < 8; rows++) {
966*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
967*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
968*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
969*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
970*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
971*4bdc9457SAndroid Build Coastguard Worker }
972*4bdc9457SAndroid Build Coastguard Worker }
973*4bdc9457SAndroid Build Coastguard Worker }
974*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X16,input_stride)975*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, input_stride) {
976*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
977*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
978*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
979*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
980*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
981*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
982*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
983*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
984*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
985*4bdc9457SAndroid Build Coastguard Worker }
986*4bdc9457SAndroid Build Coastguard Worker }
987*4bdc9457SAndroid Build Coastguard Worker }
988*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X16,output_stride)989*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, output_stride) {
990*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
991*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
992*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
993*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
994*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
995*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
996*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
997*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
998*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
999*4bdc9457SAndroid Build Coastguard Worker }
1000*4bdc9457SAndroid Build Coastguard Worker }
1001*4bdc9457SAndroid Build Coastguard Worker }
1002*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__NEON_4X16,inplace)1003*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__NEON_4X16, inplace) {
1004*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
1005*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
1006*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
1007*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1008*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1009*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1010*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
1011*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1012*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__neon_4x16);
1013*4bdc9457SAndroid Build Coastguard Worker }
1014*4bdc9457SAndroid Build Coastguard Worker }
1015*4bdc9457SAndroid Build Coastguard Worker }
1016*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
1017*4bdc9457SAndroid Build Coastguard Worker
1018*4bdc9457SAndroid Build Coastguard Worker
1019*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__SSE_2X4,channels_eq_4)1020*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, channels_eq_4) {
1021*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1022*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1023*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1024*4bdc9457SAndroid Build Coastguard Worker .channels(4)
1025*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1026*4bdc9457SAndroid Build Coastguard Worker }
1027*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X4,channels_div_4)1028*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, channels_div_4) {
1029*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1030*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
1031*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1032*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1033*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1034*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1035*4bdc9457SAndroid Build Coastguard Worker }
1036*4bdc9457SAndroid Build Coastguard Worker }
1037*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X4,channels_lt_4)1038*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, channels_lt_4) {
1039*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1040*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
1041*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1042*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1043*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1044*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1045*4bdc9457SAndroid Build Coastguard Worker }
1046*4bdc9457SAndroid Build Coastguard Worker }
1047*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X4,channels_gt_4)1048*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, channels_gt_4) {
1049*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1050*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
1051*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1052*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1053*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1054*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1055*4bdc9457SAndroid Build Coastguard Worker }
1056*4bdc9457SAndroid Build Coastguard Worker }
1057*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X4,rows_lt_2)1058*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, rows_lt_2) {
1059*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1060*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
1061*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1062*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1063*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1064*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1065*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1066*4bdc9457SAndroid Build Coastguard Worker }
1067*4bdc9457SAndroid Build Coastguard Worker }
1068*4bdc9457SAndroid Build Coastguard Worker }
1069*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X4,rows_div_2)1070*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, rows_div_2) {
1071*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1072*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
1073*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1074*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1075*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1076*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1077*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1078*4bdc9457SAndroid Build Coastguard Worker }
1079*4bdc9457SAndroid Build Coastguard Worker }
1080*4bdc9457SAndroid Build Coastguard Worker }
1081*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X4,rows_gt_2)1082*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, rows_gt_2) {
1083*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1084*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
1085*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1086*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1087*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1088*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1089*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1090*4bdc9457SAndroid Build Coastguard Worker }
1091*4bdc9457SAndroid Build Coastguard Worker }
1092*4bdc9457SAndroid Build Coastguard Worker }
1093*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X4,input_stride)1094*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, input_stride) {
1095*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1096*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1097*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1098*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1099*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1100*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1101*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
1102*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1103*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1104*4bdc9457SAndroid Build Coastguard Worker }
1105*4bdc9457SAndroid Build Coastguard Worker }
1106*4bdc9457SAndroid Build Coastguard Worker }
1107*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X4,output_stride)1108*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, output_stride) {
1109*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1110*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1111*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1112*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1113*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1114*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1115*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
1116*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1117*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1118*4bdc9457SAndroid Build Coastguard Worker }
1119*4bdc9457SAndroid Build Coastguard Worker }
1120*4bdc9457SAndroid Build Coastguard Worker }
1121*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X4,inplace)1122*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X4, inplace) {
1123*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1124*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1125*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1126*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1127*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1128*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1129*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
1130*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1131*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x4);
1132*4bdc9457SAndroid Build Coastguard Worker }
1133*4bdc9457SAndroid Build Coastguard Worker }
1134*4bdc9457SAndroid Build Coastguard Worker }
1135*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
1136*4bdc9457SAndroid Build Coastguard Worker
1137*4bdc9457SAndroid Build Coastguard Worker
1138*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__SSE_2X8,channels_eq_8)1139*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, channels_eq_8) {
1140*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1141*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1142*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1143*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1144*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1145*4bdc9457SAndroid Build Coastguard Worker }
1146*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X8,channels_div_8)1147*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, channels_div_8) {
1148*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1149*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
1150*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1151*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1152*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1153*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1154*4bdc9457SAndroid Build Coastguard Worker }
1155*4bdc9457SAndroid Build Coastguard Worker }
1156*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X8,channels_lt_8)1157*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, channels_lt_8) {
1158*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1159*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1160*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1161*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1162*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1163*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1164*4bdc9457SAndroid Build Coastguard Worker }
1165*4bdc9457SAndroid Build Coastguard Worker }
1166*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X8,channels_gt_8)1167*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, channels_gt_8) {
1168*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1169*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1170*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1171*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1172*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1173*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1174*4bdc9457SAndroid Build Coastguard Worker }
1175*4bdc9457SAndroid Build Coastguard Worker }
1176*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X8,rows_lt_2)1177*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, rows_lt_2) {
1178*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1179*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
1180*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1181*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1182*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1183*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1184*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1185*4bdc9457SAndroid Build Coastguard Worker }
1186*4bdc9457SAndroid Build Coastguard Worker }
1187*4bdc9457SAndroid Build Coastguard Worker }
1188*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X8,rows_div_2)1189*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, rows_div_2) {
1190*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1191*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
1192*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1193*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1194*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1195*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1196*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1197*4bdc9457SAndroid Build Coastguard Worker }
1198*4bdc9457SAndroid Build Coastguard Worker }
1199*4bdc9457SAndroid Build Coastguard Worker }
1200*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X8,rows_gt_2)1201*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, rows_gt_2) {
1202*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1203*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
1204*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1205*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1206*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1207*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1208*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1209*4bdc9457SAndroid Build Coastguard Worker }
1210*4bdc9457SAndroid Build Coastguard Worker }
1211*4bdc9457SAndroid Build Coastguard Worker }
1212*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X8,input_stride)1213*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, input_stride) {
1214*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1215*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1216*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1217*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1218*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1219*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1220*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
1221*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1222*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1223*4bdc9457SAndroid Build Coastguard Worker }
1224*4bdc9457SAndroid Build Coastguard Worker }
1225*4bdc9457SAndroid Build Coastguard Worker }
1226*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X8,output_stride)1227*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, output_stride) {
1228*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1229*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1230*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1231*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1232*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1233*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1234*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
1235*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1236*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1237*4bdc9457SAndroid Build Coastguard Worker }
1238*4bdc9457SAndroid Build Coastguard Worker }
1239*4bdc9457SAndroid Build Coastguard Worker }
1240*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE_2X8,inplace)1241*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE_2X8, inplace) {
1242*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE;
1243*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1244*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1245*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1246*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1247*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1248*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
1249*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1250*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse_2x8);
1251*4bdc9457SAndroid Build Coastguard Worker }
1252*4bdc9457SAndroid Build Coastguard Worker }
1253*4bdc9457SAndroid Build Coastguard Worker }
1254*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
1255*4bdc9457SAndroid Build Coastguard Worker
1256*4bdc9457SAndroid Build Coastguard Worker
1257*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__SSE2_2X4,channels_eq_4)1258*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, channels_eq_4) {
1259*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1260*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1261*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1262*4bdc9457SAndroid Build Coastguard Worker .channels(4)
1263*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1264*4bdc9457SAndroid Build Coastguard Worker }
1265*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X4,channels_div_4)1266*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, channels_div_4) {
1267*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1268*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
1269*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1270*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1271*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1272*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1273*4bdc9457SAndroid Build Coastguard Worker }
1274*4bdc9457SAndroid Build Coastguard Worker }
1275*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X4,channels_lt_4)1276*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, channels_lt_4) {
1277*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1278*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
1279*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1280*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1281*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1282*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1283*4bdc9457SAndroid Build Coastguard Worker }
1284*4bdc9457SAndroid Build Coastguard Worker }
1285*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X4,channels_gt_4)1286*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, channels_gt_4) {
1287*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1288*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
1289*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1290*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1291*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1292*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1293*4bdc9457SAndroid Build Coastguard Worker }
1294*4bdc9457SAndroid Build Coastguard Worker }
1295*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X4,rows_lt_2)1296*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, rows_lt_2) {
1297*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1298*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
1299*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1300*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1301*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1302*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1303*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1304*4bdc9457SAndroid Build Coastguard Worker }
1305*4bdc9457SAndroid Build Coastguard Worker }
1306*4bdc9457SAndroid Build Coastguard Worker }
1307*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X4,rows_div_2)1308*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, rows_div_2) {
1309*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1310*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
1311*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1312*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1313*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1314*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1315*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1316*4bdc9457SAndroid Build Coastguard Worker }
1317*4bdc9457SAndroid Build Coastguard Worker }
1318*4bdc9457SAndroid Build Coastguard Worker }
1319*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X4,rows_gt_2)1320*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, rows_gt_2) {
1321*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1322*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
1323*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1324*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1325*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1326*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1327*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1328*4bdc9457SAndroid Build Coastguard Worker }
1329*4bdc9457SAndroid Build Coastguard Worker }
1330*4bdc9457SAndroid Build Coastguard Worker }
1331*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X4,input_stride)1332*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, input_stride) {
1333*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1334*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1335*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1336*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1337*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1338*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1339*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
1340*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1341*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1342*4bdc9457SAndroid Build Coastguard Worker }
1343*4bdc9457SAndroid Build Coastguard Worker }
1344*4bdc9457SAndroid Build Coastguard Worker }
1345*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X4,output_stride)1346*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, output_stride) {
1347*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1348*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1349*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1350*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1351*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1352*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1353*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
1354*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1355*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1356*4bdc9457SAndroid Build Coastguard Worker }
1357*4bdc9457SAndroid Build Coastguard Worker }
1358*4bdc9457SAndroid Build Coastguard Worker }
1359*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X4,inplace)1360*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X4, inplace) {
1361*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1362*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1363*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1364*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1365*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1366*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1367*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
1368*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1369*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x4);
1370*4bdc9457SAndroid Build Coastguard Worker }
1371*4bdc9457SAndroid Build Coastguard Worker }
1372*4bdc9457SAndroid Build Coastguard Worker }
1373*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
1374*4bdc9457SAndroid Build Coastguard Worker
1375*4bdc9457SAndroid Build Coastguard Worker
1376*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__SSE2_2X8,channels_eq_8)1377*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, channels_eq_8) {
1378*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1379*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1380*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1381*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1382*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1383*4bdc9457SAndroid Build Coastguard Worker }
1384*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X8,channels_div_8)1385*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, channels_div_8) {
1386*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1387*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
1388*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1389*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1390*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1391*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1392*4bdc9457SAndroid Build Coastguard Worker }
1393*4bdc9457SAndroid Build Coastguard Worker }
1394*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X8,channels_lt_8)1395*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, channels_lt_8) {
1396*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1397*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1398*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1399*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1400*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1401*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1402*4bdc9457SAndroid Build Coastguard Worker }
1403*4bdc9457SAndroid Build Coastguard Worker }
1404*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X8,channels_gt_8)1405*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, channels_gt_8) {
1406*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1407*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1408*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1409*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1410*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1411*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1412*4bdc9457SAndroid Build Coastguard Worker }
1413*4bdc9457SAndroid Build Coastguard Worker }
1414*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X8,rows_lt_2)1415*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, rows_lt_2) {
1416*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1417*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
1418*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1419*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1420*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1421*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1422*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1423*4bdc9457SAndroid Build Coastguard Worker }
1424*4bdc9457SAndroid Build Coastguard Worker }
1425*4bdc9457SAndroid Build Coastguard Worker }
1426*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X8,rows_div_2)1427*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, rows_div_2) {
1428*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1429*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
1430*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1431*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1432*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1433*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1434*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1435*4bdc9457SAndroid Build Coastguard Worker }
1436*4bdc9457SAndroid Build Coastguard Worker }
1437*4bdc9457SAndroid Build Coastguard Worker }
1438*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X8,rows_gt_2)1439*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, rows_gt_2) {
1440*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1441*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
1442*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1443*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1444*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1445*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1446*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1447*4bdc9457SAndroid Build Coastguard Worker }
1448*4bdc9457SAndroid Build Coastguard Worker }
1449*4bdc9457SAndroid Build Coastguard Worker }
1450*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X8,input_stride)1451*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, input_stride) {
1452*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1453*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1454*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1455*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1456*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1457*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1458*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
1459*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1460*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1461*4bdc9457SAndroid Build Coastguard Worker }
1462*4bdc9457SAndroid Build Coastguard Worker }
1463*4bdc9457SAndroid Build Coastguard Worker }
1464*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X8,output_stride)1465*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, output_stride) {
1466*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1467*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1468*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1469*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1470*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1471*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1472*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
1473*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1474*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1475*4bdc9457SAndroid Build Coastguard Worker }
1476*4bdc9457SAndroid Build Coastguard Worker }
1477*4bdc9457SAndroid Build Coastguard Worker }
1478*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE2_2X8,inplace)1479*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE2_2X8, inplace) {
1480*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
1481*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1482*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1483*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1484*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1485*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1486*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
1487*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1488*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse2_2x8);
1489*4bdc9457SAndroid Build Coastguard Worker }
1490*4bdc9457SAndroid Build Coastguard Worker }
1491*4bdc9457SAndroid Build Coastguard Worker }
1492*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
1493*4bdc9457SAndroid Build Coastguard Worker
1494*4bdc9457SAndroid Build Coastguard Worker
1495*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__SSE41_2X4,channels_eq_4)1496*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, channels_eq_4) {
1497*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1498*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1499*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1500*4bdc9457SAndroid Build Coastguard Worker .channels(4)
1501*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1502*4bdc9457SAndroid Build Coastguard Worker }
1503*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X4,channels_div_4)1504*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, channels_div_4) {
1505*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1506*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
1507*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1508*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1509*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1510*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1511*4bdc9457SAndroid Build Coastguard Worker }
1512*4bdc9457SAndroid Build Coastguard Worker }
1513*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X4,channels_lt_4)1514*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, channels_lt_4) {
1515*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1516*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
1517*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1518*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1519*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1520*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1521*4bdc9457SAndroid Build Coastguard Worker }
1522*4bdc9457SAndroid Build Coastguard Worker }
1523*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X4,channels_gt_4)1524*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, channels_gt_4) {
1525*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1526*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
1527*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1528*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1529*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1530*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1531*4bdc9457SAndroid Build Coastguard Worker }
1532*4bdc9457SAndroid Build Coastguard Worker }
1533*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X4,rows_lt_2)1534*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, rows_lt_2) {
1535*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1536*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
1537*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1538*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1539*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1540*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1541*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1542*4bdc9457SAndroid Build Coastguard Worker }
1543*4bdc9457SAndroid Build Coastguard Worker }
1544*4bdc9457SAndroid Build Coastguard Worker }
1545*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X4,rows_div_2)1546*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, rows_div_2) {
1547*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1548*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
1549*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1550*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1551*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1552*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1553*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1554*4bdc9457SAndroid Build Coastguard Worker }
1555*4bdc9457SAndroid Build Coastguard Worker }
1556*4bdc9457SAndroid Build Coastguard Worker }
1557*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X4,rows_gt_2)1558*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, rows_gt_2) {
1559*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1560*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
1561*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1562*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1563*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1564*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1565*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1566*4bdc9457SAndroid Build Coastguard Worker }
1567*4bdc9457SAndroid Build Coastguard Worker }
1568*4bdc9457SAndroid Build Coastguard Worker }
1569*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X4,input_stride)1570*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, input_stride) {
1571*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1572*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1573*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1574*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1575*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1576*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1577*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
1578*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1579*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1580*4bdc9457SAndroid Build Coastguard Worker }
1581*4bdc9457SAndroid Build Coastguard Worker }
1582*4bdc9457SAndroid Build Coastguard Worker }
1583*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X4,output_stride)1584*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, output_stride) {
1585*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1586*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1587*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1588*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1589*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1590*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1591*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
1592*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1593*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1594*4bdc9457SAndroid Build Coastguard Worker }
1595*4bdc9457SAndroid Build Coastguard Worker }
1596*4bdc9457SAndroid Build Coastguard Worker }
1597*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X4,inplace)1598*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X4, inplace) {
1599*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1600*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1601*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
1602*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1603*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1604*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1605*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
1606*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1607*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x4);
1608*4bdc9457SAndroid Build Coastguard Worker }
1609*4bdc9457SAndroid Build Coastguard Worker }
1610*4bdc9457SAndroid Build Coastguard Worker }
1611*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
1612*4bdc9457SAndroid Build Coastguard Worker
1613*4bdc9457SAndroid Build Coastguard Worker
1614*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__SSE41_2X8,channels_eq_8)1615*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, channels_eq_8) {
1616*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1617*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1618*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1619*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1620*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1621*4bdc9457SAndroid Build Coastguard Worker }
1622*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X8,channels_div_8)1623*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, channels_div_8) {
1624*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1625*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
1626*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1627*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1628*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1629*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1630*4bdc9457SAndroid Build Coastguard Worker }
1631*4bdc9457SAndroid Build Coastguard Worker }
1632*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X8,channels_lt_8)1633*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, channels_lt_8) {
1634*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1635*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1636*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1637*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1638*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1639*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1640*4bdc9457SAndroid Build Coastguard Worker }
1641*4bdc9457SAndroid Build Coastguard Worker }
1642*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X8,channels_gt_8)1643*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, channels_gt_8) {
1644*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1645*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1646*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1647*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1648*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1649*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1650*4bdc9457SAndroid Build Coastguard Worker }
1651*4bdc9457SAndroid Build Coastguard Worker }
1652*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X8,rows_lt_2)1653*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, rows_lt_2) {
1654*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1655*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
1656*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1657*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1658*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1659*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1660*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1661*4bdc9457SAndroid Build Coastguard Worker }
1662*4bdc9457SAndroid Build Coastguard Worker }
1663*4bdc9457SAndroid Build Coastguard Worker }
1664*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X8,rows_div_2)1665*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, rows_div_2) {
1666*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1667*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
1668*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1669*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1670*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1671*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1672*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1673*4bdc9457SAndroid Build Coastguard Worker }
1674*4bdc9457SAndroid Build Coastguard Worker }
1675*4bdc9457SAndroid Build Coastguard Worker }
1676*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X8,rows_gt_2)1677*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, rows_gt_2) {
1678*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1679*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
1680*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1681*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1682*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1683*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1684*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1685*4bdc9457SAndroid Build Coastguard Worker }
1686*4bdc9457SAndroid Build Coastguard Worker }
1687*4bdc9457SAndroid Build Coastguard Worker }
1688*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X8,input_stride)1689*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, input_stride) {
1690*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1691*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1692*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1693*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1694*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1695*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1696*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
1697*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1698*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1699*4bdc9457SAndroid Build Coastguard Worker }
1700*4bdc9457SAndroid Build Coastguard Worker }
1701*4bdc9457SAndroid Build Coastguard Worker }
1702*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X8,output_stride)1703*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, output_stride) {
1704*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1705*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1706*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1707*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1708*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1709*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1710*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
1711*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1712*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1713*4bdc9457SAndroid Build Coastguard Worker }
1714*4bdc9457SAndroid Build Coastguard Worker }
1715*4bdc9457SAndroid Build Coastguard Worker }
1716*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SSE41_2X8,inplace)1717*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SSE41_2X8, inplace) {
1718*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
1719*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1720*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1721*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1722*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1723*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1724*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
1725*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1726*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__sse41_2x8);
1727*4bdc9457SAndroid Build Coastguard Worker }
1728*4bdc9457SAndroid Build Coastguard Worker }
1729*4bdc9457SAndroid Build Coastguard Worker }
1730*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
1731*4bdc9457SAndroid Build Coastguard Worker
1732*4bdc9457SAndroid Build Coastguard Worker
1733*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__AVX_2X8,channels_eq_8)1734*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, channels_eq_8) {
1735*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1736*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1737*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1738*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1739*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1740*4bdc9457SAndroid Build Coastguard Worker }
1741*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X8,channels_div_8)1742*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, channels_div_8) {
1743*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1744*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
1745*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1746*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1747*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1748*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1749*4bdc9457SAndroid Build Coastguard Worker }
1750*4bdc9457SAndroid Build Coastguard Worker }
1751*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X8,channels_lt_8)1752*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, channels_lt_8) {
1753*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1754*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1755*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1756*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1757*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1758*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1759*4bdc9457SAndroid Build Coastguard Worker }
1760*4bdc9457SAndroid Build Coastguard Worker }
1761*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X8,channels_gt_8)1762*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, channels_gt_8) {
1763*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1764*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1765*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1766*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1767*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1768*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1769*4bdc9457SAndroid Build Coastguard Worker }
1770*4bdc9457SAndroid Build Coastguard Worker }
1771*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X8,rows_lt_2)1772*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, rows_lt_2) {
1773*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1774*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
1775*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1776*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1777*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1778*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1779*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1780*4bdc9457SAndroid Build Coastguard Worker }
1781*4bdc9457SAndroid Build Coastguard Worker }
1782*4bdc9457SAndroid Build Coastguard Worker }
1783*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X8,rows_div_2)1784*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, rows_div_2) {
1785*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1786*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
1787*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1788*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1789*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1790*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1791*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1792*4bdc9457SAndroid Build Coastguard Worker }
1793*4bdc9457SAndroid Build Coastguard Worker }
1794*4bdc9457SAndroid Build Coastguard Worker }
1795*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X8,rows_gt_2)1796*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, rows_gt_2) {
1797*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1798*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
1799*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1800*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1801*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1802*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1803*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1804*4bdc9457SAndroid Build Coastguard Worker }
1805*4bdc9457SAndroid Build Coastguard Worker }
1806*4bdc9457SAndroid Build Coastguard Worker }
1807*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X8,input_stride)1808*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, input_stride) {
1809*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1810*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1811*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1812*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1813*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1814*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1815*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
1816*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1817*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1818*4bdc9457SAndroid Build Coastguard Worker }
1819*4bdc9457SAndroid Build Coastguard Worker }
1820*4bdc9457SAndroid Build Coastguard Worker }
1821*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X8,output_stride)1822*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, output_stride) {
1823*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1824*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1825*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1826*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1827*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1828*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1829*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
1830*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1831*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1832*4bdc9457SAndroid Build Coastguard Worker }
1833*4bdc9457SAndroid Build Coastguard Worker }
1834*4bdc9457SAndroid Build Coastguard Worker }
1835*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X8,inplace)1836*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X8, inplace) {
1837*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1838*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1839*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
1840*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1841*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1842*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1843*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
1844*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1845*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x8);
1846*4bdc9457SAndroid Build Coastguard Worker }
1847*4bdc9457SAndroid Build Coastguard Worker }
1848*4bdc9457SAndroid Build Coastguard Worker }
1849*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
1850*4bdc9457SAndroid Build Coastguard Worker
1851*4bdc9457SAndroid Build Coastguard Worker
1852*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__AVX_2X16,channels_eq_16)1853*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, channels_eq_16) {
1854*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1855*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1856*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1857*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1858*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1859*4bdc9457SAndroid Build Coastguard Worker }
1860*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X16,channels_div_16)1861*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, channels_div_16) {
1862*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1863*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
1864*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1865*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1866*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1867*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1868*4bdc9457SAndroid Build Coastguard Worker }
1869*4bdc9457SAndroid Build Coastguard Worker }
1870*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X16,channels_lt_16)1871*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, channels_lt_16) {
1872*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1873*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
1874*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1875*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1876*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1877*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1878*4bdc9457SAndroid Build Coastguard Worker }
1879*4bdc9457SAndroid Build Coastguard Worker }
1880*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X16,channels_gt_16)1881*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, channels_gt_16) {
1882*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1883*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
1884*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1885*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1886*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1887*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1888*4bdc9457SAndroid Build Coastguard Worker }
1889*4bdc9457SAndroid Build Coastguard Worker }
1890*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X16,rows_lt_2)1891*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, rows_lt_2) {
1892*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1893*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
1894*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
1895*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1896*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1897*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1898*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1899*4bdc9457SAndroid Build Coastguard Worker }
1900*4bdc9457SAndroid Build Coastguard Worker }
1901*4bdc9457SAndroid Build Coastguard Worker }
1902*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X16,rows_div_2)1903*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, rows_div_2) {
1904*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1905*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
1906*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
1907*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1908*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1909*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1910*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1911*4bdc9457SAndroid Build Coastguard Worker }
1912*4bdc9457SAndroid Build Coastguard Worker }
1913*4bdc9457SAndroid Build Coastguard Worker }
1914*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X16,rows_gt_2)1915*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, rows_gt_2) {
1916*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1917*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
1918*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
1919*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1920*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1921*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1922*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1923*4bdc9457SAndroid Build Coastguard Worker }
1924*4bdc9457SAndroid Build Coastguard Worker }
1925*4bdc9457SAndroid Build Coastguard Worker }
1926*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X16,input_stride)1927*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, input_stride) {
1928*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1929*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1930*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
1931*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1932*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1933*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1934*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
1935*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1936*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1937*4bdc9457SAndroid Build Coastguard Worker }
1938*4bdc9457SAndroid Build Coastguard Worker }
1939*4bdc9457SAndroid Build Coastguard Worker }
1940*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X16,output_stride)1941*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, output_stride) {
1942*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1943*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1944*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
1945*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1946*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1947*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1948*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
1949*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1950*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1951*4bdc9457SAndroid Build Coastguard Worker }
1952*4bdc9457SAndroid Build Coastguard Worker }
1953*4bdc9457SAndroid Build Coastguard Worker }
1954*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX_2X16,inplace)1955*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX_2X16, inplace) {
1956*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX;
1957*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
1958*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
1959*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1960*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1961*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1962*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
1963*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
1964*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx_2x16);
1965*4bdc9457SAndroid Build Coastguard Worker }
1966*4bdc9457SAndroid Build Coastguard Worker }
1967*4bdc9457SAndroid Build Coastguard Worker }
1968*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
1969*4bdc9457SAndroid Build Coastguard Worker
1970*4bdc9457SAndroid Build Coastguard Worker
1971*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__AVX512F_2X16,channels_eq_16)1972*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, channels_eq_16) {
1973*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
1974*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1975*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1976*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1977*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
1978*4bdc9457SAndroid Build Coastguard Worker }
1979*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X16,channels_div_16)1980*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, channels_div_16) {
1981*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
1982*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
1983*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1984*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1985*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1986*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
1987*4bdc9457SAndroid Build Coastguard Worker }
1988*4bdc9457SAndroid Build Coastguard Worker }
1989*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X16,channels_lt_16)1990*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, channels_lt_16) {
1991*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
1992*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
1993*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
1994*4bdc9457SAndroid Build Coastguard Worker .rows(2)
1995*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1996*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
1997*4bdc9457SAndroid Build Coastguard Worker }
1998*4bdc9457SAndroid Build Coastguard Worker }
1999*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X16,channels_gt_16)2000*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, channels_gt_16) {
2001*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2002*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
2003*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2004*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2005*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2006*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
2007*4bdc9457SAndroid Build Coastguard Worker }
2008*4bdc9457SAndroid Build Coastguard Worker }
2009*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X16,rows_lt_2)2010*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, rows_lt_2) {
2011*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2012*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
2013*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2014*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2015*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2016*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2017*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
2018*4bdc9457SAndroid Build Coastguard Worker }
2019*4bdc9457SAndroid Build Coastguard Worker }
2020*4bdc9457SAndroid Build Coastguard Worker }
2021*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X16,rows_div_2)2022*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, rows_div_2) {
2023*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2024*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
2025*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2026*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2027*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2028*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2029*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
2030*4bdc9457SAndroid Build Coastguard Worker }
2031*4bdc9457SAndroid Build Coastguard Worker }
2032*4bdc9457SAndroid Build Coastguard Worker }
2033*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X16,rows_gt_2)2034*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, rows_gt_2) {
2035*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2036*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
2037*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2038*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2039*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2040*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2041*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
2042*4bdc9457SAndroid Build Coastguard Worker }
2043*4bdc9457SAndroid Build Coastguard Worker }
2044*4bdc9457SAndroid Build Coastguard Worker }
2045*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X16,input_stride)2046*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, input_stride) {
2047*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2048*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2049*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2050*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2051*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2052*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2053*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
2054*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2055*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
2056*4bdc9457SAndroid Build Coastguard Worker }
2057*4bdc9457SAndroid Build Coastguard Worker }
2058*4bdc9457SAndroid Build Coastguard Worker }
2059*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X16,output_stride)2060*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, output_stride) {
2061*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2062*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2063*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2064*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2065*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2066*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2067*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
2068*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2069*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
2070*4bdc9457SAndroid Build Coastguard Worker }
2071*4bdc9457SAndroid Build Coastguard Worker }
2072*4bdc9457SAndroid Build Coastguard Worker }
2073*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X16,inplace)2074*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X16, inplace) {
2075*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2076*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2077*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2078*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2079*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2080*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2081*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
2082*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2083*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x16);
2084*4bdc9457SAndroid Build Coastguard Worker }
2085*4bdc9457SAndroid Build Coastguard Worker }
2086*4bdc9457SAndroid Build Coastguard Worker }
2087*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
2088*4bdc9457SAndroid Build Coastguard Worker
2089*4bdc9457SAndroid Build Coastguard Worker
2090*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(F32_PRELU__AVX512F_2X32,channels_eq_32)2091*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, channels_eq_32) {
2092*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2093*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2094*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2095*4bdc9457SAndroid Build Coastguard Worker .channels(32)
2096*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2097*4bdc9457SAndroid Build Coastguard Worker }
2098*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X32,channels_div_32)2099*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, channels_div_32) {
2100*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2101*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 320; channels += 32) {
2102*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2103*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2104*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2105*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2106*4bdc9457SAndroid Build Coastguard Worker }
2107*4bdc9457SAndroid Build Coastguard Worker }
2108*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X32,channels_lt_32)2109*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, channels_lt_32) {
2110*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2111*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2112*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2113*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2114*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2115*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2116*4bdc9457SAndroid Build Coastguard Worker }
2117*4bdc9457SAndroid Build Coastguard Worker }
2118*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X32,channels_gt_32)2119*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, channels_gt_32) {
2120*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2121*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2122*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2123*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2124*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2125*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2126*4bdc9457SAndroid Build Coastguard Worker }
2127*4bdc9457SAndroid Build Coastguard Worker }
2128*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X32,rows_lt_2)2129*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, rows_lt_2) {
2130*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2131*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
2132*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 160; channels += 31) {
2133*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2134*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2135*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2136*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2137*4bdc9457SAndroid Build Coastguard Worker }
2138*4bdc9457SAndroid Build Coastguard Worker }
2139*4bdc9457SAndroid Build Coastguard Worker }
2140*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X32,rows_div_2)2141*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, rows_div_2) {
2142*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2143*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
2144*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 160; channels += 31) {
2145*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2146*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2147*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2148*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2149*4bdc9457SAndroid Build Coastguard Worker }
2150*4bdc9457SAndroid Build Coastguard Worker }
2151*4bdc9457SAndroid Build Coastguard Worker }
2152*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X32,rows_gt_2)2153*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, rows_gt_2) {
2154*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2155*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
2156*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 160; channels += 31) {
2157*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2158*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2159*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2160*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2161*4bdc9457SAndroid Build Coastguard Worker }
2162*4bdc9457SAndroid Build Coastguard Worker }
2163*4bdc9457SAndroid Build Coastguard Worker }
2164*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X32,input_stride)2165*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, input_stride) {
2166*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2167*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2168*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 160; channels += 31) {
2169*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2170*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2171*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2172*4bdc9457SAndroid Build Coastguard Worker .input_stride(163)
2173*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2174*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2175*4bdc9457SAndroid Build Coastguard Worker }
2176*4bdc9457SAndroid Build Coastguard Worker }
2177*4bdc9457SAndroid Build Coastguard Worker }
2178*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X32,output_stride)2179*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, output_stride) {
2180*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2181*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2182*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 160; channels += 31) {
2183*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2184*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2185*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2186*4bdc9457SAndroid Build Coastguard Worker .output_stride(163)
2187*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2188*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2189*4bdc9457SAndroid Build Coastguard Worker }
2190*4bdc9457SAndroid Build Coastguard Worker }
2191*4bdc9457SAndroid Build Coastguard Worker }
2192*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__AVX512F_2X32,inplace)2193*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__AVX512F_2X32, inplace) {
2194*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX512F;
2195*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2196*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 160; channels += 31) {
2197*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2198*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2199*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2200*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
2201*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2202*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__avx512f_2x32);
2203*4bdc9457SAndroid Build Coastguard Worker }
2204*4bdc9457SAndroid Build Coastguard Worker }
2205*4bdc9457SAndroid Build Coastguard Worker }
2206*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
2207*4bdc9457SAndroid Build Coastguard Worker
2208*4bdc9457SAndroid Build Coastguard Worker
2209*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4,channels_eq_4)2210*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4, channels_eq_4) {
2211*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2212*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2213*4bdc9457SAndroid Build Coastguard Worker .channels(4)
2214*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4);
2215*4bdc9457SAndroid Build Coastguard Worker }
2216*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4,channels_div_4)2217*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4, channels_div_4) {
2218*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
2219*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2220*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2221*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2222*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4);
2223*4bdc9457SAndroid Build Coastguard Worker }
2224*4bdc9457SAndroid Build Coastguard Worker }
2225*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4,channels_lt_4)2226*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4, channels_lt_4) {
2227*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
2228*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2229*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2230*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2231*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4);
2232*4bdc9457SAndroid Build Coastguard Worker }
2233*4bdc9457SAndroid Build Coastguard Worker }
2234*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4,channels_gt_4)2235*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4, channels_gt_4) {
2236*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
2237*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2238*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2239*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2240*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4);
2241*4bdc9457SAndroid Build Coastguard Worker }
2242*4bdc9457SAndroid Build Coastguard Worker }
2243*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4,rows_gt_1)2244*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4, rows_gt_1) {
2245*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 2; rows < 2; rows++) {
2246*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2247*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2248*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2249*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2250*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4);
2251*4bdc9457SAndroid Build Coastguard Worker }
2252*4bdc9457SAndroid Build Coastguard Worker }
2253*4bdc9457SAndroid Build Coastguard Worker }
2254*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4,input_stride)2255*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4, input_stride) {
2256*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
2257*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2258*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2259*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2260*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2261*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
2262*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2263*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4);
2264*4bdc9457SAndroid Build Coastguard Worker }
2265*4bdc9457SAndroid Build Coastguard Worker }
2266*4bdc9457SAndroid Build Coastguard Worker }
2267*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4,output_stride)2268*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4, output_stride) {
2269*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
2270*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2271*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2272*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2273*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2274*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
2275*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2276*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4);
2277*4bdc9457SAndroid Build Coastguard Worker }
2278*4bdc9457SAndroid Build Coastguard Worker }
2279*4bdc9457SAndroid Build Coastguard Worker }
2280*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4,inplace)2281*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X4, inplace) {
2282*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
2283*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2284*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2285*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2286*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2287*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
2288*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2289*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x4);
2290*4bdc9457SAndroid Build Coastguard Worker }
2291*4bdc9457SAndroid Build Coastguard Worker }
2292*4bdc9457SAndroid Build Coastguard Worker }
2293*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
2294*4bdc9457SAndroid Build Coastguard Worker
2295*4bdc9457SAndroid Build Coastguard Worker
2296*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8,channels_eq_8)2297*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8, channels_eq_8) {
2298*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2299*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2300*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2301*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8);
2302*4bdc9457SAndroid Build Coastguard Worker }
2303*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8,channels_div_8)2304*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8, channels_div_8) {
2305*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
2306*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2307*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2308*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2309*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8);
2310*4bdc9457SAndroid Build Coastguard Worker }
2311*4bdc9457SAndroid Build Coastguard Worker }
2312*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8,channels_lt_8)2313*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8, channels_lt_8) {
2314*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2315*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2316*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2317*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2318*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8);
2319*4bdc9457SAndroid Build Coastguard Worker }
2320*4bdc9457SAndroid Build Coastguard Worker }
2321*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8,channels_gt_8)2322*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8, channels_gt_8) {
2323*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2324*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2325*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2326*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2327*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8);
2328*4bdc9457SAndroid Build Coastguard Worker }
2329*4bdc9457SAndroid Build Coastguard Worker }
2330*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8,rows_gt_1)2331*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8, rows_gt_1) {
2332*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 2; rows < 2; rows++) {
2333*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2334*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2335*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2336*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2337*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8);
2338*4bdc9457SAndroid Build Coastguard Worker }
2339*4bdc9457SAndroid Build Coastguard Worker }
2340*4bdc9457SAndroid Build Coastguard Worker }
2341*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8,input_stride)2342*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8, input_stride) {
2343*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
2344*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2345*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2346*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2347*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2348*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
2349*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2350*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8);
2351*4bdc9457SAndroid Build Coastguard Worker }
2352*4bdc9457SAndroid Build Coastguard Worker }
2353*4bdc9457SAndroid Build Coastguard Worker }
2354*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8,output_stride)2355*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8, output_stride) {
2356*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
2357*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2358*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2359*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2360*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2361*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
2362*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2363*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8);
2364*4bdc9457SAndroid Build Coastguard Worker }
2365*4bdc9457SAndroid Build Coastguard Worker }
2366*4bdc9457SAndroid Build Coastguard Worker }
2367*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8,inplace)2368*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X8, inplace) {
2369*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
2370*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2371*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2372*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2373*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2374*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
2375*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2376*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x8);
2377*4bdc9457SAndroid Build Coastguard Worker }
2378*4bdc9457SAndroid Build Coastguard Worker }
2379*4bdc9457SAndroid Build Coastguard Worker }
2380*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
2381*4bdc9457SAndroid Build Coastguard Worker
2382*4bdc9457SAndroid Build Coastguard Worker
2383*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16,channels_eq_16)2384*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16, channels_eq_16) {
2385*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2386*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2387*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2388*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16);
2389*4bdc9457SAndroid Build Coastguard Worker }
2390*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16,channels_div_16)2391*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16, channels_div_16) {
2392*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
2393*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2394*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2395*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2396*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16);
2397*4bdc9457SAndroid Build Coastguard Worker }
2398*4bdc9457SAndroid Build Coastguard Worker }
2399*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16,channels_lt_16)2400*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16, channels_lt_16) {
2401*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
2402*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2403*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2404*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2405*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16);
2406*4bdc9457SAndroid Build Coastguard Worker }
2407*4bdc9457SAndroid Build Coastguard Worker }
2408*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16,channels_gt_16)2409*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16, channels_gt_16) {
2410*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
2411*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2412*4bdc9457SAndroid Build Coastguard Worker .rows(1)
2413*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2414*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16);
2415*4bdc9457SAndroid Build Coastguard Worker }
2416*4bdc9457SAndroid Build Coastguard Worker }
2417*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16,rows_gt_1)2418*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16, rows_gt_1) {
2419*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 2; rows < 2; rows++) {
2420*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2421*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2422*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2423*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2424*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16);
2425*4bdc9457SAndroid Build Coastguard Worker }
2426*4bdc9457SAndroid Build Coastguard Worker }
2427*4bdc9457SAndroid Build Coastguard Worker }
2428*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16,input_stride)2429*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16, input_stride) {
2430*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
2431*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2432*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2433*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2434*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2435*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
2436*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2437*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16);
2438*4bdc9457SAndroid Build Coastguard Worker }
2439*4bdc9457SAndroid Build Coastguard Worker }
2440*4bdc9457SAndroid Build Coastguard Worker }
2441*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16,output_stride)2442*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16, output_stride) {
2443*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
2444*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2445*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2446*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2447*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2448*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
2449*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2450*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16);
2451*4bdc9457SAndroid Build Coastguard Worker }
2452*4bdc9457SAndroid Build Coastguard Worker }
2453*4bdc9457SAndroid Build Coastguard Worker }
2454*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16,inplace)2455*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_1X16, inplace) {
2456*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
2457*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2458*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2459*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2460*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2461*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
2462*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2463*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_1x16);
2464*4bdc9457SAndroid Build Coastguard Worker }
2465*4bdc9457SAndroid Build Coastguard Worker }
2466*4bdc9457SAndroid Build Coastguard Worker }
2467*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
2468*4bdc9457SAndroid Build Coastguard Worker
2469*4bdc9457SAndroid Build Coastguard Worker
2470*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,channels_eq_4)2471*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, channels_eq_4) {
2472*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2473*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2474*4bdc9457SAndroid Build Coastguard Worker .channels(4)
2475*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2476*4bdc9457SAndroid Build Coastguard Worker }
2477*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,channels_div_4)2478*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, channels_div_4) {
2479*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
2480*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2481*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2482*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2483*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2484*4bdc9457SAndroid Build Coastguard Worker }
2485*4bdc9457SAndroid Build Coastguard Worker }
2486*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,channels_lt_4)2487*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, channels_lt_4) {
2488*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
2489*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2490*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2491*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2492*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2493*4bdc9457SAndroid Build Coastguard Worker }
2494*4bdc9457SAndroid Build Coastguard Worker }
2495*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,channels_gt_4)2496*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, channels_gt_4) {
2497*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
2498*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2499*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2500*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2501*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2502*4bdc9457SAndroid Build Coastguard Worker }
2503*4bdc9457SAndroid Build Coastguard Worker }
2504*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,rows_lt_2)2505*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, rows_lt_2) {
2506*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
2507*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2508*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2509*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2510*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2511*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2512*4bdc9457SAndroid Build Coastguard Worker }
2513*4bdc9457SAndroid Build Coastguard Worker }
2514*4bdc9457SAndroid Build Coastguard Worker }
2515*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,rows_div_2)2516*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, rows_div_2) {
2517*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
2518*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2519*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2520*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2521*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2522*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2523*4bdc9457SAndroid Build Coastguard Worker }
2524*4bdc9457SAndroid Build Coastguard Worker }
2525*4bdc9457SAndroid Build Coastguard Worker }
2526*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,rows_gt_2)2527*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, rows_gt_2) {
2528*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
2529*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2530*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2531*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2532*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2533*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2534*4bdc9457SAndroid Build Coastguard Worker }
2535*4bdc9457SAndroid Build Coastguard Worker }
2536*4bdc9457SAndroid Build Coastguard Worker }
2537*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,input_stride)2538*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, input_stride) {
2539*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2540*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2541*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2542*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2543*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2544*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
2545*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2546*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2547*4bdc9457SAndroid Build Coastguard Worker }
2548*4bdc9457SAndroid Build Coastguard Worker }
2549*4bdc9457SAndroid Build Coastguard Worker }
2550*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,output_stride)2551*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, output_stride) {
2552*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2553*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2554*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2555*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2556*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2557*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
2558*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2559*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2560*4bdc9457SAndroid Build Coastguard Worker }
2561*4bdc9457SAndroid Build Coastguard Worker }
2562*4bdc9457SAndroid Build Coastguard Worker }
2563*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4,inplace)2564*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X4, inplace) {
2565*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2566*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2567*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2568*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2569*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2570*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
2571*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2572*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x4);
2573*4bdc9457SAndroid Build Coastguard Worker }
2574*4bdc9457SAndroid Build Coastguard Worker }
2575*4bdc9457SAndroid Build Coastguard Worker }
2576*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
2577*4bdc9457SAndroid Build Coastguard Worker
2578*4bdc9457SAndroid Build Coastguard Worker
2579*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,channels_eq_8)2580*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, channels_eq_8) {
2581*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2582*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2583*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2584*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2585*4bdc9457SAndroid Build Coastguard Worker }
2586*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,channels_div_8)2587*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, channels_div_8) {
2588*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
2589*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2590*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2591*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2592*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2593*4bdc9457SAndroid Build Coastguard Worker }
2594*4bdc9457SAndroid Build Coastguard Worker }
2595*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,channels_lt_8)2596*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, channels_lt_8) {
2597*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2598*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2599*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2600*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2601*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2602*4bdc9457SAndroid Build Coastguard Worker }
2603*4bdc9457SAndroid Build Coastguard Worker }
2604*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,channels_gt_8)2605*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, channels_gt_8) {
2606*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2607*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2608*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2609*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2610*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2611*4bdc9457SAndroid Build Coastguard Worker }
2612*4bdc9457SAndroid Build Coastguard Worker }
2613*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,rows_lt_2)2614*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, rows_lt_2) {
2615*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
2616*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2617*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2618*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2619*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2620*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2621*4bdc9457SAndroid Build Coastguard Worker }
2622*4bdc9457SAndroid Build Coastguard Worker }
2623*4bdc9457SAndroid Build Coastguard Worker }
2624*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,rows_div_2)2625*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, rows_div_2) {
2626*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
2627*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2628*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2629*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2630*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2631*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2632*4bdc9457SAndroid Build Coastguard Worker }
2633*4bdc9457SAndroid Build Coastguard Worker }
2634*4bdc9457SAndroid Build Coastguard Worker }
2635*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,rows_gt_2)2636*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, rows_gt_2) {
2637*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
2638*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2639*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2640*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2641*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2642*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2643*4bdc9457SAndroid Build Coastguard Worker }
2644*4bdc9457SAndroid Build Coastguard Worker }
2645*4bdc9457SAndroid Build Coastguard Worker }
2646*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,input_stride)2647*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, input_stride) {
2648*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2649*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2650*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2651*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2652*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2653*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
2654*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2655*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2656*4bdc9457SAndroid Build Coastguard Worker }
2657*4bdc9457SAndroid Build Coastguard Worker }
2658*4bdc9457SAndroid Build Coastguard Worker }
2659*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,output_stride)2660*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, output_stride) {
2661*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2662*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2663*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2664*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2665*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2666*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
2667*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2668*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2669*4bdc9457SAndroid Build Coastguard Worker }
2670*4bdc9457SAndroid Build Coastguard Worker }
2671*4bdc9457SAndroid Build Coastguard Worker }
2672*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8,inplace)2673*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X8, inplace) {
2674*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2675*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2676*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2677*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2678*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2679*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
2680*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2681*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x8);
2682*4bdc9457SAndroid Build Coastguard Worker }
2683*4bdc9457SAndroid Build Coastguard Worker }
2684*4bdc9457SAndroid Build Coastguard Worker }
2685*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
2686*4bdc9457SAndroid Build Coastguard Worker
2687*4bdc9457SAndroid Build Coastguard Worker
2688*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,channels_eq_16)2689*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, channels_eq_16) {
2690*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2691*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2692*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2693*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2694*4bdc9457SAndroid Build Coastguard Worker }
2695*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,channels_div_16)2696*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, channels_div_16) {
2697*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
2698*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2699*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2700*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2701*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2702*4bdc9457SAndroid Build Coastguard Worker }
2703*4bdc9457SAndroid Build Coastguard Worker }
2704*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,channels_lt_16)2705*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, channels_lt_16) {
2706*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
2707*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2708*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2709*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2710*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2711*4bdc9457SAndroid Build Coastguard Worker }
2712*4bdc9457SAndroid Build Coastguard Worker }
2713*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,channels_gt_16)2714*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, channels_gt_16) {
2715*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
2716*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2717*4bdc9457SAndroid Build Coastguard Worker .rows(2)
2718*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2719*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2720*4bdc9457SAndroid Build Coastguard Worker }
2721*4bdc9457SAndroid Build Coastguard Worker }
2722*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,rows_lt_2)2723*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, rows_lt_2) {
2724*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
2725*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2726*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2727*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2728*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2729*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2730*4bdc9457SAndroid Build Coastguard Worker }
2731*4bdc9457SAndroid Build Coastguard Worker }
2732*4bdc9457SAndroid Build Coastguard Worker }
2733*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,rows_div_2)2734*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, rows_div_2) {
2735*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
2736*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2737*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2738*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2739*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2740*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2741*4bdc9457SAndroid Build Coastguard Worker }
2742*4bdc9457SAndroid Build Coastguard Worker }
2743*4bdc9457SAndroid Build Coastguard Worker }
2744*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,rows_gt_2)2745*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, rows_gt_2) {
2746*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
2747*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2748*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2749*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2750*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2751*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2752*4bdc9457SAndroid Build Coastguard Worker }
2753*4bdc9457SAndroid Build Coastguard Worker }
2754*4bdc9457SAndroid Build Coastguard Worker }
2755*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,input_stride)2756*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, input_stride) {
2757*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2758*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2759*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2760*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2761*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2762*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
2763*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2764*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2765*4bdc9457SAndroid Build Coastguard Worker }
2766*4bdc9457SAndroid Build Coastguard Worker }
2767*4bdc9457SAndroid Build Coastguard Worker }
2768*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,output_stride)2769*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, output_stride) {
2770*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2771*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2772*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2773*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2774*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2775*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
2776*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2777*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2778*4bdc9457SAndroid Build Coastguard Worker }
2779*4bdc9457SAndroid Build Coastguard Worker }
2780*4bdc9457SAndroid Build Coastguard Worker }
2781*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16,inplace)2782*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_2X16, inplace) {
2783*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
2784*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
2785*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2786*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2787*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2788*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
2789*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2790*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_2x16);
2791*4bdc9457SAndroid Build Coastguard Worker }
2792*4bdc9457SAndroid Build Coastguard Worker }
2793*4bdc9457SAndroid Build Coastguard Worker }
2794*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
2795*4bdc9457SAndroid Build Coastguard Worker
2796*4bdc9457SAndroid Build Coastguard Worker
2797*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,channels_eq_4)2798*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, channels_eq_4) {
2799*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2800*4bdc9457SAndroid Build Coastguard Worker .rows(4)
2801*4bdc9457SAndroid Build Coastguard Worker .channels(4)
2802*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2803*4bdc9457SAndroid Build Coastguard Worker }
2804*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,channels_div_4)2805*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, channels_div_4) {
2806*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
2807*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2808*4bdc9457SAndroid Build Coastguard Worker .rows(4)
2809*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2810*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2811*4bdc9457SAndroid Build Coastguard Worker }
2812*4bdc9457SAndroid Build Coastguard Worker }
2813*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,channels_lt_4)2814*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, channels_lt_4) {
2815*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
2816*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2817*4bdc9457SAndroid Build Coastguard Worker .rows(4)
2818*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2819*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2820*4bdc9457SAndroid Build Coastguard Worker }
2821*4bdc9457SAndroid Build Coastguard Worker }
2822*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,channels_gt_4)2823*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, channels_gt_4) {
2824*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
2825*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2826*4bdc9457SAndroid Build Coastguard Worker .rows(4)
2827*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2828*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2829*4bdc9457SAndroid Build Coastguard Worker }
2830*4bdc9457SAndroid Build Coastguard Worker }
2831*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,rows_lt_4)2832*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, rows_lt_4) {
2833*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 4; rows++) {
2834*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2835*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2836*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2837*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2838*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2839*4bdc9457SAndroid Build Coastguard Worker }
2840*4bdc9457SAndroid Build Coastguard Worker }
2841*4bdc9457SAndroid Build Coastguard Worker }
2842*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,rows_div_4)2843*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, rows_div_4) {
2844*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows <= 16; rows += 4) {
2845*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2846*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2847*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2848*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2849*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2850*4bdc9457SAndroid Build Coastguard Worker }
2851*4bdc9457SAndroid Build Coastguard Worker }
2852*4bdc9457SAndroid Build Coastguard Worker }
2853*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,rows_gt_4)2854*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, rows_gt_4) {
2855*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 5; rows < 8; rows++) {
2856*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2857*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2858*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2859*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2860*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2861*4bdc9457SAndroid Build Coastguard Worker }
2862*4bdc9457SAndroid Build Coastguard Worker }
2863*4bdc9457SAndroid Build Coastguard Worker }
2864*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,input_stride)2865*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, input_stride) {
2866*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
2867*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2868*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2869*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2870*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2871*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
2872*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2873*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2874*4bdc9457SAndroid Build Coastguard Worker }
2875*4bdc9457SAndroid Build Coastguard Worker }
2876*4bdc9457SAndroid Build Coastguard Worker }
2877*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,output_stride)2878*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, output_stride) {
2879*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
2880*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2881*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2882*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2883*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2884*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
2885*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2886*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2887*4bdc9457SAndroid Build Coastguard Worker }
2888*4bdc9457SAndroid Build Coastguard Worker }
2889*4bdc9457SAndroid Build Coastguard Worker }
2890*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4,inplace)2891*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X4, inplace) {
2892*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
2893*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
2894*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2895*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2896*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2897*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
2898*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2899*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x4);
2900*4bdc9457SAndroid Build Coastguard Worker }
2901*4bdc9457SAndroid Build Coastguard Worker }
2902*4bdc9457SAndroid Build Coastguard Worker }
2903*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
2904*4bdc9457SAndroid Build Coastguard Worker
2905*4bdc9457SAndroid Build Coastguard Worker
2906*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,channels_eq_8)2907*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, channels_eq_8) {
2908*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2909*4bdc9457SAndroid Build Coastguard Worker .rows(4)
2910*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2911*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
2912*4bdc9457SAndroid Build Coastguard Worker }
2913*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,channels_div_8)2914*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, channels_div_8) {
2915*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
2916*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2917*4bdc9457SAndroid Build Coastguard Worker .rows(4)
2918*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2919*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
2920*4bdc9457SAndroid Build Coastguard Worker }
2921*4bdc9457SAndroid Build Coastguard Worker }
2922*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,channels_lt_8)2923*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, channels_lt_8) {
2924*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2925*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2926*4bdc9457SAndroid Build Coastguard Worker .rows(4)
2927*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2928*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
2929*4bdc9457SAndroid Build Coastguard Worker }
2930*4bdc9457SAndroid Build Coastguard Worker }
2931*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,channels_gt_8)2932*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, channels_gt_8) {
2933*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2934*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2935*4bdc9457SAndroid Build Coastguard Worker .rows(4)
2936*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2937*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
2938*4bdc9457SAndroid Build Coastguard Worker }
2939*4bdc9457SAndroid Build Coastguard Worker }
2940*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,rows_lt_4)2941*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, rows_lt_4) {
2942*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 4; rows++) {
2943*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2944*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2945*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2946*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2947*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
2948*4bdc9457SAndroid Build Coastguard Worker }
2949*4bdc9457SAndroid Build Coastguard Worker }
2950*4bdc9457SAndroid Build Coastguard Worker }
2951*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,rows_div_4)2952*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, rows_div_4) {
2953*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows <= 16; rows += 4) {
2954*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2955*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2956*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2957*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2958*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
2959*4bdc9457SAndroid Build Coastguard Worker }
2960*4bdc9457SAndroid Build Coastguard Worker }
2961*4bdc9457SAndroid Build Coastguard Worker }
2962*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,rows_gt_4)2963*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, rows_gt_4) {
2964*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 5; rows < 8; rows++) {
2965*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2966*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2967*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2968*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2969*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
2970*4bdc9457SAndroid Build Coastguard Worker }
2971*4bdc9457SAndroid Build Coastguard Worker }
2972*4bdc9457SAndroid Build Coastguard Worker }
2973*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,input_stride)2974*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, input_stride) {
2975*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
2976*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2977*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2978*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2979*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2980*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
2981*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2982*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
2983*4bdc9457SAndroid Build Coastguard Worker }
2984*4bdc9457SAndroid Build Coastguard Worker }
2985*4bdc9457SAndroid Build Coastguard Worker }
2986*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,output_stride)2987*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, output_stride) {
2988*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
2989*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
2990*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
2991*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2992*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2993*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
2994*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
2995*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
2996*4bdc9457SAndroid Build Coastguard Worker }
2997*4bdc9457SAndroid Build Coastguard Worker }
2998*4bdc9457SAndroid Build Coastguard Worker }
2999*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8,inplace)3000*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X8, inplace) {
3001*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3002*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3003*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3004*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3005*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3006*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3007*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3008*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x8);
3009*4bdc9457SAndroid Build Coastguard Worker }
3010*4bdc9457SAndroid Build Coastguard Worker }
3011*4bdc9457SAndroid Build Coastguard Worker }
3012*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3013*4bdc9457SAndroid Build Coastguard Worker
3014*4bdc9457SAndroid Build Coastguard Worker
3015*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,channels_eq_16)3016*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, channels_eq_16) {
3017*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3018*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3019*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3020*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3021*4bdc9457SAndroid Build Coastguard Worker }
3022*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,channels_div_16)3023*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, channels_div_16) {
3024*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
3025*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3026*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3027*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3028*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3029*4bdc9457SAndroid Build Coastguard Worker }
3030*4bdc9457SAndroid Build Coastguard Worker }
3031*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,channels_lt_16)3032*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, channels_lt_16) {
3033*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3034*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3035*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3036*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3037*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3038*4bdc9457SAndroid Build Coastguard Worker }
3039*4bdc9457SAndroid Build Coastguard Worker }
3040*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,channels_gt_16)3041*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, channels_gt_16) {
3042*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3043*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3044*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3045*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3046*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3047*4bdc9457SAndroid Build Coastguard Worker }
3048*4bdc9457SAndroid Build Coastguard Worker }
3049*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,rows_lt_4)3050*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, rows_lt_4) {
3051*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 4; rows++) {
3052*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3053*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3054*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3055*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3056*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3057*4bdc9457SAndroid Build Coastguard Worker }
3058*4bdc9457SAndroid Build Coastguard Worker }
3059*4bdc9457SAndroid Build Coastguard Worker }
3060*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,rows_div_4)3061*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, rows_div_4) {
3062*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows <= 16; rows += 4) {
3063*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3064*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3065*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3066*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3067*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3068*4bdc9457SAndroid Build Coastguard Worker }
3069*4bdc9457SAndroid Build Coastguard Worker }
3070*4bdc9457SAndroid Build Coastguard Worker }
3071*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,rows_gt_4)3072*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, rows_gt_4) {
3073*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 5; rows < 8; rows++) {
3074*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3075*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3076*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3077*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3078*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3079*4bdc9457SAndroid Build Coastguard Worker }
3080*4bdc9457SAndroid Build Coastguard Worker }
3081*4bdc9457SAndroid Build Coastguard Worker }
3082*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,input_stride)3083*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, input_stride) {
3084*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3085*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3086*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3087*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3088*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3089*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
3090*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3091*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3092*4bdc9457SAndroid Build Coastguard Worker }
3093*4bdc9457SAndroid Build Coastguard Worker }
3094*4bdc9457SAndroid Build Coastguard Worker }
3095*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,output_stride)3096*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, output_stride) {
3097*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3098*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3099*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3100*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3101*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3102*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
3103*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3104*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3105*4bdc9457SAndroid Build Coastguard Worker }
3106*4bdc9457SAndroid Build Coastguard Worker }
3107*4bdc9457SAndroid Build Coastguard Worker }
3108*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16,inplace)3109*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_BITSELECT_4X16, inplace) {
3110*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3111*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3112*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3113*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3114*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3115*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3116*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3117*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_bitselect_4x16);
3118*4bdc9457SAndroid Build Coastguard Worker }
3119*4bdc9457SAndroid Build Coastguard Worker }
3120*4bdc9457SAndroid Build Coastguard Worker }
3121*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3122*4bdc9457SAndroid Build Coastguard Worker
3123*4bdc9457SAndroid Build Coastguard Worker
3124*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_MINMAX_1X4,channels_eq_4)3125*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X4, channels_eq_4) {
3126*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3127*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3128*4bdc9457SAndroid Build Coastguard Worker .channels(4)
3129*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4);
3130*4bdc9457SAndroid Build Coastguard Worker }
3131*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X4,channels_div_4)3132*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X4, channels_div_4) {
3133*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
3134*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3135*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3136*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3137*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4);
3138*4bdc9457SAndroid Build Coastguard Worker }
3139*4bdc9457SAndroid Build Coastguard Worker }
3140*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X4,channels_lt_4)3141*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X4, channels_lt_4) {
3142*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
3143*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3144*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3145*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3146*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4);
3147*4bdc9457SAndroid Build Coastguard Worker }
3148*4bdc9457SAndroid Build Coastguard Worker }
3149*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X4,channels_gt_4)3150*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X4, channels_gt_4) {
3151*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
3152*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3153*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3154*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3155*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4);
3156*4bdc9457SAndroid Build Coastguard Worker }
3157*4bdc9457SAndroid Build Coastguard Worker }
3158*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X4,rows_gt_1)3159*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X4, rows_gt_1) {
3160*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 2; rows < 2; rows++) {
3161*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3162*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3163*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3164*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3165*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4);
3166*4bdc9457SAndroid Build Coastguard Worker }
3167*4bdc9457SAndroid Build Coastguard Worker }
3168*4bdc9457SAndroid Build Coastguard Worker }
3169*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X4,input_stride)3170*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X4, input_stride) {
3171*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
3172*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3173*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3174*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3175*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3176*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
3177*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3178*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4);
3179*4bdc9457SAndroid Build Coastguard Worker }
3180*4bdc9457SAndroid Build Coastguard Worker }
3181*4bdc9457SAndroid Build Coastguard Worker }
3182*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X4,output_stride)3183*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X4, output_stride) {
3184*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
3185*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3186*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3187*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3188*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3189*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
3190*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3191*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4);
3192*4bdc9457SAndroid Build Coastguard Worker }
3193*4bdc9457SAndroid Build Coastguard Worker }
3194*4bdc9457SAndroid Build Coastguard Worker }
3195*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X4,inplace)3196*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X4, inplace) {
3197*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
3198*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3199*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3200*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3201*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3202*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3203*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3204*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x4);
3205*4bdc9457SAndroid Build Coastguard Worker }
3206*4bdc9457SAndroid Build Coastguard Worker }
3207*4bdc9457SAndroid Build Coastguard Worker }
3208*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3209*4bdc9457SAndroid Build Coastguard Worker
3210*4bdc9457SAndroid Build Coastguard Worker
3211*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_MINMAX_1X8,channels_eq_8)3212*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X8, channels_eq_8) {
3213*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3214*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3215*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3216*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8);
3217*4bdc9457SAndroid Build Coastguard Worker }
3218*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X8,channels_div_8)3219*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X8, channels_div_8) {
3220*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
3221*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3222*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3223*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3224*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8);
3225*4bdc9457SAndroid Build Coastguard Worker }
3226*4bdc9457SAndroid Build Coastguard Worker }
3227*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X8,channels_lt_8)3228*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X8, channels_lt_8) {
3229*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
3230*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3231*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3232*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3233*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8);
3234*4bdc9457SAndroid Build Coastguard Worker }
3235*4bdc9457SAndroid Build Coastguard Worker }
3236*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X8,channels_gt_8)3237*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X8, channels_gt_8) {
3238*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
3239*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3240*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3241*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3242*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8);
3243*4bdc9457SAndroid Build Coastguard Worker }
3244*4bdc9457SAndroid Build Coastguard Worker }
3245*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X8,rows_gt_1)3246*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X8, rows_gt_1) {
3247*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 2; rows < 2; rows++) {
3248*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3249*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3250*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3251*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3252*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8);
3253*4bdc9457SAndroid Build Coastguard Worker }
3254*4bdc9457SAndroid Build Coastguard Worker }
3255*4bdc9457SAndroid Build Coastguard Worker }
3256*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X8,input_stride)3257*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X8, input_stride) {
3258*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
3259*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3260*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3261*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3262*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3263*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
3264*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3265*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8);
3266*4bdc9457SAndroid Build Coastguard Worker }
3267*4bdc9457SAndroid Build Coastguard Worker }
3268*4bdc9457SAndroid Build Coastguard Worker }
3269*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X8,output_stride)3270*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X8, output_stride) {
3271*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
3272*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3273*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3274*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3275*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3276*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
3277*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3278*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8);
3279*4bdc9457SAndroid Build Coastguard Worker }
3280*4bdc9457SAndroid Build Coastguard Worker }
3281*4bdc9457SAndroid Build Coastguard Worker }
3282*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X8,inplace)3283*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X8, inplace) {
3284*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
3285*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3286*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3287*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3288*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3289*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3290*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3291*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x8);
3292*4bdc9457SAndroid Build Coastguard Worker }
3293*4bdc9457SAndroid Build Coastguard Worker }
3294*4bdc9457SAndroid Build Coastguard Worker }
3295*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3296*4bdc9457SAndroid Build Coastguard Worker
3297*4bdc9457SAndroid Build Coastguard Worker
3298*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_MINMAX_1X16,channels_eq_16)3299*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X16, channels_eq_16) {
3300*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3301*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3302*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3303*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16);
3304*4bdc9457SAndroid Build Coastguard Worker }
3305*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X16,channels_div_16)3306*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X16, channels_div_16) {
3307*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
3308*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3309*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3310*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3311*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16);
3312*4bdc9457SAndroid Build Coastguard Worker }
3313*4bdc9457SAndroid Build Coastguard Worker }
3314*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X16,channels_lt_16)3315*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X16, channels_lt_16) {
3316*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3317*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3318*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3319*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3320*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16);
3321*4bdc9457SAndroid Build Coastguard Worker }
3322*4bdc9457SAndroid Build Coastguard Worker }
3323*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X16,channels_gt_16)3324*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X16, channels_gt_16) {
3325*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3326*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3327*4bdc9457SAndroid Build Coastguard Worker .rows(1)
3328*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3329*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16);
3330*4bdc9457SAndroid Build Coastguard Worker }
3331*4bdc9457SAndroid Build Coastguard Worker }
3332*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X16,rows_gt_1)3333*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X16, rows_gt_1) {
3334*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 2; rows < 2; rows++) {
3335*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3336*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3337*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3338*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3339*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16);
3340*4bdc9457SAndroid Build Coastguard Worker }
3341*4bdc9457SAndroid Build Coastguard Worker }
3342*4bdc9457SAndroid Build Coastguard Worker }
3343*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X16,input_stride)3344*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X16, input_stride) {
3345*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
3346*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3347*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3348*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3349*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3350*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
3351*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3352*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16);
3353*4bdc9457SAndroid Build Coastguard Worker }
3354*4bdc9457SAndroid Build Coastguard Worker }
3355*4bdc9457SAndroid Build Coastguard Worker }
3356*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X16,output_stride)3357*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X16, output_stride) {
3358*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
3359*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3360*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3361*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3362*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3363*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
3364*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3365*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16);
3366*4bdc9457SAndroid Build Coastguard Worker }
3367*4bdc9457SAndroid Build Coastguard Worker }
3368*4bdc9457SAndroid Build Coastguard Worker }
3369*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_1X16,inplace)3370*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_1X16, inplace) {
3371*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 3; rows += 1) {
3372*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3373*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3374*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3375*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3376*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3377*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3378*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_1x16);
3379*4bdc9457SAndroid Build Coastguard Worker }
3380*4bdc9457SAndroid Build Coastguard Worker }
3381*4bdc9457SAndroid Build Coastguard Worker }
3382*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3383*4bdc9457SAndroid Build Coastguard Worker
3384*4bdc9457SAndroid Build Coastguard Worker
3385*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,channels_eq_4)3386*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, channels_eq_4) {
3387*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3388*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3389*4bdc9457SAndroid Build Coastguard Worker .channels(4)
3390*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3391*4bdc9457SAndroid Build Coastguard Worker }
3392*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,channels_div_4)3393*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, channels_div_4) {
3394*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
3395*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3396*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3397*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3398*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3399*4bdc9457SAndroid Build Coastguard Worker }
3400*4bdc9457SAndroid Build Coastguard Worker }
3401*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,channels_lt_4)3402*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, channels_lt_4) {
3403*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
3404*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3405*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3406*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3407*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3408*4bdc9457SAndroid Build Coastguard Worker }
3409*4bdc9457SAndroid Build Coastguard Worker }
3410*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,channels_gt_4)3411*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, channels_gt_4) {
3412*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
3413*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3414*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3415*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3416*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3417*4bdc9457SAndroid Build Coastguard Worker }
3418*4bdc9457SAndroid Build Coastguard Worker }
3419*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,rows_lt_2)3420*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, rows_lt_2) {
3421*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
3422*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3423*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3424*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3425*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3426*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3427*4bdc9457SAndroid Build Coastguard Worker }
3428*4bdc9457SAndroid Build Coastguard Worker }
3429*4bdc9457SAndroid Build Coastguard Worker }
3430*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,rows_div_2)3431*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, rows_div_2) {
3432*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
3433*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3434*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3435*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3436*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3437*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3438*4bdc9457SAndroid Build Coastguard Worker }
3439*4bdc9457SAndroid Build Coastguard Worker }
3440*4bdc9457SAndroid Build Coastguard Worker }
3441*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,rows_gt_2)3442*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, rows_gt_2) {
3443*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
3444*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3445*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3446*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3447*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3448*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3449*4bdc9457SAndroid Build Coastguard Worker }
3450*4bdc9457SAndroid Build Coastguard Worker }
3451*4bdc9457SAndroid Build Coastguard Worker }
3452*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,input_stride)3453*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, input_stride) {
3454*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
3455*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3456*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3457*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3458*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3459*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
3460*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3461*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3462*4bdc9457SAndroid Build Coastguard Worker }
3463*4bdc9457SAndroid Build Coastguard Worker }
3464*4bdc9457SAndroid Build Coastguard Worker }
3465*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,output_stride)3466*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, output_stride) {
3467*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
3468*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3469*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3470*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3471*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3472*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
3473*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3474*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3475*4bdc9457SAndroid Build Coastguard Worker }
3476*4bdc9457SAndroid Build Coastguard Worker }
3477*4bdc9457SAndroid Build Coastguard Worker }
3478*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X4,inplace)3479*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X4, inplace) {
3480*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
3481*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3482*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3483*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3484*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3485*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3486*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3487*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x4);
3488*4bdc9457SAndroid Build Coastguard Worker }
3489*4bdc9457SAndroid Build Coastguard Worker }
3490*4bdc9457SAndroid Build Coastguard Worker }
3491*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3492*4bdc9457SAndroid Build Coastguard Worker
3493*4bdc9457SAndroid Build Coastguard Worker
3494*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,channels_eq_8)3495*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, channels_eq_8) {
3496*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3497*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3498*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3499*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3500*4bdc9457SAndroid Build Coastguard Worker }
3501*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,channels_div_8)3502*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, channels_div_8) {
3503*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
3504*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3505*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3506*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3507*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3508*4bdc9457SAndroid Build Coastguard Worker }
3509*4bdc9457SAndroid Build Coastguard Worker }
3510*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,channels_lt_8)3511*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, channels_lt_8) {
3512*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
3513*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3514*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3515*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3516*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3517*4bdc9457SAndroid Build Coastguard Worker }
3518*4bdc9457SAndroid Build Coastguard Worker }
3519*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,channels_gt_8)3520*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, channels_gt_8) {
3521*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
3522*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3523*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3524*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3525*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3526*4bdc9457SAndroid Build Coastguard Worker }
3527*4bdc9457SAndroid Build Coastguard Worker }
3528*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,rows_lt_2)3529*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, rows_lt_2) {
3530*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
3531*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3532*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3533*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3534*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3535*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3536*4bdc9457SAndroid Build Coastguard Worker }
3537*4bdc9457SAndroid Build Coastguard Worker }
3538*4bdc9457SAndroid Build Coastguard Worker }
3539*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,rows_div_2)3540*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, rows_div_2) {
3541*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
3542*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3543*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3544*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3545*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3546*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3547*4bdc9457SAndroid Build Coastguard Worker }
3548*4bdc9457SAndroid Build Coastguard Worker }
3549*4bdc9457SAndroid Build Coastguard Worker }
3550*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,rows_gt_2)3551*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, rows_gt_2) {
3552*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
3553*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3554*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3555*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3556*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3557*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3558*4bdc9457SAndroid Build Coastguard Worker }
3559*4bdc9457SAndroid Build Coastguard Worker }
3560*4bdc9457SAndroid Build Coastguard Worker }
3561*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,input_stride)3562*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, input_stride) {
3563*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
3564*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3565*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3566*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3567*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3568*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
3569*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3570*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3571*4bdc9457SAndroid Build Coastguard Worker }
3572*4bdc9457SAndroid Build Coastguard Worker }
3573*4bdc9457SAndroid Build Coastguard Worker }
3574*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,output_stride)3575*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, output_stride) {
3576*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
3577*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3578*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3579*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3580*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3581*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
3582*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3583*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3584*4bdc9457SAndroid Build Coastguard Worker }
3585*4bdc9457SAndroid Build Coastguard Worker }
3586*4bdc9457SAndroid Build Coastguard Worker }
3587*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X8,inplace)3588*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X8, inplace) {
3589*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
3590*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3591*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3592*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3593*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3594*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3595*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3596*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x8);
3597*4bdc9457SAndroid Build Coastguard Worker }
3598*4bdc9457SAndroid Build Coastguard Worker }
3599*4bdc9457SAndroid Build Coastguard Worker }
3600*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3601*4bdc9457SAndroid Build Coastguard Worker
3602*4bdc9457SAndroid Build Coastguard Worker
3603*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,channels_eq_16)3604*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, channels_eq_16) {
3605*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3606*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3607*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3608*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3609*4bdc9457SAndroid Build Coastguard Worker }
3610*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,channels_div_16)3611*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, channels_div_16) {
3612*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
3613*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3614*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3615*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3616*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3617*4bdc9457SAndroid Build Coastguard Worker }
3618*4bdc9457SAndroid Build Coastguard Worker }
3619*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,channels_lt_16)3620*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, channels_lt_16) {
3621*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3622*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3623*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3624*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3625*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3626*4bdc9457SAndroid Build Coastguard Worker }
3627*4bdc9457SAndroid Build Coastguard Worker }
3628*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,channels_gt_16)3629*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, channels_gt_16) {
3630*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3631*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3632*4bdc9457SAndroid Build Coastguard Worker .rows(2)
3633*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3634*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3635*4bdc9457SAndroid Build Coastguard Worker }
3636*4bdc9457SAndroid Build Coastguard Worker }
3637*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,rows_lt_2)3638*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, rows_lt_2) {
3639*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
3640*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3641*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3642*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3643*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3644*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3645*4bdc9457SAndroid Build Coastguard Worker }
3646*4bdc9457SAndroid Build Coastguard Worker }
3647*4bdc9457SAndroid Build Coastguard Worker }
3648*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,rows_div_2)3649*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, rows_div_2) {
3650*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
3651*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3652*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3653*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3654*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3655*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3656*4bdc9457SAndroid Build Coastguard Worker }
3657*4bdc9457SAndroid Build Coastguard Worker }
3658*4bdc9457SAndroid Build Coastguard Worker }
3659*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,rows_gt_2)3660*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, rows_gt_2) {
3661*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
3662*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3663*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3664*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3665*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3666*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3667*4bdc9457SAndroid Build Coastguard Worker }
3668*4bdc9457SAndroid Build Coastguard Worker }
3669*4bdc9457SAndroid Build Coastguard Worker }
3670*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,input_stride)3671*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, input_stride) {
3672*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
3673*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3674*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3675*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3676*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3677*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
3678*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3679*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3680*4bdc9457SAndroid Build Coastguard Worker }
3681*4bdc9457SAndroid Build Coastguard Worker }
3682*4bdc9457SAndroid Build Coastguard Worker }
3683*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,output_stride)3684*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, output_stride) {
3685*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
3686*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3687*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3688*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3689*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3690*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
3691*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3692*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3693*4bdc9457SAndroid Build Coastguard Worker }
3694*4bdc9457SAndroid Build Coastguard Worker }
3695*4bdc9457SAndroid Build Coastguard Worker }
3696*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_2X16,inplace)3697*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_2X16, inplace) {
3698*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
3699*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3700*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3701*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3702*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3703*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3704*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3705*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_2x16);
3706*4bdc9457SAndroid Build Coastguard Worker }
3707*4bdc9457SAndroid Build Coastguard Worker }
3708*4bdc9457SAndroid Build Coastguard Worker }
3709*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3710*4bdc9457SAndroid Build Coastguard Worker
3711*4bdc9457SAndroid Build Coastguard Worker
3712*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,channels_eq_4)3713*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, channels_eq_4) {
3714*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3715*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3716*4bdc9457SAndroid Build Coastguard Worker .channels(4)
3717*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3718*4bdc9457SAndroid Build Coastguard Worker }
3719*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,channels_div_4)3720*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, channels_div_4) {
3721*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
3722*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3723*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3724*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3725*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3726*4bdc9457SAndroid Build Coastguard Worker }
3727*4bdc9457SAndroid Build Coastguard Worker }
3728*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,channels_lt_4)3729*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, channels_lt_4) {
3730*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
3731*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3732*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3733*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3734*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3735*4bdc9457SAndroid Build Coastguard Worker }
3736*4bdc9457SAndroid Build Coastguard Worker }
3737*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,channels_gt_4)3738*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, channels_gt_4) {
3739*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
3740*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3741*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3742*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3743*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3744*4bdc9457SAndroid Build Coastguard Worker }
3745*4bdc9457SAndroid Build Coastguard Worker }
3746*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,rows_lt_4)3747*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, rows_lt_4) {
3748*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 4; rows++) {
3749*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3750*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3751*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3752*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3753*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3754*4bdc9457SAndroid Build Coastguard Worker }
3755*4bdc9457SAndroid Build Coastguard Worker }
3756*4bdc9457SAndroid Build Coastguard Worker }
3757*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,rows_div_4)3758*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, rows_div_4) {
3759*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows <= 16; rows += 4) {
3760*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3761*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3762*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3763*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3764*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3765*4bdc9457SAndroid Build Coastguard Worker }
3766*4bdc9457SAndroid Build Coastguard Worker }
3767*4bdc9457SAndroid Build Coastguard Worker }
3768*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,rows_gt_4)3769*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, rows_gt_4) {
3770*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 5; rows < 8; rows++) {
3771*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3772*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3773*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3774*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3775*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3776*4bdc9457SAndroid Build Coastguard Worker }
3777*4bdc9457SAndroid Build Coastguard Worker }
3778*4bdc9457SAndroid Build Coastguard Worker }
3779*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,input_stride)3780*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, input_stride) {
3781*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3782*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3783*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3784*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3785*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3786*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
3787*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3788*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3789*4bdc9457SAndroid Build Coastguard Worker }
3790*4bdc9457SAndroid Build Coastguard Worker }
3791*4bdc9457SAndroid Build Coastguard Worker }
3792*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,output_stride)3793*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, output_stride) {
3794*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3795*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3796*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3797*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3798*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3799*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
3800*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3801*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3802*4bdc9457SAndroid Build Coastguard Worker }
3803*4bdc9457SAndroid Build Coastguard Worker }
3804*4bdc9457SAndroid Build Coastguard Worker }
3805*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X4,inplace)3806*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X4, inplace) {
3807*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3808*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
3809*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3810*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3811*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3812*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3813*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3814*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x4);
3815*4bdc9457SAndroid Build Coastguard Worker }
3816*4bdc9457SAndroid Build Coastguard Worker }
3817*4bdc9457SAndroid Build Coastguard Worker }
3818*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3819*4bdc9457SAndroid Build Coastguard Worker
3820*4bdc9457SAndroid Build Coastguard Worker
3821*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,channels_eq_8)3822*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, channels_eq_8) {
3823*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3824*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3825*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3826*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3827*4bdc9457SAndroid Build Coastguard Worker }
3828*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,channels_div_8)3829*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, channels_div_8) {
3830*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) {
3831*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3832*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3833*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3834*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3835*4bdc9457SAndroid Build Coastguard Worker }
3836*4bdc9457SAndroid Build Coastguard Worker }
3837*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,channels_lt_8)3838*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, channels_lt_8) {
3839*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
3840*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3841*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3842*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3843*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3844*4bdc9457SAndroid Build Coastguard Worker }
3845*4bdc9457SAndroid Build Coastguard Worker }
3846*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,channels_gt_8)3847*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, channels_gt_8) {
3848*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
3849*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3850*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3851*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3852*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3853*4bdc9457SAndroid Build Coastguard Worker }
3854*4bdc9457SAndroid Build Coastguard Worker }
3855*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,rows_lt_4)3856*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, rows_lt_4) {
3857*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 4; rows++) {
3858*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3859*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3860*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3861*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3862*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3863*4bdc9457SAndroid Build Coastguard Worker }
3864*4bdc9457SAndroid Build Coastguard Worker }
3865*4bdc9457SAndroid Build Coastguard Worker }
3866*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,rows_div_4)3867*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, rows_div_4) {
3868*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows <= 16; rows += 4) {
3869*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3870*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3871*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3872*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3873*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3874*4bdc9457SAndroid Build Coastguard Worker }
3875*4bdc9457SAndroid Build Coastguard Worker }
3876*4bdc9457SAndroid Build Coastguard Worker }
3877*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,rows_gt_4)3878*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, rows_gt_4) {
3879*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 5; rows < 8; rows++) {
3880*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3881*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3882*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3883*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3884*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3885*4bdc9457SAndroid Build Coastguard Worker }
3886*4bdc9457SAndroid Build Coastguard Worker }
3887*4bdc9457SAndroid Build Coastguard Worker }
3888*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,input_stride)3889*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, input_stride) {
3890*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3891*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3892*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3893*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3894*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3895*4bdc9457SAndroid Build Coastguard Worker .input_stride(43)
3896*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3897*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3898*4bdc9457SAndroid Build Coastguard Worker }
3899*4bdc9457SAndroid Build Coastguard Worker }
3900*4bdc9457SAndroid Build Coastguard Worker }
3901*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,output_stride)3902*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, output_stride) {
3903*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3904*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3905*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3906*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3907*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3908*4bdc9457SAndroid Build Coastguard Worker .output_stride(43)
3909*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3910*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3911*4bdc9457SAndroid Build Coastguard Worker }
3912*4bdc9457SAndroid Build Coastguard Worker }
3913*4bdc9457SAndroid Build Coastguard Worker }
3914*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X8,inplace)3915*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X8, inplace) {
3916*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
3917*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) {
3918*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3919*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3920*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3921*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
3922*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
3923*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x8);
3924*4bdc9457SAndroid Build Coastguard Worker }
3925*4bdc9457SAndroid Build Coastguard Worker }
3926*4bdc9457SAndroid Build Coastguard Worker }
3927*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
3928*4bdc9457SAndroid Build Coastguard Worker
3929*4bdc9457SAndroid Build Coastguard Worker
3930*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,channels_eq_16)3931*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, channels_eq_16) {
3932*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3933*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3934*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3935*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
3936*4bdc9457SAndroid Build Coastguard Worker }
3937*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,channels_div_16)3938*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, channels_div_16) {
3939*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) {
3940*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3941*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3942*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3943*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
3944*4bdc9457SAndroid Build Coastguard Worker }
3945*4bdc9457SAndroid Build Coastguard Worker }
3946*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,channels_lt_16)3947*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, channels_lt_16) {
3948*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3949*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3950*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3951*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3952*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
3953*4bdc9457SAndroid Build Coastguard Worker }
3954*4bdc9457SAndroid Build Coastguard Worker }
3955*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,channels_gt_16)3956*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, channels_gt_16) {
3957*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3958*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3959*4bdc9457SAndroid Build Coastguard Worker .rows(4)
3960*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3961*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
3962*4bdc9457SAndroid Build Coastguard Worker }
3963*4bdc9457SAndroid Build Coastguard Worker }
3964*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,rows_lt_4)3965*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, rows_lt_4) {
3966*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 4; rows++) {
3967*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3968*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3969*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3970*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3971*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
3972*4bdc9457SAndroid Build Coastguard Worker }
3973*4bdc9457SAndroid Build Coastguard Worker }
3974*4bdc9457SAndroid Build Coastguard Worker }
3975*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,rows_div_4)3976*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, rows_div_4) {
3977*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows <= 16; rows += 4) {
3978*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3979*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3980*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3981*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3982*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
3983*4bdc9457SAndroid Build Coastguard Worker }
3984*4bdc9457SAndroid Build Coastguard Worker }
3985*4bdc9457SAndroid Build Coastguard Worker }
3986*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,rows_gt_4)3987*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, rows_gt_4) {
3988*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 5; rows < 8; rows++) {
3989*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
3990*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
3991*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3992*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3993*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
3994*4bdc9457SAndroid Build Coastguard Worker }
3995*4bdc9457SAndroid Build Coastguard Worker }
3996*4bdc9457SAndroid Build Coastguard Worker }
3997*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,input_stride)3998*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, input_stride) {
3999*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
4000*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
4001*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4002*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4003*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4004*4bdc9457SAndroid Build Coastguard Worker .input_stride(83)
4005*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4006*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
4007*4bdc9457SAndroid Build Coastguard Worker }
4008*4bdc9457SAndroid Build Coastguard Worker }
4009*4bdc9457SAndroid Build Coastguard Worker }
4010*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,output_stride)4011*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, output_stride) {
4012*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
4013*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
4014*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4015*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4016*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4017*4bdc9457SAndroid Build Coastguard Worker .output_stride(83)
4018*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4019*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
4020*4bdc9457SAndroid Build Coastguard Worker }
4021*4bdc9457SAndroid Build Coastguard Worker }
4022*4bdc9457SAndroid Build Coastguard Worker }
4023*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASMSIMD_MINMAX_4X16,inplace)4024*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASMSIMD_MINMAX_4X16, inplace) {
4025*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 12; rows += 3) {
4026*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) {
4027*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4028*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4029*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4030*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
4031*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4032*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasmsimd_minmax_4x16);
4033*4bdc9457SAndroid Build Coastguard Worker }
4034*4bdc9457SAndroid Build Coastguard Worker }
4035*4bdc9457SAndroid Build Coastguard Worker }
4036*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
4037*4bdc9457SAndroid Build Coastguard Worker
4038*4bdc9457SAndroid Build Coastguard Worker
4039*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASM_2X1,channels_eq_1)4040*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X1, channels_eq_1) {
4041*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4042*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4043*4bdc9457SAndroid Build Coastguard Worker .channels(1)
4044*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x1);
4045*4bdc9457SAndroid Build Coastguard Worker }
4046*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X1,channels_gt_1)4047*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X1, channels_gt_1) {
4048*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
4049*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4050*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4051*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4052*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x1);
4053*4bdc9457SAndroid Build Coastguard Worker }
4054*4bdc9457SAndroid Build Coastguard Worker }
4055*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X1,rows_lt_2)4056*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X1, rows_lt_2) {
4057*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
4058*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4059*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4060*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4061*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4062*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x1);
4063*4bdc9457SAndroid Build Coastguard Worker }
4064*4bdc9457SAndroid Build Coastguard Worker }
4065*4bdc9457SAndroid Build Coastguard Worker }
4066*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X1,rows_div_2)4067*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X1, rows_div_2) {
4068*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
4069*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4070*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4071*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4072*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4073*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x1);
4074*4bdc9457SAndroid Build Coastguard Worker }
4075*4bdc9457SAndroid Build Coastguard Worker }
4076*4bdc9457SAndroid Build Coastguard Worker }
4077*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X1,rows_gt_2)4078*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X1, rows_gt_2) {
4079*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
4080*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4081*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4082*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4083*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4084*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x1);
4085*4bdc9457SAndroid Build Coastguard Worker }
4086*4bdc9457SAndroid Build Coastguard Worker }
4087*4bdc9457SAndroid Build Coastguard Worker }
4088*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X1,input_stride)4089*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X1, input_stride) {
4090*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4091*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4092*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4093*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4094*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4095*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
4096*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4097*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x1);
4098*4bdc9457SAndroid Build Coastguard Worker }
4099*4bdc9457SAndroid Build Coastguard Worker }
4100*4bdc9457SAndroid Build Coastguard Worker }
4101*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X1,output_stride)4102*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X1, output_stride) {
4103*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4104*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4105*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4106*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4107*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4108*4bdc9457SAndroid Build Coastguard Worker .output_stride(7)
4109*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4110*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x1);
4111*4bdc9457SAndroid Build Coastguard Worker }
4112*4bdc9457SAndroid Build Coastguard Worker }
4113*4bdc9457SAndroid Build Coastguard Worker }
4114*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X1,inplace)4115*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X1, inplace) {
4116*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4117*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4118*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4119*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4120*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4121*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
4122*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4123*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x1);
4124*4bdc9457SAndroid Build Coastguard Worker }
4125*4bdc9457SAndroid Build Coastguard Worker }
4126*4bdc9457SAndroid Build Coastguard Worker }
4127*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
4128*4bdc9457SAndroid Build Coastguard Worker
4129*4bdc9457SAndroid Build Coastguard Worker
4130*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(F32_PRELU__WASM_2X4,channels_eq_4)4131*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, channels_eq_4) {
4132*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4133*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4134*4bdc9457SAndroid Build Coastguard Worker .channels(4)
4135*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4136*4bdc9457SAndroid Build Coastguard Worker }
4137*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X4,channels_div_4)4138*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, channels_div_4) {
4139*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
4140*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4141*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4142*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4143*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4144*4bdc9457SAndroid Build Coastguard Worker }
4145*4bdc9457SAndroid Build Coastguard Worker }
4146*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X4,channels_lt_4)4147*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, channels_lt_4) {
4148*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
4149*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4150*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4151*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4152*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4153*4bdc9457SAndroid Build Coastguard Worker }
4154*4bdc9457SAndroid Build Coastguard Worker }
4155*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X4,channels_gt_4)4156*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, channels_gt_4) {
4157*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
4158*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4159*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4160*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4161*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4162*4bdc9457SAndroid Build Coastguard Worker }
4163*4bdc9457SAndroid Build Coastguard Worker }
4164*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X4,rows_lt_2)4165*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, rows_lt_2) {
4166*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
4167*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4168*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4169*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4170*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4171*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4172*4bdc9457SAndroid Build Coastguard Worker }
4173*4bdc9457SAndroid Build Coastguard Worker }
4174*4bdc9457SAndroid Build Coastguard Worker }
4175*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X4,rows_div_2)4176*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, rows_div_2) {
4177*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
4178*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4179*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4180*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4181*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4182*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4183*4bdc9457SAndroid Build Coastguard Worker }
4184*4bdc9457SAndroid Build Coastguard Worker }
4185*4bdc9457SAndroid Build Coastguard Worker }
4186*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X4,rows_gt_2)4187*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, rows_gt_2) {
4188*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
4189*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4190*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4191*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4192*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4193*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4194*4bdc9457SAndroid Build Coastguard Worker }
4195*4bdc9457SAndroid Build Coastguard Worker }
4196*4bdc9457SAndroid Build Coastguard Worker }
4197*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X4,input_stride)4198*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, input_stride) {
4199*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4200*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4201*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4202*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4203*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4204*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
4205*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4206*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4207*4bdc9457SAndroid Build Coastguard Worker }
4208*4bdc9457SAndroid Build Coastguard Worker }
4209*4bdc9457SAndroid Build Coastguard Worker }
4210*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X4,output_stride)4211*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, output_stride) {
4212*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4213*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4214*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4215*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4216*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4217*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
4218*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4219*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4220*4bdc9457SAndroid Build Coastguard Worker }
4221*4bdc9457SAndroid Build Coastguard Worker }
4222*4bdc9457SAndroid Build Coastguard Worker }
4223*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__WASM_2X4,inplace)4224*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__WASM_2X4, inplace) {
4225*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4226*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4227*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4228*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4229*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4230*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
4231*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4232*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__wasm_2x4);
4233*4bdc9457SAndroid Build Coastguard Worker }
4234*4bdc9457SAndroid Build Coastguard Worker }
4235*4bdc9457SAndroid Build Coastguard Worker }
4236*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
4237*4bdc9457SAndroid Build Coastguard Worker
4238*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X1,channels_eq_1)4239*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X1, channels_eq_1) {
4240*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4241*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4242*4bdc9457SAndroid Build Coastguard Worker .channels(1)
4243*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x1);
4244*4bdc9457SAndroid Build Coastguard Worker }
4245*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X1,channels_gt_1)4246*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X1, channels_gt_1) {
4247*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
4248*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4249*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4250*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4251*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x1);
4252*4bdc9457SAndroid Build Coastguard Worker }
4253*4bdc9457SAndroid Build Coastguard Worker }
4254*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X1,rows_lt_2)4255*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X1, rows_lt_2) {
4256*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
4257*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4258*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4259*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4260*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4261*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x1);
4262*4bdc9457SAndroid Build Coastguard Worker }
4263*4bdc9457SAndroid Build Coastguard Worker }
4264*4bdc9457SAndroid Build Coastguard Worker }
4265*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X1,rows_div_2)4266*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X1, rows_div_2) {
4267*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
4268*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4269*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4270*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4271*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4272*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x1);
4273*4bdc9457SAndroid Build Coastguard Worker }
4274*4bdc9457SAndroid Build Coastguard Worker }
4275*4bdc9457SAndroid Build Coastguard Worker }
4276*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X1,rows_gt_2)4277*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X1, rows_gt_2) {
4278*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
4279*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4280*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4281*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4282*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4283*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x1);
4284*4bdc9457SAndroid Build Coastguard Worker }
4285*4bdc9457SAndroid Build Coastguard Worker }
4286*4bdc9457SAndroid Build Coastguard Worker }
4287*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X1,input_stride)4288*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X1, input_stride) {
4289*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4290*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4291*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4292*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4293*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4294*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
4295*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4296*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x1);
4297*4bdc9457SAndroid Build Coastguard Worker }
4298*4bdc9457SAndroid Build Coastguard Worker }
4299*4bdc9457SAndroid Build Coastguard Worker }
4300*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X1,output_stride)4301*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X1, output_stride) {
4302*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4303*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4304*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4305*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4306*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4307*4bdc9457SAndroid Build Coastguard Worker .output_stride(7)
4308*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4309*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x1);
4310*4bdc9457SAndroid Build Coastguard Worker }
4311*4bdc9457SAndroid Build Coastguard Worker }
4312*4bdc9457SAndroid Build Coastguard Worker }
4313*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X1,inplace)4314*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X1, inplace) {
4315*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4316*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) {
4317*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4318*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4319*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4320*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
4321*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4322*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x1);
4323*4bdc9457SAndroid Build Coastguard Worker }
4324*4bdc9457SAndroid Build Coastguard Worker }
4325*4bdc9457SAndroid Build Coastguard Worker }
4326*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,channels_eq_4)4327*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, channels_eq_4) {
4328*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4329*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4330*4bdc9457SAndroid Build Coastguard Worker .channels(4)
4331*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4332*4bdc9457SAndroid Build Coastguard Worker }
4333*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,channels_div_4)4334*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, channels_div_4) {
4335*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 40; channels += 4) {
4336*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4337*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4338*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4339*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4340*4bdc9457SAndroid Build Coastguard Worker }
4341*4bdc9457SAndroid Build Coastguard Worker }
4342*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,channels_lt_4)4343*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, channels_lt_4) {
4344*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
4345*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4346*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4347*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4348*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4349*4bdc9457SAndroid Build Coastguard Worker }
4350*4bdc9457SAndroid Build Coastguard Worker }
4351*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,channels_gt_4)4352*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, channels_gt_4) {
4353*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
4354*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4355*4bdc9457SAndroid Build Coastguard Worker .rows(2)
4356*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4357*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4358*4bdc9457SAndroid Build Coastguard Worker }
4359*4bdc9457SAndroid Build Coastguard Worker }
4360*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,rows_lt_2)4361*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, rows_lt_2) {
4362*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 2; rows++) {
4363*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4364*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4365*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4366*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4367*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4368*4bdc9457SAndroid Build Coastguard Worker }
4369*4bdc9457SAndroid Build Coastguard Worker }
4370*4bdc9457SAndroid Build Coastguard Worker }
4371*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,rows_div_2)4372*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, rows_div_2) {
4373*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 4; rows <= 8; rows += 2) {
4374*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4375*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4376*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4377*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4378*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4379*4bdc9457SAndroid Build Coastguard Worker }
4380*4bdc9457SAndroid Build Coastguard Worker }
4381*4bdc9457SAndroid Build Coastguard Worker }
4382*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,rows_gt_2)4383*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, rows_gt_2) {
4384*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 3; rows < 4; rows++) {
4385*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4386*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4387*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4388*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4389*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4390*4bdc9457SAndroid Build Coastguard Worker }
4391*4bdc9457SAndroid Build Coastguard Worker }
4392*4bdc9457SAndroid Build Coastguard Worker }
4393*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,input_stride)4394*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, input_stride) {
4395*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4396*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4397*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4398*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4399*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4400*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
4401*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4402*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4403*4bdc9457SAndroid Build Coastguard Worker }
4404*4bdc9457SAndroid Build Coastguard Worker }
4405*4bdc9457SAndroid Build Coastguard Worker }
4406*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,output_stride)4407*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, output_stride) {
4408*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4409*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4410*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4411*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4412*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4413*4bdc9457SAndroid Build Coastguard Worker .output_stride(23)
4414*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4415*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4416*4bdc9457SAndroid Build Coastguard Worker }
4417*4bdc9457SAndroid Build Coastguard Worker }
4418*4bdc9457SAndroid Build Coastguard Worker }
4419*4bdc9457SAndroid Build Coastguard Worker
TEST(F32_PRELU__SCALAR_2X4,inplace)4420*4bdc9457SAndroid Build Coastguard Worker TEST(F32_PRELU__SCALAR_2X4, inplace) {
4421*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows <= 6; rows += 1) {
4422*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 20; channels += 3) {
4423*4bdc9457SAndroid Build Coastguard Worker PReLUMicrokernelTester()
4424*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4425*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4426*4bdc9457SAndroid Build Coastguard Worker .inplace(true)
4427*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
4428*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f32_prelu_ukernel__scalar_2x4);
4429*4bdc9457SAndroid Build Coastguard Worker }
4430*4bdc9457SAndroid Build Coastguard Worker }
4431*4bdc9457SAndroid Build Coastguard Worker }