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