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 2020 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/qu8-gavgpool-minmax-fp32.yaml
11*4bdc9457SAndroid Build Coastguard Worker // Generator: tools/generate-gavgpool-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/gavgpool.h>
20*4bdc9457SAndroid Build Coastguard Worker #include "gavgpool-microkernel-tester.h"
21*4bdc9457SAndroid Build Coastguard Worker
22*4bdc9457SAndroid Build Coastguard Worker
23*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_eq_8_2pass_fulltile)24*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_eq_8_2pass_fulltile) {
25*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
26*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
27*4bdc9457SAndroid Build Coastguard Worker .rows(14)
28*4bdc9457SAndroid Build Coastguard Worker .channels(8)
29*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
30*4bdc9457SAndroid Build Coastguard Worker }
31*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_eq_8_2pass_fulltile_with_input_stride)32*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_eq_8_2pass_fulltile_with_input_stride) {
33*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
34*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
35*4bdc9457SAndroid Build Coastguard Worker .rows(14)
36*4bdc9457SAndroid Build Coastguard Worker .channels(8)
37*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
38*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
39*4bdc9457SAndroid Build Coastguard Worker }
40*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_eq_8_2pass_fulltile_with_qmax)41*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_eq_8_2pass_fulltile_with_qmax) {
42*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
43*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
44*4bdc9457SAndroid Build Coastguard Worker .rows(14)
45*4bdc9457SAndroid Build Coastguard Worker .channels(8)
46*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
47*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
48*4bdc9457SAndroid Build Coastguard Worker }
49*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_eq_8_2pass_fulltile_with_qmin)50*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_eq_8_2pass_fulltile_with_qmin) {
51*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
52*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
53*4bdc9457SAndroid Build Coastguard Worker .rows(14)
54*4bdc9457SAndroid Build Coastguard Worker .channels(8)
55*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
56*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
57*4bdc9457SAndroid Build Coastguard Worker }
58*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_eq_8_2pass_subtile)59*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_eq_8_2pass_subtile) {
60*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
61*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
62*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
63*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
64*4bdc9457SAndroid Build Coastguard Worker .channels(8)
65*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
66*4bdc9457SAndroid Build Coastguard Worker }
67*4bdc9457SAndroid Build Coastguard Worker }
68*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_eq_8_2pass_subtile_with_input_stride)69*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_eq_8_2pass_subtile_with_input_stride) {
70*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
71*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
72*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
73*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
74*4bdc9457SAndroid Build Coastguard Worker .channels(8)
75*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
76*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
77*4bdc9457SAndroid Build Coastguard Worker }
78*4bdc9457SAndroid Build Coastguard Worker }
79*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_eq_8_multipass_fulltile)80*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_eq_8_multipass_fulltile) {
81*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
82*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
83*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
84*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
85*4bdc9457SAndroid Build Coastguard Worker .channels(8)
86*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
87*4bdc9457SAndroid Build Coastguard Worker }
88*4bdc9457SAndroid Build Coastguard Worker }
89*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_eq_8_multipass_fulltile_with_input_stride)90*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_eq_8_multipass_fulltile_with_input_stride) {
91*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
92*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
93*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
94*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
95*4bdc9457SAndroid Build Coastguard Worker .channels(8)
96*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
97*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
98*4bdc9457SAndroid Build Coastguard Worker }
99*4bdc9457SAndroid Build Coastguard Worker }
100*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_div_8_2pass_fulltile)101*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_div_8_2pass_fulltile) {
102*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
103*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
104*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
105*4bdc9457SAndroid Build Coastguard Worker .rows(14)
106*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
107*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
108*4bdc9457SAndroid Build Coastguard Worker }
109*4bdc9457SAndroid Build Coastguard Worker }
110*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_div_8_2pass_subtile)111*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_div_8_2pass_subtile) {
112*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
113*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
114*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
115*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
116*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
117*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
118*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
119*4bdc9457SAndroid Build Coastguard Worker }
120*4bdc9457SAndroid Build Coastguard Worker }
121*4bdc9457SAndroid Build Coastguard Worker }
122*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_div_8_multipass_fulltile)123*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_div_8_multipass_fulltile) {
124*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
125*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
126*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
127*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
128*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
129*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
130*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
131*4bdc9457SAndroid Build Coastguard Worker }
132*4bdc9457SAndroid Build Coastguard Worker }
133*4bdc9457SAndroid Build Coastguard Worker }
134*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_div_8_multipass_fulltile_with_input_stride)135*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_div_8_multipass_fulltile_with_input_stride) {
136*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
137*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
138*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
139*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
140*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
141*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
142*4bdc9457SAndroid Build Coastguard Worker .input_stride(131)
143*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
144*4bdc9457SAndroid Build Coastguard Worker }
145*4bdc9457SAndroid Build Coastguard Worker }
146*4bdc9457SAndroid Build Coastguard Worker }
147*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_lt_8_2pass_fulltile)148*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_lt_8_2pass_fulltile) {
149*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
150*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
151*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
152*4bdc9457SAndroid Build Coastguard Worker .rows(14)
153*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
154*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
155*4bdc9457SAndroid Build Coastguard Worker }
156*4bdc9457SAndroid Build Coastguard Worker }
157*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_lt_8_2pass_fulltile_with_qmax)158*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_lt_8_2pass_fulltile_with_qmax) {
159*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
160*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
161*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
162*4bdc9457SAndroid Build Coastguard Worker .rows(14)
163*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
164*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
165*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
166*4bdc9457SAndroid Build Coastguard Worker }
167*4bdc9457SAndroid Build Coastguard Worker }
168*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_lt_8_2pass_fulltile_with_qmin)169*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_lt_8_2pass_fulltile_with_qmin) {
170*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
171*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
172*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
173*4bdc9457SAndroid Build Coastguard Worker .rows(14)
174*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
175*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
176*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
177*4bdc9457SAndroid Build Coastguard Worker }
178*4bdc9457SAndroid Build Coastguard Worker }
179*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_lt_8_2pass_subtile)180*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_lt_8_2pass_subtile) {
181*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
182*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
183*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
184*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
185*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
186*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
187*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
188*4bdc9457SAndroid Build Coastguard Worker }
189*4bdc9457SAndroid Build Coastguard Worker }
190*4bdc9457SAndroid Build Coastguard Worker }
191*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_lt_8_multipass_fulltile)192*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_lt_8_multipass_fulltile) {
193*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
194*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
195*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
196*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
197*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
198*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
199*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
200*4bdc9457SAndroid Build Coastguard Worker }
201*4bdc9457SAndroid Build Coastguard Worker }
202*4bdc9457SAndroid Build Coastguard Worker }
203*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_lt_8_multipass_fulltile_with_input_stride)204*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_lt_8_multipass_fulltile_with_input_stride) {
205*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
206*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
207*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
208*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
209*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
210*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
211*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
212*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
213*4bdc9457SAndroid Build Coastguard Worker }
214*4bdc9457SAndroid Build Coastguard Worker }
215*4bdc9457SAndroid Build Coastguard Worker }
216*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_gt_8_2pass_fulltile)217*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_gt_8_2pass_fulltile) {
218*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
219*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
220*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
221*4bdc9457SAndroid Build Coastguard Worker .rows(14)
222*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
223*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
224*4bdc9457SAndroid Build Coastguard Worker }
225*4bdc9457SAndroid Build Coastguard Worker }
226*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_gt_8_2pass_fulltile_with_qmax)227*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_gt_8_2pass_fulltile_with_qmax) {
228*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
229*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
230*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
231*4bdc9457SAndroid Build Coastguard Worker .rows(14)
232*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
233*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
234*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
235*4bdc9457SAndroid Build Coastguard Worker }
236*4bdc9457SAndroid Build Coastguard Worker }
237*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_gt_8_2pass_fulltile_with_qmin)238*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_gt_8_2pass_fulltile_with_qmin) {
239*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
240*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
241*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
242*4bdc9457SAndroid Build Coastguard Worker .rows(14)
243*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
244*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
245*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
246*4bdc9457SAndroid Build Coastguard Worker }
247*4bdc9457SAndroid Build Coastguard Worker }
248*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_gt_8_2pass_subtile)249*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_gt_8_2pass_subtile) {
250*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
251*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
252*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
253*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
254*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
255*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
256*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
257*4bdc9457SAndroid Build Coastguard Worker }
258*4bdc9457SAndroid Build Coastguard Worker }
259*4bdc9457SAndroid Build Coastguard Worker }
260*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_gt_8_multipass_fulltile)261*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_gt_8_multipass_fulltile) {
262*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
263*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
264*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
265*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
266*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
267*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
268*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
269*4bdc9457SAndroid Build Coastguard Worker }
270*4bdc9457SAndroid Build Coastguard Worker }
271*4bdc9457SAndroid Build Coastguard Worker }
272*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8,channels_gt_8_multipass_fulltile_with_input_stride)273*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C8, channels_gt_8_multipass_fulltile_with_input_stride) {
274*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
275*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
276*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
277*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
278*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
279*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
280*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
281*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
282*4bdc9457SAndroid Build Coastguard Worker }
283*4bdc9457SAndroid Build Coastguard Worker }
284*4bdc9457SAndroid Build Coastguard Worker }
285*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
286*4bdc9457SAndroid Build Coastguard Worker
287*4bdc9457SAndroid Build Coastguard Worker
288*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_eq_16_2pass_fulltile)289*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_eq_16_2pass_fulltile) {
290*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
291*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
292*4bdc9457SAndroid Build Coastguard Worker .rows(14)
293*4bdc9457SAndroid Build Coastguard Worker .channels(16)
294*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
295*4bdc9457SAndroid Build Coastguard Worker }
296*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_eq_16_2pass_fulltile_with_input_stride)297*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_eq_16_2pass_fulltile_with_input_stride) {
298*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
299*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
300*4bdc9457SAndroid Build Coastguard Worker .rows(14)
301*4bdc9457SAndroid Build Coastguard Worker .channels(16)
302*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
303*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
304*4bdc9457SAndroid Build Coastguard Worker }
305*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_eq_16_2pass_fulltile_with_qmax)306*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_eq_16_2pass_fulltile_with_qmax) {
307*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
308*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
309*4bdc9457SAndroid Build Coastguard Worker .rows(14)
310*4bdc9457SAndroid Build Coastguard Worker .channels(16)
311*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
312*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
313*4bdc9457SAndroid Build Coastguard Worker }
314*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_eq_16_2pass_fulltile_with_qmin)315*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_eq_16_2pass_fulltile_with_qmin) {
316*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
317*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
318*4bdc9457SAndroid Build Coastguard Worker .rows(14)
319*4bdc9457SAndroid Build Coastguard Worker .channels(16)
320*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
321*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
322*4bdc9457SAndroid Build Coastguard Worker }
323*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_eq_16_2pass_subtile)324*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_eq_16_2pass_subtile) {
325*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
326*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
327*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
328*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
329*4bdc9457SAndroid Build Coastguard Worker .channels(16)
330*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
331*4bdc9457SAndroid Build Coastguard Worker }
332*4bdc9457SAndroid Build Coastguard Worker }
333*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_eq_16_2pass_subtile_with_input_stride)334*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_eq_16_2pass_subtile_with_input_stride) {
335*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
336*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
337*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
338*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
339*4bdc9457SAndroid Build Coastguard Worker .channels(16)
340*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
341*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
342*4bdc9457SAndroid Build Coastguard Worker }
343*4bdc9457SAndroid Build Coastguard Worker }
344*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_eq_16_multipass_fulltile)345*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_eq_16_multipass_fulltile) {
346*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
347*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
348*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
349*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
350*4bdc9457SAndroid Build Coastguard Worker .channels(16)
351*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
352*4bdc9457SAndroid Build Coastguard Worker }
353*4bdc9457SAndroid Build Coastguard Worker }
354*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_eq_16_multipass_fulltile_with_input_stride)355*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_eq_16_multipass_fulltile_with_input_stride) {
356*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
357*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
358*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
359*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
360*4bdc9457SAndroid Build Coastguard Worker .channels(16)
361*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
362*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
363*4bdc9457SAndroid Build Coastguard Worker }
364*4bdc9457SAndroid Build Coastguard Worker }
365*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_div_16_2pass_fulltile)366*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_div_16_2pass_fulltile) {
367*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
368*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
369*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
370*4bdc9457SAndroid Build Coastguard Worker .rows(14)
371*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
372*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
373*4bdc9457SAndroid Build Coastguard Worker }
374*4bdc9457SAndroid Build Coastguard Worker }
375*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_div_16_2pass_subtile)376*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_div_16_2pass_subtile) {
377*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
378*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
379*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
380*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
381*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
382*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
383*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
384*4bdc9457SAndroid Build Coastguard Worker }
385*4bdc9457SAndroid Build Coastguard Worker }
386*4bdc9457SAndroid Build Coastguard Worker }
387*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_div_16_multipass_fulltile)388*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_div_16_multipass_fulltile) {
389*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
390*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
391*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
392*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
393*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
394*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
395*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
396*4bdc9457SAndroid Build Coastguard Worker }
397*4bdc9457SAndroid Build Coastguard Worker }
398*4bdc9457SAndroid Build Coastguard Worker }
399*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_div_16_multipass_fulltile_with_input_stride)400*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_div_16_multipass_fulltile_with_input_stride) {
401*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
402*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
403*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
404*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
405*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
406*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
407*4bdc9457SAndroid Build Coastguard Worker .input_stride(263)
408*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
409*4bdc9457SAndroid Build Coastguard Worker }
410*4bdc9457SAndroid Build Coastguard Worker }
411*4bdc9457SAndroid Build Coastguard Worker }
412*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_lt_16_2pass_fulltile)413*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_lt_16_2pass_fulltile) {
414*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
415*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
416*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
417*4bdc9457SAndroid Build Coastguard Worker .rows(14)
418*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
419*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
420*4bdc9457SAndroid Build Coastguard Worker }
421*4bdc9457SAndroid Build Coastguard Worker }
422*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_lt_16_2pass_fulltile_with_qmax)423*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_lt_16_2pass_fulltile_with_qmax) {
424*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
425*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
426*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
427*4bdc9457SAndroid Build Coastguard Worker .rows(14)
428*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
429*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
430*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
431*4bdc9457SAndroid Build Coastguard Worker }
432*4bdc9457SAndroid Build Coastguard Worker }
433*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_lt_16_2pass_fulltile_with_qmin)434*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_lt_16_2pass_fulltile_with_qmin) {
435*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
436*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
437*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
438*4bdc9457SAndroid Build Coastguard Worker .rows(14)
439*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
440*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
441*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
442*4bdc9457SAndroid Build Coastguard Worker }
443*4bdc9457SAndroid Build Coastguard Worker }
444*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_lt_16_2pass_subtile)445*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_lt_16_2pass_subtile) {
446*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
447*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
448*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
449*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
450*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
451*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
452*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
453*4bdc9457SAndroid Build Coastguard Worker }
454*4bdc9457SAndroid Build Coastguard Worker }
455*4bdc9457SAndroid Build Coastguard Worker }
456*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_lt_16_multipass_fulltile)457*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_lt_16_multipass_fulltile) {
458*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
459*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
460*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
461*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
462*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
463*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
464*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
465*4bdc9457SAndroid Build Coastguard Worker }
466*4bdc9457SAndroid Build Coastguard Worker }
467*4bdc9457SAndroid Build Coastguard Worker }
468*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_lt_16_multipass_fulltile_with_input_stride)469*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_lt_16_multipass_fulltile_with_input_stride) {
470*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
471*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
472*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
473*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
474*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
475*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
476*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
477*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
478*4bdc9457SAndroid Build Coastguard Worker }
479*4bdc9457SAndroid Build Coastguard Worker }
480*4bdc9457SAndroid Build Coastguard Worker }
481*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_gt_16_2pass_fulltile)482*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_gt_16_2pass_fulltile) {
483*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
484*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
485*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
486*4bdc9457SAndroid Build Coastguard Worker .rows(14)
487*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
488*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
489*4bdc9457SAndroid Build Coastguard Worker }
490*4bdc9457SAndroid Build Coastguard Worker }
491*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_gt_16_2pass_fulltile_with_qmax)492*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_gt_16_2pass_fulltile_with_qmax) {
493*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
494*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
495*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
496*4bdc9457SAndroid Build Coastguard Worker .rows(14)
497*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
498*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
499*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
500*4bdc9457SAndroid Build Coastguard Worker }
501*4bdc9457SAndroid Build Coastguard Worker }
502*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_gt_16_2pass_fulltile_with_qmin)503*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_gt_16_2pass_fulltile_with_qmin) {
504*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
505*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
506*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
507*4bdc9457SAndroid Build Coastguard Worker .rows(14)
508*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
509*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
510*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
511*4bdc9457SAndroid Build Coastguard Worker }
512*4bdc9457SAndroid Build Coastguard Worker }
513*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_gt_16_2pass_subtile)514*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_gt_16_2pass_subtile) {
515*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
516*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
517*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
518*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
519*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
520*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
521*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
522*4bdc9457SAndroid Build Coastguard Worker }
523*4bdc9457SAndroid Build Coastguard Worker }
524*4bdc9457SAndroid Build Coastguard Worker }
525*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_gt_16_multipass_fulltile)526*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_gt_16_multipass_fulltile) {
527*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
528*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
529*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
530*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
531*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
532*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
533*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
534*4bdc9457SAndroid Build Coastguard Worker }
535*4bdc9457SAndroid Build Coastguard Worker }
536*4bdc9457SAndroid Build Coastguard Worker }
537*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16,channels_gt_16_multipass_fulltile_with_input_stride)538*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C16, channels_gt_16_multipass_fulltile_with_input_stride) {
539*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
540*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
541*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
542*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
543*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
544*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
545*4bdc9457SAndroid Build Coastguard Worker .input_stride(47)
546*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
547*4bdc9457SAndroid Build Coastguard Worker }
548*4bdc9457SAndroid Build Coastguard Worker }
549*4bdc9457SAndroid Build Coastguard Worker }
550*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
551*4bdc9457SAndroid Build Coastguard Worker
552*4bdc9457SAndroid Build Coastguard Worker
553*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_eq_24_2pass_fulltile)554*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_eq_24_2pass_fulltile) {
555*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
556*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
557*4bdc9457SAndroid Build Coastguard Worker .rows(14)
558*4bdc9457SAndroid Build Coastguard Worker .channels(24)
559*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
560*4bdc9457SAndroid Build Coastguard Worker }
561*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_eq_24_2pass_fulltile_with_input_stride)562*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_eq_24_2pass_fulltile_with_input_stride) {
563*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
564*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
565*4bdc9457SAndroid Build Coastguard Worker .rows(14)
566*4bdc9457SAndroid Build Coastguard Worker .channels(24)
567*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
568*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
569*4bdc9457SAndroid Build Coastguard Worker }
570*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_eq_24_2pass_fulltile_with_qmax)571*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_eq_24_2pass_fulltile_with_qmax) {
572*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
573*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
574*4bdc9457SAndroid Build Coastguard Worker .rows(14)
575*4bdc9457SAndroid Build Coastguard Worker .channels(24)
576*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
577*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
578*4bdc9457SAndroid Build Coastguard Worker }
579*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_eq_24_2pass_fulltile_with_qmin)580*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_eq_24_2pass_fulltile_with_qmin) {
581*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
582*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
583*4bdc9457SAndroid Build Coastguard Worker .rows(14)
584*4bdc9457SAndroid Build Coastguard Worker .channels(24)
585*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
586*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
587*4bdc9457SAndroid Build Coastguard Worker }
588*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_eq_24_2pass_subtile)589*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_eq_24_2pass_subtile) {
590*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
591*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
592*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
593*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
594*4bdc9457SAndroid Build Coastguard Worker .channels(24)
595*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
596*4bdc9457SAndroid Build Coastguard Worker }
597*4bdc9457SAndroid Build Coastguard Worker }
598*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_eq_24_2pass_subtile_with_input_stride)599*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_eq_24_2pass_subtile_with_input_stride) {
600*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
601*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
602*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
603*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
604*4bdc9457SAndroid Build Coastguard Worker .channels(24)
605*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
606*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
607*4bdc9457SAndroid Build Coastguard Worker }
608*4bdc9457SAndroid Build Coastguard Worker }
609*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_eq_24_multipass_fulltile)610*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_eq_24_multipass_fulltile) {
611*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
612*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
613*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
614*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
615*4bdc9457SAndroid Build Coastguard Worker .channels(24)
616*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
617*4bdc9457SAndroid Build Coastguard Worker }
618*4bdc9457SAndroid Build Coastguard Worker }
619*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_eq_24_multipass_fulltile_with_input_stride)620*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_eq_24_multipass_fulltile_with_input_stride) {
621*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
622*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
623*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
624*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
625*4bdc9457SAndroid Build Coastguard Worker .channels(24)
626*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
627*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
628*4bdc9457SAndroid Build Coastguard Worker }
629*4bdc9457SAndroid Build Coastguard Worker }
630*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_div_24_2pass_fulltile)631*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_div_24_2pass_fulltile) {
632*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
633*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
634*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
635*4bdc9457SAndroid Build Coastguard Worker .rows(14)
636*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
637*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
638*4bdc9457SAndroid Build Coastguard Worker }
639*4bdc9457SAndroid Build Coastguard Worker }
640*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_div_24_2pass_subtile)641*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_div_24_2pass_subtile) {
642*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
643*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
644*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
645*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
646*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
647*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
648*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
649*4bdc9457SAndroid Build Coastguard Worker }
650*4bdc9457SAndroid Build Coastguard Worker }
651*4bdc9457SAndroid Build Coastguard Worker }
652*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_div_24_multipass_fulltile)653*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_div_24_multipass_fulltile) {
654*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
655*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
656*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
657*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
658*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
659*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
660*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
661*4bdc9457SAndroid Build Coastguard Worker }
662*4bdc9457SAndroid Build Coastguard Worker }
663*4bdc9457SAndroid Build Coastguard Worker }
664*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_div_24_multipass_fulltile_with_input_stride)665*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_div_24_multipass_fulltile_with_input_stride) {
666*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
667*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
668*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
669*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
670*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
671*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
672*4bdc9457SAndroid Build Coastguard Worker .input_stride(389)
673*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
674*4bdc9457SAndroid Build Coastguard Worker }
675*4bdc9457SAndroid Build Coastguard Worker }
676*4bdc9457SAndroid Build Coastguard Worker }
677*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_lt_24_2pass_fulltile)678*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_lt_24_2pass_fulltile) {
679*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
680*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
681*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
682*4bdc9457SAndroid Build Coastguard Worker .rows(14)
683*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
684*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
685*4bdc9457SAndroid Build Coastguard Worker }
686*4bdc9457SAndroid Build Coastguard Worker }
687*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_lt_24_2pass_fulltile_with_qmax)688*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_lt_24_2pass_fulltile_with_qmax) {
689*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
690*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
691*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
692*4bdc9457SAndroid Build Coastguard Worker .rows(14)
693*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
694*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
695*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
696*4bdc9457SAndroid Build Coastguard Worker }
697*4bdc9457SAndroid Build Coastguard Worker }
698*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_lt_24_2pass_fulltile_with_qmin)699*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_lt_24_2pass_fulltile_with_qmin) {
700*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
701*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
702*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
703*4bdc9457SAndroid Build Coastguard Worker .rows(14)
704*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
705*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
706*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
707*4bdc9457SAndroid Build Coastguard Worker }
708*4bdc9457SAndroid Build Coastguard Worker }
709*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_lt_24_2pass_subtile)710*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_lt_24_2pass_subtile) {
711*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
712*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
713*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
714*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
715*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
716*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
717*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
718*4bdc9457SAndroid Build Coastguard Worker }
719*4bdc9457SAndroid Build Coastguard Worker }
720*4bdc9457SAndroid Build Coastguard Worker }
721*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_lt_24_multipass_fulltile)722*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_lt_24_multipass_fulltile) {
723*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
724*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
725*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
726*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
727*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
728*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
729*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
730*4bdc9457SAndroid Build Coastguard Worker }
731*4bdc9457SAndroid Build Coastguard Worker }
732*4bdc9457SAndroid Build Coastguard Worker }
733*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_lt_24_multipass_fulltile_with_input_stride)734*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_lt_24_multipass_fulltile_with_input_stride) {
735*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
736*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
737*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
738*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
739*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
740*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
741*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
742*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
743*4bdc9457SAndroid Build Coastguard Worker }
744*4bdc9457SAndroid Build Coastguard Worker }
745*4bdc9457SAndroid Build Coastguard Worker }
746*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_gt_24_2pass_fulltile)747*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_gt_24_2pass_fulltile) {
748*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
749*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
750*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
751*4bdc9457SAndroid Build Coastguard Worker .rows(14)
752*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
753*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
754*4bdc9457SAndroid Build Coastguard Worker }
755*4bdc9457SAndroid Build Coastguard Worker }
756*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_gt_24_2pass_fulltile_with_qmax)757*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_gt_24_2pass_fulltile_with_qmax) {
758*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
759*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
760*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
761*4bdc9457SAndroid Build Coastguard Worker .rows(14)
762*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
763*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
764*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
765*4bdc9457SAndroid Build Coastguard Worker }
766*4bdc9457SAndroid Build Coastguard Worker }
767*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_gt_24_2pass_fulltile_with_qmin)768*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_gt_24_2pass_fulltile_with_qmin) {
769*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
770*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
771*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
772*4bdc9457SAndroid Build Coastguard Worker .rows(14)
773*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
774*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
775*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
776*4bdc9457SAndroid Build Coastguard Worker }
777*4bdc9457SAndroid Build Coastguard Worker }
778*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_gt_24_2pass_subtile)779*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_gt_24_2pass_subtile) {
780*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
781*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
782*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
783*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
784*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
785*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
786*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
787*4bdc9457SAndroid Build Coastguard Worker }
788*4bdc9457SAndroid Build Coastguard Worker }
789*4bdc9457SAndroid Build Coastguard Worker }
790*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_gt_24_multipass_fulltile)791*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_gt_24_multipass_fulltile) {
792*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
793*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
794*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
795*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
796*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
797*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
798*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
799*4bdc9457SAndroid Build Coastguard Worker }
800*4bdc9457SAndroid Build Coastguard Worker }
801*4bdc9457SAndroid Build Coastguard Worker }
802*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24,channels_gt_24_multipass_fulltile_with_input_stride)803*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C24, channels_gt_24_multipass_fulltile_with_input_stride) {
804*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
805*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
806*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
807*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
808*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
809*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
810*4bdc9457SAndroid Build Coastguard Worker .input_stride(61)
811*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
812*4bdc9457SAndroid Build Coastguard Worker }
813*4bdc9457SAndroid Build Coastguard Worker }
814*4bdc9457SAndroid Build Coastguard Worker }
815*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
816*4bdc9457SAndroid Build Coastguard Worker
817*4bdc9457SAndroid Build Coastguard Worker
818*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_eq_32_2pass_fulltile)819*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_eq_32_2pass_fulltile) {
820*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
821*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
822*4bdc9457SAndroid Build Coastguard Worker .rows(14)
823*4bdc9457SAndroid Build Coastguard Worker .channels(32)
824*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
825*4bdc9457SAndroid Build Coastguard Worker }
826*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_eq_32_2pass_fulltile_with_input_stride)827*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_eq_32_2pass_fulltile_with_input_stride) {
828*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
829*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
830*4bdc9457SAndroid Build Coastguard Worker .rows(14)
831*4bdc9457SAndroid Build Coastguard Worker .channels(32)
832*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
833*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
834*4bdc9457SAndroid Build Coastguard Worker }
835*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_eq_32_2pass_fulltile_with_qmax)836*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_eq_32_2pass_fulltile_with_qmax) {
837*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
838*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
839*4bdc9457SAndroid Build Coastguard Worker .rows(14)
840*4bdc9457SAndroid Build Coastguard Worker .channels(32)
841*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
842*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
843*4bdc9457SAndroid Build Coastguard Worker }
844*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_eq_32_2pass_fulltile_with_qmin)845*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_eq_32_2pass_fulltile_with_qmin) {
846*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
847*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
848*4bdc9457SAndroid Build Coastguard Worker .rows(14)
849*4bdc9457SAndroid Build Coastguard Worker .channels(32)
850*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
851*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
852*4bdc9457SAndroid Build Coastguard Worker }
853*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_eq_32_2pass_subtile)854*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_eq_32_2pass_subtile) {
855*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
856*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
857*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
858*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
859*4bdc9457SAndroid Build Coastguard Worker .channels(32)
860*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
861*4bdc9457SAndroid Build Coastguard Worker }
862*4bdc9457SAndroid Build Coastguard Worker }
863*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_eq_32_2pass_subtile_with_input_stride)864*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_eq_32_2pass_subtile_with_input_stride) {
865*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
866*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
867*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
868*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
869*4bdc9457SAndroid Build Coastguard Worker .channels(32)
870*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
871*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
872*4bdc9457SAndroid Build Coastguard Worker }
873*4bdc9457SAndroid Build Coastguard Worker }
874*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_eq_32_multipass_fulltile)875*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_eq_32_multipass_fulltile) {
876*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
877*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
878*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
879*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
880*4bdc9457SAndroid Build Coastguard Worker .channels(32)
881*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
882*4bdc9457SAndroid Build Coastguard Worker }
883*4bdc9457SAndroid Build Coastguard Worker }
884*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_eq_32_multipass_fulltile_with_input_stride)885*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_eq_32_multipass_fulltile_with_input_stride) {
886*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
887*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
888*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
889*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
890*4bdc9457SAndroid Build Coastguard Worker .channels(32)
891*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
892*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
893*4bdc9457SAndroid Build Coastguard Worker }
894*4bdc9457SAndroid Build Coastguard Worker }
895*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_div_32_2pass_fulltile)896*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_div_32_2pass_fulltile) {
897*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
898*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
899*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
900*4bdc9457SAndroid Build Coastguard Worker .rows(14)
901*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
902*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
903*4bdc9457SAndroid Build Coastguard Worker }
904*4bdc9457SAndroid Build Coastguard Worker }
905*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_div_32_2pass_subtile)906*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_div_32_2pass_subtile) {
907*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
908*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
909*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
910*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
911*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
912*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
913*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
914*4bdc9457SAndroid Build Coastguard Worker }
915*4bdc9457SAndroid Build Coastguard Worker }
916*4bdc9457SAndroid Build Coastguard Worker }
917*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_div_32_multipass_fulltile)918*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_div_32_multipass_fulltile) {
919*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
920*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
921*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
922*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
923*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
924*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
925*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
926*4bdc9457SAndroid Build Coastguard Worker }
927*4bdc9457SAndroid Build Coastguard Worker }
928*4bdc9457SAndroid Build Coastguard Worker }
929*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_div_32_multipass_fulltile_with_input_stride)930*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_div_32_multipass_fulltile_with_input_stride) {
931*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
932*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
933*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
934*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
935*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
936*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
937*4bdc9457SAndroid Build Coastguard Worker .input_stride(521)
938*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
939*4bdc9457SAndroid Build Coastguard Worker }
940*4bdc9457SAndroid Build Coastguard Worker }
941*4bdc9457SAndroid Build Coastguard Worker }
942*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_lt_32_2pass_fulltile)943*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_lt_32_2pass_fulltile) {
944*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
945*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
946*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
947*4bdc9457SAndroid Build Coastguard Worker .rows(14)
948*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
949*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
950*4bdc9457SAndroid Build Coastguard Worker }
951*4bdc9457SAndroid Build Coastguard Worker }
952*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_lt_32_2pass_fulltile_with_qmax)953*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_lt_32_2pass_fulltile_with_qmax) {
954*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
955*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
956*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
957*4bdc9457SAndroid Build Coastguard Worker .rows(14)
958*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
959*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
960*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
961*4bdc9457SAndroid Build Coastguard Worker }
962*4bdc9457SAndroid Build Coastguard Worker }
963*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_lt_32_2pass_fulltile_with_qmin)964*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_lt_32_2pass_fulltile_with_qmin) {
965*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
966*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
967*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
968*4bdc9457SAndroid Build Coastguard Worker .rows(14)
969*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
970*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
971*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
972*4bdc9457SAndroid Build Coastguard Worker }
973*4bdc9457SAndroid Build Coastguard Worker }
974*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_lt_32_2pass_subtile)975*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_lt_32_2pass_subtile) {
976*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
977*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
978*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
979*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
980*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
981*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
982*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
983*4bdc9457SAndroid Build Coastguard Worker }
984*4bdc9457SAndroid Build Coastguard Worker }
985*4bdc9457SAndroid Build Coastguard Worker }
986*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_lt_32_multipass_fulltile)987*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_lt_32_multipass_fulltile) {
988*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
989*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
990*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
991*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
992*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
993*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
994*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
995*4bdc9457SAndroid Build Coastguard Worker }
996*4bdc9457SAndroid Build Coastguard Worker }
997*4bdc9457SAndroid Build Coastguard Worker }
998*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_lt_32_multipass_fulltile_with_input_stride)999*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_lt_32_multipass_fulltile_with_input_stride) {
1000*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
1001*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
1002*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1003*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1004*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1005*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1006*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
1007*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
1008*4bdc9457SAndroid Build Coastguard Worker }
1009*4bdc9457SAndroid Build Coastguard Worker }
1010*4bdc9457SAndroid Build Coastguard Worker }
1011*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_gt_32_2pass_fulltile)1012*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_gt_32_2pass_fulltile) {
1013*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
1014*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
1015*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1016*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1017*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1018*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
1019*4bdc9457SAndroid Build Coastguard Worker }
1020*4bdc9457SAndroid Build Coastguard Worker }
1021*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_gt_32_2pass_fulltile_with_qmax)1022*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_gt_32_2pass_fulltile_with_qmax) {
1023*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
1024*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
1025*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1026*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1027*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1028*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1029*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
1030*4bdc9457SAndroid Build Coastguard Worker }
1031*4bdc9457SAndroid Build Coastguard Worker }
1032*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_gt_32_2pass_fulltile_with_qmin)1033*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_gt_32_2pass_fulltile_with_qmin) {
1034*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
1035*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
1036*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1037*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1038*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1039*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1040*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
1041*4bdc9457SAndroid Build Coastguard Worker }
1042*4bdc9457SAndroid Build Coastguard Worker }
1043*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_gt_32_2pass_subtile)1044*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_gt_32_2pass_subtile) {
1045*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
1046*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
1047*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1048*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1049*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1050*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1051*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
1052*4bdc9457SAndroid Build Coastguard Worker }
1053*4bdc9457SAndroid Build Coastguard Worker }
1054*4bdc9457SAndroid Build Coastguard Worker }
1055*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_gt_32_multipass_fulltile)1056*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_gt_32_multipass_fulltile) {
1057*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
1058*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
1059*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
1060*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1061*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1062*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1063*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
1064*4bdc9457SAndroid Build Coastguard Worker }
1065*4bdc9457SAndroid Build Coastguard Worker }
1066*4bdc9457SAndroid Build Coastguard Worker }
1067*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32,channels_gt_32_multipass_fulltile_with_input_stride)1068*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEON_C32, channels_gt_32_multipass_fulltile_with_input_stride) {
1069*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
1070*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
1071*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
1072*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1073*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1074*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1075*4bdc9457SAndroid Build Coastguard Worker .input_stride(79)
1076*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
1077*4bdc9457SAndroid Build Coastguard Worker }
1078*4bdc9457SAndroid Build Coastguard Worker }
1079*4bdc9457SAndroid Build Coastguard Worker }
1080*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
1081*4bdc9457SAndroid Build Coastguard Worker
1082*4bdc9457SAndroid Build Coastguard Worker
1083*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_eq_8_2pass_fulltile)1084*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_eq_8_2pass_fulltile) {
1085*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1086*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1087*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1088*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1089*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1090*4bdc9457SAndroid Build Coastguard Worker }
1091*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_eq_8_2pass_fulltile_with_input_stride)1092*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_eq_8_2pass_fulltile_with_input_stride) {
1093*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1094*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1095*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1096*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1097*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
1098*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1099*4bdc9457SAndroid Build Coastguard Worker }
1100*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_eq_8_2pass_fulltile_with_qmax)1101*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_eq_8_2pass_fulltile_with_qmax) {
1102*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1103*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1104*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1105*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1106*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1107*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1108*4bdc9457SAndroid Build Coastguard Worker }
1109*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_eq_8_2pass_fulltile_with_qmin)1110*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_eq_8_2pass_fulltile_with_qmin) {
1111*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1112*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1113*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1114*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1115*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1116*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1117*4bdc9457SAndroid Build Coastguard Worker }
1118*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_eq_8_2pass_subtile)1119*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_eq_8_2pass_subtile) {
1120*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1121*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1122*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1123*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1124*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1125*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1126*4bdc9457SAndroid Build Coastguard Worker }
1127*4bdc9457SAndroid Build Coastguard Worker }
1128*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_eq_8_2pass_subtile_with_input_stride)1129*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_eq_8_2pass_subtile_with_input_stride) {
1130*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1131*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1132*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1133*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1134*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1135*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
1136*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1137*4bdc9457SAndroid Build Coastguard Worker }
1138*4bdc9457SAndroid Build Coastguard Worker }
1139*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_eq_8_multipass_fulltile)1140*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_eq_8_multipass_fulltile) {
1141*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1142*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1143*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1144*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1145*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1146*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1147*4bdc9457SAndroid Build Coastguard Worker }
1148*4bdc9457SAndroid Build Coastguard Worker }
1149*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_eq_8_multipass_fulltile_with_input_stride)1150*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_eq_8_multipass_fulltile_with_input_stride) {
1151*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1152*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1153*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1154*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1155*4bdc9457SAndroid Build Coastguard Worker .channels(8)
1156*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
1157*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1158*4bdc9457SAndroid Build Coastguard Worker }
1159*4bdc9457SAndroid Build Coastguard Worker }
1160*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_div_8_2pass_fulltile)1161*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_div_8_2pass_fulltile) {
1162*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1163*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
1164*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1165*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1166*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1167*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1168*4bdc9457SAndroid Build Coastguard Worker }
1169*4bdc9457SAndroid Build Coastguard Worker }
1170*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_div_8_2pass_subtile)1171*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_div_8_2pass_subtile) {
1172*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1173*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
1174*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1175*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1176*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1177*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1178*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1179*4bdc9457SAndroid Build Coastguard Worker }
1180*4bdc9457SAndroid Build Coastguard Worker }
1181*4bdc9457SAndroid Build Coastguard Worker }
1182*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_div_8_multipass_fulltile)1183*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_div_8_multipass_fulltile) {
1184*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1185*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
1186*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1187*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1188*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1189*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1190*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1191*4bdc9457SAndroid Build Coastguard Worker }
1192*4bdc9457SAndroid Build Coastguard Worker }
1193*4bdc9457SAndroid Build Coastguard Worker }
1194*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_div_8_multipass_fulltile_with_input_stride)1195*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_div_8_multipass_fulltile_with_input_stride) {
1196*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1197*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
1198*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1199*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1200*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1201*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1202*4bdc9457SAndroid Build Coastguard Worker .input_stride(131)
1203*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1204*4bdc9457SAndroid Build Coastguard Worker }
1205*4bdc9457SAndroid Build Coastguard Worker }
1206*4bdc9457SAndroid Build Coastguard Worker }
1207*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_lt_8_2pass_fulltile)1208*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_lt_8_2pass_fulltile) {
1209*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1210*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1211*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1212*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1213*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1214*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1215*4bdc9457SAndroid Build Coastguard Worker }
1216*4bdc9457SAndroid Build Coastguard Worker }
1217*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_lt_8_2pass_fulltile_with_qmax)1218*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_lt_8_2pass_fulltile_with_qmax) {
1219*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1220*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1221*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1222*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1223*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1224*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1225*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1226*4bdc9457SAndroid Build Coastguard Worker }
1227*4bdc9457SAndroid Build Coastguard Worker }
1228*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_lt_8_2pass_fulltile_with_qmin)1229*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_lt_8_2pass_fulltile_with_qmin) {
1230*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1231*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1232*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1233*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1234*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1235*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1236*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1237*4bdc9457SAndroid Build Coastguard Worker }
1238*4bdc9457SAndroid Build Coastguard Worker }
1239*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_lt_8_2pass_subtile)1240*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_lt_8_2pass_subtile) {
1241*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1242*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1243*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1244*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1245*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1246*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1247*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1248*4bdc9457SAndroid Build Coastguard Worker }
1249*4bdc9457SAndroid Build Coastguard Worker }
1250*4bdc9457SAndroid Build Coastguard Worker }
1251*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_lt_8_multipass_fulltile)1252*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_lt_8_multipass_fulltile) {
1253*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1254*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1255*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1256*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1257*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1258*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1259*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1260*4bdc9457SAndroid Build Coastguard Worker }
1261*4bdc9457SAndroid Build Coastguard Worker }
1262*4bdc9457SAndroid Build Coastguard Worker }
1263*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_lt_8_multipass_fulltile_with_input_stride)1264*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_lt_8_multipass_fulltile_with_input_stride) {
1265*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1266*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
1267*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1268*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1269*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1270*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1271*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
1272*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1273*4bdc9457SAndroid Build Coastguard Worker }
1274*4bdc9457SAndroid Build Coastguard Worker }
1275*4bdc9457SAndroid Build Coastguard Worker }
1276*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_gt_8_2pass_fulltile)1277*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_gt_8_2pass_fulltile) {
1278*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1279*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1280*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1281*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1282*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1283*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1284*4bdc9457SAndroid Build Coastguard Worker }
1285*4bdc9457SAndroid Build Coastguard Worker }
1286*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_gt_8_2pass_fulltile_with_qmax)1287*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_gt_8_2pass_fulltile_with_qmax) {
1288*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1289*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1290*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1291*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1292*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1293*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1294*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1295*4bdc9457SAndroid Build Coastguard Worker }
1296*4bdc9457SAndroid Build Coastguard Worker }
1297*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_gt_8_2pass_fulltile_with_qmin)1298*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_gt_8_2pass_fulltile_with_qmin) {
1299*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1300*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1301*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1302*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1303*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1304*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1305*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1306*4bdc9457SAndroid Build Coastguard Worker }
1307*4bdc9457SAndroid Build Coastguard Worker }
1308*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_gt_8_2pass_subtile)1309*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_gt_8_2pass_subtile) {
1310*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1311*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1312*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1313*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1314*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1315*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1316*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1317*4bdc9457SAndroid Build Coastguard Worker }
1318*4bdc9457SAndroid Build Coastguard Worker }
1319*4bdc9457SAndroid Build Coastguard Worker }
1320*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_gt_8_multipass_fulltile)1321*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_gt_8_multipass_fulltile) {
1322*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1323*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1324*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
1325*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1326*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1327*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1328*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1329*4bdc9457SAndroid Build Coastguard Worker }
1330*4bdc9457SAndroid Build Coastguard Worker }
1331*4bdc9457SAndroid Build Coastguard Worker }
1332*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8,channels_gt_8_multipass_fulltile_with_input_stride)1333*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C8, channels_gt_8_multipass_fulltile_with_input_stride) {
1334*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1335*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
1336*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
1337*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1338*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1339*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1340*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
1341*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1342*4bdc9457SAndroid Build Coastguard Worker }
1343*4bdc9457SAndroid Build Coastguard Worker }
1344*4bdc9457SAndroid Build Coastguard Worker }
1345*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
1346*4bdc9457SAndroid Build Coastguard Worker
1347*4bdc9457SAndroid Build Coastguard Worker
1348*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_eq_16_2pass_fulltile)1349*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_eq_16_2pass_fulltile) {
1350*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1351*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1352*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1353*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1354*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1355*4bdc9457SAndroid Build Coastguard Worker }
1356*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_eq_16_2pass_fulltile_with_input_stride)1357*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_eq_16_2pass_fulltile_with_input_stride) {
1358*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1359*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1360*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1361*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1362*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
1363*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1364*4bdc9457SAndroid Build Coastguard Worker }
1365*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_eq_16_2pass_fulltile_with_qmax)1366*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_eq_16_2pass_fulltile_with_qmax) {
1367*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1368*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1369*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1370*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1371*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1372*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1373*4bdc9457SAndroid Build Coastguard Worker }
1374*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_eq_16_2pass_fulltile_with_qmin)1375*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_eq_16_2pass_fulltile_with_qmin) {
1376*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1377*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1378*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1379*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1380*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1381*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1382*4bdc9457SAndroid Build Coastguard Worker }
1383*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_eq_16_2pass_subtile)1384*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_eq_16_2pass_subtile) {
1385*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1386*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1387*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1388*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1389*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1390*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1391*4bdc9457SAndroid Build Coastguard Worker }
1392*4bdc9457SAndroid Build Coastguard Worker }
1393*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_eq_16_2pass_subtile_with_input_stride)1394*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_eq_16_2pass_subtile_with_input_stride) {
1395*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1396*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1397*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1398*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1399*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1400*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
1401*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1402*4bdc9457SAndroid Build Coastguard Worker }
1403*4bdc9457SAndroid Build Coastguard Worker }
1404*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_eq_16_multipass_fulltile)1405*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_eq_16_multipass_fulltile) {
1406*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1407*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1408*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1409*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1410*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1411*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1412*4bdc9457SAndroid Build Coastguard Worker }
1413*4bdc9457SAndroid Build Coastguard Worker }
1414*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_eq_16_multipass_fulltile_with_input_stride)1415*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_eq_16_multipass_fulltile_with_input_stride) {
1416*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1417*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1418*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1419*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1420*4bdc9457SAndroid Build Coastguard Worker .channels(16)
1421*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
1422*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1423*4bdc9457SAndroid Build Coastguard Worker }
1424*4bdc9457SAndroid Build Coastguard Worker }
1425*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_div_16_2pass_fulltile)1426*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_div_16_2pass_fulltile) {
1427*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1428*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
1429*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1430*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1431*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1432*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1433*4bdc9457SAndroid Build Coastguard Worker }
1434*4bdc9457SAndroid Build Coastguard Worker }
1435*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_div_16_2pass_subtile)1436*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_div_16_2pass_subtile) {
1437*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1438*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
1439*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1440*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1441*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1442*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1443*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1444*4bdc9457SAndroid Build Coastguard Worker }
1445*4bdc9457SAndroid Build Coastguard Worker }
1446*4bdc9457SAndroid Build Coastguard Worker }
1447*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_div_16_multipass_fulltile)1448*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_div_16_multipass_fulltile) {
1449*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1450*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
1451*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1452*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1453*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1454*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1455*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1456*4bdc9457SAndroid Build Coastguard Worker }
1457*4bdc9457SAndroid Build Coastguard Worker }
1458*4bdc9457SAndroid Build Coastguard Worker }
1459*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_div_16_multipass_fulltile_with_input_stride)1460*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_div_16_multipass_fulltile_with_input_stride) {
1461*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1462*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
1463*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1464*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1465*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1466*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1467*4bdc9457SAndroid Build Coastguard Worker .input_stride(263)
1468*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1469*4bdc9457SAndroid Build Coastguard Worker }
1470*4bdc9457SAndroid Build Coastguard Worker }
1471*4bdc9457SAndroid Build Coastguard Worker }
1472*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_lt_16_2pass_fulltile)1473*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_lt_16_2pass_fulltile) {
1474*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1475*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
1476*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1477*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1478*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1479*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1480*4bdc9457SAndroid Build Coastguard Worker }
1481*4bdc9457SAndroid Build Coastguard Worker }
1482*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_lt_16_2pass_fulltile_with_qmax)1483*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_lt_16_2pass_fulltile_with_qmax) {
1484*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1485*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
1486*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1487*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1488*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1489*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1490*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1491*4bdc9457SAndroid Build Coastguard Worker }
1492*4bdc9457SAndroid Build Coastguard Worker }
1493*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_lt_16_2pass_fulltile_with_qmin)1494*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_lt_16_2pass_fulltile_with_qmin) {
1495*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1496*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
1497*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1498*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1499*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1500*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1501*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1502*4bdc9457SAndroid Build Coastguard Worker }
1503*4bdc9457SAndroid Build Coastguard Worker }
1504*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_lt_16_2pass_subtile)1505*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_lt_16_2pass_subtile) {
1506*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1507*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
1508*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1509*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1510*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1511*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1512*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1513*4bdc9457SAndroid Build Coastguard Worker }
1514*4bdc9457SAndroid Build Coastguard Worker }
1515*4bdc9457SAndroid Build Coastguard Worker }
1516*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_lt_16_multipass_fulltile)1517*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_lt_16_multipass_fulltile) {
1518*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1519*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
1520*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1521*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1522*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1523*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1524*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1525*4bdc9457SAndroid Build Coastguard Worker }
1526*4bdc9457SAndroid Build Coastguard Worker }
1527*4bdc9457SAndroid Build Coastguard Worker }
1528*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_lt_16_multipass_fulltile_with_input_stride)1529*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_lt_16_multipass_fulltile_with_input_stride) {
1530*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1531*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
1532*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1533*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1534*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1535*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1536*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
1537*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1538*4bdc9457SAndroid Build Coastguard Worker }
1539*4bdc9457SAndroid Build Coastguard Worker }
1540*4bdc9457SAndroid Build Coastguard Worker }
1541*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_gt_16_2pass_fulltile)1542*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_gt_16_2pass_fulltile) {
1543*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1544*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
1545*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1546*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1547*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1548*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1549*4bdc9457SAndroid Build Coastguard Worker }
1550*4bdc9457SAndroid Build Coastguard Worker }
1551*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_gt_16_2pass_fulltile_with_qmax)1552*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_gt_16_2pass_fulltile_with_qmax) {
1553*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1554*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
1555*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1556*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1557*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1558*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1559*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1560*4bdc9457SAndroid Build Coastguard Worker }
1561*4bdc9457SAndroid Build Coastguard Worker }
1562*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_gt_16_2pass_fulltile_with_qmin)1563*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_gt_16_2pass_fulltile_with_qmin) {
1564*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1565*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
1566*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1567*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1568*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1569*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1570*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1571*4bdc9457SAndroid Build Coastguard Worker }
1572*4bdc9457SAndroid Build Coastguard Worker }
1573*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_gt_16_2pass_subtile)1574*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_gt_16_2pass_subtile) {
1575*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1576*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
1577*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1578*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1579*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1580*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1581*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1582*4bdc9457SAndroid Build Coastguard Worker }
1583*4bdc9457SAndroid Build Coastguard Worker }
1584*4bdc9457SAndroid Build Coastguard Worker }
1585*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_gt_16_multipass_fulltile)1586*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_gt_16_multipass_fulltile) {
1587*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1588*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
1589*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
1590*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1591*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1592*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1593*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1594*4bdc9457SAndroid Build Coastguard Worker }
1595*4bdc9457SAndroid Build Coastguard Worker }
1596*4bdc9457SAndroid Build Coastguard Worker }
1597*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16,channels_gt_16_multipass_fulltile_with_input_stride)1598*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C16, channels_gt_16_multipass_fulltile_with_input_stride) {
1599*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1600*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
1601*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
1602*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1603*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1604*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1605*4bdc9457SAndroid Build Coastguard Worker .input_stride(47)
1606*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1607*4bdc9457SAndroid Build Coastguard Worker }
1608*4bdc9457SAndroid Build Coastguard Worker }
1609*4bdc9457SAndroid Build Coastguard Worker }
1610*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
1611*4bdc9457SAndroid Build Coastguard Worker
1612*4bdc9457SAndroid Build Coastguard Worker
1613*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_eq_24_2pass_fulltile)1614*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_eq_24_2pass_fulltile) {
1615*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1616*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1617*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1618*4bdc9457SAndroid Build Coastguard Worker .channels(24)
1619*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1620*4bdc9457SAndroid Build Coastguard Worker }
1621*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_eq_24_2pass_fulltile_with_input_stride)1622*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_eq_24_2pass_fulltile_with_input_stride) {
1623*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1624*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1625*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1626*4bdc9457SAndroid Build Coastguard Worker .channels(24)
1627*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
1628*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1629*4bdc9457SAndroid Build Coastguard Worker }
1630*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_eq_24_2pass_fulltile_with_qmax)1631*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_eq_24_2pass_fulltile_with_qmax) {
1632*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1633*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1634*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1635*4bdc9457SAndroid Build Coastguard Worker .channels(24)
1636*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1637*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1638*4bdc9457SAndroid Build Coastguard Worker }
1639*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_eq_24_2pass_fulltile_with_qmin)1640*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_eq_24_2pass_fulltile_with_qmin) {
1641*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1642*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1643*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1644*4bdc9457SAndroid Build Coastguard Worker .channels(24)
1645*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1646*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1647*4bdc9457SAndroid Build Coastguard Worker }
1648*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_eq_24_2pass_subtile)1649*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_eq_24_2pass_subtile) {
1650*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1651*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1652*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1653*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1654*4bdc9457SAndroid Build Coastguard Worker .channels(24)
1655*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1656*4bdc9457SAndroid Build Coastguard Worker }
1657*4bdc9457SAndroid Build Coastguard Worker }
1658*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_eq_24_2pass_subtile_with_input_stride)1659*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_eq_24_2pass_subtile_with_input_stride) {
1660*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1661*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1662*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1663*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1664*4bdc9457SAndroid Build Coastguard Worker .channels(24)
1665*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
1666*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1667*4bdc9457SAndroid Build Coastguard Worker }
1668*4bdc9457SAndroid Build Coastguard Worker }
1669*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_eq_24_multipass_fulltile)1670*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_eq_24_multipass_fulltile) {
1671*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1672*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1673*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1674*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1675*4bdc9457SAndroid Build Coastguard Worker .channels(24)
1676*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1677*4bdc9457SAndroid Build Coastguard Worker }
1678*4bdc9457SAndroid Build Coastguard Worker }
1679*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_eq_24_multipass_fulltile_with_input_stride)1680*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_eq_24_multipass_fulltile_with_input_stride) {
1681*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1682*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1683*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1684*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1685*4bdc9457SAndroid Build Coastguard Worker .channels(24)
1686*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
1687*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1688*4bdc9457SAndroid Build Coastguard Worker }
1689*4bdc9457SAndroid Build Coastguard Worker }
1690*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_div_24_2pass_fulltile)1691*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_div_24_2pass_fulltile) {
1692*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1693*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
1694*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1695*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1696*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1697*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1698*4bdc9457SAndroid Build Coastguard Worker }
1699*4bdc9457SAndroid Build Coastguard Worker }
1700*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_div_24_2pass_subtile)1701*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_div_24_2pass_subtile) {
1702*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1703*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
1704*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1705*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1706*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1707*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1708*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1709*4bdc9457SAndroid Build Coastguard Worker }
1710*4bdc9457SAndroid Build Coastguard Worker }
1711*4bdc9457SAndroid Build Coastguard Worker }
1712*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_div_24_multipass_fulltile)1713*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_div_24_multipass_fulltile) {
1714*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1715*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
1716*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1717*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1718*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1719*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1720*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1721*4bdc9457SAndroid Build Coastguard Worker }
1722*4bdc9457SAndroid Build Coastguard Worker }
1723*4bdc9457SAndroid Build Coastguard Worker }
1724*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_div_24_multipass_fulltile_with_input_stride)1725*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_div_24_multipass_fulltile_with_input_stride) {
1726*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1727*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
1728*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1729*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1730*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1731*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1732*4bdc9457SAndroid Build Coastguard Worker .input_stride(389)
1733*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1734*4bdc9457SAndroid Build Coastguard Worker }
1735*4bdc9457SAndroid Build Coastguard Worker }
1736*4bdc9457SAndroid Build Coastguard Worker }
1737*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_lt_24_2pass_fulltile)1738*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_lt_24_2pass_fulltile) {
1739*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1740*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
1741*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1742*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1743*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1744*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1745*4bdc9457SAndroid Build Coastguard Worker }
1746*4bdc9457SAndroid Build Coastguard Worker }
1747*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_lt_24_2pass_fulltile_with_qmax)1748*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_lt_24_2pass_fulltile_with_qmax) {
1749*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1750*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
1751*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1752*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1753*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1754*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1755*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1756*4bdc9457SAndroid Build Coastguard Worker }
1757*4bdc9457SAndroid Build Coastguard Worker }
1758*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_lt_24_2pass_fulltile_with_qmin)1759*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_lt_24_2pass_fulltile_with_qmin) {
1760*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1761*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
1762*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1763*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1764*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1765*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1766*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1767*4bdc9457SAndroid Build Coastguard Worker }
1768*4bdc9457SAndroid Build Coastguard Worker }
1769*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_lt_24_2pass_subtile)1770*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_lt_24_2pass_subtile) {
1771*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1772*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
1773*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1774*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1775*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1776*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1777*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1778*4bdc9457SAndroid Build Coastguard Worker }
1779*4bdc9457SAndroid Build Coastguard Worker }
1780*4bdc9457SAndroid Build Coastguard Worker }
1781*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_lt_24_multipass_fulltile)1782*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_lt_24_multipass_fulltile) {
1783*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1784*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
1785*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1786*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1787*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1788*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1789*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1790*4bdc9457SAndroid Build Coastguard Worker }
1791*4bdc9457SAndroid Build Coastguard Worker }
1792*4bdc9457SAndroid Build Coastguard Worker }
1793*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_lt_24_multipass_fulltile_with_input_stride)1794*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_lt_24_multipass_fulltile_with_input_stride) {
1795*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1796*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
1797*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1798*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1799*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1800*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1801*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
1802*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1803*4bdc9457SAndroid Build Coastguard Worker }
1804*4bdc9457SAndroid Build Coastguard Worker }
1805*4bdc9457SAndroid Build Coastguard Worker }
1806*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_gt_24_2pass_fulltile)1807*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_gt_24_2pass_fulltile) {
1808*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1809*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
1810*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1811*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1812*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1813*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1814*4bdc9457SAndroid Build Coastguard Worker }
1815*4bdc9457SAndroid Build Coastguard Worker }
1816*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_gt_24_2pass_fulltile_with_qmax)1817*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_gt_24_2pass_fulltile_with_qmax) {
1818*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1819*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
1820*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1821*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1822*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1823*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1824*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1825*4bdc9457SAndroid Build Coastguard Worker }
1826*4bdc9457SAndroid Build Coastguard Worker }
1827*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_gt_24_2pass_fulltile_with_qmin)1828*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_gt_24_2pass_fulltile_with_qmin) {
1829*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1830*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
1831*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1832*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1833*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1834*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1835*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1836*4bdc9457SAndroid Build Coastguard Worker }
1837*4bdc9457SAndroid Build Coastguard Worker }
1838*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_gt_24_2pass_subtile)1839*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_gt_24_2pass_subtile) {
1840*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1841*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
1842*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1843*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1844*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1845*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1846*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1847*4bdc9457SAndroid Build Coastguard Worker }
1848*4bdc9457SAndroid Build Coastguard Worker }
1849*4bdc9457SAndroid Build Coastguard Worker }
1850*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_gt_24_multipass_fulltile)1851*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_gt_24_multipass_fulltile) {
1852*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1853*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
1854*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
1855*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1856*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1857*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1858*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1859*4bdc9457SAndroid Build Coastguard Worker }
1860*4bdc9457SAndroid Build Coastguard Worker }
1861*4bdc9457SAndroid Build Coastguard Worker }
1862*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24,channels_gt_24_multipass_fulltile_with_input_stride)1863*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C24, channels_gt_24_multipass_fulltile_with_input_stride) {
1864*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1865*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
1866*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
1867*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1868*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1869*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1870*4bdc9457SAndroid Build Coastguard Worker .input_stride(61)
1871*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1872*4bdc9457SAndroid Build Coastguard Worker }
1873*4bdc9457SAndroid Build Coastguard Worker }
1874*4bdc9457SAndroid Build Coastguard Worker }
1875*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
1876*4bdc9457SAndroid Build Coastguard Worker
1877*4bdc9457SAndroid Build Coastguard Worker
1878*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_eq_32_2pass_fulltile)1879*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_eq_32_2pass_fulltile) {
1880*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1881*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1882*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1883*4bdc9457SAndroid Build Coastguard Worker .channels(32)
1884*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1885*4bdc9457SAndroid Build Coastguard Worker }
1886*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_eq_32_2pass_fulltile_with_input_stride)1887*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_eq_32_2pass_fulltile_with_input_stride) {
1888*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1889*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1890*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1891*4bdc9457SAndroid Build Coastguard Worker .channels(32)
1892*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
1893*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1894*4bdc9457SAndroid Build Coastguard Worker }
1895*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_eq_32_2pass_fulltile_with_qmax)1896*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_eq_32_2pass_fulltile_with_qmax) {
1897*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1898*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1899*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1900*4bdc9457SAndroid Build Coastguard Worker .channels(32)
1901*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
1902*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1903*4bdc9457SAndroid Build Coastguard Worker }
1904*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_eq_32_2pass_fulltile_with_qmin)1905*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_eq_32_2pass_fulltile_with_qmin) {
1906*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1907*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1908*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1909*4bdc9457SAndroid Build Coastguard Worker .channels(32)
1910*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
1911*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1912*4bdc9457SAndroid Build Coastguard Worker }
1913*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_eq_32_2pass_subtile)1914*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_eq_32_2pass_subtile) {
1915*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1916*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1917*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1918*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1919*4bdc9457SAndroid Build Coastguard Worker .channels(32)
1920*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1921*4bdc9457SAndroid Build Coastguard Worker }
1922*4bdc9457SAndroid Build Coastguard Worker }
1923*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_eq_32_2pass_subtile_with_input_stride)1924*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_eq_32_2pass_subtile_with_input_stride) {
1925*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1926*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1927*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1928*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1929*4bdc9457SAndroid Build Coastguard Worker .channels(32)
1930*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
1931*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1932*4bdc9457SAndroid Build Coastguard Worker }
1933*4bdc9457SAndroid Build Coastguard Worker }
1934*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_eq_32_multipass_fulltile)1935*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_eq_32_multipass_fulltile) {
1936*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1937*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1938*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1939*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1940*4bdc9457SAndroid Build Coastguard Worker .channels(32)
1941*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1942*4bdc9457SAndroid Build Coastguard Worker }
1943*4bdc9457SAndroid Build Coastguard Worker }
1944*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_eq_32_multipass_fulltile_with_input_stride)1945*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_eq_32_multipass_fulltile_with_input_stride) {
1946*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1947*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1948*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1949*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1950*4bdc9457SAndroid Build Coastguard Worker .channels(32)
1951*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
1952*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1953*4bdc9457SAndroid Build Coastguard Worker }
1954*4bdc9457SAndroid Build Coastguard Worker }
1955*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_div_32_2pass_fulltile)1956*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_div_32_2pass_fulltile) {
1957*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1958*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
1959*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1960*4bdc9457SAndroid Build Coastguard Worker .rows(14)
1961*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1962*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1963*4bdc9457SAndroid Build Coastguard Worker }
1964*4bdc9457SAndroid Build Coastguard Worker }
1965*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_div_32_2pass_subtile)1966*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_div_32_2pass_subtile) {
1967*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1968*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
1969*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
1970*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1971*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1972*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1973*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1974*4bdc9457SAndroid Build Coastguard Worker }
1975*4bdc9457SAndroid Build Coastguard Worker }
1976*4bdc9457SAndroid Build Coastguard Worker }
1977*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_div_32_multipass_fulltile)1978*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_div_32_multipass_fulltile) {
1979*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1980*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
1981*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1982*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1983*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1984*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1985*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1986*4bdc9457SAndroid Build Coastguard Worker }
1987*4bdc9457SAndroid Build Coastguard Worker }
1988*4bdc9457SAndroid Build Coastguard Worker }
1989*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_div_32_multipass_fulltile_with_input_stride)1990*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_div_32_multipass_fulltile_with_input_stride) {
1991*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
1992*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
1993*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
1994*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
1995*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
1996*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
1997*4bdc9457SAndroid Build Coastguard Worker .input_stride(521)
1998*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
1999*4bdc9457SAndroid Build Coastguard Worker }
2000*4bdc9457SAndroid Build Coastguard Worker }
2001*4bdc9457SAndroid Build Coastguard Worker }
2002*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_lt_32_2pass_fulltile)2003*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_lt_32_2pass_fulltile) {
2004*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2005*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2006*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2007*4bdc9457SAndroid Build Coastguard Worker .rows(14)
2008*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2009*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2010*4bdc9457SAndroid Build Coastguard Worker }
2011*4bdc9457SAndroid Build Coastguard Worker }
2012*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_lt_32_2pass_fulltile_with_qmax)2013*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_lt_32_2pass_fulltile_with_qmax) {
2014*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2015*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2016*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2017*4bdc9457SAndroid Build Coastguard Worker .rows(14)
2018*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2019*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2020*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2021*4bdc9457SAndroid Build Coastguard Worker }
2022*4bdc9457SAndroid Build Coastguard Worker }
2023*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_lt_32_2pass_fulltile_with_qmin)2024*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_lt_32_2pass_fulltile_with_qmin) {
2025*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2026*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2027*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2028*4bdc9457SAndroid Build Coastguard Worker .rows(14)
2029*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2030*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2031*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2032*4bdc9457SAndroid Build Coastguard Worker }
2033*4bdc9457SAndroid Build Coastguard Worker }
2034*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_lt_32_2pass_subtile)2035*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_lt_32_2pass_subtile) {
2036*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2037*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2038*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
2039*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2040*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2041*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2042*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2043*4bdc9457SAndroid Build Coastguard Worker }
2044*4bdc9457SAndroid Build Coastguard Worker }
2045*4bdc9457SAndroid Build Coastguard Worker }
2046*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_lt_32_multipass_fulltile)2047*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_lt_32_multipass_fulltile) {
2048*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2049*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2050*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
2051*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2052*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2053*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2054*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2055*4bdc9457SAndroid Build Coastguard Worker }
2056*4bdc9457SAndroid Build Coastguard Worker }
2057*4bdc9457SAndroid Build Coastguard Worker }
2058*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_lt_32_multipass_fulltile_with_input_stride)2059*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_lt_32_multipass_fulltile_with_input_stride) {
2060*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2061*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2062*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
2063*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2064*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2065*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2066*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
2067*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2068*4bdc9457SAndroid Build Coastguard Worker }
2069*4bdc9457SAndroid Build Coastguard Worker }
2070*4bdc9457SAndroid Build Coastguard Worker }
2071*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_gt_32_2pass_fulltile)2072*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_gt_32_2pass_fulltile) {
2073*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2074*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2075*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2076*4bdc9457SAndroid Build Coastguard Worker .rows(14)
2077*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2078*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2079*4bdc9457SAndroid Build Coastguard Worker }
2080*4bdc9457SAndroid Build Coastguard Worker }
2081*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_gt_32_2pass_fulltile_with_qmax)2082*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_gt_32_2pass_fulltile_with_qmax) {
2083*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2084*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2085*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2086*4bdc9457SAndroid Build Coastguard Worker .rows(14)
2087*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2088*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2089*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2090*4bdc9457SAndroid Build Coastguard Worker }
2091*4bdc9457SAndroid Build Coastguard Worker }
2092*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_gt_32_2pass_fulltile_with_qmin)2093*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_gt_32_2pass_fulltile_with_qmin) {
2094*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2095*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2096*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2097*4bdc9457SAndroid Build Coastguard Worker .rows(14)
2098*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2099*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2100*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2101*4bdc9457SAndroid Build Coastguard Worker }
2102*4bdc9457SAndroid Build Coastguard Worker }
2103*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_gt_32_2pass_subtile)2104*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_gt_32_2pass_subtile) {
2105*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2106*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2107*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
2108*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2109*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2110*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2111*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2112*4bdc9457SAndroid Build Coastguard Worker }
2113*4bdc9457SAndroid Build Coastguard Worker }
2114*4bdc9457SAndroid Build Coastguard Worker }
2115*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_gt_32_multipass_fulltile)2116*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_gt_32_multipass_fulltile) {
2117*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2118*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2119*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
2120*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2121*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2122*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2123*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2124*4bdc9457SAndroid Build Coastguard Worker }
2125*4bdc9457SAndroid Build Coastguard Worker }
2126*4bdc9457SAndroid Build Coastguard Worker }
2127*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32,channels_gt_32_multipass_fulltile_with_input_stride)2128*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__NEONV8_C32, channels_gt_32_multipass_fulltile_with_input_stride) {
2129*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2130*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2131*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
2132*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2133*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2134*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2135*4bdc9457SAndroid Build Coastguard Worker .input_stride(79)
2136*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2137*4bdc9457SAndroid Build Coastguard Worker }
2138*4bdc9457SAndroid Build Coastguard Worker }
2139*4bdc9457SAndroid Build Coastguard Worker }
2140*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
2141*4bdc9457SAndroid Build Coastguard Worker
2142*4bdc9457SAndroid Build Coastguard Worker
2143*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_eq_8_fulltile)2144*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_eq_8_fulltile) {
2145*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2146*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2147*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2148*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2149*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2150*4bdc9457SAndroid Build Coastguard Worker }
2151*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_eq_8_subtile)2152*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_eq_8_subtile) {
2153*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2154*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2155*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2156*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2157*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2158*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2159*4bdc9457SAndroid Build Coastguard Worker }
2160*4bdc9457SAndroid Build Coastguard Worker }
2161*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_eq_8_fulltile_with_input_stride)2162*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_eq_8_fulltile_with_input_stride) {
2163*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2164*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2165*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2166*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2167*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
2168*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2169*4bdc9457SAndroid Build Coastguard Worker }
2170*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_eq_8_fulltile_with_qmax)2171*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_eq_8_fulltile_with_qmax) {
2172*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2173*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2174*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2175*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2176*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2177*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2178*4bdc9457SAndroid Build Coastguard Worker }
2179*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_eq_8_fulltile_with_qmin)2180*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_eq_8_fulltile_with_qmin) {
2181*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2182*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2183*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2184*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2185*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2186*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2187*4bdc9457SAndroid Build Coastguard Worker }
2188*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_div_8_fulltile)2189*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_div_8_fulltile) {
2190*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2191*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
2192*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2193*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2194*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2195*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2196*4bdc9457SAndroid Build Coastguard Worker }
2197*4bdc9457SAndroid Build Coastguard Worker }
2198*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_div_8_subtile)2199*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_div_8_subtile) {
2200*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2201*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
2202*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2203*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2204*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2205*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2206*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2207*4bdc9457SAndroid Build Coastguard Worker }
2208*4bdc9457SAndroid Build Coastguard Worker }
2209*4bdc9457SAndroid Build Coastguard Worker }
2210*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_lt_8_fulltile)2211*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_lt_8_fulltile) {
2212*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2213*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2214*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2215*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2216*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2217*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2218*4bdc9457SAndroid Build Coastguard Worker }
2219*4bdc9457SAndroid Build Coastguard Worker }
2220*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_lt_8_subtile)2221*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_lt_8_subtile) {
2222*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2223*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2224*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2225*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2226*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2227*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2228*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2229*4bdc9457SAndroid Build Coastguard Worker }
2230*4bdc9457SAndroid Build Coastguard Worker }
2231*4bdc9457SAndroid Build Coastguard Worker }
2232*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_lt_8_fulltile_with_qmax)2233*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_lt_8_fulltile_with_qmax) {
2234*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2235*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2236*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2237*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2238*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2239*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2240*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2241*4bdc9457SAndroid Build Coastguard Worker }
2242*4bdc9457SAndroid Build Coastguard Worker }
2243*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_lt_8_fulltile_with_qmin)2244*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_lt_8_fulltile_with_qmin) {
2245*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2246*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2247*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2248*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2249*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2250*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2251*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2252*4bdc9457SAndroid Build Coastguard Worker }
2253*4bdc9457SAndroid Build Coastguard Worker }
2254*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_gt_8_fulltile)2255*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_gt_8_fulltile) {
2256*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2257*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2258*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2259*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2260*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2261*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2262*4bdc9457SAndroid Build Coastguard Worker }
2263*4bdc9457SAndroid Build Coastguard Worker }
2264*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_gt_8_subtile)2265*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_gt_8_subtile) {
2266*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2267*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2268*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2269*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2270*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2271*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2272*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2273*4bdc9457SAndroid Build Coastguard Worker }
2274*4bdc9457SAndroid Build Coastguard Worker }
2275*4bdc9457SAndroid Build Coastguard Worker }
2276*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_gt_8_fulltile_with_qmax)2277*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_gt_8_fulltile_with_qmax) {
2278*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2279*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2280*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2281*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2282*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2283*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2284*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2285*4bdc9457SAndroid Build Coastguard Worker }
2286*4bdc9457SAndroid Build Coastguard Worker }
2287*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8,channels_gt_8_fulltile_with_qmin)2288*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C8, channels_gt_8_fulltile_with_qmin) {
2289*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2290*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2291*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2292*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2293*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2294*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2295*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c8, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2296*4bdc9457SAndroid Build Coastguard Worker }
2297*4bdc9457SAndroid Build Coastguard Worker }
2298*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
2299*4bdc9457SAndroid Build Coastguard Worker
2300*4bdc9457SAndroid Build Coastguard Worker
2301*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_eq_16_fulltile)2302*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_eq_16_fulltile) {
2303*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2304*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2305*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2306*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2307*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2308*4bdc9457SAndroid Build Coastguard Worker }
2309*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_eq_16_subtile)2310*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_eq_16_subtile) {
2311*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2312*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2313*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2314*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2315*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2316*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2317*4bdc9457SAndroid Build Coastguard Worker }
2318*4bdc9457SAndroid Build Coastguard Worker }
2319*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_eq_16_fulltile_with_input_stride)2320*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_eq_16_fulltile_with_input_stride) {
2321*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2322*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2323*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2324*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2325*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
2326*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2327*4bdc9457SAndroid Build Coastguard Worker }
2328*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_eq_16_fulltile_with_qmax)2329*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_eq_16_fulltile_with_qmax) {
2330*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2331*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2332*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2333*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2334*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2335*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2336*4bdc9457SAndroid Build Coastguard Worker }
2337*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_eq_16_fulltile_with_qmin)2338*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_eq_16_fulltile_with_qmin) {
2339*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2340*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2341*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2342*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2343*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2344*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2345*4bdc9457SAndroid Build Coastguard Worker }
2346*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_div_16_fulltile)2347*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_div_16_fulltile) {
2348*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2349*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
2350*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2351*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2352*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2353*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2354*4bdc9457SAndroid Build Coastguard Worker }
2355*4bdc9457SAndroid Build Coastguard Worker }
2356*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_div_16_subtile)2357*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_div_16_subtile) {
2358*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2359*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
2360*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2361*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2362*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2363*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2364*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2365*4bdc9457SAndroid Build Coastguard Worker }
2366*4bdc9457SAndroid Build Coastguard Worker }
2367*4bdc9457SAndroid Build Coastguard Worker }
2368*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_lt_16_fulltile)2369*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_lt_16_fulltile) {
2370*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2371*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
2372*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2373*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2374*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2375*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2376*4bdc9457SAndroid Build Coastguard Worker }
2377*4bdc9457SAndroid Build Coastguard Worker }
2378*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_lt_16_subtile)2379*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_lt_16_subtile) {
2380*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2381*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
2382*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2383*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2384*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2385*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2386*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2387*4bdc9457SAndroid Build Coastguard Worker }
2388*4bdc9457SAndroid Build Coastguard Worker }
2389*4bdc9457SAndroid Build Coastguard Worker }
2390*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_lt_16_fulltile_with_qmax)2391*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_lt_16_fulltile_with_qmax) {
2392*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2393*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
2394*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2395*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2396*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2397*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2398*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2399*4bdc9457SAndroid Build Coastguard Worker }
2400*4bdc9457SAndroid Build Coastguard Worker }
2401*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_lt_16_fulltile_with_qmin)2402*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_lt_16_fulltile_with_qmin) {
2403*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2404*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
2405*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2406*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2407*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2408*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2409*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2410*4bdc9457SAndroid Build Coastguard Worker }
2411*4bdc9457SAndroid Build Coastguard Worker }
2412*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_gt_16_fulltile)2413*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_gt_16_fulltile) {
2414*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2415*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
2416*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2417*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2418*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2419*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2420*4bdc9457SAndroid Build Coastguard Worker }
2421*4bdc9457SAndroid Build Coastguard Worker }
2422*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_gt_16_subtile)2423*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_gt_16_subtile) {
2424*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2425*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
2426*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2427*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2428*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2429*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2430*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2431*4bdc9457SAndroid Build Coastguard Worker }
2432*4bdc9457SAndroid Build Coastguard Worker }
2433*4bdc9457SAndroid Build Coastguard Worker }
2434*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_gt_16_fulltile_with_qmax)2435*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_gt_16_fulltile_with_qmax) {
2436*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2437*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
2438*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2439*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2440*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2441*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2442*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2443*4bdc9457SAndroid Build Coastguard Worker }
2444*4bdc9457SAndroid Build Coastguard Worker }
2445*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16,channels_gt_16_fulltile_with_qmin)2446*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C16, channels_gt_16_fulltile_with_qmin) {
2447*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2448*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
2449*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2450*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2451*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2452*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2453*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c16, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2454*4bdc9457SAndroid Build Coastguard Worker }
2455*4bdc9457SAndroid Build Coastguard Worker }
2456*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
2457*4bdc9457SAndroid Build Coastguard Worker
2458*4bdc9457SAndroid Build Coastguard Worker
2459*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_eq_24_fulltile)2460*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_eq_24_fulltile) {
2461*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2462*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2463*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2464*4bdc9457SAndroid Build Coastguard Worker .channels(24)
2465*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2466*4bdc9457SAndroid Build Coastguard Worker }
2467*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_eq_24_subtile)2468*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_eq_24_subtile) {
2469*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2470*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2471*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2472*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2473*4bdc9457SAndroid Build Coastguard Worker .channels(24)
2474*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2475*4bdc9457SAndroid Build Coastguard Worker }
2476*4bdc9457SAndroid Build Coastguard Worker }
2477*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_eq_24_fulltile_with_input_stride)2478*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_eq_24_fulltile_with_input_stride) {
2479*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2480*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2481*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2482*4bdc9457SAndroid Build Coastguard Worker .channels(24)
2483*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
2484*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2485*4bdc9457SAndroid Build Coastguard Worker }
2486*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_eq_24_fulltile_with_qmax)2487*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_eq_24_fulltile_with_qmax) {
2488*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2489*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2490*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2491*4bdc9457SAndroid Build Coastguard Worker .channels(24)
2492*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2493*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2494*4bdc9457SAndroid Build Coastguard Worker }
2495*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_eq_24_fulltile_with_qmin)2496*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_eq_24_fulltile_with_qmin) {
2497*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2498*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2499*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2500*4bdc9457SAndroid Build Coastguard Worker .channels(24)
2501*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2502*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2503*4bdc9457SAndroid Build Coastguard Worker }
2504*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_div_24_fulltile)2505*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_div_24_fulltile) {
2506*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2507*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
2508*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2509*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2510*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2511*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2512*4bdc9457SAndroid Build Coastguard Worker }
2513*4bdc9457SAndroid Build Coastguard Worker }
2514*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_div_24_subtile)2515*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_div_24_subtile) {
2516*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2517*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
2518*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2519*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2520*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2521*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2522*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2523*4bdc9457SAndroid Build Coastguard Worker }
2524*4bdc9457SAndroid Build Coastguard Worker }
2525*4bdc9457SAndroid Build Coastguard Worker }
2526*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_lt_24_fulltile)2527*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_lt_24_fulltile) {
2528*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2529*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
2530*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2531*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2532*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2533*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2534*4bdc9457SAndroid Build Coastguard Worker }
2535*4bdc9457SAndroid Build Coastguard Worker }
2536*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_lt_24_subtile)2537*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_lt_24_subtile) {
2538*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2539*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
2540*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2541*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2542*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2543*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2544*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2545*4bdc9457SAndroid Build Coastguard Worker }
2546*4bdc9457SAndroid Build Coastguard Worker }
2547*4bdc9457SAndroid Build Coastguard Worker }
2548*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_lt_24_fulltile_with_qmax)2549*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_lt_24_fulltile_with_qmax) {
2550*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2551*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
2552*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2553*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2554*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2555*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2556*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2557*4bdc9457SAndroid Build Coastguard Worker }
2558*4bdc9457SAndroid Build Coastguard Worker }
2559*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_lt_24_fulltile_with_qmin)2560*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_lt_24_fulltile_with_qmin) {
2561*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2562*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
2563*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2564*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2565*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2566*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2567*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2568*4bdc9457SAndroid Build Coastguard Worker }
2569*4bdc9457SAndroid Build Coastguard Worker }
2570*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_gt_24_fulltile)2571*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_gt_24_fulltile) {
2572*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2573*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
2574*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2575*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2576*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2577*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2578*4bdc9457SAndroid Build Coastguard Worker }
2579*4bdc9457SAndroid Build Coastguard Worker }
2580*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_gt_24_subtile)2581*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_gt_24_subtile) {
2582*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2583*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
2584*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2585*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2586*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2587*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2588*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2589*4bdc9457SAndroid Build Coastguard Worker }
2590*4bdc9457SAndroid Build Coastguard Worker }
2591*4bdc9457SAndroid Build Coastguard Worker }
2592*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_gt_24_fulltile_with_qmax)2593*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_gt_24_fulltile_with_qmax) {
2594*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2595*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
2596*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2597*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2598*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2599*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2600*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2601*4bdc9457SAndroid Build Coastguard Worker }
2602*4bdc9457SAndroid Build Coastguard Worker }
2603*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24,channels_gt_24_fulltile_with_qmin)2604*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C24, channels_gt_24_fulltile_with_qmin) {
2605*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2606*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
2607*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2608*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2609*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2610*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2611*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c24, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2612*4bdc9457SAndroid Build Coastguard Worker }
2613*4bdc9457SAndroid Build Coastguard Worker }
2614*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
2615*4bdc9457SAndroid Build Coastguard Worker
2616*4bdc9457SAndroid Build Coastguard Worker
2617*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_eq_32_fulltile)2618*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_eq_32_fulltile) {
2619*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2620*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2621*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2622*4bdc9457SAndroid Build Coastguard Worker .channels(32)
2623*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2624*4bdc9457SAndroid Build Coastguard Worker }
2625*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_eq_32_subtile)2626*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_eq_32_subtile) {
2627*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2628*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2629*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2630*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2631*4bdc9457SAndroid Build Coastguard Worker .channels(32)
2632*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2633*4bdc9457SAndroid Build Coastguard Worker }
2634*4bdc9457SAndroid Build Coastguard Worker }
2635*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_eq_32_fulltile_with_input_stride)2636*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_eq_32_fulltile_with_input_stride) {
2637*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2638*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2639*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2640*4bdc9457SAndroid Build Coastguard Worker .channels(32)
2641*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
2642*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2643*4bdc9457SAndroid Build Coastguard Worker }
2644*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_eq_32_fulltile_with_qmax)2645*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_eq_32_fulltile_with_qmax) {
2646*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2647*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2648*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2649*4bdc9457SAndroid Build Coastguard Worker .channels(32)
2650*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2651*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2652*4bdc9457SAndroid Build Coastguard Worker }
2653*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_eq_32_fulltile_with_qmin)2654*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_eq_32_fulltile_with_qmin) {
2655*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2656*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2657*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2658*4bdc9457SAndroid Build Coastguard Worker .channels(32)
2659*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2660*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2661*4bdc9457SAndroid Build Coastguard Worker }
2662*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_div_32_fulltile)2663*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_div_32_fulltile) {
2664*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2665*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
2666*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2667*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2668*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2669*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2670*4bdc9457SAndroid Build Coastguard Worker }
2671*4bdc9457SAndroid Build Coastguard Worker }
2672*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_div_32_subtile)2673*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_div_32_subtile) {
2674*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2675*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
2676*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2677*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2678*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2679*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2680*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2681*4bdc9457SAndroid Build Coastguard Worker }
2682*4bdc9457SAndroid Build Coastguard Worker }
2683*4bdc9457SAndroid Build Coastguard Worker }
2684*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_lt_32_fulltile)2685*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_lt_32_fulltile) {
2686*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2687*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2688*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2689*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2690*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2691*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2692*4bdc9457SAndroid Build Coastguard Worker }
2693*4bdc9457SAndroid Build Coastguard Worker }
2694*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_lt_32_subtile)2695*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_lt_32_subtile) {
2696*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2697*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2698*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2699*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2700*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2701*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2702*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2703*4bdc9457SAndroid Build Coastguard Worker }
2704*4bdc9457SAndroid Build Coastguard Worker }
2705*4bdc9457SAndroid Build Coastguard Worker }
2706*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_lt_32_fulltile_with_qmax)2707*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_lt_32_fulltile_with_qmax) {
2708*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2709*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2710*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2711*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2712*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2713*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2714*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2715*4bdc9457SAndroid Build Coastguard Worker }
2716*4bdc9457SAndroid Build Coastguard Worker }
2717*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_lt_32_fulltile_with_qmin)2718*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_lt_32_fulltile_with_qmin) {
2719*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2720*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
2721*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2722*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2723*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2724*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2725*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2726*4bdc9457SAndroid Build Coastguard Worker }
2727*4bdc9457SAndroid Build Coastguard Worker }
2728*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_gt_32_fulltile)2729*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_gt_32_fulltile) {
2730*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2731*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2732*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2733*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2734*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2735*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2736*4bdc9457SAndroid Build Coastguard Worker }
2737*4bdc9457SAndroid Build Coastguard Worker }
2738*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_gt_32_subtile)2739*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_gt_32_subtile) {
2740*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2741*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2742*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2743*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2744*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2745*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2746*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2747*4bdc9457SAndroid Build Coastguard Worker }
2748*4bdc9457SAndroid Build Coastguard Worker }
2749*4bdc9457SAndroid Build Coastguard Worker }
2750*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_gt_32_fulltile_with_qmax)2751*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_gt_32_fulltile_with_qmax) {
2752*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2753*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2754*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2755*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2756*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2757*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2758*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2759*4bdc9457SAndroid Build Coastguard Worker }
2760*4bdc9457SAndroid Build Coastguard Worker }
2761*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32,channels_gt_32_fulltile_with_qmin)2762*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEON_C32, channels_gt_32_fulltile_with_qmin) {
2763*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON;
2764*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
2765*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2766*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2767*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2768*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2769*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neon_c32, xnn_init_qu8_avgpool_minmax_fp32_neon_params, xnn_qu8_requantize_fp32);
2770*4bdc9457SAndroid Build Coastguard Worker }
2771*4bdc9457SAndroid Build Coastguard Worker }
2772*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
2773*4bdc9457SAndroid Build Coastguard Worker
2774*4bdc9457SAndroid Build Coastguard Worker
2775*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_eq_8_fulltile)2776*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_eq_8_fulltile) {
2777*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2778*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2779*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2780*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2781*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2782*4bdc9457SAndroid Build Coastguard Worker }
2783*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_eq_8_subtile)2784*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_eq_8_subtile) {
2785*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2786*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2787*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2788*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2789*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2790*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2791*4bdc9457SAndroid Build Coastguard Worker }
2792*4bdc9457SAndroid Build Coastguard Worker }
2793*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_eq_8_fulltile_with_input_stride)2794*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_eq_8_fulltile_with_input_stride) {
2795*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2796*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2797*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2798*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2799*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
2800*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2801*4bdc9457SAndroid Build Coastguard Worker }
2802*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_eq_8_fulltile_with_qmax)2803*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_eq_8_fulltile_with_qmax) {
2804*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2805*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2806*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2807*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2808*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2809*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2810*4bdc9457SAndroid Build Coastguard Worker }
2811*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_eq_8_fulltile_with_qmin)2812*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_eq_8_fulltile_with_qmin) {
2813*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2814*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2815*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2816*4bdc9457SAndroid Build Coastguard Worker .channels(8)
2817*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2818*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2819*4bdc9457SAndroid Build Coastguard Worker }
2820*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_div_8_fulltile)2821*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_div_8_fulltile) {
2822*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2823*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
2824*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2825*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2826*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2827*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2828*4bdc9457SAndroid Build Coastguard Worker }
2829*4bdc9457SAndroid Build Coastguard Worker }
2830*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_div_8_subtile)2831*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_div_8_subtile) {
2832*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2833*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
2834*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2835*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2836*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2837*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2838*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2839*4bdc9457SAndroid Build Coastguard Worker }
2840*4bdc9457SAndroid Build Coastguard Worker }
2841*4bdc9457SAndroid Build Coastguard Worker }
2842*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_lt_8_fulltile)2843*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_lt_8_fulltile) {
2844*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2845*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2846*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2847*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2848*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2849*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2850*4bdc9457SAndroid Build Coastguard Worker }
2851*4bdc9457SAndroid Build Coastguard Worker }
2852*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_lt_8_subtile)2853*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_lt_8_subtile) {
2854*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2855*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2856*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2857*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2858*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2859*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2860*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2861*4bdc9457SAndroid Build Coastguard Worker }
2862*4bdc9457SAndroid Build Coastguard Worker }
2863*4bdc9457SAndroid Build Coastguard Worker }
2864*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_lt_8_fulltile_with_qmax)2865*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_lt_8_fulltile_with_qmax) {
2866*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2867*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2868*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2869*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2870*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2871*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2872*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2873*4bdc9457SAndroid Build Coastguard Worker }
2874*4bdc9457SAndroid Build Coastguard Worker }
2875*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_lt_8_fulltile_with_qmin)2876*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_lt_8_fulltile_with_qmin) {
2877*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2878*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
2879*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2880*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2881*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2882*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2883*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2884*4bdc9457SAndroid Build Coastguard Worker }
2885*4bdc9457SAndroid Build Coastguard Worker }
2886*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_gt_8_fulltile)2887*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_gt_8_fulltile) {
2888*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2889*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2890*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2891*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2892*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2893*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2894*4bdc9457SAndroid Build Coastguard Worker }
2895*4bdc9457SAndroid Build Coastguard Worker }
2896*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_gt_8_subtile)2897*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_gt_8_subtile) {
2898*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2899*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2900*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2901*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2902*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2903*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2904*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2905*4bdc9457SAndroid Build Coastguard Worker }
2906*4bdc9457SAndroid Build Coastguard Worker }
2907*4bdc9457SAndroid Build Coastguard Worker }
2908*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_gt_8_fulltile_with_qmax)2909*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_gt_8_fulltile_with_qmax) {
2910*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2911*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2912*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2913*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2914*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2915*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2916*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2917*4bdc9457SAndroid Build Coastguard Worker }
2918*4bdc9457SAndroid Build Coastguard Worker }
2919*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8,channels_gt_8_fulltile_with_qmin)2920*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C8, channels_gt_8_fulltile_with_qmin) {
2921*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2922*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
2923*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2924*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2925*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2926*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2927*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c8, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2928*4bdc9457SAndroid Build Coastguard Worker }
2929*4bdc9457SAndroid Build Coastguard Worker }
2930*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
2931*4bdc9457SAndroid Build Coastguard Worker
2932*4bdc9457SAndroid Build Coastguard Worker
2933*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_eq_16_fulltile)2934*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_eq_16_fulltile) {
2935*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2936*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2937*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2938*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2939*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2940*4bdc9457SAndroid Build Coastguard Worker }
2941*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_eq_16_subtile)2942*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_eq_16_subtile) {
2943*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2944*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2945*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2946*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2947*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2948*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2949*4bdc9457SAndroid Build Coastguard Worker }
2950*4bdc9457SAndroid Build Coastguard Worker }
2951*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_eq_16_fulltile_with_input_stride)2952*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_eq_16_fulltile_with_input_stride) {
2953*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2954*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2955*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2956*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2957*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
2958*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2959*4bdc9457SAndroid Build Coastguard Worker }
2960*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_eq_16_fulltile_with_qmax)2961*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_eq_16_fulltile_with_qmax) {
2962*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2963*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2964*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2965*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2966*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
2967*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2968*4bdc9457SAndroid Build Coastguard Worker }
2969*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_eq_16_fulltile_with_qmin)2970*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_eq_16_fulltile_with_qmin) {
2971*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2972*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2973*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2974*4bdc9457SAndroid Build Coastguard Worker .channels(16)
2975*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
2976*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2977*4bdc9457SAndroid Build Coastguard Worker }
2978*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_div_16_fulltile)2979*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_div_16_fulltile) {
2980*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2981*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
2982*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2983*4bdc9457SAndroid Build Coastguard Worker .rows(7)
2984*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2985*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2986*4bdc9457SAndroid Build Coastguard Worker }
2987*4bdc9457SAndroid Build Coastguard Worker }
2988*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_div_16_subtile)2989*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_div_16_subtile) {
2990*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
2991*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
2992*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
2993*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
2994*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
2995*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
2996*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
2997*4bdc9457SAndroid Build Coastguard Worker }
2998*4bdc9457SAndroid Build Coastguard Worker }
2999*4bdc9457SAndroid Build Coastguard Worker }
3000*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_lt_16_fulltile)3001*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_lt_16_fulltile) {
3002*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3003*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3004*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3005*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3006*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3007*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3008*4bdc9457SAndroid Build Coastguard Worker }
3009*4bdc9457SAndroid Build Coastguard Worker }
3010*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_lt_16_subtile)3011*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_lt_16_subtile) {
3012*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3013*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3014*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3015*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3016*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3017*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3018*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3019*4bdc9457SAndroid Build Coastguard Worker }
3020*4bdc9457SAndroid Build Coastguard Worker }
3021*4bdc9457SAndroid Build Coastguard Worker }
3022*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_lt_16_fulltile_with_qmax)3023*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_lt_16_fulltile_with_qmax) {
3024*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3025*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3026*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3027*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3028*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3029*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3030*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3031*4bdc9457SAndroid Build Coastguard Worker }
3032*4bdc9457SAndroid Build Coastguard Worker }
3033*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_lt_16_fulltile_with_qmin)3034*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_lt_16_fulltile_with_qmin) {
3035*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3036*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3037*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3038*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3039*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3040*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3041*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3042*4bdc9457SAndroid Build Coastguard Worker }
3043*4bdc9457SAndroid Build Coastguard Worker }
3044*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_gt_16_fulltile)3045*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_gt_16_fulltile) {
3046*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3047*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3048*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3049*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3050*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3051*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3052*4bdc9457SAndroid Build Coastguard Worker }
3053*4bdc9457SAndroid Build Coastguard Worker }
3054*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_gt_16_subtile)3055*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_gt_16_subtile) {
3056*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3057*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3058*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3059*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3060*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3061*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3062*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3063*4bdc9457SAndroid Build Coastguard Worker }
3064*4bdc9457SAndroid Build Coastguard Worker }
3065*4bdc9457SAndroid Build Coastguard Worker }
3066*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_gt_16_fulltile_with_qmax)3067*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_gt_16_fulltile_with_qmax) {
3068*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3069*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3070*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3071*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3072*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3073*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3074*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3075*4bdc9457SAndroid Build Coastguard Worker }
3076*4bdc9457SAndroid Build Coastguard Worker }
3077*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16,channels_gt_16_fulltile_with_qmin)3078*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C16, channels_gt_16_fulltile_with_qmin) {
3079*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3080*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3081*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3082*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3083*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3084*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3085*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c16, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3086*4bdc9457SAndroid Build Coastguard Worker }
3087*4bdc9457SAndroid Build Coastguard Worker }
3088*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
3089*4bdc9457SAndroid Build Coastguard Worker
3090*4bdc9457SAndroid Build Coastguard Worker
3091*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_eq_24_fulltile)3092*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_eq_24_fulltile) {
3093*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3094*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3095*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3096*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3097*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3098*4bdc9457SAndroid Build Coastguard Worker }
3099*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_eq_24_subtile)3100*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_eq_24_subtile) {
3101*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3102*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3103*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3104*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3105*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3106*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3107*4bdc9457SAndroid Build Coastguard Worker }
3108*4bdc9457SAndroid Build Coastguard Worker }
3109*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_eq_24_fulltile_with_input_stride)3110*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_eq_24_fulltile_with_input_stride) {
3111*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3112*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3113*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3114*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3115*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
3116*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3117*4bdc9457SAndroid Build Coastguard Worker }
3118*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_eq_24_fulltile_with_qmax)3119*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_eq_24_fulltile_with_qmax) {
3120*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3121*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3122*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3123*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3124*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3125*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3126*4bdc9457SAndroid Build Coastguard Worker }
3127*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_eq_24_fulltile_with_qmin)3128*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_eq_24_fulltile_with_qmin) {
3129*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3130*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3131*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3132*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3133*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3134*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3135*4bdc9457SAndroid Build Coastguard Worker }
3136*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_div_24_fulltile)3137*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_div_24_fulltile) {
3138*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3139*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
3140*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3141*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3142*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3143*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3144*4bdc9457SAndroid Build Coastguard Worker }
3145*4bdc9457SAndroid Build Coastguard Worker }
3146*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_div_24_subtile)3147*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_div_24_subtile) {
3148*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3149*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
3150*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3151*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3152*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3153*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3154*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3155*4bdc9457SAndroid Build Coastguard Worker }
3156*4bdc9457SAndroid Build Coastguard Worker }
3157*4bdc9457SAndroid Build Coastguard Worker }
3158*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_lt_24_fulltile)3159*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_lt_24_fulltile) {
3160*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3161*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
3162*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3163*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3164*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3165*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3166*4bdc9457SAndroid Build Coastguard Worker }
3167*4bdc9457SAndroid Build Coastguard Worker }
3168*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_lt_24_subtile)3169*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_lt_24_subtile) {
3170*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3171*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
3172*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3173*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3174*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3175*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3176*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3177*4bdc9457SAndroid Build Coastguard Worker }
3178*4bdc9457SAndroid Build Coastguard Worker }
3179*4bdc9457SAndroid Build Coastguard Worker }
3180*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_lt_24_fulltile_with_qmax)3181*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_lt_24_fulltile_with_qmax) {
3182*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3183*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
3184*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3185*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3186*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3187*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3188*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3189*4bdc9457SAndroid Build Coastguard Worker }
3190*4bdc9457SAndroid Build Coastguard Worker }
3191*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_lt_24_fulltile_with_qmin)3192*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_lt_24_fulltile_with_qmin) {
3193*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3194*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
3195*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3196*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3197*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3198*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3199*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3200*4bdc9457SAndroid Build Coastguard Worker }
3201*4bdc9457SAndroid Build Coastguard Worker }
3202*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_gt_24_fulltile)3203*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_gt_24_fulltile) {
3204*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3205*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
3206*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3207*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3208*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3209*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3210*4bdc9457SAndroid Build Coastguard Worker }
3211*4bdc9457SAndroid Build Coastguard Worker }
3212*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_gt_24_subtile)3213*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_gt_24_subtile) {
3214*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3215*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
3216*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3217*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3218*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3219*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3220*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3221*4bdc9457SAndroid Build Coastguard Worker }
3222*4bdc9457SAndroid Build Coastguard Worker }
3223*4bdc9457SAndroid Build Coastguard Worker }
3224*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_gt_24_fulltile_with_qmax)3225*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_gt_24_fulltile_with_qmax) {
3226*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3227*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
3228*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3229*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3230*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3231*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3232*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3233*4bdc9457SAndroid Build Coastguard Worker }
3234*4bdc9457SAndroid Build Coastguard Worker }
3235*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24,channels_gt_24_fulltile_with_qmin)3236*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C24, channels_gt_24_fulltile_with_qmin) {
3237*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3238*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
3239*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3240*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3241*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3242*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3243*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c24, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3244*4bdc9457SAndroid Build Coastguard Worker }
3245*4bdc9457SAndroid Build Coastguard Worker }
3246*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
3247*4bdc9457SAndroid Build Coastguard Worker
3248*4bdc9457SAndroid Build Coastguard Worker
3249*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_eq_32_fulltile)3250*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_eq_32_fulltile) {
3251*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3252*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3253*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3254*4bdc9457SAndroid Build Coastguard Worker .channels(32)
3255*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3256*4bdc9457SAndroid Build Coastguard Worker }
3257*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_eq_32_subtile)3258*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_eq_32_subtile) {
3259*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3260*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3261*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3262*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3263*4bdc9457SAndroid Build Coastguard Worker .channels(32)
3264*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3265*4bdc9457SAndroid Build Coastguard Worker }
3266*4bdc9457SAndroid Build Coastguard Worker }
3267*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_eq_32_fulltile_with_input_stride)3268*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_eq_32_fulltile_with_input_stride) {
3269*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3270*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3271*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3272*4bdc9457SAndroid Build Coastguard Worker .channels(32)
3273*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
3274*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3275*4bdc9457SAndroid Build Coastguard Worker }
3276*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_eq_32_fulltile_with_qmax)3277*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_eq_32_fulltile_with_qmax) {
3278*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3279*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3280*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3281*4bdc9457SAndroid Build Coastguard Worker .channels(32)
3282*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3283*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3284*4bdc9457SAndroid Build Coastguard Worker }
3285*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_eq_32_fulltile_with_qmin)3286*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_eq_32_fulltile_with_qmin) {
3287*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3288*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3289*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3290*4bdc9457SAndroid Build Coastguard Worker .channels(32)
3291*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3292*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3293*4bdc9457SAndroid Build Coastguard Worker }
3294*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_div_32_fulltile)3295*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_div_32_fulltile) {
3296*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3297*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
3298*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3299*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3300*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3301*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3302*4bdc9457SAndroid Build Coastguard Worker }
3303*4bdc9457SAndroid Build Coastguard Worker }
3304*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_div_32_subtile)3305*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_div_32_subtile) {
3306*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3307*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
3308*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3309*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3310*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3311*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3312*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3313*4bdc9457SAndroid Build Coastguard Worker }
3314*4bdc9457SAndroid Build Coastguard Worker }
3315*4bdc9457SAndroid Build Coastguard Worker }
3316*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_lt_32_fulltile)3317*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_lt_32_fulltile) {
3318*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3319*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
3320*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3321*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3322*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3323*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3324*4bdc9457SAndroid Build Coastguard Worker }
3325*4bdc9457SAndroid Build Coastguard Worker }
3326*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_lt_32_subtile)3327*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_lt_32_subtile) {
3328*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3329*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
3330*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3331*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3332*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3333*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3334*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3335*4bdc9457SAndroid Build Coastguard Worker }
3336*4bdc9457SAndroid Build Coastguard Worker }
3337*4bdc9457SAndroid Build Coastguard Worker }
3338*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_lt_32_fulltile_with_qmax)3339*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_lt_32_fulltile_with_qmax) {
3340*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3341*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
3342*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3343*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3344*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3345*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3346*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3347*4bdc9457SAndroid Build Coastguard Worker }
3348*4bdc9457SAndroid Build Coastguard Worker }
3349*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_lt_32_fulltile_with_qmin)3350*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_lt_32_fulltile_with_qmin) {
3351*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3352*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
3353*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3354*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3355*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3356*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3357*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3358*4bdc9457SAndroid Build Coastguard Worker }
3359*4bdc9457SAndroid Build Coastguard Worker }
3360*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_gt_32_fulltile)3361*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_gt_32_fulltile) {
3362*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3363*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
3364*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3365*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3366*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3367*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3368*4bdc9457SAndroid Build Coastguard Worker }
3369*4bdc9457SAndroid Build Coastguard Worker }
3370*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_gt_32_subtile)3371*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_gt_32_subtile) {
3372*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3373*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
3374*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
3375*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3376*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3377*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3378*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3379*4bdc9457SAndroid Build Coastguard Worker }
3380*4bdc9457SAndroid Build Coastguard Worker }
3381*4bdc9457SAndroid Build Coastguard Worker }
3382*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_gt_32_fulltile_with_qmax)3383*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_gt_32_fulltile_with_qmax) {
3384*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3385*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
3386*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3387*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3388*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3389*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3390*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3391*4bdc9457SAndroid Build Coastguard Worker }
3392*4bdc9457SAndroid Build Coastguard Worker }
3393*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32,channels_gt_32_fulltile_with_qmin)3394*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__NEONV8_C32, channels_gt_32_fulltile_with_qmin) {
3395*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_V8;
3396*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
3397*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3398*4bdc9457SAndroid Build Coastguard Worker .rows(7)
3399*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3400*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3401*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__neonv8_c32, xnn_init_qu8_avgpool_minmax_fp32_neonv8_params, xnn_qu8_requantize_fp32);
3402*4bdc9457SAndroid Build Coastguard Worker }
3403*4bdc9457SAndroid Build Coastguard Worker }
3404*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
3405*4bdc9457SAndroid Build Coastguard Worker
3406*4bdc9457SAndroid Build Coastguard Worker
3407*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_eq_8_2pass_fulltile)3408*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_eq_8_2pass_fulltile) {
3409*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3410*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3411*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3412*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3413*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3414*4bdc9457SAndroid Build Coastguard Worker }
3415*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_eq_8_2pass_fulltile_with_input_stride)3416*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_eq_8_2pass_fulltile_with_input_stride) {
3417*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3418*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3419*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3420*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3421*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
3422*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3423*4bdc9457SAndroid Build Coastguard Worker }
3424*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_eq_8_2pass_fulltile_with_qmax)3425*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_eq_8_2pass_fulltile_with_qmax) {
3426*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3427*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3428*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3429*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3430*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3431*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3432*4bdc9457SAndroid Build Coastguard Worker }
3433*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_eq_8_2pass_fulltile_with_qmin)3434*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_eq_8_2pass_fulltile_with_qmin) {
3435*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3436*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3437*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3438*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3439*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3440*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3441*4bdc9457SAndroid Build Coastguard Worker }
3442*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_eq_8_2pass_subtile)3443*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_eq_8_2pass_subtile) {
3444*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3445*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3446*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3447*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3448*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3449*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3450*4bdc9457SAndroid Build Coastguard Worker }
3451*4bdc9457SAndroid Build Coastguard Worker }
3452*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_eq_8_2pass_subtile_with_input_stride)3453*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_eq_8_2pass_subtile_with_input_stride) {
3454*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3455*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3456*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3457*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3458*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3459*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
3460*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3461*4bdc9457SAndroid Build Coastguard Worker }
3462*4bdc9457SAndroid Build Coastguard Worker }
3463*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_eq_8_multipass_fulltile)3464*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_eq_8_multipass_fulltile) {
3465*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3466*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3467*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3468*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3469*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3470*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3471*4bdc9457SAndroid Build Coastguard Worker }
3472*4bdc9457SAndroid Build Coastguard Worker }
3473*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_eq_8_multipass_fulltile_with_input_stride)3474*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_eq_8_multipass_fulltile_with_input_stride) {
3475*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3476*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3477*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3478*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3479*4bdc9457SAndroid Build Coastguard Worker .channels(8)
3480*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
3481*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3482*4bdc9457SAndroid Build Coastguard Worker }
3483*4bdc9457SAndroid Build Coastguard Worker }
3484*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_div_8_2pass_fulltile)3485*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_div_8_2pass_fulltile) {
3486*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3487*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
3488*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3489*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3490*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3491*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3492*4bdc9457SAndroid Build Coastguard Worker }
3493*4bdc9457SAndroid Build Coastguard Worker }
3494*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_div_8_2pass_subtile)3495*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_div_8_2pass_subtile) {
3496*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3497*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
3498*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3499*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3500*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3501*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3502*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3503*4bdc9457SAndroid Build Coastguard Worker }
3504*4bdc9457SAndroid Build Coastguard Worker }
3505*4bdc9457SAndroid Build Coastguard Worker }
3506*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_div_8_multipass_fulltile)3507*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_div_8_multipass_fulltile) {
3508*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3509*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
3510*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3511*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3512*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3513*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3514*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3515*4bdc9457SAndroid Build Coastguard Worker }
3516*4bdc9457SAndroid Build Coastguard Worker }
3517*4bdc9457SAndroid Build Coastguard Worker }
3518*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_div_8_multipass_fulltile_with_input_stride)3519*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_div_8_multipass_fulltile_with_input_stride) {
3520*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3521*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
3522*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3523*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3524*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3525*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3526*4bdc9457SAndroid Build Coastguard Worker .input_stride(131)
3527*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3528*4bdc9457SAndroid Build Coastguard Worker }
3529*4bdc9457SAndroid Build Coastguard Worker }
3530*4bdc9457SAndroid Build Coastguard Worker }
3531*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_lt_8_2pass_fulltile)3532*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_lt_8_2pass_fulltile) {
3533*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3534*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
3535*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3536*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3537*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3538*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3539*4bdc9457SAndroid Build Coastguard Worker }
3540*4bdc9457SAndroid Build Coastguard Worker }
3541*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_lt_8_2pass_fulltile_with_qmax)3542*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_lt_8_2pass_fulltile_with_qmax) {
3543*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3544*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
3545*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3546*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3547*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3548*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3549*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3550*4bdc9457SAndroid Build Coastguard Worker }
3551*4bdc9457SAndroid Build Coastguard Worker }
3552*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_lt_8_2pass_fulltile_with_qmin)3553*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_lt_8_2pass_fulltile_with_qmin) {
3554*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3555*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
3556*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3557*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3558*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3559*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3560*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3561*4bdc9457SAndroid Build Coastguard Worker }
3562*4bdc9457SAndroid Build Coastguard Worker }
3563*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_lt_8_2pass_subtile)3564*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_lt_8_2pass_subtile) {
3565*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3566*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
3567*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3568*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3569*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3570*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3571*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3572*4bdc9457SAndroid Build Coastguard Worker }
3573*4bdc9457SAndroid Build Coastguard Worker }
3574*4bdc9457SAndroid Build Coastguard Worker }
3575*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_lt_8_multipass_fulltile)3576*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_lt_8_multipass_fulltile) {
3577*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3578*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
3579*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3580*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3581*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3582*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3583*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3584*4bdc9457SAndroid Build Coastguard Worker }
3585*4bdc9457SAndroid Build Coastguard Worker }
3586*4bdc9457SAndroid Build Coastguard Worker }
3587*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_lt_8_multipass_fulltile_with_input_stride)3588*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_lt_8_multipass_fulltile_with_input_stride) {
3589*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3590*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
3591*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3592*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3593*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3594*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3595*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
3596*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3597*4bdc9457SAndroid Build Coastguard Worker }
3598*4bdc9457SAndroid Build Coastguard Worker }
3599*4bdc9457SAndroid Build Coastguard Worker }
3600*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_gt_8_2pass_fulltile)3601*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_gt_8_2pass_fulltile) {
3602*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3603*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
3604*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3605*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3606*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3607*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3608*4bdc9457SAndroid Build Coastguard Worker }
3609*4bdc9457SAndroid Build Coastguard Worker }
3610*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_gt_8_2pass_fulltile_with_qmax)3611*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_gt_8_2pass_fulltile_with_qmax) {
3612*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3613*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
3614*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3615*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3616*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3617*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3618*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3619*4bdc9457SAndroid Build Coastguard Worker }
3620*4bdc9457SAndroid Build Coastguard Worker }
3621*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_gt_8_2pass_fulltile_with_qmin)3622*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_gt_8_2pass_fulltile_with_qmin) {
3623*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3624*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
3625*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3626*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3627*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3628*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3629*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3630*4bdc9457SAndroid Build Coastguard Worker }
3631*4bdc9457SAndroid Build Coastguard Worker }
3632*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_gt_8_2pass_subtile)3633*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_gt_8_2pass_subtile) {
3634*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3635*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
3636*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3637*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3638*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3639*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3640*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3641*4bdc9457SAndroid Build Coastguard Worker }
3642*4bdc9457SAndroid Build Coastguard Worker }
3643*4bdc9457SAndroid Build Coastguard Worker }
3644*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_gt_8_multipass_fulltile)3645*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_gt_8_multipass_fulltile) {
3646*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3647*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
3648*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
3649*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3650*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3651*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3652*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3653*4bdc9457SAndroid Build Coastguard Worker }
3654*4bdc9457SAndroid Build Coastguard Worker }
3655*4bdc9457SAndroid Build Coastguard Worker }
3656*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8,channels_gt_8_multipass_fulltile_with_input_stride)3657*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C8, channels_gt_8_multipass_fulltile_with_input_stride) {
3658*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3659*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
3660*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
3661*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3662*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3663*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3664*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
3665*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3666*4bdc9457SAndroid Build Coastguard Worker }
3667*4bdc9457SAndroid Build Coastguard Worker }
3668*4bdc9457SAndroid Build Coastguard Worker }
3669*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
3670*4bdc9457SAndroid Build Coastguard Worker
3671*4bdc9457SAndroid Build Coastguard Worker
3672*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_eq_16_2pass_fulltile)3673*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_eq_16_2pass_fulltile) {
3674*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3675*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3676*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3677*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3678*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3679*4bdc9457SAndroid Build Coastguard Worker }
3680*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_eq_16_2pass_fulltile_with_input_stride)3681*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_eq_16_2pass_fulltile_with_input_stride) {
3682*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3683*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3684*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3685*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3686*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
3687*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3688*4bdc9457SAndroid Build Coastguard Worker }
3689*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_eq_16_2pass_fulltile_with_qmax)3690*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_eq_16_2pass_fulltile_with_qmax) {
3691*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3692*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3693*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3694*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3695*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3696*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3697*4bdc9457SAndroid Build Coastguard Worker }
3698*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_eq_16_2pass_fulltile_with_qmin)3699*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_eq_16_2pass_fulltile_with_qmin) {
3700*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3701*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3702*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3703*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3704*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3705*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3706*4bdc9457SAndroid Build Coastguard Worker }
3707*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_eq_16_2pass_subtile)3708*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_eq_16_2pass_subtile) {
3709*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3710*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3711*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3712*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3713*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3714*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3715*4bdc9457SAndroid Build Coastguard Worker }
3716*4bdc9457SAndroid Build Coastguard Worker }
3717*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_eq_16_2pass_subtile_with_input_stride)3718*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_eq_16_2pass_subtile_with_input_stride) {
3719*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3720*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3721*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3722*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3723*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3724*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
3725*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3726*4bdc9457SAndroid Build Coastguard Worker }
3727*4bdc9457SAndroid Build Coastguard Worker }
3728*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_eq_16_multipass_fulltile)3729*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_eq_16_multipass_fulltile) {
3730*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3731*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3732*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3733*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3734*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3735*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3736*4bdc9457SAndroid Build Coastguard Worker }
3737*4bdc9457SAndroid Build Coastguard Worker }
3738*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_eq_16_multipass_fulltile_with_input_stride)3739*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_eq_16_multipass_fulltile_with_input_stride) {
3740*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3741*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3742*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3743*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3744*4bdc9457SAndroid Build Coastguard Worker .channels(16)
3745*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
3746*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3747*4bdc9457SAndroid Build Coastguard Worker }
3748*4bdc9457SAndroid Build Coastguard Worker }
3749*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_div_16_2pass_fulltile)3750*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_div_16_2pass_fulltile) {
3751*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3752*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
3753*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3754*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3755*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3756*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3757*4bdc9457SAndroid Build Coastguard Worker }
3758*4bdc9457SAndroid Build Coastguard Worker }
3759*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_div_16_2pass_subtile)3760*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_div_16_2pass_subtile) {
3761*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3762*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
3763*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3764*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3765*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3766*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3767*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3768*4bdc9457SAndroid Build Coastguard Worker }
3769*4bdc9457SAndroid Build Coastguard Worker }
3770*4bdc9457SAndroid Build Coastguard Worker }
3771*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_div_16_multipass_fulltile)3772*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_div_16_multipass_fulltile) {
3773*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3774*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
3775*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3776*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3777*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3778*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3779*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3780*4bdc9457SAndroid Build Coastguard Worker }
3781*4bdc9457SAndroid Build Coastguard Worker }
3782*4bdc9457SAndroid Build Coastguard Worker }
3783*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_div_16_multipass_fulltile_with_input_stride)3784*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_div_16_multipass_fulltile_with_input_stride) {
3785*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3786*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
3787*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3788*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3789*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3790*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3791*4bdc9457SAndroid Build Coastguard Worker .input_stride(263)
3792*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3793*4bdc9457SAndroid Build Coastguard Worker }
3794*4bdc9457SAndroid Build Coastguard Worker }
3795*4bdc9457SAndroid Build Coastguard Worker }
3796*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_lt_16_2pass_fulltile)3797*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_lt_16_2pass_fulltile) {
3798*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3799*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3800*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3801*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3802*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3803*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3804*4bdc9457SAndroid Build Coastguard Worker }
3805*4bdc9457SAndroid Build Coastguard Worker }
3806*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_lt_16_2pass_fulltile_with_qmax)3807*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_lt_16_2pass_fulltile_with_qmax) {
3808*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3809*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3810*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3811*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3812*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3813*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3814*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3815*4bdc9457SAndroid Build Coastguard Worker }
3816*4bdc9457SAndroid Build Coastguard Worker }
3817*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_lt_16_2pass_fulltile_with_qmin)3818*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_lt_16_2pass_fulltile_with_qmin) {
3819*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3820*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3821*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3822*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3823*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3824*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3825*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3826*4bdc9457SAndroid Build Coastguard Worker }
3827*4bdc9457SAndroid Build Coastguard Worker }
3828*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_lt_16_2pass_subtile)3829*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_lt_16_2pass_subtile) {
3830*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3831*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3832*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3833*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3834*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3835*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3836*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3837*4bdc9457SAndroid Build Coastguard Worker }
3838*4bdc9457SAndroid Build Coastguard Worker }
3839*4bdc9457SAndroid Build Coastguard Worker }
3840*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_lt_16_multipass_fulltile)3841*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_lt_16_multipass_fulltile) {
3842*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3843*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3844*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3845*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3846*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3847*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3848*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3849*4bdc9457SAndroid Build Coastguard Worker }
3850*4bdc9457SAndroid Build Coastguard Worker }
3851*4bdc9457SAndroid Build Coastguard Worker }
3852*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_lt_16_multipass_fulltile_with_input_stride)3853*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_lt_16_multipass_fulltile_with_input_stride) {
3854*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3855*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
3856*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3857*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3858*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3859*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3860*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
3861*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3862*4bdc9457SAndroid Build Coastguard Worker }
3863*4bdc9457SAndroid Build Coastguard Worker }
3864*4bdc9457SAndroid Build Coastguard Worker }
3865*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_gt_16_2pass_fulltile)3866*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_gt_16_2pass_fulltile) {
3867*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3868*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3869*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3870*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3871*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3872*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3873*4bdc9457SAndroid Build Coastguard Worker }
3874*4bdc9457SAndroid Build Coastguard Worker }
3875*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_gt_16_2pass_fulltile_with_qmax)3876*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_gt_16_2pass_fulltile_with_qmax) {
3877*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3878*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3879*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3880*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3881*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3882*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3883*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3884*4bdc9457SAndroid Build Coastguard Worker }
3885*4bdc9457SAndroid Build Coastguard Worker }
3886*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_gt_16_2pass_fulltile_with_qmin)3887*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_gt_16_2pass_fulltile_with_qmin) {
3888*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3889*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3890*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3891*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3892*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3893*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3894*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3895*4bdc9457SAndroid Build Coastguard Worker }
3896*4bdc9457SAndroid Build Coastguard Worker }
3897*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_gt_16_2pass_subtile)3898*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_gt_16_2pass_subtile) {
3899*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3900*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3901*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3902*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3903*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3904*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3905*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3906*4bdc9457SAndroid Build Coastguard Worker }
3907*4bdc9457SAndroid Build Coastguard Worker }
3908*4bdc9457SAndroid Build Coastguard Worker }
3909*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_gt_16_multipass_fulltile)3910*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_gt_16_multipass_fulltile) {
3911*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3912*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3913*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
3914*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3915*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3916*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3917*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3918*4bdc9457SAndroid Build Coastguard Worker }
3919*4bdc9457SAndroid Build Coastguard Worker }
3920*4bdc9457SAndroid Build Coastguard Worker }
3921*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16,channels_gt_16_multipass_fulltile_with_input_stride)3922*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C16, channels_gt_16_multipass_fulltile_with_input_stride) {
3923*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3924*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
3925*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
3926*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3927*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3928*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
3929*4bdc9457SAndroid Build Coastguard Worker .input_stride(47)
3930*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3931*4bdc9457SAndroid Build Coastguard Worker }
3932*4bdc9457SAndroid Build Coastguard Worker }
3933*4bdc9457SAndroid Build Coastguard Worker }
3934*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
3935*4bdc9457SAndroid Build Coastguard Worker
3936*4bdc9457SAndroid Build Coastguard Worker
3937*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_eq_24_2pass_fulltile)3938*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_eq_24_2pass_fulltile) {
3939*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3940*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3941*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3942*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3943*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3944*4bdc9457SAndroid Build Coastguard Worker }
3945*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_eq_24_2pass_fulltile_with_input_stride)3946*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_eq_24_2pass_fulltile_with_input_stride) {
3947*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3948*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3949*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3950*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3951*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
3952*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3953*4bdc9457SAndroid Build Coastguard Worker }
3954*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_eq_24_2pass_fulltile_with_qmax)3955*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_eq_24_2pass_fulltile_with_qmax) {
3956*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3957*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3958*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3959*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3960*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
3961*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3962*4bdc9457SAndroid Build Coastguard Worker }
3963*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_eq_24_2pass_fulltile_with_qmin)3964*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_eq_24_2pass_fulltile_with_qmin) {
3965*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3966*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3967*4bdc9457SAndroid Build Coastguard Worker .rows(14)
3968*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3969*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
3970*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3971*4bdc9457SAndroid Build Coastguard Worker }
3972*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_eq_24_2pass_subtile)3973*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_eq_24_2pass_subtile) {
3974*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3975*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3976*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3977*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3978*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3979*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3980*4bdc9457SAndroid Build Coastguard Worker }
3981*4bdc9457SAndroid Build Coastguard Worker }
3982*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_eq_24_2pass_subtile_with_input_stride)3983*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_eq_24_2pass_subtile_with_input_stride) {
3984*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3985*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
3986*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3987*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3988*4bdc9457SAndroid Build Coastguard Worker .channels(24)
3989*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
3990*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
3991*4bdc9457SAndroid Build Coastguard Worker }
3992*4bdc9457SAndroid Build Coastguard Worker }
3993*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_eq_24_multipass_fulltile)3994*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_eq_24_multipass_fulltile) {
3995*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
3996*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
3997*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
3998*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
3999*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4000*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4001*4bdc9457SAndroid Build Coastguard Worker }
4002*4bdc9457SAndroid Build Coastguard Worker }
4003*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_eq_24_multipass_fulltile_with_input_stride)4004*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_eq_24_multipass_fulltile_with_input_stride) {
4005*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4006*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4007*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4008*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4009*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4010*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
4011*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4012*4bdc9457SAndroid Build Coastguard Worker }
4013*4bdc9457SAndroid Build Coastguard Worker }
4014*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_div_24_2pass_fulltile)4015*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_div_24_2pass_fulltile) {
4016*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4017*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
4018*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4019*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4020*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4021*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4022*4bdc9457SAndroid Build Coastguard Worker }
4023*4bdc9457SAndroid Build Coastguard Worker }
4024*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_div_24_2pass_subtile)4025*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_div_24_2pass_subtile) {
4026*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4027*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
4028*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4029*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4030*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4031*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4032*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4033*4bdc9457SAndroid Build Coastguard Worker }
4034*4bdc9457SAndroid Build Coastguard Worker }
4035*4bdc9457SAndroid Build Coastguard Worker }
4036*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_div_24_multipass_fulltile)4037*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_div_24_multipass_fulltile) {
4038*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4039*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
4040*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4041*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4042*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4043*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4044*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4045*4bdc9457SAndroid Build Coastguard Worker }
4046*4bdc9457SAndroid Build Coastguard Worker }
4047*4bdc9457SAndroid Build Coastguard Worker }
4048*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_div_24_multipass_fulltile_with_input_stride)4049*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_div_24_multipass_fulltile_with_input_stride) {
4050*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4051*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
4052*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4053*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4054*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4055*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4056*4bdc9457SAndroid Build Coastguard Worker .input_stride(389)
4057*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4058*4bdc9457SAndroid Build Coastguard Worker }
4059*4bdc9457SAndroid Build Coastguard Worker }
4060*4bdc9457SAndroid Build Coastguard Worker }
4061*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_lt_24_2pass_fulltile)4062*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_lt_24_2pass_fulltile) {
4063*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4064*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4065*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4066*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4067*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4068*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4069*4bdc9457SAndroid Build Coastguard Worker }
4070*4bdc9457SAndroid Build Coastguard Worker }
4071*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_lt_24_2pass_fulltile_with_qmax)4072*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_lt_24_2pass_fulltile_with_qmax) {
4073*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4074*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4075*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4076*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4077*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4078*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4079*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4080*4bdc9457SAndroid Build Coastguard Worker }
4081*4bdc9457SAndroid Build Coastguard Worker }
4082*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_lt_24_2pass_fulltile_with_qmin)4083*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_lt_24_2pass_fulltile_with_qmin) {
4084*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4085*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4086*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4087*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4088*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4089*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4090*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4091*4bdc9457SAndroid Build Coastguard Worker }
4092*4bdc9457SAndroid Build Coastguard Worker }
4093*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_lt_24_2pass_subtile)4094*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_lt_24_2pass_subtile) {
4095*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4096*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4097*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4098*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4099*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4100*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4101*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4102*4bdc9457SAndroid Build Coastguard Worker }
4103*4bdc9457SAndroid Build Coastguard Worker }
4104*4bdc9457SAndroid Build Coastguard Worker }
4105*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_lt_24_multipass_fulltile)4106*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_lt_24_multipass_fulltile) {
4107*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4108*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4109*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4110*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4111*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4112*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4113*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4114*4bdc9457SAndroid Build Coastguard Worker }
4115*4bdc9457SAndroid Build Coastguard Worker }
4116*4bdc9457SAndroid Build Coastguard Worker }
4117*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_lt_24_multipass_fulltile_with_input_stride)4118*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_lt_24_multipass_fulltile_with_input_stride) {
4119*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4120*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4121*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4122*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4123*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4124*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4125*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
4126*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4127*4bdc9457SAndroid Build Coastguard Worker }
4128*4bdc9457SAndroid Build Coastguard Worker }
4129*4bdc9457SAndroid Build Coastguard Worker }
4130*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_gt_24_2pass_fulltile)4131*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_gt_24_2pass_fulltile) {
4132*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4133*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4134*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4135*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4136*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4137*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4138*4bdc9457SAndroid Build Coastguard Worker }
4139*4bdc9457SAndroid Build Coastguard Worker }
4140*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_gt_24_2pass_fulltile_with_qmax)4141*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_gt_24_2pass_fulltile_with_qmax) {
4142*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4143*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4144*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4145*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4146*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4147*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4148*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4149*4bdc9457SAndroid Build Coastguard Worker }
4150*4bdc9457SAndroid Build Coastguard Worker }
4151*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_gt_24_2pass_fulltile_with_qmin)4152*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_gt_24_2pass_fulltile_with_qmin) {
4153*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4154*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4155*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4156*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4157*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4158*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4159*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4160*4bdc9457SAndroid Build Coastguard Worker }
4161*4bdc9457SAndroid Build Coastguard Worker }
4162*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_gt_24_2pass_subtile)4163*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_gt_24_2pass_subtile) {
4164*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4165*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4166*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4167*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4168*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4169*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4170*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4171*4bdc9457SAndroid Build Coastguard Worker }
4172*4bdc9457SAndroid Build Coastguard Worker }
4173*4bdc9457SAndroid Build Coastguard Worker }
4174*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_gt_24_multipass_fulltile)4175*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_gt_24_multipass_fulltile) {
4176*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4177*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4178*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
4179*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4180*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4181*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4182*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4183*4bdc9457SAndroid Build Coastguard Worker }
4184*4bdc9457SAndroid Build Coastguard Worker }
4185*4bdc9457SAndroid Build Coastguard Worker }
4186*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24,channels_gt_24_multipass_fulltile_with_input_stride)4187*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE2_C24, channels_gt_24_multipass_fulltile_with_input_stride) {
4188*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
4189*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4190*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
4191*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4192*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4193*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4194*4bdc9457SAndroid Build Coastguard Worker .input_stride(61)
4195*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
4196*4bdc9457SAndroid Build Coastguard Worker }
4197*4bdc9457SAndroid Build Coastguard Worker }
4198*4bdc9457SAndroid Build Coastguard Worker }
4199*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
4200*4bdc9457SAndroid Build Coastguard Worker
4201*4bdc9457SAndroid Build Coastguard Worker
4202*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_eq_8_2pass_fulltile)4203*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_eq_8_2pass_fulltile) {
4204*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4205*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4206*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4207*4bdc9457SAndroid Build Coastguard Worker .channels(8)
4208*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4209*4bdc9457SAndroid Build Coastguard Worker }
4210*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_eq_8_2pass_fulltile_with_input_stride)4211*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_eq_8_2pass_fulltile_with_input_stride) {
4212*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4213*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4214*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4215*4bdc9457SAndroid Build Coastguard Worker .channels(8)
4216*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
4217*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4218*4bdc9457SAndroid Build Coastguard Worker }
4219*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_eq_8_2pass_fulltile_with_qmax)4220*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_eq_8_2pass_fulltile_with_qmax) {
4221*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4222*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4223*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4224*4bdc9457SAndroid Build Coastguard Worker .channels(8)
4225*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4226*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4227*4bdc9457SAndroid Build Coastguard Worker }
4228*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_eq_8_2pass_fulltile_with_qmin)4229*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_eq_8_2pass_fulltile_with_qmin) {
4230*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4231*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4232*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4233*4bdc9457SAndroid Build Coastguard Worker .channels(8)
4234*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4235*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4236*4bdc9457SAndroid Build Coastguard Worker }
4237*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_eq_8_2pass_subtile)4238*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_eq_8_2pass_subtile) {
4239*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4240*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4241*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4242*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4243*4bdc9457SAndroid Build Coastguard Worker .channels(8)
4244*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4245*4bdc9457SAndroid Build Coastguard Worker }
4246*4bdc9457SAndroid Build Coastguard Worker }
4247*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_eq_8_2pass_subtile_with_input_stride)4248*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_eq_8_2pass_subtile_with_input_stride) {
4249*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4250*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4251*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4252*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4253*4bdc9457SAndroid Build Coastguard Worker .channels(8)
4254*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
4255*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4256*4bdc9457SAndroid Build Coastguard Worker }
4257*4bdc9457SAndroid Build Coastguard Worker }
4258*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_eq_8_multipass_fulltile)4259*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_eq_8_multipass_fulltile) {
4260*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4261*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4262*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4263*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4264*4bdc9457SAndroid Build Coastguard Worker .channels(8)
4265*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4266*4bdc9457SAndroid Build Coastguard Worker }
4267*4bdc9457SAndroid Build Coastguard Worker }
4268*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_eq_8_multipass_fulltile_with_input_stride)4269*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_eq_8_multipass_fulltile_with_input_stride) {
4270*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4271*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4272*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4273*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4274*4bdc9457SAndroid Build Coastguard Worker .channels(8)
4275*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
4276*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4277*4bdc9457SAndroid Build Coastguard Worker }
4278*4bdc9457SAndroid Build Coastguard Worker }
4279*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_div_8_2pass_fulltile)4280*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_div_8_2pass_fulltile) {
4281*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4282*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
4283*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4284*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4285*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4286*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4287*4bdc9457SAndroid Build Coastguard Worker }
4288*4bdc9457SAndroid Build Coastguard Worker }
4289*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_div_8_2pass_subtile)4290*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_div_8_2pass_subtile) {
4291*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4292*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
4293*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4294*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4295*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4296*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4297*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4298*4bdc9457SAndroid Build Coastguard Worker }
4299*4bdc9457SAndroid Build Coastguard Worker }
4300*4bdc9457SAndroid Build Coastguard Worker }
4301*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_div_8_multipass_fulltile)4302*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_div_8_multipass_fulltile) {
4303*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4304*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
4305*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4306*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4307*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4308*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4309*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4310*4bdc9457SAndroid Build Coastguard Worker }
4311*4bdc9457SAndroid Build Coastguard Worker }
4312*4bdc9457SAndroid Build Coastguard Worker }
4313*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_div_8_multipass_fulltile_with_input_stride)4314*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_div_8_multipass_fulltile_with_input_stride) {
4315*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4316*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
4317*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4318*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4319*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4320*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4321*4bdc9457SAndroid Build Coastguard Worker .input_stride(131)
4322*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4323*4bdc9457SAndroid Build Coastguard Worker }
4324*4bdc9457SAndroid Build Coastguard Worker }
4325*4bdc9457SAndroid Build Coastguard Worker }
4326*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_lt_8_2pass_fulltile)4327*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_lt_8_2pass_fulltile) {
4328*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4329*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
4330*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4331*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4332*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4333*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4334*4bdc9457SAndroid Build Coastguard Worker }
4335*4bdc9457SAndroid Build Coastguard Worker }
4336*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_lt_8_2pass_fulltile_with_qmax)4337*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_lt_8_2pass_fulltile_with_qmax) {
4338*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4339*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
4340*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4341*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4342*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4343*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4344*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4345*4bdc9457SAndroid Build Coastguard Worker }
4346*4bdc9457SAndroid Build Coastguard Worker }
4347*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_lt_8_2pass_fulltile_with_qmin)4348*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_lt_8_2pass_fulltile_with_qmin) {
4349*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4350*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
4351*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4352*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4353*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4354*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4355*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4356*4bdc9457SAndroid Build Coastguard Worker }
4357*4bdc9457SAndroid Build Coastguard Worker }
4358*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_lt_8_2pass_subtile)4359*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_lt_8_2pass_subtile) {
4360*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4361*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
4362*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4363*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4364*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4365*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4366*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4367*4bdc9457SAndroid Build Coastguard Worker }
4368*4bdc9457SAndroid Build Coastguard Worker }
4369*4bdc9457SAndroid Build Coastguard Worker }
4370*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_lt_8_multipass_fulltile)4371*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_lt_8_multipass_fulltile) {
4372*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4373*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
4374*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4375*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4376*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4377*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4378*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4379*4bdc9457SAndroid Build Coastguard Worker }
4380*4bdc9457SAndroid Build Coastguard Worker }
4381*4bdc9457SAndroid Build Coastguard Worker }
4382*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_lt_8_multipass_fulltile_with_input_stride)4383*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_lt_8_multipass_fulltile_with_input_stride) {
4384*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4385*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
4386*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4387*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4388*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4389*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4390*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
4391*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4392*4bdc9457SAndroid Build Coastguard Worker }
4393*4bdc9457SAndroid Build Coastguard Worker }
4394*4bdc9457SAndroid Build Coastguard Worker }
4395*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_gt_8_2pass_fulltile)4396*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_gt_8_2pass_fulltile) {
4397*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4398*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
4399*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4400*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4401*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4402*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4403*4bdc9457SAndroid Build Coastguard Worker }
4404*4bdc9457SAndroid Build Coastguard Worker }
4405*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_gt_8_2pass_fulltile_with_qmax)4406*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_gt_8_2pass_fulltile_with_qmax) {
4407*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4408*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
4409*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4410*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4411*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4412*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4413*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4414*4bdc9457SAndroid Build Coastguard Worker }
4415*4bdc9457SAndroid Build Coastguard Worker }
4416*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_gt_8_2pass_fulltile_with_qmin)4417*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_gt_8_2pass_fulltile_with_qmin) {
4418*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4419*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
4420*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4421*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4422*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4423*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4424*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4425*4bdc9457SAndroid Build Coastguard Worker }
4426*4bdc9457SAndroid Build Coastguard Worker }
4427*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_gt_8_2pass_subtile)4428*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_gt_8_2pass_subtile) {
4429*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4430*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
4431*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4432*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4433*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4434*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4435*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4436*4bdc9457SAndroid Build Coastguard Worker }
4437*4bdc9457SAndroid Build Coastguard Worker }
4438*4bdc9457SAndroid Build Coastguard Worker }
4439*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_gt_8_multipass_fulltile)4440*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_gt_8_multipass_fulltile) {
4441*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4442*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
4443*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
4444*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4445*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4446*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4447*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4448*4bdc9457SAndroid Build Coastguard Worker }
4449*4bdc9457SAndroid Build Coastguard Worker }
4450*4bdc9457SAndroid Build Coastguard Worker }
4451*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8,channels_gt_8_multipass_fulltile_with_input_stride)4452*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C8, channels_gt_8_multipass_fulltile_with_input_stride) {
4453*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4454*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
4455*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
4456*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4457*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4458*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4459*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
4460*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4461*4bdc9457SAndroid Build Coastguard Worker }
4462*4bdc9457SAndroid Build Coastguard Worker }
4463*4bdc9457SAndroid Build Coastguard Worker }
4464*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
4465*4bdc9457SAndroid Build Coastguard Worker
4466*4bdc9457SAndroid Build Coastguard Worker
4467*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_eq_16_2pass_fulltile)4468*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_eq_16_2pass_fulltile) {
4469*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4470*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4471*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4472*4bdc9457SAndroid Build Coastguard Worker .channels(16)
4473*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4474*4bdc9457SAndroid Build Coastguard Worker }
4475*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_eq_16_2pass_fulltile_with_input_stride)4476*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_eq_16_2pass_fulltile_with_input_stride) {
4477*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4478*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4479*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4480*4bdc9457SAndroid Build Coastguard Worker .channels(16)
4481*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
4482*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4483*4bdc9457SAndroid Build Coastguard Worker }
4484*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_eq_16_2pass_fulltile_with_qmax)4485*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_eq_16_2pass_fulltile_with_qmax) {
4486*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4487*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4488*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4489*4bdc9457SAndroid Build Coastguard Worker .channels(16)
4490*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4491*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4492*4bdc9457SAndroid Build Coastguard Worker }
4493*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_eq_16_2pass_fulltile_with_qmin)4494*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_eq_16_2pass_fulltile_with_qmin) {
4495*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4496*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4497*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4498*4bdc9457SAndroid Build Coastguard Worker .channels(16)
4499*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4500*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4501*4bdc9457SAndroid Build Coastguard Worker }
4502*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_eq_16_2pass_subtile)4503*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_eq_16_2pass_subtile) {
4504*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4505*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4506*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4507*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4508*4bdc9457SAndroid Build Coastguard Worker .channels(16)
4509*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4510*4bdc9457SAndroid Build Coastguard Worker }
4511*4bdc9457SAndroid Build Coastguard Worker }
4512*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_eq_16_2pass_subtile_with_input_stride)4513*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_eq_16_2pass_subtile_with_input_stride) {
4514*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4515*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4516*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4517*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4518*4bdc9457SAndroid Build Coastguard Worker .channels(16)
4519*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
4520*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4521*4bdc9457SAndroid Build Coastguard Worker }
4522*4bdc9457SAndroid Build Coastguard Worker }
4523*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_eq_16_multipass_fulltile)4524*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_eq_16_multipass_fulltile) {
4525*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4526*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4527*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4528*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4529*4bdc9457SAndroid Build Coastguard Worker .channels(16)
4530*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4531*4bdc9457SAndroid Build Coastguard Worker }
4532*4bdc9457SAndroid Build Coastguard Worker }
4533*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_eq_16_multipass_fulltile_with_input_stride)4534*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_eq_16_multipass_fulltile_with_input_stride) {
4535*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4536*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4537*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4538*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4539*4bdc9457SAndroid Build Coastguard Worker .channels(16)
4540*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
4541*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4542*4bdc9457SAndroid Build Coastguard Worker }
4543*4bdc9457SAndroid Build Coastguard Worker }
4544*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_div_16_2pass_fulltile)4545*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_div_16_2pass_fulltile) {
4546*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4547*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
4548*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4549*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4550*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4551*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4552*4bdc9457SAndroid Build Coastguard Worker }
4553*4bdc9457SAndroid Build Coastguard Worker }
4554*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_div_16_2pass_subtile)4555*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_div_16_2pass_subtile) {
4556*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4557*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
4558*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4559*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4560*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4561*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4562*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4563*4bdc9457SAndroid Build Coastguard Worker }
4564*4bdc9457SAndroid Build Coastguard Worker }
4565*4bdc9457SAndroid Build Coastguard Worker }
4566*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_div_16_multipass_fulltile)4567*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_div_16_multipass_fulltile) {
4568*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4569*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
4570*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4571*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4572*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4573*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4574*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4575*4bdc9457SAndroid Build Coastguard Worker }
4576*4bdc9457SAndroid Build Coastguard Worker }
4577*4bdc9457SAndroid Build Coastguard Worker }
4578*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_div_16_multipass_fulltile_with_input_stride)4579*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_div_16_multipass_fulltile_with_input_stride) {
4580*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4581*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
4582*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4583*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4584*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4585*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4586*4bdc9457SAndroid Build Coastguard Worker .input_stride(263)
4587*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4588*4bdc9457SAndroid Build Coastguard Worker }
4589*4bdc9457SAndroid Build Coastguard Worker }
4590*4bdc9457SAndroid Build Coastguard Worker }
4591*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_lt_16_2pass_fulltile)4592*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_lt_16_2pass_fulltile) {
4593*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4594*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
4595*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4596*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4597*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4598*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4599*4bdc9457SAndroid Build Coastguard Worker }
4600*4bdc9457SAndroid Build Coastguard Worker }
4601*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_lt_16_2pass_fulltile_with_qmax)4602*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_lt_16_2pass_fulltile_with_qmax) {
4603*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4604*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
4605*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4606*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4607*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4608*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4609*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4610*4bdc9457SAndroid Build Coastguard Worker }
4611*4bdc9457SAndroid Build Coastguard Worker }
4612*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_lt_16_2pass_fulltile_with_qmin)4613*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_lt_16_2pass_fulltile_with_qmin) {
4614*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4615*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
4616*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4617*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4618*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4619*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4620*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4621*4bdc9457SAndroid Build Coastguard Worker }
4622*4bdc9457SAndroid Build Coastguard Worker }
4623*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_lt_16_2pass_subtile)4624*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_lt_16_2pass_subtile) {
4625*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4626*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
4627*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4628*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4629*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4630*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4631*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4632*4bdc9457SAndroid Build Coastguard Worker }
4633*4bdc9457SAndroid Build Coastguard Worker }
4634*4bdc9457SAndroid Build Coastguard Worker }
4635*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_lt_16_multipass_fulltile)4636*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_lt_16_multipass_fulltile) {
4637*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4638*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
4639*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4640*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4641*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4642*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4643*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4644*4bdc9457SAndroid Build Coastguard Worker }
4645*4bdc9457SAndroid Build Coastguard Worker }
4646*4bdc9457SAndroid Build Coastguard Worker }
4647*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_lt_16_multipass_fulltile_with_input_stride)4648*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_lt_16_multipass_fulltile_with_input_stride) {
4649*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4650*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
4651*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4652*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4653*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4654*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4655*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
4656*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4657*4bdc9457SAndroid Build Coastguard Worker }
4658*4bdc9457SAndroid Build Coastguard Worker }
4659*4bdc9457SAndroid Build Coastguard Worker }
4660*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_gt_16_2pass_fulltile)4661*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_gt_16_2pass_fulltile) {
4662*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4663*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
4664*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4665*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4666*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4667*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4668*4bdc9457SAndroid Build Coastguard Worker }
4669*4bdc9457SAndroid Build Coastguard Worker }
4670*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_gt_16_2pass_fulltile_with_qmax)4671*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_gt_16_2pass_fulltile_with_qmax) {
4672*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4673*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
4674*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4675*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4676*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4677*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4678*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4679*4bdc9457SAndroid Build Coastguard Worker }
4680*4bdc9457SAndroid Build Coastguard Worker }
4681*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_gt_16_2pass_fulltile_with_qmin)4682*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_gt_16_2pass_fulltile_with_qmin) {
4683*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4684*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
4685*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4686*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4687*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4688*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4689*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4690*4bdc9457SAndroid Build Coastguard Worker }
4691*4bdc9457SAndroid Build Coastguard Worker }
4692*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_gt_16_2pass_subtile)4693*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_gt_16_2pass_subtile) {
4694*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4695*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
4696*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4697*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4698*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4699*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4700*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4701*4bdc9457SAndroid Build Coastguard Worker }
4702*4bdc9457SAndroid Build Coastguard Worker }
4703*4bdc9457SAndroid Build Coastguard Worker }
4704*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_gt_16_multipass_fulltile)4705*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_gt_16_multipass_fulltile) {
4706*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4707*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
4708*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
4709*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4710*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4711*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4712*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4713*4bdc9457SAndroid Build Coastguard Worker }
4714*4bdc9457SAndroid Build Coastguard Worker }
4715*4bdc9457SAndroid Build Coastguard Worker }
4716*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16,channels_gt_16_multipass_fulltile_with_input_stride)4717*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C16, channels_gt_16_multipass_fulltile_with_input_stride) {
4718*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4719*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
4720*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
4721*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4722*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4723*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4724*4bdc9457SAndroid Build Coastguard Worker .input_stride(47)
4725*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4726*4bdc9457SAndroid Build Coastguard Worker }
4727*4bdc9457SAndroid Build Coastguard Worker }
4728*4bdc9457SAndroid Build Coastguard Worker }
4729*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
4730*4bdc9457SAndroid Build Coastguard Worker
4731*4bdc9457SAndroid Build Coastguard Worker
4732*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_eq_24_2pass_fulltile)4733*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_eq_24_2pass_fulltile) {
4734*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4735*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4736*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4737*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4738*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4739*4bdc9457SAndroid Build Coastguard Worker }
4740*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_eq_24_2pass_fulltile_with_input_stride)4741*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_eq_24_2pass_fulltile_with_input_stride) {
4742*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4743*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4744*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4745*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4746*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
4747*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4748*4bdc9457SAndroid Build Coastguard Worker }
4749*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_eq_24_2pass_fulltile_with_qmax)4750*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_eq_24_2pass_fulltile_with_qmax) {
4751*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4752*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4753*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4754*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4755*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4756*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4757*4bdc9457SAndroid Build Coastguard Worker }
4758*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_eq_24_2pass_fulltile_with_qmin)4759*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_eq_24_2pass_fulltile_with_qmin) {
4760*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4761*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4762*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4763*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4764*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4765*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4766*4bdc9457SAndroid Build Coastguard Worker }
4767*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_eq_24_2pass_subtile)4768*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_eq_24_2pass_subtile) {
4769*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4770*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4771*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4772*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4773*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4774*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4775*4bdc9457SAndroid Build Coastguard Worker }
4776*4bdc9457SAndroid Build Coastguard Worker }
4777*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_eq_24_2pass_subtile_with_input_stride)4778*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_eq_24_2pass_subtile_with_input_stride) {
4779*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4780*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4781*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4782*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4783*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4784*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
4785*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4786*4bdc9457SAndroid Build Coastguard Worker }
4787*4bdc9457SAndroid Build Coastguard Worker }
4788*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_eq_24_multipass_fulltile)4789*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_eq_24_multipass_fulltile) {
4790*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4791*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4792*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4793*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4794*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4795*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4796*4bdc9457SAndroid Build Coastguard Worker }
4797*4bdc9457SAndroid Build Coastguard Worker }
4798*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_eq_24_multipass_fulltile_with_input_stride)4799*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_eq_24_multipass_fulltile_with_input_stride) {
4800*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4801*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4802*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4803*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4804*4bdc9457SAndroid Build Coastguard Worker .channels(24)
4805*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
4806*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4807*4bdc9457SAndroid Build Coastguard Worker }
4808*4bdc9457SAndroid Build Coastguard Worker }
4809*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_div_24_2pass_fulltile)4810*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_div_24_2pass_fulltile) {
4811*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4812*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
4813*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4814*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4815*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4816*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4817*4bdc9457SAndroid Build Coastguard Worker }
4818*4bdc9457SAndroid Build Coastguard Worker }
4819*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_div_24_2pass_subtile)4820*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_div_24_2pass_subtile) {
4821*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4822*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
4823*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4824*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4825*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4826*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4827*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4828*4bdc9457SAndroid Build Coastguard Worker }
4829*4bdc9457SAndroid Build Coastguard Worker }
4830*4bdc9457SAndroid Build Coastguard Worker }
4831*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_div_24_multipass_fulltile)4832*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_div_24_multipass_fulltile) {
4833*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4834*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
4835*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4836*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4837*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4838*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4839*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4840*4bdc9457SAndroid Build Coastguard Worker }
4841*4bdc9457SAndroid Build Coastguard Worker }
4842*4bdc9457SAndroid Build Coastguard Worker }
4843*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_div_24_multipass_fulltile_with_input_stride)4844*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_div_24_multipass_fulltile_with_input_stride) {
4845*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4846*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
4847*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4848*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4849*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4850*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4851*4bdc9457SAndroid Build Coastguard Worker .input_stride(389)
4852*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4853*4bdc9457SAndroid Build Coastguard Worker }
4854*4bdc9457SAndroid Build Coastguard Worker }
4855*4bdc9457SAndroid Build Coastguard Worker }
4856*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_lt_24_2pass_fulltile)4857*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_lt_24_2pass_fulltile) {
4858*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4859*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4860*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4861*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4862*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4863*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4864*4bdc9457SAndroid Build Coastguard Worker }
4865*4bdc9457SAndroid Build Coastguard Worker }
4866*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_lt_24_2pass_fulltile_with_qmax)4867*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_lt_24_2pass_fulltile_with_qmax) {
4868*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4869*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4870*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4871*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4872*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4873*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4874*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4875*4bdc9457SAndroid Build Coastguard Worker }
4876*4bdc9457SAndroid Build Coastguard Worker }
4877*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_lt_24_2pass_fulltile_with_qmin)4878*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_lt_24_2pass_fulltile_with_qmin) {
4879*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4880*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4881*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4882*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4883*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4884*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4885*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4886*4bdc9457SAndroid Build Coastguard Worker }
4887*4bdc9457SAndroid Build Coastguard Worker }
4888*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_lt_24_2pass_subtile)4889*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_lt_24_2pass_subtile) {
4890*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4891*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4892*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4893*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4894*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4895*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4896*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4897*4bdc9457SAndroid Build Coastguard Worker }
4898*4bdc9457SAndroid Build Coastguard Worker }
4899*4bdc9457SAndroid Build Coastguard Worker }
4900*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_lt_24_multipass_fulltile)4901*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_lt_24_multipass_fulltile) {
4902*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4903*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4904*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4905*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4906*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4907*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4908*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4909*4bdc9457SAndroid Build Coastguard Worker }
4910*4bdc9457SAndroid Build Coastguard Worker }
4911*4bdc9457SAndroid Build Coastguard Worker }
4912*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_lt_24_multipass_fulltile_with_input_stride)4913*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_lt_24_multipass_fulltile_with_input_stride) {
4914*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4915*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
4916*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
4917*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4918*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4919*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4920*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
4921*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4922*4bdc9457SAndroid Build Coastguard Worker }
4923*4bdc9457SAndroid Build Coastguard Worker }
4924*4bdc9457SAndroid Build Coastguard Worker }
4925*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_gt_24_2pass_fulltile)4926*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_gt_24_2pass_fulltile) {
4927*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4928*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4929*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4930*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4931*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4932*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4933*4bdc9457SAndroid Build Coastguard Worker }
4934*4bdc9457SAndroid Build Coastguard Worker }
4935*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_gt_24_2pass_fulltile_with_qmax)4936*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_gt_24_2pass_fulltile_with_qmax) {
4937*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4938*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4939*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4940*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4941*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4942*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
4943*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4944*4bdc9457SAndroid Build Coastguard Worker }
4945*4bdc9457SAndroid Build Coastguard Worker }
4946*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_gt_24_2pass_fulltile_with_qmin)4947*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_gt_24_2pass_fulltile_with_qmin) {
4948*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4949*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4950*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4951*4bdc9457SAndroid Build Coastguard Worker .rows(14)
4952*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4953*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
4954*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4955*4bdc9457SAndroid Build Coastguard Worker }
4956*4bdc9457SAndroid Build Coastguard Worker }
4957*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_gt_24_2pass_subtile)4958*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_gt_24_2pass_subtile) {
4959*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4960*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4961*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
4962*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4963*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4964*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4965*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4966*4bdc9457SAndroid Build Coastguard Worker }
4967*4bdc9457SAndroid Build Coastguard Worker }
4968*4bdc9457SAndroid Build Coastguard Worker }
4969*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_gt_24_multipass_fulltile)4970*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_gt_24_multipass_fulltile) {
4971*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4972*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4973*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
4974*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4975*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4976*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4977*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4978*4bdc9457SAndroid Build Coastguard Worker }
4979*4bdc9457SAndroid Build Coastguard Worker }
4980*4bdc9457SAndroid Build Coastguard Worker }
4981*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24,channels_gt_24_multipass_fulltile_with_input_stride)4982*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SSE41_C24, channels_gt_24_multipass_fulltile_with_input_stride) {
4983*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
4984*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
4985*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
4986*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
4987*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
4988*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
4989*4bdc9457SAndroid Build Coastguard Worker .input_stride(61)
4990*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
4991*4bdc9457SAndroid Build Coastguard Worker }
4992*4bdc9457SAndroid Build Coastguard Worker }
4993*4bdc9457SAndroid Build Coastguard Worker }
4994*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
4995*4bdc9457SAndroid Build Coastguard Worker
4996*4bdc9457SAndroid Build Coastguard Worker
4997*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_eq_8_fulltile)4998*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_eq_8_fulltile) {
4999*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5000*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5001*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5002*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5003*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5004*4bdc9457SAndroid Build Coastguard Worker }
5005*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_eq_8_subtile)5006*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_eq_8_subtile) {
5007*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5008*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5009*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5010*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5011*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5012*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5013*4bdc9457SAndroid Build Coastguard Worker }
5014*4bdc9457SAndroid Build Coastguard Worker }
5015*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_eq_8_fulltile_with_input_stride)5016*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_eq_8_fulltile_with_input_stride) {
5017*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5018*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5019*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5020*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5021*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
5022*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5023*4bdc9457SAndroid Build Coastguard Worker }
5024*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_eq_8_fulltile_with_qmax)5025*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_eq_8_fulltile_with_qmax) {
5026*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5027*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5028*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5029*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5030*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5031*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5032*4bdc9457SAndroid Build Coastguard Worker }
5033*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_eq_8_fulltile_with_qmin)5034*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_eq_8_fulltile_with_qmin) {
5035*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5036*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5037*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5038*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5039*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5040*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5041*4bdc9457SAndroid Build Coastguard Worker }
5042*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_div_8_fulltile)5043*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_div_8_fulltile) {
5044*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5045*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
5046*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5047*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5048*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5049*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5050*4bdc9457SAndroid Build Coastguard Worker }
5051*4bdc9457SAndroid Build Coastguard Worker }
5052*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_div_8_subtile)5053*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_div_8_subtile) {
5054*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5055*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
5056*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5057*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5058*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5059*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5060*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5061*4bdc9457SAndroid Build Coastguard Worker }
5062*4bdc9457SAndroid Build Coastguard Worker }
5063*4bdc9457SAndroid Build Coastguard Worker }
5064*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_lt_8_fulltile)5065*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_lt_8_fulltile) {
5066*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5067*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
5068*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5069*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5070*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5071*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5072*4bdc9457SAndroid Build Coastguard Worker }
5073*4bdc9457SAndroid Build Coastguard Worker }
5074*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_lt_8_subtile)5075*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_lt_8_subtile) {
5076*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5077*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
5078*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5079*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5080*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5081*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5082*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5083*4bdc9457SAndroid Build Coastguard Worker }
5084*4bdc9457SAndroid Build Coastguard Worker }
5085*4bdc9457SAndroid Build Coastguard Worker }
5086*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_lt_8_fulltile_with_qmax)5087*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_lt_8_fulltile_with_qmax) {
5088*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5089*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
5090*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5091*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5092*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5093*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5094*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5095*4bdc9457SAndroid Build Coastguard Worker }
5096*4bdc9457SAndroid Build Coastguard Worker }
5097*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_lt_8_fulltile_with_qmin)5098*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_lt_8_fulltile_with_qmin) {
5099*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5100*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
5101*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5102*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5103*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5104*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5105*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5106*4bdc9457SAndroid Build Coastguard Worker }
5107*4bdc9457SAndroid Build Coastguard Worker }
5108*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_gt_8_fulltile)5109*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_gt_8_fulltile) {
5110*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5111*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
5112*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5113*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5114*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5115*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5116*4bdc9457SAndroid Build Coastguard Worker }
5117*4bdc9457SAndroid Build Coastguard Worker }
5118*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_gt_8_subtile)5119*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_gt_8_subtile) {
5120*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5121*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
5122*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5123*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5124*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5125*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5126*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5127*4bdc9457SAndroid Build Coastguard Worker }
5128*4bdc9457SAndroid Build Coastguard Worker }
5129*4bdc9457SAndroid Build Coastguard Worker }
5130*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_gt_8_fulltile_with_qmax)5131*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_gt_8_fulltile_with_qmax) {
5132*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5133*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
5134*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5135*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5136*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5137*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5138*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5139*4bdc9457SAndroid Build Coastguard Worker }
5140*4bdc9457SAndroid Build Coastguard Worker }
5141*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8,channels_gt_8_fulltile_with_qmin)5142*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C8, channels_gt_8_fulltile_with_qmin) {
5143*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5144*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
5145*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5146*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5147*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5148*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5149*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c8, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5150*4bdc9457SAndroid Build Coastguard Worker }
5151*4bdc9457SAndroid Build Coastguard Worker }
5152*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
5153*4bdc9457SAndroid Build Coastguard Worker
5154*4bdc9457SAndroid Build Coastguard Worker
5155*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_eq_16_fulltile)5156*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_eq_16_fulltile) {
5157*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5158*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5159*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5160*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5161*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5162*4bdc9457SAndroid Build Coastguard Worker }
5163*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_eq_16_subtile)5164*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_eq_16_subtile) {
5165*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5166*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5167*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5168*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5169*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5170*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5171*4bdc9457SAndroid Build Coastguard Worker }
5172*4bdc9457SAndroid Build Coastguard Worker }
5173*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_eq_16_fulltile_with_input_stride)5174*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_eq_16_fulltile_with_input_stride) {
5175*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5176*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5177*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5178*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5179*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
5180*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5181*4bdc9457SAndroid Build Coastguard Worker }
5182*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_eq_16_fulltile_with_qmax)5183*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_eq_16_fulltile_with_qmax) {
5184*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5185*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5186*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5187*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5188*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5189*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5190*4bdc9457SAndroid Build Coastguard Worker }
5191*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_eq_16_fulltile_with_qmin)5192*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_eq_16_fulltile_with_qmin) {
5193*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5194*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5195*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5196*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5197*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5198*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5199*4bdc9457SAndroid Build Coastguard Worker }
5200*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_div_16_fulltile)5201*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_div_16_fulltile) {
5202*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5203*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
5204*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5205*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5206*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5207*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5208*4bdc9457SAndroid Build Coastguard Worker }
5209*4bdc9457SAndroid Build Coastguard Worker }
5210*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_div_16_subtile)5211*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_div_16_subtile) {
5212*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5213*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
5214*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5215*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5216*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5217*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5218*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5219*4bdc9457SAndroid Build Coastguard Worker }
5220*4bdc9457SAndroid Build Coastguard Worker }
5221*4bdc9457SAndroid Build Coastguard Worker }
5222*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_lt_16_fulltile)5223*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_lt_16_fulltile) {
5224*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5225*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
5226*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5227*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5228*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5229*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5230*4bdc9457SAndroid Build Coastguard Worker }
5231*4bdc9457SAndroid Build Coastguard Worker }
5232*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_lt_16_subtile)5233*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_lt_16_subtile) {
5234*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5235*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
5236*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5237*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5238*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5239*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5240*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5241*4bdc9457SAndroid Build Coastguard Worker }
5242*4bdc9457SAndroid Build Coastguard Worker }
5243*4bdc9457SAndroid Build Coastguard Worker }
5244*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_lt_16_fulltile_with_qmax)5245*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_lt_16_fulltile_with_qmax) {
5246*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5247*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
5248*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5249*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5250*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5251*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5252*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5253*4bdc9457SAndroid Build Coastguard Worker }
5254*4bdc9457SAndroid Build Coastguard Worker }
5255*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_lt_16_fulltile_with_qmin)5256*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_lt_16_fulltile_with_qmin) {
5257*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5258*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
5259*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5260*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5261*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5262*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5263*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5264*4bdc9457SAndroid Build Coastguard Worker }
5265*4bdc9457SAndroid Build Coastguard Worker }
5266*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_gt_16_fulltile)5267*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_gt_16_fulltile) {
5268*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5269*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
5270*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5271*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5272*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5273*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5274*4bdc9457SAndroid Build Coastguard Worker }
5275*4bdc9457SAndroid Build Coastguard Worker }
5276*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_gt_16_subtile)5277*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_gt_16_subtile) {
5278*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5279*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
5280*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5281*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5282*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5283*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5284*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5285*4bdc9457SAndroid Build Coastguard Worker }
5286*4bdc9457SAndroid Build Coastguard Worker }
5287*4bdc9457SAndroid Build Coastguard Worker }
5288*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_gt_16_fulltile_with_qmax)5289*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_gt_16_fulltile_with_qmax) {
5290*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5291*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
5292*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5293*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5294*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5295*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5296*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5297*4bdc9457SAndroid Build Coastguard Worker }
5298*4bdc9457SAndroid Build Coastguard Worker }
5299*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16,channels_gt_16_fulltile_with_qmin)5300*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C16, channels_gt_16_fulltile_with_qmin) {
5301*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5302*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
5303*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5304*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5305*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5306*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5307*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c16, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5308*4bdc9457SAndroid Build Coastguard Worker }
5309*4bdc9457SAndroid Build Coastguard Worker }
5310*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
5311*4bdc9457SAndroid Build Coastguard Worker
5312*4bdc9457SAndroid Build Coastguard Worker
5313*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_eq_24_fulltile)5314*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_eq_24_fulltile) {
5315*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5316*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5317*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5318*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5319*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5320*4bdc9457SAndroid Build Coastguard Worker }
5321*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_eq_24_subtile)5322*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_eq_24_subtile) {
5323*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5324*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5325*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5326*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5327*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5328*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5329*4bdc9457SAndroid Build Coastguard Worker }
5330*4bdc9457SAndroid Build Coastguard Worker }
5331*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_eq_24_fulltile_with_input_stride)5332*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_eq_24_fulltile_with_input_stride) {
5333*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5334*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5335*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5336*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5337*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
5338*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5339*4bdc9457SAndroid Build Coastguard Worker }
5340*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_eq_24_fulltile_with_qmax)5341*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_eq_24_fulltile_with_qmax) {
5342*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5343*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5344*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5345*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5346*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5347*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5348*4bdc9457SAndroid Build Coastguard Worker }
5349*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_eq_24_fulltile_with_qmin)5350*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_eq_24_fulltile_with_qmin) {
5351*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5352*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5353*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5354*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5355*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5356*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5357*4bdc9457SAndroid Build Coastguard Worker }
5358*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_div_24_fulltile)5359*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_div_24_fulltile) {
5360*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5361*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
5362*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5363*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5364*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5365*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5366*4bdc9457SAndroid Build Coastguard Worker }
5367*4bdc9457SAndroid Build Coastguard Worker }
5368*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_div_24_subtile)5369*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_div_24_subtile) {
5370*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5371*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
5372*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5373*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5374*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5375*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5376*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5377*4bdc9457SAndroid Build Coastguard Worker }
5378*4bdc9457SAndroid Build Coastguard Worker }
5379*4bdc9457SAndroid Build Coastguard Worker }
5380*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_lt_24_fulltile)5381*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_lt_24_fulltile) {
5382*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5383*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
5384*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5385*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5386*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5387*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5388*4bdc9457SAndroid Build Coastguard Worker }
5389*4bdc9457SAndroid Build Coastguard Worker }
5390*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_lt_24_subtile)5391*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_lt_24_subtile) {
5392*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5393*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
5394*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5395*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5396*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5397*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5398*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5399*4bdc9457SAndroid Build Coastguard Worker }
5400*4bdc9457SAndroid Build Coastguard Worker }
5401*4bdc9457SAndroid Build Coastguard Worker }
5402*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_lt_24_fulltile_with_qmax)5403*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_lt_24_fulltile_with_qmax) {
5404*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5405*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
5406*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5407*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5408*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5409*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5410*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5411*4bdc9457SAndroid Build Coastguard Worker }
5412*4bdc9457SAndroid Build Coastguard Worker }
5413*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_lt_24_fulltile_with_qmin)5414*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_lt_24_fulltile_with_qmin) {
5415*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5416*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
5417*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5418*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5419*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5420*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5421*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5422*4bdc9457SAndroid Build Coastguard Worker }
5423*4bdc9457SAndroid Build Coastguard Worker }
5424*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_gt_24_fulltile)5425*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_gt_24_fulltile) {
5426*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5427*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
5428*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5429*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5430*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5431*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5432*4bdc9457SAndroid Build Coastguard Worker }
5433*4bdc9457SAndroid Build Coastguard Worker }
5434*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_gt_24_subtile)5435*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_gt_24_subtile) {
5436*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5437*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
5438*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5439*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5440*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5441*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5442*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5443*4bdc9457SAndroid Build Coastguard Worker }
5444*4bdc9457SAndroid Build Coastguard Worker }
5445*4bdc9457SAndroid Build Coastguard Worker }
5446*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_gt_24_fulltile_with_qmax)5447*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_gt_24_fulltile_with_qmax) {
5448*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5449*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
5450*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5451*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5452*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5453*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5454*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5455*4bdc9457SAndroid Build Coastguard Worker }
5456*4bdc9457SAndroid Build Coastguard Worker }
5457*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24,channels_gt_24_fulltile_with_qmin)5458*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE2_C24, channels_gt_24_fulltile_with_qmin) {
5459*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2;
5460*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
5461*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5462*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5463*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5464*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5465*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse2_c24, xnn_init_qu8_avgpool_minmax_fp32_sse2_params, xnn_qu8_requantize_fp32);
5466*4bdc9457SAndroid Build Coastguard Worker }
5467*4bdc9457SAndroid Build Coastguard Worker }
5468*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
5469*4bdc9457SAndroid Build Coastguard Worker
5470*4bdc9457SAndroid Build Coastguard Worker
5471*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_eq_8_fulltile)5472*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_eq_8_fulltile) {
5473*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5474*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5475*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5476*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5477*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5478*4bdc9457SAndroid Build Coastguard Worker }
5479*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_eq_8_subtile)5480*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_eq_8_subtile) {
5481*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5482*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5483*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5484*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5485*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5486*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5487*4bdc9457SAndroid Build Coastguard Worker }
5488*4bdc9457SAndroid Build Coastguard Worker }
5489*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_eq_8_fulltile_with_input_stride)5490*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_eq_8_fulltile_with_input_stride) {
5491*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5492*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5493*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5494*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5495*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
5496*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5497*4bdc9457SAndroid Build Coastguard Worker }
5498*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_eq_8_fulltile_with_qmax)5499*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_eq_8_fulltile_with_qmax) {
5500*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5501*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5502*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5503*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5504*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5505*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5506*4bdc9457SAndroid Build Coastguard Worker }
5507*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_eq_8_fulltile_with_qmin)5508*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_eq_8_fulltile_with_qmin) {
5509*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5510*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5511*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5512*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5513*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5514*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5515*4bdc9457SAndroid Build Coastguard Worker }
5516*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_div_8_fulltile)5517*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_div_8_fulltile) {
5518*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5519*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
5520*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5521*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5522*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5523*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5524*4bdc9457SAndroid Build Coastguard Worker }
5525*4bdc9457SAndroid Build Coastguard Worker }
5526*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_div_8_subtile)5527*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_div_8_subtile) {
5528*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5529*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
5530*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5531*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5532*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5533*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5534*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5535*4bdc9457SAndroid Build Coastguard Worker }
5536*4bdc9457SAndroid Build Coastguard Worker }
5537*4bdc9457SAndroid Build Coastguard Worker }
5538*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_lt_8_fulltile)5539*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_lt_8_fulltile) {
5540*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5541*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
5542*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5543*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5544*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5545*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5546*4bdc9457SAndroid Build Coastguard Worker }
5547*4bdc9457SAndroid Build Coastguard Worker }
5548*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_lt_8_subtile)5549*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_lt_8_subtile) {
5550*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5551*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
5552*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5553*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5554*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5555*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5556*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5557*4bdc9457SAndroid Build Coastguard Worker }
5558*4bdc9457SAndroid Build Coastguard Worker }
5559*4bdc9457SAndroid Build Coastguard Worker }
5560*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_lt_8_fulltile_with_qmax)5561*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_lt_8_fulltile_with_qmax) {
5562*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5563*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
5564*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5565*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5566*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5567*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5568*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5569*4bdc9457SAndroid Build Coastguard Worker }
5570*4bdc9457SAndroid Build Coastguard Worker }
5571*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_lt_8_fulltile_with_qmin)5572*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_lt_8_fulltile_with_qmin) {
5573*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5574*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
5575*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5576*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5577*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5578*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5579*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5580*4bdc9457SAndroid Build Coastguard Worker }
5581*4bdc9457SAndroid Build Coastguard Worker }
5582*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_gt_8_fulltile)5583*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_gt_8_fulltile) {
5584*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5585*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
5586*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5587*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5588*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5589*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5590*4bdc9457SAndroid Build Coastguard Worker }
5591*4bdc9457SAndroid Build Coastguard Worker }
5592*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_gt_8_subtile)5593*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_gt_8_subtile) {
5594*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5595*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
5596*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5597*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5598*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5599*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5600*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5601*4bdc9457SAndroid Build Coastguard Worker }
5602*4bdc9457SAndroid Build Coastguard Worker }
5603*4bdc9457SAndroid Build Coastguard Worker }
5604*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_gt_8_fulltile_with_qmax)5605*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_gt_8_fulltile_with_qmax) {
5606*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5607*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
5608*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5609*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5610*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5611*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5612*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5613*4bdc9457SAndroid Build Coastguard Worker }
5614*4bdc9457SAndroid Build Coastguard Worker }
5615*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8,channels_gt_8_fulltile_with_qmin)5616*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C8, channels_gt_8_fulltile_with_qmin) {
5617*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5618*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
5619*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5620*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5621*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5622*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5623*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c8, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5624*4bdc9457SAndroid Build Coastguard Worker }
5625*4bdc9457SAndroid Build Coastguard Worker }
5626*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
5627*4bdc9457SAndroid Build Coastguard Worker
5628*4bdc9457SAndroid Build Coastguard Worker
5629*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_eq_16_fulltile)5630*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_eq_16_fulltile) {
5631*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5632*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5633*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5634*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5635*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5636*4bdc9457SAndroid Build Coastguard Worker }
5637*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_eq_16_subtile)5638*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_eq_16_subtile) {
5639*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5640*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5641*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5642*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5643*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5644*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5645*4bdc9457SAndroid Build Coastguard Worker }
5646*4bdc9457SAndroid Build Coastguard Worker }
5647*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_eq_16_fulltile_with_input_stride)5648*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_eq_16_fulltile_with_input_stride) {
5649*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5650*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5651*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5652*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5653*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
5654*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5655*4bdc9457SAndroid Build Coastguard Worker }
5656*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_eq_16_fulltile_with_qmax)5657*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_eq_16_fulltile_with_qmax) {
5658*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5659*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5660*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5661*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5662*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5663*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5664*4bdc9457SAndroid Build Coastguard Worker }
5665*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_eq_16_fulltile_with_qmin)5666*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_eq_16_fulltile_with_qmin) {
5667*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5668*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5669*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5670*4bdc9457SAndroid Build Coastguard Worker .channels(16)
5671*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5672*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5673*4bdc9457SAndroid Build Coastguard Worker }
5674*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_div_16_fulltile)5675*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_div_16_fulltile) {
5676*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5677*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
5678*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5679*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5680*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5681*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5682*4bdc9457SAndroid Build Coastguard Worker }
5683*4bdc9457SAndroid Build Coastguard Worker }
5684*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_div_16_subtile)5685*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_div_16_subtile) {
5686*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5687*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
5688*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5689*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5690*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5691*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5692*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5693*4bdc9457SAndroid Build Coastguard Worker }
5694*4bdc9457SAndroid Build Coastguard Worker }
5695*4bdc9457SAndroid Build Coastguard Worker }
5696*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_lt_16_fulltile)5697*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_lt_16_fulltile) {
5698*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5699*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
5700*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5701*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5702*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5703*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5704*4bdc9457SAndroid Build Coastguard Worker }
5705*4bdc9457SAndroid Build Coastguard Worker }
5706*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_lt_16_subtile)5707*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_lt_16_subtile) {
5708*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5709*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
5710*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5711*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5712*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5713*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5714*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5715*4bdc9457SAndroid Build Coastguard Worker }
5716*4bdc9457SAndroid Build Coastguard Worker }
5717*4bdc9457SAndroid Build Coastguard Worker }
5718*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_lt_16_fulltile_with_qmax)5719*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_lt_16_fulltile_with_qmax) {
5720*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5721*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
5722*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5723*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5724*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5725*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5726*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5727*4bdc9457SAndroid Build Coastguard Worker }
5728*4bdc9457SAndroid Build Coastguard Worker }
5729*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_lt_16_fulltile_with_qmin)5730*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_lt_16_fulltile_with_qmin) {
5731*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5732*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
5733*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5734*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5735*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5736*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5737*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5738*4bdc9457SAndroid Build Coastguard Worker }
5739*4bdc9457SAndroid Build Coastguard Worker }
5740*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_gt_16_fulltile)5741*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_gt_16_fulltile) {
5742*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5743*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
5744*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5745*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5746*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5747*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5748*4bdc9457SAndroid Build Coastguard Worker }
5749*4bdc9457SAndroid Build Coastguard Worker }
5750*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_gt_16_subtile)5751*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_gt_16_subtile) {
5752*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5753*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
5754*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5755*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5756*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5757*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5758*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5759*4bdc9457SAndroid Build Coastguard Worker }
5760*4bdc9457SAndroid Build Coastguard Worker }
5761*4bdc9457SAndroid Build Coastguard Worker }
5762*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_gt_16_fulltile_with_qmax)5763*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_gt_16_fulltile_with_qmax) {
5764*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5765*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
5766*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5767*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5768*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5769*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5770*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5771*4bdc9457SAndroid Build Coastguard Worker }
5772*4bdc9457SAndroid Build Coastguard Worker }
5773*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16,channels_gt_16_fulltile_with_qmin)5774*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C16, channels_gt_16_fulltile_with_qmin) {
5775*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5776*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
5777*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5778*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5779*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5780*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5781*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c16, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5782*4bdc9457SAndroid Build Coastguard Worker }
5783*4bdc9457SAndroid Build Coastguard Worker }
5784*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
5785*4bdc9457SAndroid Build Coastguard Worker
5786*4bdc9457SAndroid Build Coastguard Worker
5787*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_eq_24_fulltile)5788*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_eq_24_fulltile) {
5789*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5790*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5791*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5792*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5793*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5794*4bdc9457SAndroid Build Coastguard Worker }
5795*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_eq_24_subtile)5796*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_eq_24_subtile) {
5797*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5798*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5799*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5800*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5801*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5802*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5803*4bdc9457SAndroid Build Coastguard Worker }
5804*4bdc9457SAndroid Build Coastguard Worker }
5805*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_eq_24_fulltile_with_input_stride)5806*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_eq_24_fulltile_with_input_stride) {
5807*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5808*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5809*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5810*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5811*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
5812*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5813*4bdc9457SAndroid Build Coastguard Worker }
5814*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_eq_24_fulltile_with_qmax)5815*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_eq_24_fulltile_with_qmax) {
5816*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5817*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5818*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5819*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5820*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5821*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5822*4bdc9457SAndroid Build Coastguard Worker }
5823*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_eq_24_fulltile_with_qmin)5824*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_eq_24_fulltile_with_qmin) {
5825*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5826*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5827*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5828*4bdc9457SAndroid Build Coastguard Worker .channels(24)
5829*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5830*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5831*4bdc9457SAndroid Build Coastguard Worker }
5832*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_div_24_fulltile)5833*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_div_24_fulltile) {
5834*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5835*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
5836*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5837*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5838*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5839*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5840*4bdc9457SAndroid Build Coastguard Worker }
5841*4bdc9457SAndroid Build Coastguard Worker }
5842*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_div_24_subtile)5843*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_div_24_subtile) {
5844*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5845*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
5846*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5847*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5848*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5849*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5850*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5851*4bdc9457SAndroid Build Coastguard Worker }
5852*4bdc9457SAndroid Build Coastguard Worker }
5853*4bdc9457SAndroid Build Coastguard Worker }
5854*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_lt_24_fulltile)5855*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_lt_24_fulltile) {
5856*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5857*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
5858*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5859*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5860*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5861*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5862*4bdc9457SAndroid Build Coastguard Worker }
5863*4bdc9457SAndroid Build Coastguard Worker }
5864*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_lt_24_subtile)5865*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_lt_24_subtile) {
5866*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5867*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
5868*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5869*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5870*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5871*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5872*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5873*4bdc9457SAndroid Build Coastguard Worker }
5874*4bdc9457SAndroid Build Coastguard Worker }
5875*4bdc9457SAndroid Build Coastguard Worker }
5876*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_lt_24_fulltile_with_qmax)5877*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_lt_24_fulltile_with_qmax) {
5878*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5879*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
5880*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5881*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5882*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5883*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5884*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5885*4bdc9457SAndroid Build Coastguard Worker }
5886*4bdc9457SAndroid Build Coastguard Worker }
5887*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_lt_24_fulltile_with_qmin)5888*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_lt_24_fulltile_with_qmin) {
5889*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5890*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
5891*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5892*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5893*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5894*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5895*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5896*4bdc9457SAndroid Build Coastguard Worker }
5897*4bdc9457SAndroid Build Coastguard Worker }
5898*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_gt_24_fulltile)5899*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_gt_24_fulltile) {
5900*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5901*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
5902*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5903*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5904*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5905*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5906*4bdc9457SAndroid Build Coastguard Worker }
5907*4bdc9457SAndroid Build Coastguard Worker }
5908*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_gt_24_subtile)5909*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_gt_24_subtile) {
5910*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5911*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
5912*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
5913*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5914*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5915*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5916*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5917*4bdc9457SAndroid Build Coastguard Worker }
5918*4bdc9457SAndroid Build Coastguard Worker }
5919*4bdc9457SAndroid Build Coastguard Worker }
5920*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_gt_24_fulltile_with_qmax)5921*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_gt_24_fulltile_with_qmax) {
5922*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5923*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
5924*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5925*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5926*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5927*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5928*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5929*4bdc9457SAndroid Build Coastguard Worker }
5930*4bdc9457SAndroid Build Coastguard Worker }
5931*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24,channels_gt_24_fulltile_with_qmin)5932*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SSE41_C24, channels_gt_24_fulltile_with_qmin) {
5933*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE41;
5934*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
5935*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5936*4bdc9457SAndroid Build Coastguard Worker .rows(7)
5937*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
5938*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5939*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__sse41_c24, xnn_init_qu8_avgpool_minmax_fp32_sse4_params, xnn_qu8_requantize_fp32);
5940*4bdc9457SAndroid Build Coastguard Worker }
5941*4bdc9457SAndroid Build Coastguard Worker }
5942*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
5943*4bdc9457SAndroid Build Coastguard Worker
5944*4bdc9457SAndroid Build Coastguard Worker
5945*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_eq_8_2pass_fulltile)5946*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_eq_8_2pass_fulltile) {
5947*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5948*4bdc9457SAndroid Build Coastguard Worker .rows(14)
5949*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5950*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
5951*4bdc9457SAndroid Build Coastguard Worker }
5952*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_eq_8_2pass_fulltile_with_input_stride)5953*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_eq_8_2pass_fulltile_with_input_stride) {
5954*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5955*4bdc9457SAndroid Build Coastguard Worker .rows(14)
5956*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5957*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
5958*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
5959*4bdc9457SAndroid Build Coastguard Worker }
5960*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_eq_8_2pass_fulltile_with_qmax)5961*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_eq_8_2pass_fulltile_with_qmax) {
5962*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5963*4bdc9457SAndroid Build Coastguard Worker .rows(14)
5964*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5965*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
5966*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
5967*4bdc9457SAndroid Build Coastguard Worker }
5968*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_eq_8_2pass_fulltile_with_qmin)5969*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_eq_8_2pass_fulltile_with_qmin) {
5970*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5971*4bdc9457SAndroid Build Coastguard Worker .rows(14)
5972*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5973*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
5974*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
5975*4bdc9457SAndroid Build Coastguard Worker }
5976*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_eq_8_2pass_subtile)5977*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_eq_8_2pass_subtile) {
5978*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
5979*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5980*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5981*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5982*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
5983*4bdc9457SAndroid Build Coastguard Worker }
5984*4bdc9457SAndroid Build Coastguard Worker }
5985*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_eq_8_2pass_subtile_with_input_stride)5986*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_eq_8_2pass_subtile_with_input_stride) {
5987*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
5988*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5989*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
5990*4bdc9457SAndroid Build Coastguard Worker .channels(8)
5991*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
5992*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
5993*4bdc9457SAndroid Build Coastguard Worker }
5994*4bdc9457SAndroid Build Coastguard Worker }
5995*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_eq_8_multipass_fulltile)5996*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_eq_8_multipass_fulltile) {
5997*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
5998*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
5999*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6000*4bdc9457SAndroid Build Coastguard Worker .channels(8)
6001*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6002*4bdc9457SAndroid Build Coastguard Worker }
6003*4bdc9457SAndroid Build Coastguard Worker }
6004*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_eq_8_multipass_fulltile_with_input_stride)6005*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_eq_8_multipass_fulltile_with_input_stride) {
6006*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6007*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6008*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6009*4bdc9457SAndroid Build Coastguard Worker .channels(8)
6010*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
6011*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6012*4bdc9457SAndroid Build Coastguard Worker }
6013*4bdc9457SAndroid Build Coastguard Worker }
6014*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_div_8_2pass_fulltile)6015*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_div_8_2pass_fulltile) {
6016*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
6017*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6018*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6019*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6020*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6021*4bdc9457SAndroid Build Coastguard Worker }
6022*4bdc9457SAndroid Build Coastguard Worker }
6023*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_div_8_2pass_subtile)6024*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_div_8_2pass_subtile) {
6025*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
6026*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6027*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6028*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6029*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6030*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6031*4bdc9457SAndroid Build Coastguard Worker }
6032*4bdc9457SAndroid Build Coastguard Worker }
6033*4bdc9457SAndroid Build Coastguard Worker }
6034*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_div_8_multipass_fulltile)6035*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_div_8_multipass_fulltile) {
6036*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
6037*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6038*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6039*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6040*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6041*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6042*4bdc9457SAndroid Build Coastguard Worker }
6043*4bdc9457SAndroid Build Coastguard Worker }
6044*4bdc9457SAndroid Build Coastguard Worker }
6045*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_div_8_multipass_fulltile_with_input_stride)6046*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_div_8_multipass_fulltile_with_input_stride) {
6047*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
6048*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6049*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6050*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6051*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6052*4bdc9457SAndroid Build Coastguard Worker .input_stride(131)
6053*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6054*4bdc9457SAndroid Build Coastguard Worker }
6055*4bdc9457SAndroid Build Coastguard Worker }
6056*4bdc9457SAndroid Build Coastguard Worker }
6057*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_lt_8_2pass_fulltile)6058*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_lt_8_2pass_fulltile) {
6059*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
6060*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6061*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6062*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6063*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6064*4bdc9457SAndroid Build Coastguard Worker }
6065*4bdc9457SAndroid Build Coastguard Worker }
6066*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_lt_8_2pass_fulltile_with_qmax)6067*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_lt_8_2pass_fulltile_with_qmax) {
6068*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
6069*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6070*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6071*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6072*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6073*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6074*4bdc9457SAndroid Build Coastguard Worker }
6075*4bdc9457SAndroid Build Coastguard Worker }
6076*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_lt_8_2pass_fulltile_with_qmin)6077*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_lt_8_2pass_fulltile_with_qmin) {
6078*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
6079*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6080*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6081*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6082*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6083*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6084*4bdc9457SAndroid Build Coastguard Worker }
6085*4bdc9457SAndroid Build Coastguard Worker }
6086*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_lt_8_2pass_subtile)6087*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_lt_8_2pass_subtile) {
6088*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
6089*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6090*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6091*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6092*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6093*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6094*4bdc9457SAndroid Build Coastguard Worker }
6095*4bdc9457SAndroid Build Coastguard Worker }
6096*4bdc9457SAndroid Build Coastguard Worker }
6097*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_lt_8_multipass_fulltile)6098*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_lt_8_multipass_fulltile) {
6099*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
6100*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6101*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6102*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6103*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6104*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6105*4bdc9457SAndroid Build Coastguard Worker }
6106*4bdc9457SAndroid Build Coastguard Worker }
6107*4bdc9457SAndroid Build Coastguard Worker }
6108*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_lt_8_multipass_fulltile_with_input_stride)6109*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_lt_8_multipass_fulltile_with_input_stride) {
6110*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
6111*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6112*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6113*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6114*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6115*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
6116*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6117*4bdc9457SAndroid Build Coastguard Worker }
6118*4bdc9457SAndroid Build Coastguard Worker }
6119*4bdc9457SAndroid Build Coastguard Worker }
6120*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_gt_8_2pass_fulltile)6121*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_gt_8_2pass_fulltile) {
6122*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
6123*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6124*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6125*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6126*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6127*4bdc9457SAndroid Build Coastguard Worker }
6128*4bdc9457SAndroid Build Coastguard Worker }
6129*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_gt_8_2pass_fulltile_with_qmax)6130*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_gt_8_2pass_fulltile_with_qmax) {
6131*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
6132*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6133*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6134*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6135*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6136*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6137*4bdc9457SAndroid Build Coastguard Worker }
6138*4bdc9457SAndroid Build Coastguard Worker }
6139*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_gt_8_2pass_fulltile_with_qmin)6140*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_gt_8_2pass_fulltile_with_qmin) {
6141*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
6142*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6143*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6144*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6145*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6146*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6147*4bdc9457SAndroid Build Coastguard Worker }
6148*4bdc9457SAndroid Build Coastguard Worker }
6149*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_gt_8_2pass_subtile)6150*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_gt_8_2pass_subtile) {
6151*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
6152*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6153*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6154*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6155*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6156*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6157*4bdc9457SAndroid Build Coastguard Worker }
6158*4bdc9457SAndroid Build Coastguard Worker }
6159*4bdc9457SAndroid Build Coastguard Worker }
6160*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_gt_8_multipass_fulltile)6161*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_gt_8_multipass_fulltile) {
6162*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
6163*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
6164*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6165*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6166*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6167*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6168*4bdc9457SAndroid Build Coastguard Worker }
6169*4bdc9457SAndroid Build Coastguard Worker }
6170*4bdc9457SAndroid Build Coastguard Worker }
6171*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8,channels_gt_8_multipass_fulltile_with_input_stride)6172*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C8, channels_gt_8_multipass_fulltile_with_input_stride) {
6173*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
6174*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
6175*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6176*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6177*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6178*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
6179*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6180*4bdc9457SAndroid Build Coastguard Worker }
6181*4bdc9457SAndroid Build Coastguard Worker }
6182*4bdc9457SAndroid Build Coastguard Worker }
6183*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
6184*4bdc9457SAndroid Build Coastguard Worker
6185*4bdc9457SAndroid Build Coastguard Worker
6186*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_eq_16_2pass_fulltile)6187*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_eq_16_2pass_fulltile) {
6188*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6189*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6190*4bdc9457SAndroid Build Coastguard Worker .channels(16)
6191*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6192*4bdc9457SAndroid Build Coastguard Worker }
6193*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_eq_16_2pass_fulltile_with_input_stride)6194*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_eq_16_2pass_fulltile_with_input_stride) {
6195*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6196*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6197*4bdc9457SAndroid Build Coastguard Worker .channels(16)
6198*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
6199*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6200*4bdc9457SAndroid Build Coastguard Worker }
6201*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_eq_16_2pass_fulltile_with_qmax)6202*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_eq_16_2pass_fulltile_with_qmax) {
6203*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6204*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6205*4bdc9457SAndroid Build Coastguard Worker .channels(16)
6206*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6207*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6208*4bdc9457SAndroid Build Coastguard Worker }
6209*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_eq_16_2pass_fulltile_with_qmin)6210*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_eq_16_2pass_fulltile_with_qmin) {
6211*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6212*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6213*4bdc9457SAndroid Build Coastguard Worker .channels(16)
6214*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6215*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6216*4bdc9457SAndroid Build Coastguard Worker }
6217*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_eq_16_2pass_subtile)6218*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_eq_16_2pass_subtile) {
6219*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6220*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6221*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6222*4bdc9457SAndroid Build Coastguard Worker .channels(16)
6223*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6224*4bdc9457SAndroid Build Coastguard Worker }
6225*4bdc9457SAndroid Build Coastguard Worker }
6226*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_eq_16_2pass_subtile_with_input_stride)6227*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_eq_16_2pass_subtile_with_input_stride) {
6228*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6229*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6230*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6231*4bdc9457SAndroid Build Coastguard Worker .channels(16)
6232*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
6233*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6234*4bdc9457SAndroid Build Coastguard Worker }
6235*4bdc9457SAndroid Build Coastguard Worker }
6236*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_eq_16_multipass_fulltile)6237*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_eq_16_multipass_fulltile) {
6238*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6239*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6240*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6241*4bdc9457SAndroid Build Coastguard Worker .channels(16)
6242*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6243*4bdc9457SAndroid Build Coastguard Worker }
6244*4bdc9457SAndroid Build Coastguard Worker }
6245*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_eq_16_multipass_fulltile_with_input_stride)6246*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_eq_16_multipass_fulltile_with_input_stride) {
6247*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6248*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6249*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6250*4bdc9457SAndroid Build Coastguard Worker .channels(16)
6251*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
6252*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6253*4bdc9457SAndroid Build Coastguard Worker }
6254*4bdc9457SAndroid Build Coastguard Worker }
6255*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_div_16_2pass_fulltile)6256*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_div_16_2pass_fulltile) {
6257*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
6258*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6259*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6260*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6261*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6262*4bdc9457SAndroid Build Coastguard Worker }
6263*4bdc9457SAndroid Build Coastguard Worker }
6264*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_div_16_2pass_subtile)6265*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_div_16_2pass_subtile) {
6266*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
6267*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6268*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6269*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6270*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6271*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6272*4bdc9457SAndroid Build Coastguard Worker }
6273*4bdc9457SAndroid Build Coastguard Worker }
6274*4bdc9457SAndroid Build Coastguard Worker }
6275*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_div_16_multipass_fulltile)6276*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_div_16_multipass_fulltile) {
6277*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
6278*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6279*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6280*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6281*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6282*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6283*4bdc9457SAndroid Build Coastguard Worker }
6284*4bdc9457SAndroid Build Coastguard Worker }
6285*4bdc9457SAndroid Build Coastguard Worker }
6286*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_div_16_multipass_fulltile_with_input_stride)6287*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_div_16_multipass_fulltile_with_input_stride) {
6288*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
6289*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6290*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6291*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6292*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6293*4bdc9457SAndroid Build Coastguard Worker .input_stride(263)
6294*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6295*4bdc9457SAndroid Build Coastguard Worker }
6296*4bdc9457SAndroid Build Coastguard Worker }
6297*4bdc9457SAndroid Build Coastguard Worker }
6298*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_lt_16_2pass_fulltile)6299*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_lt_16_2pass_fulltile) {
6300*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
6301*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6302*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6303*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6304*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6305*4bdc9457SAndroid Build Coastguard Worker }
6306*4bdc9457SAndroid Build Coastguard Worker }
6307*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_lt_16_2pass_fulltile_with_qmax)6308*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_lt_16_2pass_fulltile_with_qmax) {
6309*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
6310*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6311*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6312*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6313*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6314*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6315*4bdc9457SAndroid Build Coastguard Worker }
6316*4bdc9457SAndroid Build Coastguard Worker }
6317*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_lt_16_2pass_fulltile_with_qmin)6318*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_lt_16_2pass_fulltile_with_qmin) {
6319*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
6320*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6321*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6322*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6323*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6324*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6325*4bdc9457SAndroid Build Coastguard Worker }
6326*4bdc9457SAndroid Build Coastguard Worker }
6327*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_lt_16_2pass_subtile)6328*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_lt_16_2pass_subtile) {
6329*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
6330*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6331*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6332*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6333*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6334*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6335*4bdc9457SAndroid Build Coastguard Worker }
6336*4bdc9457SAndroid Build Coastguard Worker }
6337*4bdc9457SAndroid Build Coastguard Worker }
6338*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_lt_16_multipass_fulltile)6339*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_lt_16_multipass_fulltile) {
6340*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
6341*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6342*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6343*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6344*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6345*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6346*4bdc9457SAndroid Build Coastguard Worker }
6347*4bdc9457SAndroid Build Coastguard Worker }
6348*4bdc9457SAndroid Build Coastguard Worker }
6349*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_lt_16_multipass_fulltile_with_input_stride)6350*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_lt_16_multipass_fulltile_with_input_stride) {
6351*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
6352*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6353*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6354*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6355*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6356*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
6357*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6358*4bdc9457SAndroid Build Coastguard Worker }
6359*4bdc9457SAndroid Build Coastguard Worker }
6360*4bdc9457SAndroid Build Coastguard Worker }
6361*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_gt_16_2pass_fulltile)6362*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_gt_16_2pass_fulltile) {
6363*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
6364*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6365*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6366*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6367*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6368*4bdc9457SAndroid Build Coastguard Worker }
6369*4bdc9457SAndroid Build Coastguard Worker }
6370*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_gt_16_2pass_fulltile_with_qmax)6371*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_gt_16_2pass_fulltile_with_qmax) {
6372*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
6373*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6374*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6375*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6376*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6377*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6378*4bdc9457SAndroid Build Coastguard Worker }
6379*4bdc9457SAndroid Build Coastguard Worker }
6380*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_gt_16_2pass_fulltile_with_qmin)6381*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_gt_16_2pass_fulltile_with_qmin) {
6382*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
6383*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6384*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6385*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6386*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6387*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6388*4bdc9457SAndroid Build Coastguard Worker }
6389*4bdc9457SAndroid Build Coastguard Worker }
6390*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_gt_16_2pass_subtile)6391*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_gt_16_2pass_subtile) {
6392*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
6393*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6394*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6395*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6396*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6397*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6398*4bdc9457SAndroid Build Coastguard Worker }
6399*4bdc9457SAndroid Build Coastguard Worker }
6400*4bdc9457SAndroid Build Coastguard Worker }
6401*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_gt_16_multipass_fulltile)6402*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_gt_16_multipass_fulltile) {
6403*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
6404*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
6405*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6406*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6407*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6408*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6409*4bdc9457SAndroid Build Coastguard Worker }
6410*4bdc9457SAndroid Build Coastguard Worker }
6411*4bdc9457SAndroid Build Coastguard Worker }
6412*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16,channels_gt_16_multipass_fulltile_with_input_stride)6413*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C16, channels_gt_16_multipass_fulltile_with_input_stride) {
6414*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
6415*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
6416*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6417*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6418*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6419*4bdc9457SAndroid Build Coastguard Worker .input_stride(47)
6420*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6421*4bdc9457SAndroid Build Coastguard Worker }
6422*4bdc9457SAndroid Build Coastguard Worker }
6423*4bdc9457SAndroid Build Coastguard Worker }
6424*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
6425*4bdc9457SAndroid Build Coastguard Worker
6426*4bdc9457SAndroid Build Coastguard Worker
6427*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_eq_24_2pass_fulltile)6428*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_eq_24_2pass_fulltile) {
6429*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6430*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6431*4bdc9457SAndroid Build Coastguard Worker .channels(24)
6432*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6433*4bdc9457SAndroid Build Coastguard Worker }
6434*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_eq_24_2pass_fulltile_with_input_stride)6435*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_eq_24_2pass_fulltile_with_input_stride) {
6436*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6437*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6438*4bdc9457SAndroid Build Coastguard Worker .channels(24)
6439*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
6440*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6441*4bdc9457SAndroid Build Coastguard Worker }
6442*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_eq_24_2pass_fulltile_with_qmax)6443*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_eq_24_2pass_fulltile_with_qmax) {
6444*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6445*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6446*4bdc9457SAndroid Build Coastguard Worker .channels(24)
6447*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6448*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6449*4bdc9457SAndroid Build Coastguard Worker }
6450*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_eq_24_2pass_fulltile_with_qmin)6451*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_eq_24_2pass_fulltile_with_qmin) {
6452*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6453*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6454*4bdc9457SAndroid Build Coastguard Worker .channels(24)
6455*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6456*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6457*4bdc9457SAndroid Build Coastguard Worker }
6458*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_eq_24_2pass_subtile)6459*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_eq_24_2pass_subtile) {
6460*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6461*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6462*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6463*4bdc9457SAndroid Build Coastguard Worker .channels(24)
6464*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6465*4bdc9457SAndroid Build Coastguard Worker }
6466*4bdc9457SAndroid Build Coastguard Worker }
6467*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_eq_24_2pass_subtile_with_input_stride)6468*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_eq_24_2pass_subtile_with_input_stride) {
6469*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6470*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6471*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6472*4bdc9457SAndroid Build Coastguard Worker .channels(24)
6473*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
6474*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6475*4bdc9457SAndroid Build Coastguard Worker }
6476*4bdc9457SAndroid Build Coastguard Worker }
6477*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_eq_24_multipass_fulltile)6478*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_eq_24_multipass_fulltile) {
6479*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6480*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6481*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6482*4bdc9457SAndroid Build Coastguard Worker .channels(24)
6483*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6484*4bdc9457SAndroid Build Coastguard Worker }
6485*4bdc9457SAndroid Build Coastguard Worker }
6486*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_eq_24_multipass_fulltile_with_input_stride)6487*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_eq_24_multipass_fulltile_with_input_stride) {
6488*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6489*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6490*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6491*4bdc9457SAndroid Build Coastguard Worker .channels(24)
6492*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
6493*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6494*4bdc9457SAndroid Build Coastguard Worker }
6495*4bdc9457SAndroid Build Coastguard Worker }
6496*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_div_24_2pass_fulltile)6497*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_div_24_2pass_fulltile) {
6498*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
6499*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6500*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6501*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6502*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6503*4bdc9457SAndroid Build Coastguard Worker }
6504*4bdc9457SAndroid Build Coastguard Worker }
6505*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_div_24_2pass_subtile)6506*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_div_24_2pass_subtile) {
6507*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
6508*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6509*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6510*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6511*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6512*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6513*4bdc9457SAndroid Build Coastguard Worker }
6514*4bdc9457SAndroid Build Coastguard Worker }
6515*4bdc9457SAndroid Build Coastguard Worker }
6516*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_div_24_multipass_fulltile)6517*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_div_24_multipass_fulltile) {
6518*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
6519*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6520*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6521*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6522*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6523*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6524*4bdc9457SAndroid Build Coastguard Worker }
6525*4bdc9457SAndroid Build Coastguard Worker }
6526*4bdc9457SAndroid Build Coastguard Worker }
6527*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_div_24_multipass_fulltile_with_input_stride)6528*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_div_24_multipass_fulltile_with_input_stride) {
6529*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
6530*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6531*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6532*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6533*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6534*4bdc9457SAndroid Build Coastguard Worker .input_stride(389)
6535*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6536*4bdc9457SAndroid Build Coastguard Worker }
6537*4bdc9457SAndroid Build Coastguard Worker }
6538*4bdc9457SAndroid Build Coastguard Worker }
6539*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_lt_24_2pass_fulltile)6540*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_lt_24_2pass_fulltile) {
6541*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
6542*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6543*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6544*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6545*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6546*4bdc9457SAndroid Build Coastguard Worker }
6547*4bdc9457SAndroid Build Coastguard Worker }
6548*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_lt_24_2pass_fulltile_with_qmax)6549*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_lt_24_2pass_fulltile_with_qmax) {
6550*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
6551*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6552*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6553*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6554*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6555*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6556*4bdc9457SAndroid Build Coastguard Worker }
6557*4bdc9457SAndroid Build Coastguard Worker }
6558*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_lt_24_2pass_fulltile_with_qmin)6559*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_lt_24_2pass_fulltile_with_qmin) {
6560*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
6561*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6562*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6563*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6564*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6565*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6566*4bdc9457SAndroid Build Coastguard Worker }
6567*4bdc9457SAndroid Build Coastguard Worker }
6568*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_lt_24_2pass_subtile)6569*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_lt_24_2pass_subtile) {
6570*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
6571*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6572*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6573*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6574*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6575*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6576*4bdc9457SAndroid Build Coastguard Worker }
6577*4bdc9457SAndroid Build Coastguard Worker }
6578*4bdc9457SAndroid Build Coastguard Worker }
6579*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_lt_24_multipass_fulltile)6580*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_lt_24_multipass_fulltile) {
6581*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
6582*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6583*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6584*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6585*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6586*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6587*4bdc9457SAndroid Build Coastguard Worker }
6588*4bdc9457SAndroid Build Coastguard Worker }
6589*4bdc9457SAndroid Build Coastguard Worker }
6590*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_lt_24_multipass_fulltile_with_input_stride)6591*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_lt_24_multipass_fulltile_with_input_stride) {
6592*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
6593*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6594*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6595*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6596*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6597*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
6598*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6599*4bdc9457SAndroid Build Coastguard Worker }
6600*4bdc9457SAndroid Build Coastguard Worker }
6601*4bdc9457SAndroid Build Coastguard Worker }
6602*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_gt_24_2pass_fulltile)6603*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_gt_24_2pass_fulltile) {
6604*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
6605*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6606*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6607*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6608*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6609*4bdc9457SAndroid Build Coastguard Worker }
6610*4bdc9457SAndroid Build Coastguard Worker }
6611*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_gt_24_2pass_fulltile_with_qmax)6612*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_gt_24_2pass_fulltile_with_qmax) {
6613*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
6614*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6615*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6616*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6617*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6618*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6619*4bdc9457SAndroid Build Coastguard Worker }
6620*4bdc9457SAndroid Build Coastguard Worker }
6621*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_gt_24_2pass_fulltile_with_qmin)6622*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_gt_24_2pass_fulltile_with_qmin) {
6623*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
6624*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6625*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6626*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6627*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6628*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6629*4bdc9457SAndroid Build Coastguard Worker }
6630*4bdc9457SAndroid Build Coastguard Worker }
6631*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_gt_24_2pass_subtile)6632*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_gt_24_2pass_subtile) {
6633*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
6634*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6635*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6636*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6637*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6638*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6639*4bdc9457SAndroid Build Coastguard Worker }
6640*4bdc9457SAndroid Build Coastguard Worker }
6641*4bdc9457SAndroid Build Coastguard Worker }
6642*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_gt_24_multipass_fulltile)6643*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_gt_24_multipass_fulltile) {
6644*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
6645*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
6646*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6647*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6648*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6649*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6650*4bdc9457SAndroid Build Coastguard Worker }
6651*4bdc9457SAndroid Build Coastguard Worker }
6652*4bdc9457SAndroid Build Coastguard Worker }
6653*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24,channels_gt_24_multipass_fulltile_with_input_stride)6654*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C24, channels_gt_24_multipass_fulltile_with_input_stride) {
6655*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
6656*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
6657*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6658*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6659*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6660*4bdc9457SAndroid Build Coastguard Worker .input_stride(61)
6661*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6662*4bdc9457SAndroid Build Coastguard Worker }
6663*4bdc9457SAndroid Build Coastguard Worker }
6664*4bdc9457SAndroid Build Coastguard Worker }
6665*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
6666*4bdc9457SAndroid Build Coastguard Worker
6667*4bdc9457SAndroid Build Coastguard Worker
6668*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_eq_32_2pass_fulltile)6669*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_eq_32_2pass_fulltile) {
6670*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6671*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6672*4bdc9457SAndroid Build Coastguard Worker .channels(32)
6673*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6674*4bdc9457SAndroid Build Coastguard Worker }
6675*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_eq_32_2pass_fulltile_with_input_stride)6676*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_eq_32_2pass_fulltile_with_input_stride) {
6677*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6678*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6679*4bdc9457SAndroid Build Coastguard Worker .channels(32)
6680*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
6681*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6682*4bdc9457SAndroid Build Coastguard Worker }
6683*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_eq_32_2pass_fulltile_with_qmax)6684*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_eq_32_2pass_fulltile_with_qmax) {
6685*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6686*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6687*4bdc9457SAndroid Build Coastguard Worker .channels(32)
6688*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6689*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6690*4bdc9457SAndroid Build Coastguard Worker }
6691*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_eq_32_2pass_fulltile_with_qmin)6692*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_eq_32_2pass_fulltile_with_qmin) {
6693*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6694*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6695*4bdc9457SAndroid Build Coastguard Worker .channels(32)
6696*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6697*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6698*4bdc9457SAndroid Build Coastguard Worker }
6699*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_eq_32_2pass_subtile)6700*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_eq_32_2pass_subtile) {
6701*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6702*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6703*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6704*4bdc9457SAndroid Build Coastguard Worker .channels(32)
6705*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6706*4bdc9457SAndroid Build Coastguard Worker }
6707*4bdc9457SAndroid Build Coastguard Worker }
6708*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_eq_32_2pass_subtile_with_input_stride)6709*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_eq_32_2pass_subtile_with_input_stride) {
6710*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6711*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6712*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6713*4bdc9457SAndroid Build Coastguard Worker .channels(32)
6714*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
6715*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6716*4bdc9457SAndroid Build Coastguard Worker }
6717*4bdc9457SAndroid Build Coastguard Worker }
6718*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_eq_32_multipass_fulltile)6719*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_eq_32_multipass_fulltile) {
6720*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6721*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6722*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6723*4bdc9457SAndroid Build Coastguard Worker .channels(32)
6724*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6725*4bdc9457SAndroid Build Coastguard Worker }
6726*4bdc9457SAndroid Build Coastguard Worker }
6727*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_eq_32_multipass_fulltile_with_input_stride)6728*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_eq_32_multipass_fulltile_with_input_stride) {
6729*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6730*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6731*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6732*4bdc9457SAndroid Build Coastguard Worker .channels(32)
6733*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
6734*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6735*4bdc9457SAndroid Build Coastguard Worker }
6736*4bdc9457SAndroid Build Coastguard Worker }
6737*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_div_32_2pass_fulltile)6738*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_div_32_2pass_fulltile) {
6739*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
6740*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6741*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6742*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6743*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6744*4bdc9457SAndroid Build Coastguard Worker }
6745*4bdc9457SAndroid Build Coastguard Worker }
6746*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_div_32_2pass_subtile)6747*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_div_32_2pass_subtile) {
6748*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
6749*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6750*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6751*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6752*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6753*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6754*4bdc9457SAndroid Build Coastguard Worker }
6755*4bdc9457SAndroid Build Coastguard Worker }
6756*4bdc9457SAndroid Build Coastguard Worker }
6757*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_div_32_multipass_fulltile)6758*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_div_32_multipass_fulltile) {
6759*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
6760*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6761*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6762*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6763*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6764*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6765*4bdc9457SAndroid Build Coastguard Worker }
6766*4bdc9457SAndroid Build Coastguard Worker }
6767*4bdc9457SAndroid Build Coastguard Worker }
6768*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_div_32_multipass_fulltile_with_input_stride)6769*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_div_32_multipass_fulltile_with_input_stride) {
6770*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
6771*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6772*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6773*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6774*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6775*4bdc9457SAndroid Build Coastguard Worker .input_stride(521)
6776*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6777*4bdc9457SAndroid Build Coastguard Worker }
6778*4bdc9457SAndroid Build Coastguard Worker }
6779*4bdc9457SAndroid Build Coastguard Worker }
6780*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_lt_32_2pass_fulltile)6781*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_lt_32_2pass_fulltile) {
6782*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
6783*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6784*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6785*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6786*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6787*4bdc9457SAndroid Build Coastguard Worker }
6788*4bdc9457SAndroid Build Coastguard Worker }
6789*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_lt_32_2pass_fulltile_with_qmax)6790*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_lt_32_2pass_fulltile_with_qmax) {
6791*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
6792*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6793*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6794*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6795*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6796*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6797*4bdc9457SAndroid Build Coastguard Worker }
6798*4bdc9457SAndroid Build Coastguard Worker }
6799*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_lt_32_2pass_fulltile_with_qmin)6800*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_lt_32_2pass_fulltile_with_qmin) {
6801*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
6802*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6803*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6804*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6805*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6806*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6807*4bdc9457SAndroid Build Coastguard Worker }
6808*4bdc9457SAndroid Build Coastguard Worker }
6809*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_lt_32_2pass_subtile)6810*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_lt_32_2pass_subtile) {
6811*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
6812*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6813*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6814*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6815*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6816*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6817*4bdc9457SAndroid Build Coastguard Worker }
6818*4bdc9457SAndroid Build Coastguard Worker }
6819*4bdc9457SAndroid Build Coastguard Worker }
6820*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_lt_32_multipass_fulltile)6821*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_lt_32_multipass_fulltile) {
6822*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
6823*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6824*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6825*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6826*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6827*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6828*4bdc9457SAndroid Build Coastguard Worker }
6829*4bdc9457SAndroid Build Coastguard Worker }
6830*4bdc9457SAndroid Build Coastguard Worker }
6831*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_lt_32_multipass_fulltile_with_input_stride)6832*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_lt_32_multipass_fulltile_with_input_stride) {
6833*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
6834*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
6835*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6836*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6837*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6838*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
6839*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6840*4bdc9457SAndroid Build Coastguard Worker }
6841*4bdc9457SAndroid Build Coastguard Worker }
6842*4bdc9457SAndroid Build Coastguard Worker }
6843*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_gt_32_2pass_fulltile)6844*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_gt_32_2pass_fulltile) {
6845*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
6846*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6847*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6848*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6849*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6850*4bdc9457SAndroid Build Coastguard Worker }
6851*4bdc9457SAndroid Build Coastguard Worker }
6852*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_gt_32_2pass_fulltile_with_qmax)6853*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_gt_32_2pass_fulltile_with_qmax) {
6854*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
6855*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6856*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6857*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6858*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6859*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6860*4bdc9457SAndroid Build Coastguard Worker }
6861*4bdc9457SAndroid Build Coastguard Worker }
6862*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_gt_32_2pass_fulltile_with_qmin)6863*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_gt_32_2pass_fulltile_with_qmin) {
6864*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
6865*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6866*4bdc9457SAndroid Build Coastguard Worker .rows(14)
6867*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6868*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6869*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6870*4bdc9457SAndroid Build Coastguard Worker }
6871*4bdc9457SAndroid Build Coastguard Worker }
6872*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_gt_32_2pass_subtile)6873*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_gt_32_2pass_subtile) {
6874*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
6875*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
6876*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6877*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6878*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6879*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6880*4bdc9457SAndroid Build Coastguard Worker }
6881*4bdc9457SAndroid Build Coastguard Worker }
6882*4bdc9457SAndroid Build Coastguard Worker }
6883*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_gt_32_multipass_fulltile)6884*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_gt_32_multipass_fulltile) {
6885*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
6886*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
6887*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6888*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6889*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6890*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6891*4bdc9457SAndroid Build Coastguard Worker }
6892*4bdc9457SAndroid Build Coastguard Worker }
6893*4bdc9457SAndroid Build Coastguard Worker }
6894*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32,channels_gt_32_multipass_fulltile_with_input_stride)6895*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__WASMSIMD_C32, channels_gt_32_multipass_fulltile_with_input_stride) {
6896*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
6897*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
6898*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6899*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6900*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6901*4bdc9457SAndroid Build Coastguard Worker .input_stride(79)
6902*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6903*4bdc9457SAndroid Build Coastguard Worker }
6904*4bdc9457SAndroid Build Coastguard Worker }
6905*4bdc9457SAndroid Build Coastguard Worker }
6906*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
6907*4bdc9457SAndroid Build Coastguard Worker
6908*4bdc9457SAndroid Build Coastguard Worker
6909*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_eq_8_fulltile)6910*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_eq_8_fulltile) {
6911*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6912*4bdc9457SAndroid Build Coastguard Worker .rows(7)
6913*4bdc9457SAndroid Build Coastguard Worker .channels(8)
6914*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6915*4bdc9457SAndroid Build Coastguard Worker }
6916*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_eq_8_subtile)6917*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_eq_8_subtile) {
6918*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
6919*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6920*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6921*4bdc9457SAndroid Build Coastguard Worker .channels(8)
6922*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6923*4bdc9457SAndroid Build Coastguard Worker }
6924*4bdc9457SAndroid Build Coastguard Worker }
6925*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_eq_8_fulltile_with_input_stride)6926*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_eq_8_fulltile_with_input_stride) {
6927*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6928*4bdc9457SAndroid Build Coastguard Worker .rows(7)
6929*4bdc9457SAndroid Build Coastguard Worker .channels(8)
6930*4bdc9457SAndroid Build Coastguard Worker .input_stride(11)
6931*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6932*4bdc9457SAndroid Build Coastguard Worker }
6933*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_eq_8_fulltile_with_qmax)6934*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_eq_8_fulltile_with_qmax) {
6935*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6936*4bdc9457SAndroid Build Coastguard Worker .rows(7)
6937*4bdc9457SAndroid Build Coastguard Worker .channels(8)
6938*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6939*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6940*4bdc9457SAndroid Build Coastguard Worker }
6941*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_eq_8_fulltile_with_qmin)6942*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_eq_8_fulltile_with_qmin) {
6943*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6944*4bdc9457SAndroid Build Coastguard Worker .rows(7)
6945*4bdc9457SAndroid Build Coastguard Worker .channels(8)
6946*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
6947*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6948*4bdc9457SAndroid Build Coastguard Worker }
6949*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_div_8_fulltile)6950*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_div_8_fulltile) {
6951*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
6952*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6953*4bdc9457SAndroid Build Coastguard Worker .rows(7)
6954*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6955*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6956*4bdc9457SAndroid Build Coastguard Worker }
6957*4bdc9457SAndroid Build Coastguard Worker }
6958*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_div_8_subtile)6959*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_div_8_subtile) {
6960*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) {
6961*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
6962*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6963*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6964*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6965*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6966*4bdc9457SAndroid Build Coastguard Worker }
6967*4bdc9457SAndroid Build Coastguard Worker }
6968*4bdc9457SAndroid Build Coastguard Worker }
6969*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_lt_8_fulltile)6970*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_lt_8_fulltile) {
6971*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
6972*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6973*4bdc9457SAndroid Build Coastguard Worker .rows(7)
6974*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6975*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6976*4bdc9457SAndroid Build Coastguard Worker }
6977*4bdc9457SAndroid Build Coastguard Worker }
6978*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_lt_8_subtile)6979*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_lt_8_subtile) {
6980*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
6981*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
6982*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6983*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
6984*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6985*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6986*4bdc9457SAndroid Build Coastguard Worker }
6987*4bdc9457SAndroid Build Coastguard Worker }
6988*4bdc9457SAndroid Build Coastguard Worker }
6989*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_lt_8_fulltile_with_qmax)6990*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_lt_8_fulltile_with_qmax) {
6991*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
6992*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
6993*4bdc9457SAndroid Build Coastguard Worker .rows(7)
6994*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
6995*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
6996*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
6997*4bdc9457SAndroid Build Coastguard Worker }
6998*4bdc9457SAndroid Build Coastguard Worker }
6999*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_lt_8_fulltile_with_qmin)7000*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_lt_8_fulltile_with_qmin) {
7001*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) {
7002*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7003*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7004*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7005*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7006*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7007*4bdc9457SAndroid Build Coastguard Worker }
7008*4bdc9457SAndroid Build Coastguard Worker }
7009*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_gt_8_fulltile)7010*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_gt_8_fulltile) {
7011*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
7012*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7013*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7014*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7015*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7016*4bdc9457SAndroid Build Coastguard Worker }
7017*4bdc9457SAndroid Build Coastguard Worker }
7018*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_gt_8_subtile)7019*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_gt_8_subtile) {
7020*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
7021*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7022*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7023*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7024*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7025*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7026*4bdc9457SAndroid Build Coastguard Worker }
7027*4bdc9457SAndroid Build Coastguard Worker }
7028*4bdc9457SAndroid Build Coastguard Worker }
7029*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_gt_8_fulltile_with_qmax)7030*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_gt_8_fulltile_with_qmax) {
7031*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
7032*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7033*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7034*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7035*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7036*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7037*4bdc9457SAndroid Build Coastguard Worker }
7038*4bdc9457SAndroid Build Coastguard Worker }
7039*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8,channels_gt_8_fulltile_with_qmin)7040*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C8, channels_gt_8_fulltile_with_qmin) {
7041*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) {
7042*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7043*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7044*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7045*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7046*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c8, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7047*4bdc9457SAndroid Build Coastguard Worker }
7048*4bdc9457SAndroid Build Coastguard Worker }
7049*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
7050*4bdc9457SAndroid Build Coastguard Worker
7051*4bdc9457SAndroid Build Coastguard Worker
7052*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_eq_16_fulltile)7053*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_eq_16_fulltile) {
7054*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7055*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7056*4bdc9457SAndroid Build Coastguard Worker .channels(16)
7057*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7058*4bdc9457SAndroid Build Coastguard Worker }
7059*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_eq_16_subtile)7060*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_eq_16_subtile) {
7061*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7062*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7063*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7064*4bdc9457SAndroid Build Coastguard Worker .channels(16)
7065*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7066*4bdc9457SAndroid Build Coastguard Worker }
7067*4bdc9457SAndroid Build Coastguard Worker }
7068*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_eq_16_fulltile_with_input_stride)7069*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_eq_16_fulltile_with_input_stride) {
7070*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7071*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7072*4bdc9457SAndroid Build Coastguard Worker .channels(16)
7073*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
7074*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7075*4bdc9457SAndroid Build Coastguard Worker }
7076*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_eq_16_fulltile_with_qmax)7077*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_eq_16_fulltile_with_qmax) {
7078*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7079*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7080*4bdc9457SAndroid Build Coastguard Worker .channels(16)
7081*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7082*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7083*4bdc9457SAndroid Build Coastguard Worker }
7084*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_eq_16_fulltile_with_qmin)7085*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_eq_16_fulltile_with_qmin) {
7086*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7087*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7088*4bdc9457SAndroid Build Coastguard Worker .channels(16)
7089*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7090*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7091*4bdc9457SAndroid Build Coastguard Worker }
7092*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_div_16_fulltile)7093*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_div_16_fulltile) {
7094*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
7095*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7096*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7097*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7098*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7099*4bdc9457SAndroid Build Coastguard Worker }
7100*4bdc9457SAndroid Build Coastguard Worker }
7101*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_div_16_subtile)7102*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_div_16_subtile) {
7103*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) {
7104*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7105*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7106*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7107*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7108*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7109*4bdc9457SAndroid Build Coastguard Worker }
7110*4bdc9457SAndroid Build Coastguard Worker }
7111*4bdc9457SAndroid Build Coastguard Worker }
7112*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_lt_16_fulltile)7113*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_lt_16_fulltile) {
7114*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
7115*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7116*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7117*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7118*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7119*4bdc9457SAndroid Build Coastguard Worker }
7120*4bdc9457SAndroid Build Coastguard Worker }
7121*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_lt_16_subtile)7122*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_lt_16_subtile) {
7123*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
7124*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7125*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7126*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7127*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7128*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7129*4bdc9457SAndroid Build Coastguard Worker }
7130*4bdc9457SAndroid Build Coastguard Worker }
7131*4bdc9457SAndroid Build Coastguard Worker }
7132*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_lt_16_fulltile_with_qmax)7133*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_lt_16_fulltile_with_qmax) {
7134*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
7135*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7136*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7137*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7138*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7139*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7140*4bdc9457SAndroid Build Coastguard Worker }
7141*4bdc9457SAndroid Build Coastguard Worker }
7142*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_lt_16_fulltile_with_qmin)7143*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_lt_16_fulltile_with_qmin) {
7144*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) {
7145*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7146*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7147*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7148*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7149*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7150*4bdc9457SAndroid Build Coastguard Worker }
7151*4bdc9457SAndroid Build Coastguard Worker }
7152*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_gt_16_fulltile)7153*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_gt_16_fulltile) {
7154*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
7155*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7156*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7157*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7158*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7159*4bdc9457SAndroid Build Coastguard Worker }
7160*4bdc9457SAndroid Build Coastguard Worker }
7161*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_gt_16_subtile)7162*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_gt_16_subtile) {
7163*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
7164*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7165*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7166*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7167*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7168*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7169*4bdc9457SAndroid Build Coastguard Worker }
7170*4bdc9457SAndroid Build Coastguard Worker }
7171*4bdc9457SAndroid Build Coastguard Worker }
7172*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_gt_16_fulltile_with_qmax)7173*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_gt_16_fulltile_with_qmax) {
7174*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
7175*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7176*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7177*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7178*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7179*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7180*4bdc9457SAndroid Build Coastguard Worker }
7181*4bdc9457SAndroid Build Coastguard Worker }
7182*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16,channels_gt_16_fulltile_with_qmin)7183*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C16, channels_gt_16_fulltile_with_qmin) {
7184*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) {
7185*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7186*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7187*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7188*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7189*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c16, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7190*4bdc9457SAndroid Build Coastguard Worker }
7191*4bdc9457SAndroid Build Coastguard Worker }
7192*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
7193*4bdc9457SAndroid Build Coastguard Worker
7194*4bdc9457SAndroid Build Coastguard Worker
7195*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_eq_24_fulltile)7196*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_eq_24_fulltile) {
7197*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7198*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7199*4bdc9457SAndroid Build Coastguard Worker .channels(24)
7200*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7201*4bdc9457SAndroid Build Coastguard Worker }
7202*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_eq_24_subtile)7203*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_eq_24_subtile) {
7204*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7205*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7206*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7207*4bdc9457SAndroid Build Coastguard Worker .channels(24)
7208*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7209*4bdc9457SAndroid Build Coastguard Worker }
7210*4bdc9457SAndroid Build Coastguard Worker }
7211*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_eq_24_fulltile_with_input_stride)7212*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_eq_24_fulltile_with_input_stride) {
7213*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7214*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7215*4bdc9457SAndroid Build Coastguard Worker .channels(24)
7216*4bdc9457SAndroid Build Coastguard Worker .input_stride(29)
7217*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7218*4bdc9457SAndroid Build Coastguard Worker }
7219*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_eq_24_fulltile_with_qmax)7220*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_eq_24_fulltile_with_qmax) {
7221*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7222*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7223*4bdc9457SAndroid Build Coastguard Worker .channels(24)
7224*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7225*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7226*4bdc9457SAndroid Build Coastguard Worker }
7227*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_eq_24_fulltile_with_qmin)7228*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_eq_24_fulltile_with_qmin) {
7229*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7230*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7231*4bdc9457SAndroid Build Coastguard Worker .channels(24)
7232*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7233*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7234*4bdc9457SAndroid Build Coastguard Worker }
7235*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_div_24_fulltile)7236*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_div_24_fulltile) {
7237*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
7238*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7239*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7240*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7241*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7242*4bdc9457SAndroid Build Coastguard Worker }
7243*4bdc9457SAndroid Build Coastguard Worker }
7244*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_div_24_subtile)7245*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_div_24_subtile) {
7246*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) {
7247*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7248*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7249*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7250*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7251*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7252*4bdc9457SAndroid Build Coastguard Worker }
7253*4bdc9457SAndroid Build Coastguard Worker }
7254*4bdc9457SAndroid Build Coastguard Worker }
7255*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_lt_24_fulltile)7256*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_lt_24_fulltile) {
7257*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
7258*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7259*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7260*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7261*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7262*4bdc9457SAndroid Build Coastguard Worker }
7263*4bdc9457SAndroid Build Coastguard Worker }
7264*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_lt_24_subtile)7265*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_lt_24_subtile) {
7266*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
7267*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7268*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7269*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7270*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7271*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7272*4bdc9457SAndroid Build Coastguard Worker }
7273*4bdc9457SAndroid Build Coastguard Worker }
7274*4bdc9457SAndroid Build Coastguard Worker }
7275*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_lt_24_fulltile_with_qmax)7276*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_lt_24_fulltile_with_qmax) {
7277*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
7278*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7279*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7280*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7281*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7282*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7283*4bdc9457SAndroid Build Coastguard Worker }
7284*4bdc9457SAndroid Build Coastguard Worker }
7285*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_lt_24_fulltile_with_qmin)7286*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_lt_24_fulltile_with_qmin) {
7287*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) {
7288*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7289*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7290*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7291*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7292*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7293*4bdc9457SAndroid Build Coastguard Worker }
7294*4bdc9457SAndroid Build Coastguard Worker }
7295*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_gt_24_fulltile)7296*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_gt_24_fulltile) {
7297*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
7298*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7299*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7300*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7301*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7302*4bdc9457SAndroid Build Coastguard Worker }
7303*4bdc9457SAndroid Build Coastguard Worker }
7304*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_gt_24_subtile)7305*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_gt_24_subtile) {
7306*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
7307*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7308*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7309*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7310*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7311*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7312*4bdc9457SAndroid Build Coastguard Worker }
7313*4bdc9457SAndroid Build Coastguard Worker }
7314*4bdc9457SAndroid Build Coastguard Worker }
7315*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_gt_24_fulltile_with_qmax)7316*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_gt_24_fulltile_with_qmax) {
7317*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
7318*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7319*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7320*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7321*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7322*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7323*4bdc9457SAndroid Build Coastguard Worker }
7324*4bdc9457SAndroid Build Coastguard Worker }
7325*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24,channels_gt_24_fulltile_with_qmin)7326*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C24, channels_gt_24_fulltile_with_qmin) {
7327*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) {
7328*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7329*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7330*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7331*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7332*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c24, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7333*4bdc9457SAndroid Build Coastguard Worker }
7334*4bdc9457SAndroid Build Coastguard Worker }
7335*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
7336*4bdc9457SAndroid Build Coastguard Worker
7337*4bdc9457SAndroid Build Coastguard Worker
7338*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_eq_32_fulltile)7339*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_eq_32_fulltile) {
7340*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7341*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7342*4bdc9457SAndroid Build Coastguard Worker .channels(32)
7343*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7344*4bdc9457SAndroid Build Coastguard Worker }
7345*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_eq_32_subtile)7346*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_eq_32_subtile) {
7347*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7348*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7349*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7350*4bdc9457SAndroid Build Coastguard Worker .channels(32)
7351*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7352*4bdc9457SAndroid Build Coastguard Worker }
7353*4bdc9457SAndroid Build Coastguard Worker }
7354*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_eq_32_fulltile_with_input_stride)7355*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_eq_32_fulltile_with_input_stride) {
7356*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7357*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7358*4bdc9457SAndroid Build Coastguard Worker .channels(32)
7359*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
7360*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7361*4bdc9457SAndroid Build Coastguard Worker }
7362*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_eq_32_fulltile_with_qmax)7363*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_eq_32_fulltile_with_qmax) {
7364*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7365*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7366*4bdc9457SAndroid Build Coastguard Worker .channels(32)
7367*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7368*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7369*4bdc9457SAndroid Build Coastguard Worker }
7370*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_eq_32_fulltile_with_qmin)7371*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_eq_32_fulltile_with_qmin) {
7372*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7373*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7374*4bdc9457SAndroid Build Coastguard Worker .channels(32)
7375*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7376*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7377*4bdc9457SAndroid Build Coastguard Worker }
7378*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_div_32_fulltile)7379*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_div_32_fulltile) {
7380*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
7381*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7382*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7383*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7384*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7385*4bdc9457SAndroid Build Coastguard Worker }
7386*4bdc9457SAndroid Build Coastguard Worker }
7387*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_div_32_subtile)7388*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_div_32_subtile) {
7389*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) {
7390*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7391*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7392*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7393*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7394*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7395*4bdc9457SAndroid Build Coastguard Worker }
7396*4bdc9457SAndroid Build Coastguard Worker }
7397*4bdc9457SAndroid Build Coastguard Worker }
7398*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_lt_32_fulltile)7399*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_lt_32_fulltile) {
7400*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
7401*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7402*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7403*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7404*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7405*4bdc9457SAndroid Build Coastguard Worker }
7406*4bdc9457SAndroid Build Coastguard Worker }
7407*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_lt_32_subtile)7408*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_lt_32_subtile) {
7409*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
7410*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7411*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7412*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7413*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7414*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7415*4bdc9457SAndroid Build Coastguard Worker }
7416*4bdc9457SAndroid Build Coastguard Worker }
7417*4bdc9457SAndroid Build Coastguard Worker }
7418*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_lt_32_fulltile_with_qmax)7419*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_lt_32_fulltile_with_qmax) {
7420*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
7421*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7422*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7423*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7424*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7425*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7426*4bdc9457SAndroid Build Coastguard Worker }
7427*4bdc9457SAndroid Build Coastguard Worker }
7428*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_lt_32_fulltile_with_qmin)7429*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_lt_32_fulltile_with_qmin) {
7430*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) {
7431*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7432*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7433*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7434*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7435*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7436*4bdc9457SAndroid Build Coastguard Worker }
7437*4bdc9457SAndroid Build Coastguard Worker }
7438*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_gt_32_fulltile)7439*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_gt_32_fulltile) {
7440*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
7441*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7442*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7443*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7444*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7445*4bdc9457SAndroid Build Coastguard Worker }
7446*4bdc9457SAndroid Build Coastguard Worker }
7447*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_gt_32_subtile)7448*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_gt_32_subtile) {
7449*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
7450*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
7451*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7452*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7453*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7454*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7455*4bdc9457SAndroid Build Coastguard Worker }
7456*4bdc9457SAndroid Build Coastguard Worker }
7457*4bdc9457SAndroid Build Coastguard Worker }
7458*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_gt_32_fulltile_with_qmax)7459*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_gt_32_fulltile_with_qmax) {
7460*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
7461*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7462*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7463*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7464*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7465*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7466*4bdc9457SAndroid Build Coastguard Worker }
7467*4bdc9457SAndroid Build Coastguard Worker }
7468*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32,channels_gt_32_fulltile_with_qmin)7469*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__WASMSIMD_C32, channels_gt_32_fulltile_with_qmin) {
7470*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) {
7471*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7472*4bdc9457SAndroid Build Coastguard Worker .rows(7)
7473*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7474*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7475*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__wasmsimd_c32, xnn_init_qu8_avgpool_minmax_fp32_wasmsimd_params, xnn_qu8_requantize_fp32);
7476*4bdc9457SAndroid Build Coastguard Worker }
7477*4bdc9457SAndroid Build Coastguard Worker }
7478*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
7479*4bdc9457SAndroid Build Coastguard Worker
7480*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_eq_1_2pass_fulltile)7481*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_eq_1_2pass_fulltile) {
7482*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7483*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7484*4bdc9457SAndroid Build Coastguard Worker .channels(1)
7485*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7486*4bdc9457SAndroid Build Coastguard Worker }
7487*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_eq_1_2pass_fulltile_with_input_stride)7488*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_eq_1_2pass_fulltile_with_input_stride) {
7489*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7490*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7491*4bdc9457SAndroid Build Coastguard Worker .channels(1)
7492*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
7493*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7494*4bdc9457SAndroid Build Coastguard Worker }
7495*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_eq_1_2pass_fulltile_with_qmax)7496*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_eq_1_2pass_fulltile_with_qmax) {
7497*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7498*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7499*4bdc9457SAndroid Build Coastguard Worker .channels(1)
7500*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7501*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7502*4bdc9457SAndroid Build Coastguard Worker }
7503*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_eq_1_2pass_fulltile_with_qmin)7504*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_eq_1_2pass_fulltile_with_qmin) {
7505*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7506*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7507*4bdc9457SAndroid Build Coastguard Worker .channels(1)
7508*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7509*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7510*4bdc9457SAndroid Build Coastguard Worker }
7511*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_eq_1_2pass_subtile)7512*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_eq_1_2pass_subtile) {
7513*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7514*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7515*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7516*4bdc9457SAndroid Build Coastguard Worker .channels(1)
7517*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7518*4bdc9457SAndroid Build Coastguard Worker }
7519*4bdc9457SAndroid Build Coastguard Worker }
7520*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_eq_1_2pass_subtile_with_input_stride)7521*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_eq_1_2pass_subtile_with_input_stride) {
7522*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7523*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7524*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7525*4bdc9457SAndroid Build Coastguard Worker .channels(1)
7526*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
7527*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7528*4bdc9457SAndroid Build Coastguard Worker }
7529*4bdc9457SAndroid Build Coastguard Worker }
7530*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_eq_1_multipass_fulltile)7531*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_eq_1_multipass_fulltile) {
7532*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7533*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7534*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7535*4bdc9457SAndroid Build Coastguard Worker .channels(1)
7536*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7537*4bdc9457SAndroid Build Coastguard Worker }
7538*4bdc9457SAndroid Build Coastguard Worker }
7539*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_eq_1_multipass_fulltile_with_input_stride)7540*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_eq_1_multipass_fulltile_with_input_stride) {
7541*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7542*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7543*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7544*4bdc9457SAndroid Build Coastguard Worker .channels(1)
7545*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
7546*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7547*4bdc9457SAndroid Build Coastguard Worker }
7548*4bdc9457SAndroid Build Coastguard Worker }
7549*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_div_1_2pass_fulltile)7550*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_div_1_2pass_fulltile) {
7551*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
7552*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7553*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7554*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7555*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7556*4bdc9457SAndroid Build Coastguard Worker }
7557*4bdc9457SAndroid Build Coastguard Worker }
7558*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_div_1_2pass_subtile)7559*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_div_1_2pass_subtile) {
7560*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
7561*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7562*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7563*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7564*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7565*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7566*4bdc9457SAndroid Build Coastguard Worker }
7567*4bdc9457SAndroid Build Coastguard Worker }
7568*4bdc9457SAndroid Build Coastguard Worker }
7569*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_div_1_multipass_fulltile)7570*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_div_1_multipass_fulltile) {
7571*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
7572*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7573*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7574*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7575*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7576*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7577*4bdc9457SAndroid Build Coastguard Worker }
7578*4bdc9457SAndroid Build Coastguard Worker }
7579*4bdc9457SAndroid Build Coastguard Worker }
7580*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_div_1_multipass_fulltile_with_input_stride)7581*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_div_1_multipass_fulltile_with_input_stride) {
7582*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
7583*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7584*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7585*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7586*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7587*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
7588*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7589*4bdc9457SAndroid Build Coastguard Worker }
7590*4bdc9457SAndroid Build Coastguard Worker }
7591*4bdc9457SAndroid Build Coastguard Worker }
7592*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_gt_1_2pass_fulltile)7593*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_gt_1_2pass_fulltile) {
7594*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
7595*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7596*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7597*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7598*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7599*4bdc9457SAndroid Build Coastguard Worker }
7600*4bdc9457SAndroid Build Coastguard Worker }
7601*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_gt_1_2pass_fulltile_with_qmax)7602*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_gt_1_2pass_fulltile_with_qmax) {
7603*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
7604*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7605*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7606*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7607*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7608*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7609*4bdc9457SAndroid Build Coastguard Worker }
7610*4bdc9457SAndroid Build Coastguard Worker }
7611*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_gt_1_2pass_fulltile_with_qmin)7612*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_gt_1_2pass_fulltile_with_qmin) {
7613*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
7614*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7615*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7616*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7617*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7618*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7619*4bdc9457SAndroid Build Coastguard Worker }
7620*4bdc9457SAndroid Build Coastguard Worker }
7621*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_gt_1_2pass_subtile)7622*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_gt_1_2pass_subtile) {
7623*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
7624*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7625*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7626*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7627*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7628*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7629*4bdc9457SAndroid Build Coastguard Worker }
7630*4bdc9457SAndroid Build Coastguard Worker }
7631*4bdc9457SAndroid Build Coastguard Worker }
7632*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_gt_1_multipass_fulltile)7633*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_gt_1_multipass_fulltile) {
7634*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
7635*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
7636*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7637*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7638*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7639*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7640*4bdc9457SAndroid Build Coastguard Worker }
7641*4bdc9457SAndroid Build Coastguard Worker }
7642*4bdc9457SAndroid Build Coastguard Worker }
7643*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1,channels_gt_1_multipass_fulltile_with_input_stride)7644*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C1, channels_gt_1_multipass_fulltile_with_input_stride) {
7645*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
7646*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
7647*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7648*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7649*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7650*4bdc9457SAndroid Build Coastguard Worker .input_stride(17)
7651*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7652*4bdc9457SAndroid Build Coastguard Worker }
7653*4bdc9457SAndroid Build Coastguard Worker }
7654*4bdc9457SAndroid Build Coastguard Worker }
7655*4bdc9457SAndroid Build Coastguard Worker
7656*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_eq_2_2pass_fulltile)7657*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_eq_2_2pass_fulltile) {
7658*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7659*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7660*4bdc9457SAndroid Build Coastguard Worker .channels(2)
7661*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7662*4bdc9457SAndroid Build Coastguard Worker }
7663*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_eq_2_2pass_fulltile_with_input_stride)7664*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_eq_2_2pass_fulltile_with_input_stride) {
7665*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7666*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7667*4bdc9457SAndroid Build Coastguard Worker .channels(2)
7668*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
7669*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7670*4bdc9457SAndroid Build Coastguard Worker }
7671*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_eq_2_2pass_fulltile_with_qmax)7672*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_eq_2_2pass_fulltile_with_qmax) {
7673*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7674*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7675*4bdc9457SAndroid Build Coastguard Worker .channels(2)
7676*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7677*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7678*4bdc9457SAndroid Build Coastguard Worker }
7679*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_eq_2_2pass_fulltile_with_qmin)7680*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_eq_2_2pass_fulltile_with_qmin) {
7681*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7682*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7683*4bdc9457SAndroid Build Coastguard Worker .channels(2)
7684*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7685*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7686*4bdc9457SAndroid Build Coastguard Worker }
7687*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_eq_2_2pass_subtile)7688*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_eq_2_2pass_subtile) {
7689*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7690*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7691*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7692*4bdc9457SAndroid Build Coastguard Worker .channels(2)
7693*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7694*4bdc9457SAndroid Build Coastguard Worker }
7695*4bdc9457SAndroid Build Coastguard Worker }
7696*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_eq_2_2pass_subtile_with_input_stride)7697*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_eq_2_2pass_subtile_with_input_stride) {
7698*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7699*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7700*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7701*4bdc9457SAndroid Build Coastguard Worker .channels(2)
7702*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
7703*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7704*4bdc9457SAndroid Build Coastguard Worker }
7705*4bdc9457SAndroid Build Coastguard Worker }
7706*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_eq_2_multipass_fulltile)7707*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_eq_2_multipass_fulltile) {
7708*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7709*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7710*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7711*4bdc9457SAndroid Build Coastguard Worker .channels(2)
7712*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7713*4bdc9457SAndroid Build Coastguard Worker }
7714*4bdc9457SAndroid Build Coastguard Worker }
7715*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_eq_2_multipass_fulltile_with_input_stride)7716*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_eq_2_multipass_fulltile_with_input_stride) {
7717*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7718*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7719*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7720*4bdc9457SAndroid Build Coastguard Worker .channels(2)
7721*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
7722*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7723*4bdc9457SAndroid Build Coastguard Worker }
7724*4bdc9457SAndroid Build Coastguard Worker }
7725*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_div_2_2pass_fulltile)7726*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_div_2_2pass_fulltile) {
7727*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
7728*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7729*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7730*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7731*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7732*4bdc9457SAndroid Build Coastguard Worker }
7733*4bdc9457SAndroid Build Coastguard Worker }
7734*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_div_2_2pass_subtile)7735*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_div_2_2pass_subtile) {
7736*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
7737*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7738*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7739*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7740*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7741*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7742*4bdc9457SAndroid Build Coastguard Worker }
7743*4bdc9457SAndroid Build Coastguard Worker }
7744*4bdc9457SAndroid Build Coastguard Worker }
7745*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_div_2_multipass_fulltile)7746*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_div_2_multipass_fulltile) {
7747*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
7748*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7749*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7750*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7751*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7752*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7753*4bdc9457SAndroid Build Coastguard Worker }
7754*4bdc9457SAndroid Build Coastguard Worker }
7755*4bdc9457SAndroid Build Coastguard Worker }
7756*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_div_2_multipass_fulltile_with_input_stride)7757*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_div_2_multipass_fulltile_with_input_stride) {
7758*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
7759*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7760*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7761*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7762*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7763*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
7764*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7765*4bdc9457SAndroid Build Coastguard Worker }
7766*4bdc9457SAndroid Build Coastguard Worker }
7767*4bdc9457SAndroid Build Coastguard Worker }
7768*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_lt_2_2pass_fulltile)7769*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_lt_2_2pass_fulltile) {
7770*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
7771*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7772*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7773*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7774*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7775*4bdc9457SAndroid Build Coastguard Worker }
7776*4bdc9457SAndroid Build Coastguard Worker }
7777*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_lt_2_2pass_fulltile_with_qmax)7778*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_lt_2_2pass_fulltile_with_qmax) {
7779*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
7780*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7781*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7782*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7783*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7784*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7785*4bdc9457SAndroid Build Coastguard Worker }
7786*4bdc9457SAndroid Build Coastguard Worker }
7787*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_lt_2_2pass_fulltile_with_qmin)7788*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_lt_2_2pass_fulltile_with_qmin) {
7789*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
7790*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7791*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7792*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7793*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7794*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7795*4bdc9457SAndroid Build Coastguard Worker }
7796*4bdc9457SAndroid Build Coastguard Worker }
7797*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_lt_2_2pass_subtile)7798*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_lt_2_2pass_subtile) {
7799*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
7800*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7801*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7802*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7803*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7804*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7805*4bdc9457SAndroid Build Coastguard Worker }
7806*4bdc9457SAndroid Build Coastguard Worker }
7807*4bdc9457SAndroid Build Coastguard Worker }
7808*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_lt_2_multipass_fulltile)7809*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_lt_2_multipass_fulltile) {
7810*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
7811*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7812*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7813*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7814*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7815*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7816*4bdc9457SAndroid Build Coastguard Worker }
7817*4bdc9457SAndroid Build Coastguard Worker }
7818*4bdc9457SAndroid Build Coastguard Worker }
7819*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_lt_2_multipass_fulltile_with_input_stride)7820*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_lt_2_multipass_fulltile_with_input_stride) {
7821*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
7822*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7823*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7824*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7825*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7826*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
7827*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7828*4bdc9457SAndroid Build Coastguard Worker }
7829*4bdc9457SAndroid Build Coastguard Worker }
7830*4bdc9457SAndroid Build Coastguard Worker }
7831*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_gt_2_2pass_fulltile)7832*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_gt_2_2pass_fulltile) {
7833*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
7834*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7835*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7836*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7837*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7838*4bdc9457SAndroid Build Coastguard Worker }
7839*4bdc9457SAndroid Build Coastguard Worker }
7840*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_gt_2_2pass_fulltile_with_qmax)7841*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_gt_2_2pass_fulltile_with_qmax) {
7842*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
7843*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7844*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7845*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7846*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7847*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7848*4bdc9457SAndroid Build Coastguard Worker }
7849*4bdc9457SAndroid Build Coastguard Worker }
7850*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_gt_2_2pass_fulltile_with_qmin)7851*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_gt_2_2pass_fulltile_with_qmin) {
7852*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
7853*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7854*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7855*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7856*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7857*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7858*4bdc9457SAndroid Build Coastguard Worker }
7859*4bdc9457SAndroid Build Coastguard Worker }
7860*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_gt_2_2pass_subtile)7861*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_gt_2_2pass_subtile) {
7862*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
7863*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7864*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7865*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7866*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7867*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7868*4bdc9457SAndroid Build Coastguard Worker }
7869*4bdc9457SAndroid Build Coastguard Worker }
7870*4bdc9457SAndroid Build Coastguard Worker }
7871*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_gt_2_multipass_fulltile)7872*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_gt_2_multipass_fulltile) {
7873*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
7874*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
7875*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7876*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7877*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7878*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7879*4bdc9457SAndroid Build Coastguard Worker }
7880*4bdc9457SAndroid Build Coastguard Worker }
7881*4bdc9457SAndroid Build Coastguard Worker }
7882*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2,channels_gt_2_multipass_fulltile_with_input_stride)7883*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C2, channels_gt_2_multipass_fulltile_with_input_stride) {
7884*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
7885*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
7886*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7887*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7888*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7889*4bdc9457SAndroid Build Coastguard Worker .input_stride(17)
7890*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7891*4bdc9457SAndroid Build Coastguard Worker }
7892*4bdc9457SAndroid Build Coastguard Worker }
7893*4bdc9457SAndroid Build Coastguard Worker }
7894*4bdc9457SAndroid Build Coastguard Worker
7895*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_eq_4_2pass_fulltile)7896*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_eq_4_2pass_fulltile) {
7897*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7898*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7899*4bdc9457SAndroid Build Coastguard Worker .channels(4)
7900*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7901*4bdc9457SAndroid Build Coastguard Worker }
7902*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_eq_4_2pass_fulltile_with_input_stride)7903*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_eq_4_2pass_fulltile_with_input_stride) {
7904*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7905*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7906*4bdc9457SAndroid Build Coastguard Worker .channels(4)
7907*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
7908*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7909*4bdc9457SAndroid Build Coastguard Worker }
7910*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_eq_4_2pass_fulltile_with_qmax)7911*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_eq_4_2pass_fulltile_with_qmax) {
7912*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7913*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7914*4bdc9457SAndroid Build Coastguard Worker .channels(4)
7915*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
7916*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7917*4bdc9457SAndroid Build Coastguard Worker }
7918*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_eq_4_2pass_fulltile_with_qmin)7919*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_eq_4_2pass_fulltile_with_qmin) {
7920*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7921*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7922*4bdc9457SAndroid Build Coastguard Worker .channels(4)
7923*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
7924*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7925*4bdc9457SAndroid Build Coastguard Worker }
7926*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_eq_4_2pass_subtile)7927*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_eq_4_2pass_subtile) {
7928*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7929*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7930*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7931*4bdc9457SAndroid Build Coastguard Worker .channels(4)
7932*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7933*4bdc9457SAndroid Build Coastguard Worker }
7934*4bdc9457SAndroid Build Coastguard Worker }
7935*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_eq_4_2pass_subtile_with_input_stride)7936*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_eq_4_2pass_subtile_with_input_stride) {
7937*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7938*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7939*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7940*4bdc9457SAndroid Build Coastguard Worker .channels(4)
7941*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
7942*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7943*4bdc9457SAndroid Build Coastguard Worker }
7944*4bdc9457SAndroid Build Coastguard Worker }
7945*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_eq_4_multipass_fulltile)7946*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_eq_4_multipass_fulltile) {
7947*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7948*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7949*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7950*4bdc9457SAndroid Build Coastguard Worker .channels(4)
7951*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7952*4bdc9457SAndroid Build Coastguard Worker }
7953*4bdc9457SAndroid Build Coastguard Worker }
7954*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_eq_4_multipass_fulltile_with_input_stride)7955*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_eq_4_multipass_fulltile_with_input_stride) {
7956*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7957*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7958*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7959*4bdc9457SAndroid Build Coastguard Worker .channels(4)
7960*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
7961*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7962*4bdc9457SAndroid Build Coastguard Worker }
7963*4bdc9457SAndroid Build Coastguard Worker }
7964*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_div_4_2pass_fulltile)7965*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_div_4_2pass_fulltile) {
7966*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
7967*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7968*4bdc9457SAndroid Build Coastguard Worker .rows(14)
7969*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7970*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7971*4bdc9457SAndroid Build Coastguard Worker }
7972*4bdc9457SAndroid Build Coastguard Worker }
7973*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_div_4_2pass_subtile)7974*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_div_4_2pass_subtile) {
7975*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
7976*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
7977*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7978*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7979*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7980*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7981*4bdc9457SAndroid Build Coastguard Worker }
7982*4bdc9457SAndroid Build Coastguard Worker }
7983*4bdc9457SAndroid Build Coastguard Worker }
7984*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_div_4_multipass_fulltile)7985*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_div_4_multipass_fulltile) {
7986*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
7987*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7988*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
7989*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
7990*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
7991*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
7992*4bdc9457SAndroid Build Coastguard Worker }
7993*4bdc9457SAndroid Build Coastguard Worker }
7994*4bdc9457SAndroid Build Coastguard Worker }
7995*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_div_4_multipass_fulltile_with_input_stride)7996*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_div_4_multipass_fulltile_with_input_stride) {
7997*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
7998*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
7999*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8000*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8001*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8002*4bdc9457SAndroid Build Coastguard Worker .input_stride(67)
8003*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8004*4bdc9457SAndroid Build Coastguard Worker }
8005*4bdc9457SAndroid Build Coastguard Worker }
8006*4bdc9457SAndroid Build Coastguard Worker }
8007*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_lt_4_2pass_fulltile)8008*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_lt_4_2pass_fulltile) {
8009*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8010*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8011*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8012*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8013*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8014*4bdc9457SAndroid Build Coastguard Worker }
8015*4bdc9457SAndroid Build Coastguard Worker }
8016*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_lt_4_2pass_fulltile_with_qmax)8017*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_lt_4_2pass_fulltile_with_qmax) {
8018*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8019*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8020*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8021*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8022*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8023*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8024*4bdc9457SAndroid Build Coastguard Worker }
8025*4bdc9457SAndroid Build Coastguard Worker }
8026*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_lt_4_2pass_fulltile_with_qmin)8027*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_lt_4_2pass_fulltile_with_qmin) {
8028*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8029*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8030*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8031*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8032*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8033*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8034*4bdc9457SAndroid Build Coastguard Worker }
8035*4bdc9457SAndroid Build Coastguard Worker }
8036*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_lt_4_2pass_subtile)8037*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_lt_4_2pass_subtile) {
8038*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8039*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8040*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8041*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8042*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8043*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8044*4bdc9457SAndroid Build Coastguard Worker }
8045*4bdc9457SAndroid Build Coastguard Worker }
8046*4bdc9457SAndroid Build Coastguard Worker }
8047*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_lt_4_multipass_fulltile)8048*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_lt_4_multipass_fulltile) {
8049*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8050*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8051*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8052*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8053*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8054*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8055*4bdc9457SAndroid Build Coastguard Worker }
8056*4bdc9457SAndroid Build Coastguard Worker }
8057*4bdc9457SAndroid Build Coastguard Worker }
8058*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_lt_4_multipass_fulltile_with_input_stride)8059*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_lt_4_multipass_fulltile_with_input_stride) {
8060*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8061*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8062*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8063*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8064*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8065*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
8066*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8067*4bdc9457SAndroid Build Coastguard Worker }
8068*4bdc9457SAndroid Build Coastguard Worker }
8069*4bdc9457SAndroid Build Coastguard Worker }
8070*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_gt_4_2pass_fulltile)8071*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_gt_4_2pass_fulltile) {
8072*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8073*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8074*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8075*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8076*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8077*4bdc9457SAndroid Build Coastguard Worker }
8078*4bdc9457SAndroid Build Coastguard Worker }
8079*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_gt_4_2pass_fulltile_with_qmax)8080*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_gt_4_2pass_fulltile_with_qmax) {
8081*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8082*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8083*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8084*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8085*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8086*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8087*4bdc9457SAndroid Build Coastguard Worker }
8088*4bdc9457SAndroid Build Coastguard Worker }
8089*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_gt_4_2pass_fulltile_with_qmin)8090*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_gt_4_2pass_fulltile_with_qmin) {
8091*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8092*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8093*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8094*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8095*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8096*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8097*4bdc9457SAndroid Build Coastguard Worker }
8098*4bdc9457SAndroid Build Coastguard Worker }
8099*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_gt_4_2pass_subtile)8100*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_gt_4_2pass_subtile) {
8101*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8102*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8103*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8104*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8105*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8106*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8107*4bdc9457SAndroid Build Coastguard Worker }
8108*4bdc9457SAndroid Build Coastguard Worker }
8109*4bdc9457SAndroid Build Coastguard Worker }
8110*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_gt_4_multipass_fulltile)8111*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_gt_4_multipass_fulltile) {
8112*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8113*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8114*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8115*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8116*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8117*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8118*4bdc9457SAndroid Build Coastguard Worker }
8119*4bdc9457SAndroid Build Coastguard Worker }
8120*4bdc9457SAndroid Build Coastguard Worker }
8121*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4,channels_gt_4_multipass_fulltile_with_input_stride)8122*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_FMAGIC_C4, channels_gt_4_multipass_fulltile_with_input_stride) {
8123*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8124*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8125*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8126*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8127*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8128*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
8129*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
8130*4bdc9457SAndroid Build Coastguard Worker }
8131*4bdc9457SAndroid Build Coastguard Worker }
8132*4bdc9457SAndroid Build Coastguard Worker }
8133*4bdc9457SAndroid Build Coastguard Worker
8134*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_eq_1_2pass_fulltile)8135*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_eq_1_2pass_fulltile) {
8136*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8137*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8138*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8139*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8140*4bdc9457SAndroid Build Coastguard Worker }
8141*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_eq_1_2pass_fulltile_with_input_stride)8142*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_eq_1_2pass_fulltile_with_input_stride) {
8143*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8144*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8145*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8146*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
8147*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8148*4bdc9457SAndroid Build Coastguard Worker }
8149*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_eq_1_2pass_fulltile_with_qmax)8150*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_eq_1_2pass_fulltile_with_qmax) {
8151*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8152*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8153*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8154*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8155*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8156*4bdc9457SAndroid Build Coastguard Worker }
8157*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_eq_1_2pass_fulltile_with_qmin)8158*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_eq_1_2pass_fulltile_with_qmin) {
8159*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8160*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8161*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8162*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8163*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8164*4bdc9457SAndroid Build Coastguard Worker }
8165*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_eq_1_2pass_subtile)8166*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_eq_1_2pass_subtile) {
8167*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8168*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8169*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8170*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8171*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8172*4bdc9457SAndroid Build Coastguard Worker }
8173*4bdc9457SAndroid Build Coastguard Worker }
8174*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_eq_1_2pass_subtile_with_input_stride)8175*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_eq_1_2pass_subtile_with_input_stride) {
8176*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8177*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8178*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8179*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8180*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
8181*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8182*4bdc9457SAndroid Build Coastguard Worker }
8183*4bdc9457SAndroid Build Coastguard Worker }
8184*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_eq_1_multipass_fulltile)8185*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_eq_1_multipass_fulltile) {
8186*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8187*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8188*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8189*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8190*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8191*4bdc9457SAndroid Build Coastguard Worker }
8192*4bdc9457SAndroid Build Coastguard Worker }
8193*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_eq_1_multipass_fulltile_with_input_stride)8194*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_eq_1_multipass_fulltile_with_input_stride) {
8195*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8196*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8197*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8198*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8199*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
8200*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8201*4bdc9457SAndroid Build Coastguard Worker }
8202*4bdc9457SAndroid Build Coastguard Worker }
8203*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_div_1_2pass_fulltile)8204*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_div_1_2pass_fulltile) {
8205*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
8206*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8207*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8208*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8209*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8210*4bdc9457SAndroid Build Coastguard Worker }
8211*4bdc9457SAndroid Build Coastguard Worker }
8212*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_div_1_2pass_subtile)8213*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_div_1_2pass_subtile) {
8214*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
8215*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8216*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8217*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8218*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8219*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8220*4bdc9457SAndroid Build Coastguard Worker }
8221*4bdc9457SAndroid Build Coastguard Worker }
8222*4bdc9457SAndroid Build Coastguard Worker }
8223*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_div_1_multipass_fulltile)8224*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_div_1_multipass_fulltile) {
8225*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
8226*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8227*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8228*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8229*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8230*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8231*4bdc9457SAndroid Build Coastguard Worker }
8232*4bdc9457SAndroid Build Coastguard Worker }
8233*4bdc9457SAndroid Build Coastguard Worker }
8234*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_div_1_multipass_fulltile_with_input_stride)8235*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_div_1_multipass_fulltile_with_input_stride) {
8236*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
8237*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8238*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8239*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8240*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8241*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
8242*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8243*4bdc9457SAndroid Build Coastguard Worker }
8244*4bdc9457SAndroid Build Coastguard Worker }
8245*4bdc9457SAndroid Build Coastguard Worker }
8246*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_gt_1_2pass_fulltile)8247*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_gt_1_2pass_fulltile) {
8248*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8249*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8250*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8251*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8252*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8253*4bdc9457SAndroid Build Coastguard Worker }
8254*4bdc9457SAndroid Build Coastguard Worker }
8255*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_gt_1_2pass_fulltile_with_qmax)8256*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_gt_1_2pass_fulltile_with_qmax) {
8257*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8258*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8259*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8260*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8261*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8262*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8263*4bdc9457SAndroid Build Coastguard Worker }
8264*4bdc9457SAndroid Build Coastguard Worker }
8265*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_gt_1_2pass_fulltile_with_qmin)8266*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_gt_1_2pass_fulltile_with_qmin) {
8267*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8268*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8269*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8270*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8271*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8272*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8273*4bdc9457SAndroid Build Coastguard Worker }
8274*4bdc9457SAndroid Build Coastguard Worker }
8275*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_gt_1_2pass_subtile)8276*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_gt_1_2pass_subtile) {
8277*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8278*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8279*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8280*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8281*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8282*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8283*4bdc9457SAndroid Build Coastguard Worker }
8284*4bdc9457SAndroid Build Coastguard Worker }
8285*4bdc9457SAndroid Build Coastguard Worker }
8286*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_gt_1_multipass_fulltile)8287*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_gt_1_multipass_fulltile) {
8288*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8289*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8290*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8291*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8292*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8293*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8294*4bdc9457SAndroid Build Coastguard Worker }
8295*4bdc9457SAndroid Build Coastguard Worker }
8296*4bdc9457SAndroid Build Coastguard Worker }
8297*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1,channels_gt_1_multipass_fulltile_with_input_stride)8298*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C1, channels_gt_1_multipass_fulltile_with_input_stride) {
8299*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8300*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8301*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8302*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8303*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8304*4bdc9457SAndroid Build Coastguard Worker .input_stride(17)
8305*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8306*4bdc9457SAndroid Build Coastguard Worker }
8307*4bdc9457SAndroid Build Coastguard Worker }
8308*4bdc9457SAndroid Build Coastguard Worker }
8309*4bdc9457SAndroid Build Coastguard Worker
8310*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_eq_2_2pass_fulltile)8311*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_eq_2_2pass_fulltile) {
8312*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8313*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8314*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8315*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8316*4bdc9457SAndroid Build Coastguard Worker }
8317*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_eq_2_2pass_fulltile_with_input_stride)8318*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_eq_2_2pass_fulltile_with_input_stride) {
8319*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8320*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8321*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8322*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
8323*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8324*4bdc9457SAndroid Build Coastguard Worker }
8325*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_eq_2_2pass_fulltile_with_qmax)8326*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_eq_2_2pass_fulltile_with_qmax) {
8327*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8328*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8329*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8330*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8331*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8332*4bdc9457SAndroid Build Coastguard Worker }
8333*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_eq_2_2pass_fulltile_with_qmin)8334*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_eq_2_2pass_fulltile_with_qmin) {
8335*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8336*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8337*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8338*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8339*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8340*4bdc9457SAndroid Build Coastguard Worker }
8341*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_eq_2_2pass_subtile)8342*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_eq_2_2pass_subtile) {
8343*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8344*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8345*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8346*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8347*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8348*4bdc9457SAndroid Build Coastguard Worker }
8349*4bdc9457SAndroid Build Coastguard Worker }
8350*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_eq_2_2pass_subtile_with_input_stride)8351*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_eq_2_2pass_subtile_with_input_stride) {
8352*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8353*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8354*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8355*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8356*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
8357*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8358*4bdc9457SAndroid Build Coastguard Worker }
8359*4bdc9457SAndroid Build Coastguard Worker }
8360*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_eq_2_multipass_fulltile)8361*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_eq_2_multipass_fulltile) {
8362*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8363*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8364*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8365*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8366*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8367*4bdc9457SAndroid Build Coastguard Worker }
8368*4bdc9457SAndroid Build Coastguard Worker }
8369*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_eq_2_multipass_fulltile_with_input_stride)8370*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_eq_2_multipass_fulltile_with_input_stride) {
8371*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8372*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8373*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8374*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8375*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
8376*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8377*4bdc9457SAndroid Build Coastguard Worker }
8378*4bdc9457SAndroid Build Coastguard Worker }
8379*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_div_2_2pass_fulltile)8380*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_div_2_2pass_fulltile) {
8381*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
8382*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8383*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8384*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8385*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8386*4bdc9457SAndroid Build Coastguard Worker }
8387*4bdc9457SAndroid Build Coastguard Worker }
8388*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_div_2_2pass_subtile)8389*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_div_2_2pass_subtile) {
8390*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
8391*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8392*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8393*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8394*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8395*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8396*4bdc9457SAndroid Build Coastguard Worker }
8397*4bdc9457SAndroid Build Coastguard Worker }
8398*4bdc9457SAndroid Build Coastguard Worker }
8399*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_div_2_multipass_fulltile)8400*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_div_2_multipass_fulltile) {
8401*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
8402*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8403*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8404*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8405*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8406*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8407*4bdc9457SAndroid Build Coastguard Worker }
8408*4bdc9457SAndroid Build Coastguard Worker }
8409*4bdc9457SAndroid Build Coastguard Worker }
8410*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_div_2_multipass_fulltile_with_input_stride)8411*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_div_2_multipass_fulltile_with_input_stride) {
8412*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
8413*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8414*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8415*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8416*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8417*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
8418*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8419*4bdc9457SAndroid Build Coastguard Worker }
8420*4bdc9457SAndroid Build Coastguard Worker }
8421*4bdc9457SAndroid Build Coastguard Worker }
8422*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_lt_2_2pass_fulltile)8423*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_lt_2_2pass_fulltile) {
8424*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
8425*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8426*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8427*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8428*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8429*4bdc9457SAndroid Build Coastguard Worker }
8430*4bdc9457SAndroid Build Coastguard Worker }
8431*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_lt_2_2pass_fulltile_with_qmax)8432*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_lt_2_2pass_fulltile_with_qmax) {
8433*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
8434*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8435*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8436*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8437*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8438*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8439*4bdc9457SAndroid Build Coastguard Worker }
8440*4bdc9457SAndroid Build Coastguard Worker }
8441*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_lt_2_2pass_fulltile_with_qmin)8442*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_lt_2_2pass_fulltile_with_qmin) {
8443*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
8444*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8445*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8446*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8447*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8448*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8449*4bdc9457SAndroid Build Coastguard Worker }
8450*4bdc9457SAndroid Build Coastguard Worker }
8451*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_lt_2_2pass_subtile)8452*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_lt_2_2pass_subtile) {
8453*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
8454*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8455*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8456*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8457*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8458*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8459*4bdc9457SAndroid Build Coastguard Worker }
8460*4bdc9457SAndroid Build Coastguard Worker }
8461*4bdc9457SAndroid Build Coastguard Worker }
8462*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_lt_2_multipass_fulltile)8463*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_lt_2_multipass_fulltile) {
8464*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
8465*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8466*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8467*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8468*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8469*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8470*4bdc9457SAndroid Build Coastguard Worker }
8471*4bdc9457SAndroid Build Coastguard Worker }
8472*4bdc9457SAndroid Build Coastguard Worker }
8473*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_lt_2_multipass_fulltile_with_input_stride)8474*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_lt_2_multipass_fulltile_with_input_stride) {
8475*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
8476*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8477*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8478*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8479*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8480*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
8481*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8482*4bdc9457SAndroid Build Coastguard Worker }
8483*4bdc9457SAndroid Build Coastguard Worker }
8484*4bdc9457SAndroid Build Coastguard Worker }
8485*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_gt_2_2pass_fulltile)8486*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_gt_2_2pass_fulltile) {
8487*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
8488*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8489*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8490*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8491*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8492*4bdc9457SAndroid Build Coastguard Worker }
8493*4bdc9457SAndroid Build Coastguard Worker }
8494*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_gt_2_2pass_fulltile_with_qmax)8495*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_gt_2_2pass_fulltile_with_qmax) {
8496*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
8497*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8498*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8499*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8500*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8501*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8502*4bdc9457SAndroid Build Coastguard Worker }
8503*4bdc9457SAndroid Build Coastguard Worker }
8504*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_gt_2_2pass_fulltile_with_qmin)8505*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_gt_2_2pass_fulltile_with_qmin) {
8506*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
8507*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8508*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8509*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8510*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8511*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8512*4bdc9457SAndroid Build Coastguard Worker }
8513*4bdc9457SAndroid Build Coastguard Worker }
8514*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_gt_2_2pass_subtile)8515*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_gt_2_2pass_subtile) {
8516*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
8517*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8518*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8519*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8520*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8521*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8522*4bdc9457SAndroid Build Coastguard Worker }
8523*4bdc9457SAndroid Build Coastguard Worker }
8524*4bdc9457SAndroid Build Coastguard Worker }
8525*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_gt_2_multipass_fulltile)8526*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_gt_2_multipass_fulltile) {
8527*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
8528*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8529*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8530*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8531*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8532*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8533*4bdc9457SAndroid Build Coastguard Worker }
8534*4bdc9457SAndroid Build Coastguard Worker }
8535*4bdc9457SAndroid Build Coastguard Worker }
8536*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2,channels_gt_2_multipass_fulltile_with_input_stride)8537*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C2, channels_gt_2_multipass_fulltile_with_input_stride) {
8538*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
8539*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8540*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8541*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8542*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8543*4bdc9457SAndroid Build Coastguard Worker .input_stride(17)
8544*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8545*4bdc9457SAndroid Build Coastguard Worker }
8546*4bdc9457SAndroid Build Coastguard Worker }
8547*4bdc9457SAndroid Build Coastguard Worker }
8548*4bdc9457SAndroid Build Coastguard Worker
8549*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_eq_4_2pass_fulltile)8550*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_eq_4_2pass_fulltile) {
8551*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8552*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8553*4bdc9457SAndroid Build Coastguard Worker .channels(4)
8554*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8555*4bdc9457SAndroid Build Coastguard Worker }
8556*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_eq_4_2pass_fulltile_with_input_stride)8557*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_eq_4_2pass_fulltile_with_input_stride) {
8558*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8559*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8560*4bdc9457SAndroid Build Coastguard Worker .channels(4)
8561*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
8562*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8563*4bdc9457SAndroid Build Coastguard Worker }
8564*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_eq_4_2pass_fulltile_with_qmax)8565*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_eq_4_2pass_fulltile_with_qmax) {
8566*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8567*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8568*4bdc9457SAndroid Build Coastguard Worker .channels(4)
8569*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8570*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8571*4bdc9457SAndroid Build Coastguard Worker }
8572*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_eq_4_2pass_fulltile_with_qmin)8573*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_eq_4_2pass_fulltile_with_qmin) {
8574*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8575*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8576*4bdc9457SAndroid Build Coastguard Worker .channels(4)
8577*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8578*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8579*4bdc9457SAndroid Build Coastguard Worker }
8580*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_eq_4_2pass_subtile)8581*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_eq_4_2pass_subtile) {
8582*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8583*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8584*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8585*4bdc9457SAndroid Build Coastguard Worker .channels(4)
8586*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8587*4bdc9457SAndroid Build Coastguard Worker }
8588*4bdc9457SAndroid Build Coastguard Worker }
8589*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_eq_4_2pass_subtile_with_input_stride)8590*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_eq_4_2pass_subtile_with_input_stride) {
8591*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8592*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8593*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8594*4bdc9457SAndroid Build Coastguard Worker .channels(4)
8595*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
8596*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8597*4bdc9457SAndroid Build Coastguard Worker }
8598*4bdc9457SAndroid Build Coastguard Worker }
8599*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_eq_4_multipass_fulltile)8600*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_eq_4_multipass_fulltile) {
8601*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8602*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8603*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8604*4bdc9457SAndroid Build Coastguard Worker .channels(4)
8605*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8606*4bdc9457SAndroid Build Coastguard Worker }
8607*4bdc9457SAndroid Build Coastguard Worker }
8608*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_eq_4_multipass_fulltile_with_input_stride)8609*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_eq_4_multipass_fulltile_with_input_stride) {
8610*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8611*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8612*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8613*4bdc9457SAndroid Build Coastguard Worker .channels(4)
8614*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
8615*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8616*4bdc9457SAndroid Build Coastguard Worker }
8617*4bdc9457SAndroid Build Coastguard Worker }
8618*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_div_4_2pass_fulltile)8619*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_div_4_2pass_fulltile) {
8620*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
8621*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8622*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8623*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8624*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8625*4bdc9457SAndroid Build Coastguard Worker }
8626*4bdc9457SAndroid Build Coastguard Worker }
8627*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_div_4_2pass_subtile)8628*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_div_4_2pass_subtile) {
8629*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
8630*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8631*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8632*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8633*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8634*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8635*4bdc9457SAndroid Build Coastguard Worker }
8636*4bdc9457SAndroid Build Coastguard Worker }
8637*4bdc9457SAndroid Build Coastguard Worker }
8638*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_div_4_multipass_fulltile)8639*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_div_4_multipass_fulltile) {
8640*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
8641*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8642*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8643*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8644*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8645*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8646*4bdc9457SAndroid Build Coastguard Worker }
8647*4bdc9457SAndroid Build Coastguard Worker }
8648*4bdc9457SAndroid Build Coastguard Worker }
8649*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_div_4_multipass_fulltile_with_input_stride)8650*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_div_4_multipass_fulltile_with_input_stride) {
8651*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
8652*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8653*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8654*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8655*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8656*4bdc9457SAndroid Build Coastguard Worker .input_stride(67)
8657*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8658*4bdc9457SAndroid Build Coastguard Worker }
8659*4bdc9457SAndroid Build Coastguard Worker }
8660*4bdc9457SAndroid Build Coastguard Worker }
8661*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_lt_4_2pass_fulltile)8662*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_lt_4_2pass_fulltile) {
8663*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8664*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8665*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8666*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8667*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8668*4bdc9457SAndroid Build Coastguard Worker }
8669*4bdc9457SAndroid Build Coastguard Worker }
8670*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_lt_4_2pass_fulltile_with_qmax)8671*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_lt_4_2pass_fulltile_with_qmax) {
8672*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8673*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8674*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8675*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8676*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8677*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8678*4bdc9457SAndroid Build Coastguard Worker }
8679*4bdc9457SAndroid Build Coastguard Worker }
8680*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_lt_4_2pass_fulltile_with_qmin)8681*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_lt_4_2pass_fulltile_with_qmin) {
8682*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8683*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8684*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8685*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8686*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8687*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8688*4bdc9457SAndroid Build Coastguard Worker }
8689*4bdc9457SAndroid Build Coastguard Worker }
8690*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_lt_4_2pass_subtile)8691*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_lt_4_2pass_subtile) {
8692*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8693*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8694*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8695*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8696*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8697*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8698*4bdc9457SAndroid Build Coastguard Worker }
8699*4bdc9457SAndroid Build Coastguard Worker }
8700*4bdc9457SAndroid Build Coastguard Worker }
8701*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_lt_4_multipass_fulltile)8702*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_lt_4_multipass_fulltile) {
8703*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8704*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8705*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8706*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8707*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8708*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8709*4bdc9457SAndroid Build Coastguard Worker }
8710*4bdc9457SAndroid Build Coastguard Worker }
8711*4bdc9457SAndroid Build Coastguard Worker }
8712*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_lt_4_multipass_fulltile_with_input_stride)8713*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_lt_4_multipass_fulltile_with_input_stride) {
8714*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
8715*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8716*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8717*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8718*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8719*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
8720*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8721*4bdc9457SAndroid Build Coastguard Worker }
8722*4bdc9457SAndroid Build Coastguard Worker }
8723*4bdc9457SAndroid Build Coastguard Worker }
8724*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_gt_4_2pass_fulltile)8725*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_gt_4_2pass_fulltile) {
8726*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8727*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8728*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8729*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8730*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8731*4bdc9457SAndroid Build Coastguard Worker }
8732*4bdc9457SAndroid Build Coastguard Worker }
8733*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_gt_4_2pass_fulltile_with_qmax)8734*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_gt_4_2pass_fulltile_with_qmax) {
8735*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8736*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8737*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8738*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8739*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8740*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8741*4bdc9457SAndroid Build Coastguard Worker }
8742*4bdc9457SAndroid Build Coastguard Worker }
8743*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_gt_4_2pass_fulltile_with_qmin)8744*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_gt_4_2pass_fulltile_with_qmin) {
8745*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8746*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8747*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8748*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8749*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8750*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8751*4bdc9457SAndroid Build Coastguard Worker }
8752*4bdc9457SAndroid Build Coastguard Worker }
8753*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_gt_4_2pass_subtile)8754*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_gt_4_2pass_subtile) {
8755*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8756*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8757*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8758*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8759*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8760*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8761*4bdc9457SAndroid Build Coastguard Worker }
8762*4bdc9457SAndroid Build Coastguard Worker }
8763*4bdc9457SAndroid Build Coastguard Worker }
8764*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_gt_4_multipass_fulltile)8765*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_gt_4_multipass_fulltile) {
8766*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8767*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8768*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8769*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8770*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8771*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8772*4bdc9457SAndroid Build Coastguard Worker }
8773*4bdc9457SAndroid Build Coastguard Worker }
8774*4bdc9457SAndroid Build Coastguard Worker }
8775*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4,channels_gt_4_multipass_fulltile_with_input_stride)8776*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_IMAGIC_C4, channels_gt_4_multipass_fulltile_with_input_stride) {
8777*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
8778*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8779*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8780*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8781*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8782*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
8783*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
8784*4bdc9457SAndroid Build Coastguard Worker }
8785*4bdc9457SAndroid Build Coastguard Worker }
8786*4bdc9457SAndroid Build Coastguard Worker }
8787*4bdc9457SAndroid Build Coastguard Worker
8788*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_eq_1_2pass_fulltile)8789*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_eq_1_2pass_fulltile) {
8790*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8791*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8792*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8793*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8794*4bdc9457SAndroid Build Coastguard Worker }
8795*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_eq_1_2pass_fulltile_with_input_stride)8796*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_eq_1_2pass_fulltile_with_input_stride) {
8797*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8798*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8799*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8800*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
8801*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8802*4bdc9457SAndroid Build Coastguard Worker }
8803*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_eq_1_2pass_fulltile_with_qmax)8804*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_eq_1_2pass_fulltile_with_qmax) {
8805*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8806*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8807*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8808*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8809*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8810*4bdc9457SAndroid Build Coastguard Worker }
8811*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_eq_1_2pass_fulltile_with_qmin)8812*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_eq_1_2pass_fulltile_with_qmin) {
8813*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8814*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8815*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8816*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8817*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8818*4bdc9457SAndroid Build Coastguard Worker }
8819*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_eq_1_2pass_subtile)8820*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_eq_1_2pass_subtile) {
8821*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8822*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8823*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8824*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8825*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8826*4bdc9457SAndroid Build Coastguard Worker }
8827*4bdc9457SAndroid Build Coastguard Worker }
8828*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_eq_1_2pass_subtile_with_input_stride)8829*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_eq_1_2pass_subtile_with_input_stride) {
8830*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8831*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8832*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8833*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8834*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
8835*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8836*4bdc9457SAndroid Build Coastguard Worker }
8837*4bdc9457SAndroid Build Coastguard Worker }
8838*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_eq_1_multipass_fulltile)8839*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_eq_1_multipass_fulltile) {
8840*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8841*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8842*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8843*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8844*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8845*4bdc9457SAndroid Build Coastguard Worker }
8846*4bdc9457SAndroid Build Coastguard Worker }
8847*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_eq_1_multipass_fulltile_with_input_stride)8848*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_eq_1_multipass_fulltile_with_input_stride) {
8849*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8850*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8851*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8852*4bdc9457SAndroid Build Coastguard Worker .channels(1)
8853*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
8854*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8855*4bdc9457SAndroid Build Coastguard Worker }
8856*4bdc9457SAndroid Build Coastguard Worker }
8857*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_div_1_2pass_fulltile)8858*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_div_1_2pass_fulltile) {
8859*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
8860*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8861*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8862*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8863*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8864*4bdc9457SAndroid Build Coastguard Worker }
8865*4bdc9457SAndroid Build Coastguard Worker }
8866*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_div_1_2pass_subtile)8867*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_div_1_2pass_subtile) {
8868*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
8869*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8870*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8871*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8872*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8873*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8874*4bdc9457SAndroid Build Coastguard Worker }
8875*4bdc9457SAndroid Build Coastguard Worker }
8876*4bdc9457SAndroid Build Coastguard Worker }
8877*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_div_1_multipass_fulltile)8878*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_div_1_multipass_fulltile) {
8879*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
8880*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8881*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8882*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8883*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8884*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8885*4bdc9457SAndroid Build Coastguard Worker }
8886*4bdc9457SAndroid Build Coastguard Worker }
8887*4bdc9457SAndroid Build Coastguard Worker }
8888*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_div_1_multipass_fulltile_with_input_stride)8889*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_div_1_multipass_fulltile_with_input_stride) {
8890*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 8; channels += 1) {
8891*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
8892*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8893*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8894*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8895*4bdc9457SAndroid Build Coastguard Worker .input_stride(19)
8896*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8897*4bdc9457SAndroid Build Coastguard Worker }
8898*4bdc9457SAndroid Build Coastguard Worker }
8899*4bdc9457SAndroid Build Coastguard Worker }
8900*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_gt_1_2pass_fulltile)8901*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_gt_1_2pass_fulltile) {
8902*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8903*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8904*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8905*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8906*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8907*4bdc9457SAndroid Build Coastguard Worker }
8908*4bdc9457SAndroid Build Coastguard Worker }
8909*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_gt_1_2pass_fulltile_with_qmax)8910*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_gt_1_2pass_fulltile_with_qmax) {
8911*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8912*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8913*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8914*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8915*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8916*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8917*4bdc9457SAndroid Build Coastguard Worker }
8918*4bdc9457SAndroid Build Coastguard Worker }
8919*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_gt_1_2pass_fulltile_with_qmin)8920*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_gt_1_2pass_fulltile_with_qmin) {
8921*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8922*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8923*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8924*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8925*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8926*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8927*4bdc9457SAndroid Build Coastguard Worker }
8928*4bdc9457SAndroid Build Coastguard Worker }
8929*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_gt_1_2pass_subtile)8930*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_gt_1_2pass_subtile) {
8931*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8932*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8933*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8934*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8935*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8936*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8937*4bdc9457SAndroid Build Coastguard Worker }
8938*4bdc9457SAndroid Build Coastguard Worker }
8939*4bdc9457SAndroid Build Coastguard Worker }
8940*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_gt_1_multipass_fulltile)8941*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_gt_1_multipass_fulltile) {
8942*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8943*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8944*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8945*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8946*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8947*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8948*4bdc9457SAndroid Build Coastguard Worker }
8949*4bdc9457SAndroid Build Coastguard Worker }
8950*4bdc9457SAndroid Build Coastguard Worker }
8951*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1,channels_gt_1_multipass_fulltile_with_input_stride)8952*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C1, channels_gt_1_multipass_fulltile_with_input_stride) {
8953*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
8954*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
8955*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8956*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
8957*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
8958*4bdc9457SAndroid Build Coastguard Worker .input_stride(17)
8959*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8960*4bdc9457SAndroid Build Coastguard Worker }
8961*4bdc9457SAndroid Build Coastguard Worker }
8962*4bdc9457SAndroid Build Coastguard Worker }
8963*4bdc9457SAndroid Build Coastguard Worker
8964*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_eq_2_2pass_fulltile)8965*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_eq_2_2pass_fulltile) {
8966*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8967*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8968*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8969*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8970*4bdc9457SAndroid Build Coastguard Worker }
8971*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_eq_2_2pass_fulltile_with_input_stride)8972*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_eq_2_2pass_fulltile_with_input_stride) {
8973*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8974*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8975*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8976*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
8977*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8978*4bdc9457SAndroid Build Coastguard Worker }
8979*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_eq_2_2pass_fulltile_with_qmax)8980*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_eq_2_2pass_fulltile_with_qmax) {
8981*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8982*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8983*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8984*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
8985*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8986*4bdc9457SAndroid Build Coastguard Worker }
8987*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_eq_2_2pass_fulltile_with_qmin)8988*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_eq_2_2pass_fulltile_with_qmin) {
8989*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8990*4bdc9457SAndroid Build Coastguard Worker .rows(14)
8991*4bdc9457SAndroid Build Coastguard Worker .channels(2)
8992*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
8993*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
8994*4bdc9457SAndroid Build Coastguard Worker }
8995*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_eq_2_2pass_subtile)8996*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_eq_2_2pass_subtile) {
8997*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
8998*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
8999*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9000*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9001*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9002*4bdc9457SAndroid Build Coastguard Worker }
9003*4bdc9457SAndroid Build Coastguard Worker }
9004*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_eq_2_2pass_subtile_with_input_stride)9005*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_eq_2_2pass_subtile_with_input_stride) {
9006*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
9007*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9008*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9009*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9010*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
9011*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9012*4bdc9457SAndroid Build Coastguard Worker }
9013*4bdc9457SAndroid Build Coastguard Worker }
9014*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_eq_2_multipass_fulltile)9015*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_eq_2_multipass_fulltile) {
9016*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9017*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9018*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9019*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9020*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9021*4bdc9457SAndroid Build Coastguard Worker }
9022*4bdc9457SAndroid Build Coastguard Worker }
9023*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_eq_2_multipass_fulltile_with_input_stride)9024*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_eq_2_multipass_fulltile_with_input_stride) {
9025*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9026*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9027*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9028*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9029*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
9030*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9031*4bdc9457SAndroid Build Coastguard Worker }
9032*4bdc9457SAndroid Build Coastguard Worker }
9033*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_div_2_2pass_fulltile)9034*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_div_2_2pass_fulltile) {
9035*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
9036*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9037*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9038*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9039*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9040*4bdc9457SAndroid Build Coastguard Worker }
9041*4bdc9457SAndroid Build Coastguard Worker }
9042*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_div_2_2pass_subtile)9043*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_div_2_2pass_subtile) {
9044*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
9045*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
9046*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9047*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9048*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9049*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9050*4bdc9457SAndroid Build Coastguard Worker }
9051*4bdc9457SAndroid Build Coastguard Worker }
9052*4bdc9457SAndroid Build Coastguard Worker }
9053*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_div_2_multipass_fulltile)9054*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_div_2_multipass_fulltile) {
9055*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
9056*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9057*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9058*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9059*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9060*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9061*4bdc9457SAndroid Build Coastguard Worker }
9062*4bdc9457SAndroid Build Coastguard Worker }
9063*4bdc9457SAndroid Build Coastguard Worker }
9064*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_div_2_multipass_fulltile_with_input_stride)9065*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_div_2_multipass_fulltile_with_input_stride) {
9066*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
9067*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9068*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9069*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9070*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9071*4bdc9457SAndroid Build Coastguard Worker .input_stride(37)
9072*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9073*4bdc9457SAndroid Build Coastguard Worker }
9074*4bdc9457SAndroid Build Coastguard Worker }
9075*4bdc9457SAndroid Build Coastguard Worker }
9076*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_lt_2_2pass_fulltile)9077*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_lt_2_2pass_fulltile) {
9078*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9079*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9080*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9081*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9082*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9083*4bdc9457SAndroid Build Coastguard Worker }
9084*4bdc9457SAndroid Build Coastguard Worker }
9085*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_lt_2_2pass_fulltile_with_qmax)9086*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_lt_2_2pass_fulltile_with_qmax) {
9087*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9088*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9089*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9090*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9091*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9092*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9093*4bdc9457SAndroid Build Coastguard Worker }
9094*4bdc9457SAndroid Build Coastguard Worker }
9095*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_lt_2_2pass_fulltile_with_qmin)9096*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_lt_2_2pass_fulltile_with_qmin) {
9097*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9098*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9099*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9100*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9101*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9102*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9103*4bdc9457SAndroid Build Coastguard Worker }
9104*4bdc9457SAndroid Build Coastguard Worker }
9105*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_lt_2_2pass_subtile)9106*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_lt_2_2pass_subtile) {
9107*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9108*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
9109*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9110*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9111*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9112*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9113*4bdc9457SAndroid Build Coastguard Worker }
9114*4bdc9457SAndroid Build Coastguard Worker }
9115*4bdc9457SAndroid Build Coastguard Worker }
9116*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_lt_2_multipass_fulltile)9117*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_lt_2_multipass_fulltile) {
9118*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9119*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9120*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9121*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9122*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9123*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9124*4bdc9457SAndroid Build Coastguard Worker }
9125*4bdc9457SAndroid Build Coastguard Worker }
9126*4bdc9457SAndroid Build Coastguard Worker }
9127*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_lt_2_multipass_fulltile_with_input_stride)9128*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_lt_2_multipass_fulltile_with_input_stride) {
9129*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9130*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9131*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9132*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9133*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9134*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
9135*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9136*4bdc9457SAndroid Build Coastguard Worker }
9137*4bdc9457SAndroid Build Coastguard Worker }
9138*4bdc9457SAndroid Build Coastguard Worker }
9139*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_gt_2_2pass_fulltile)9140*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_gt_2_2pass_fulltile) {
9141*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9142*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9143*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9144*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9145*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9146*4bdc9457SAndroid Build Coastguard Worker }
9147*4bdc9457SAndroid Build Coastguard Worker }
9148*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_gt_2_2pass_fulltile_with_qmax)9149*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_gt_2_2pass_fulltile_with_qmax) {
9150*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9151*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9152*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9153*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9154*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9155*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9156*4bdc9457SAndroid Build Coastguard Worker }
9157*4bdc9457SAndroid Build Coastguard Worker }
9158*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_gt_2_2pass_fulltile_with_qmin)9159*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_gt_2_2pass_fulltile_with_qmin) {
9160*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9161*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9162*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9163*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9164*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9165*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9166*4bdc9457SAndroid Build Coastguard Worker }
9167*4bdc9457SAndroid Build Coastguard Worker }
9168*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_gt_2_2pass_subtile)9169*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_gt_2_2pass_subtile) {
9170*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9171*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
9172*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9173*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9174*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9175*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9176*4bdc9457SAndroid Build Coastguard Worker }
9177*4bdc9457SAndroid Build Coastguard Worker }
9178*4bdc9457SAndroid Build Coastguard Worker }
9179*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_gt_2_multipass_fulltile)9180*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_gt_2_multipass_fulltile) {
9181*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9182*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
9183*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9184*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9185*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9186*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9187*4bdc9457SAndroid Build Coastguard Worker }
9188*4bdc9457SAndroid Build Coastguard Worker }
9189*4bdc9457SAndroid Build Coastguard Worker }
9190*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2,channels_gt_2_multipass_fulltile_with_input_stride)9191*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C2, channels_gt_2_multipass_fulltile_with_input_stride) {
9192*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9193*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
9194*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9195*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9196*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9197*4bdc9457SAndroid Build Coastguard Worker .input_stride(17)
9198*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9199*4bdc9457SAndroid Build Coastguard Worker }
9200*4bdc9457SAndroid Build Coastguard Worker }
9201*4bdc9457SAndroid Build Coastguard Worker }
9202*4bdc9457SAndroid Build Coastguard Worker
9203*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_eq_4_2pass_fulltile)9204*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_eq_4_2pass_fulltile) {
9205*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9206*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9207*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9208*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9209*4bdc9457SAndroid Build Coastguard Worker }
9210*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_eq_4_2pass_fulltile_with_input_stride)9211*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_eq_4_2pass_fulltile_with_input_stride) {
9212*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9213*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9214*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9215*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
9216*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9217*4bdc9457SAndroid Build Coastguard Worker }
9218*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_eq_4_2pass_fulltile_with_qmax)9219*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_eq_4_2pass_fulltile_with_qmax) {
9220*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9221*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9222*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9223*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9224*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9225*4bdc9457SAndroid Build Coastguard Worker }
9226*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_eq_4_2pass_fulltile_with_qmin)9227*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_eq_4_2pass_fulltile_with_qmin) {
9228*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9229*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9230*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9231*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9232*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9233*4bdc9457SAndroid Build Coastguard Worker }
9234*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_eq_4_2pass_subtile)9235*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_eq_4_2pass_subtile) {
9236*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
9237*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9238*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9239*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9240*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9241*4bdc9457SAndroid Build Coastguard Worker }
9242*4bdc9457SAndroid Build Coastguard Worker }
9243*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_eq_4_2pass_subtile_with_input_stride)9244*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_eq_4_2pass_subtile_with_input_stride) {
9245*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
9246*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9247*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9248*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9249*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
9250*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9251*4bdc9457SAndroid Build Coastguard Worker }
9252*4bdc9457SAndroid Build Coastguard Worker }
9253*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_eq_4_multipass_fulltile)9254*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_eq_4_multipass_fulltile) {
9255*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9256*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9257*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9258*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9259*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9260*4bdc9457SAndroid Build Coastguard Worker }
9261*4bdc9457SAndroid Build Coastguard Worker }
9262*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_eq_4_multipass_fulltile_with_input_stride)9263*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_eq_4_multipass_fulltile_with_input_stride) {
9264*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9265*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9266*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9267*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9268*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
9269*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9270*4bdc9457SAndroid Build Coastguard Worker }
9271*4bdc9457SAndroid Build Coastguard Worker }
9272*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_div_4_2pass_fulltile)9273*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_div_4_2pass_fulltile) {
9274*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
9275*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9276*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9277*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9278*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9279*4bdc9457SAndroid Build Coastguard Worker }
9280*4bdc9457SAndroid Build Coastguard Worker }
9281*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_div_4_2pass_subtile)9282*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_div_4_2pass_subtile) {
9283*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
9284*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
9285*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9286*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9287*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9288*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9289*4bdc9457SAndroid Build Coastguard Worker }
9290*4bdc9457SAndroid Build Coastguard Worker }
9291*4bdc9457SAndroid Build Coastguard Worker }
9292*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_div_4_multipass_fulltile)9293*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_div_4_multipass_fulltile) {
9294*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
9295*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9296*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9297*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9298*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9299*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9300*4bdc9457SAndroid Build Coastguard Worker }
9301*4bdc9457SAndroid Build Coastguard Worker }
9302*4bdc9457SAndroid Build Coastguard Worker }
9303*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_div_4_multipass_fulltile_with_input_stride)9304*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_div_4_multipass_fulltile_with_input_stride) {
9305*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
9306*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9307*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9308*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9309*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9310*4bdc9457SAndroid Build Coastguard Worker .input_stride(67)
9311*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9312*4bdc9457SAndroid Build Coastguard Worker }
9313*4bdc9457SAndroid Build Coastguard Worker }
9314*4bdc9457SAndroid Build Coastguard Worker }
9315*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_lt_4_2pass_fulltile)9316*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_lt_4_2pass_fulltile) {
9317*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9318*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9319*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9320*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9321*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9322*4bdc9457SAndroid Build Coastguard Worker }
9323*4bdc9457SAndroid Build Coastguard Worker }
9324*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_lt_4_2pass_fulltile_with_qmax)9325*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_lt_4_2pass_fulltile_with_qmax) {
9326*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9327*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9328*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9329*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9330*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9331*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9332*4bdc9457SAndroid Build Coastguard Worker }
9333*4bdc9457SAndroid Build Coastguard Worker }
9334*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_lt_4_2pass_fulltile_with_qmin)9335*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_lt_4_2pass_fulltile_with_qmin) {
9336*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9337*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9338*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9339*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9340*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9341*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9342*4bdc9457SAndroid Build Coastguard Worker }
9343*4bdc9457SAndroid Build Coastguard Worker }
9344*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_lt_4_2pass_subtile)9345*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_lt_4_2pass_subtile) {
9346*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9347*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
9348*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9349*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9350*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9351*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9352*4bdc9457SAndroid Build Coastguard Worker }
9353*4bdc9457SAndroid Build Coastguard Worker }
9354*4bdc9457SAndroid Build Coastguard Worker }
9355*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_lt_4_multipass_fulltile)9356*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_lt_4_multipass_fulltile) {
9357*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9358*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9359*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9360*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9361*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9362*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9363*4bdc9457SAndroid Build Coastguard Worker }
9364*4bdc9457SAndroid Build Coastguard Worker }
9365*4bdc9457SAndroid Build Coastguard Worker }
9366*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_lt_4_multipass_fulltile_with_input_stride)9367*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_lt_4_multipass_fulltile_with_input_stride) {
9368*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9369*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) {
9370*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9371*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9372*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9373*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
9374*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9375*4bdc9457SAndroid Build Coastguard Worker }
9376*4bdc9457SAndroid Build Coastguard Worker }
9377*4bdc9457SAndroid Build Coastguard Worker }
9378*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_gt_4_2pass_fulltile)9379*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_gt_4_2pass_fulltile) {
9380*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9381*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9382*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9383*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9384*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9385*4bdc9457SAndroid Build Coastguard Worker }
9386*4bdc9457SAndroid Build Coastguard Worker }
9387*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_gt_4_2pass_fulltile_with_qmax)9388*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_gt_4_2pass_fulltile_with_qmax) {
9389*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9390*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9391*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9392*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9393*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9394*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9395*4bdc9457SAndroid Build Coastguard Worker }
9396*4bdc9457SAndroid Build Coastguard Worker }
9397*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_gt_4_2pass_fulltile_with_qmin)9398*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_gt_4_2pass_fulltile_with_qmin) {
9399*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9400*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9401*4bdc9457SAndroid Build Coastguard Worker .rows(14)
9402*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9403*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9404*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9405*4bdc9457SAndroid Build Coastguard Worker }
9406*4bdc9457SAndroid Build Coastguard Worker }
9407*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_gt_4_2pass_subtile)9408*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_gt_4_2pass_subtile) {
9409*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9410*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) {
9411*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9412*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9413*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9414*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9415*4bdc9457SAndroid Build Coastguard Worker }
9416*4bdc9457SAndroid Build Coastguard Worker }
9417*4bdc9457SAndroid Build Coastguard Worker }
9418*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_gt_4_multipass_fulltile)9419*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_gt_4_multipass_fulltile) {
9420*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9421*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
9422*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9423*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9424*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9425*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9426*4bdc9457SAndroid Build Coastguard Worker }
9427*4bdc9457SAndroid Build Coastguard Worker }
9428*4bdc9457SAndroid Build Coastguard Worker }
9429*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4,channels_gt_4_multipass_fulltile_with_input_stride)9430*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7P7X__SCALAR_LRINTF_C4, channels_gt_4_multipass_fulltile_with_input_stride) {
9431*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9432*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) {
9433*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9434*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9435*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9436*4bdc9457SAndroid Build Coastguard Worker .input_stride(23)
9437*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7p7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
9438*4bdc9457SAndroid Build Coastguard Worker }
9439*4bdc9457SAndroid Build Coastguard Worker }
9440*4bdc9457SAndroid Build Coastguard Worker }
9441*4bdc9457SAndroid Build Coastguard Worker
9442*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1,channels_eq_1_fulltile)9443*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1, channels_eq_1_fulltile) {
9444*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9445*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9446*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9447*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9448*4bdc9457SAndroid Build Coastguard Worker }
9449*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1,channels_eq_1_subtile)9450*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1, channels_eq_1_subtile) {
9451*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9452*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9453*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9454*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9455*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9456*4bdc9457SAndroid Build Coastguard Worker }
9457*4bdc9457SAndroid Build Coastguard Worker }
9458*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1,channels_eq_1_fulltile_with_input_stride)9459*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1, channels_eq_1_fulltile_with_input_stride) {
9460*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9461*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9462*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9463*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
9464*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9465*4bdc9457SAndroid Build Coastguard Worker }
9466*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1,channels_eq_1_fulltile_with_qmax)9467*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1, channels_eq_1_fulltile_with_qmax) {
9468*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9469*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9470*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9471*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9472*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9473*4bdc9457SAndroid Build Coastguard Worker }
9474*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1,channels_eq_1_fulltile_with_qmin)9475*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1, channels_eq_1_fulltile_with_qmin) {
9476*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9477*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9478*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9479*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9480*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9481*4bdc9457SAndroid Build Coastguard Worker }
9482*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1,channels_gt_1_fulltile)9483*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1, channels_gt_1_fulltile) {
9484*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
9485*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9486*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9487*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9488*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9489*4bdc9457SAndroid Build Coastguard Worker }
9490*4bdc9457SAndroid Build Coastguard Worker }
9491*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1,channels_gt_1_subtile)9492*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1, channels_gt_1_subtile) {
9493*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
9494*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9495*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9496*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9497*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9498*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9499*4bdc9457SAndroid Build Coastguard Worker }
9500*4bdc9457SAndroid Build Coastguard Worker }
9501*4bdc9457SAndroid Build Coastguard Worker }
9502*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1,channels_gt_1_fulltile_with_qmax)9503*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1, channels_gt_1_fulltile_with_qmax) {
9504*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
9505*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9506*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9507*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9508*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9509*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9510*4bdc9457SAndroid Build Coastguard Worker }
9511*4bdc9457SAndroid Build Coastguard Worker }
9512*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1,channels_gt_1_fulltile_with_qmin)9513*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C1, channels_gt_1_fulltile_with_qmin) {
9514*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
9515*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9516*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9517*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9518*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9519*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9520*4bdc9457SAndroid Build Coastguard Worker }
9521*4bdc9457SAndroid Build Coastguard Worker }
9522*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_eq_2_fulltile)9523*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_eq_2_fulltile) {
9524*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9525*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9526*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9527*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9528*4bdc9457SAndroid Build Coastguard Worker }
9529*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_eq_2_subtile)9530*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_eq_2_subtile) {
9531*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9532*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9533*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9534*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9535*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9536*4bdc9457SAndroid Build Coastguard Worker }
9537*4bdc9457SAndroid Build Coastguard Worker }
9538*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_eq_2_fulltile_with_input_stride)9539*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_eq_2_fulltile_with_input_stride) {
9540*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9541*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9542*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9543*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
9544*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9545*4bdc9457SAndroid Build Coastguard Worker }
9546*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_eq_2_fulltile_with_qmax)9547*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_eq_2_fulltile_with_qmax) {
9548*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9549*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9550*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9551*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9552*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9553*4bdc9457SAndroid Build Coastguard Worker }
9554*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_eq_2_fulltile_with_qmin)9555*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_eq_2_fulltile_with_qmin) {
9556*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9557*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9558*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9559*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9560*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9561*4bdc9457SAndroid Build Coastguard Worker }
9562*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_div_2_fulltile)9563*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_div_2_fulltile) {
9564*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
9565*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9566*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9567*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9568*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9569*4bdc9457SAndroid Build Coastguard Worker }
9570*4bdc9457SAndroid Build Coastguard Worker }
9571*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_div_2_subtile)9572*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_div_2_subtile) {
9573*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
9574*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9575*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9576*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9577*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9578*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9579*4bdc9457SAndroid Build Coastguard Worker }
9580*4bdc9457SAndroid Build Coastguard Worker }
9581*4bdc9457SAndroid Build Coastguard Worker }
9582*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_lt_2_fulltile)9583*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_lt_2_fulltile) {
9584*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9585*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9586*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9587*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9588*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9589*4bdc9457SAndroid Build Coastguard Worker }
9590*4bdc9457SAndroid Build Coastguard Worker }
9591*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_lt_2_subtile)9592*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_lt_2_subtile) {
9593*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9594*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9595*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9596*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9597*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9598*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9599*4bdc9457SAndroid Build Coastguard Worker }
9600*4bdc9457SAndroid Build Coastguard Worker }
9601*4bdc9457SAndroid Build Coastguard Worker }
9602*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_lt_2_fulltile_with_qmax)9603*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_lt_2_fulltile_with_qmax) {
9604*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9605*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9606*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9607*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9608*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9609*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9610*4bdc9457SAndroid Build Coastguard Worker }
9611*4bdc9457SAndroid Build Coastguard Worker }
9612*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_lt_2_fulltile_with_qmin)9613*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_lt_2_fulltile_with_qmin) {
9614*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9615*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9616*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9617*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9618*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9619*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9620*4bdc9457SAndroid Build Coastguard Worker }
9621*4bdc9457SAndroid Build Coastguard Worker }
9622*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_gt_2_fulltile)9623*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_gt_2_fulltile) {
9624*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9625*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9626*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9627*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9628*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9629*4bdc9457SAndroid Build Coastguard Worker }
9630*4bdc9457SAndroid Build Coastguard Worker }
9631*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_gt_2_subtile)9632*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_gt_2_subtile) {
9633*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9634*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9635*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9636*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9637*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9638*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9639*4bdc9457SAndroid Build Coastguard Worker }
9640*4bdc9457SAndroid Build Coastguard Worker }
9641*4bdc9457SAndroid Build Coastguard Worker }
9642*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_gt_2_fulltile_with_qmax)9643*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_gt_2_fulltile_with_qmax) {
9644*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9645*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9646*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9647*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9648*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9649*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9650*4bdc9457SAndroid Build Coastguard Worker }
9651*4bdc9457SAndroid Build Coastguard Worker }
9652*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2,channels_gt_2_fulltile_with_qmin)9653*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C2, channels_gt_2_fulltile_with_qmin) {
9654*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9655*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9656*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9657*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9658*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9659*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9660*4bdc9457SAndroid Build Coastguard Worker }
9661*4bdc9457SAndroid Build Coastguard Worker }
9662*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_eq_4_fulltile)9663*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_eq_4_fulltile) {
9664*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9665*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9666*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9667*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9668*4bdc9457SAndroid Build Coastguard Worker }
9669*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_eq_4_subtile)9670*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_eq_4_subtile) {
9671*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9672*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9673*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9674*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9675*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9676*4bdc9457SAndroid Build Coastguard Worker }
9677*4bdc9457SAndroid Build Coastguard Worker }
9678*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_eq_4_fulltile_with_input_stride)9679*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_eq_4_fulltile_with_input_stride) {
9680*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9681*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9682*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9683*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
9684*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9685*4bdc9457SAndroid Build Coastguard Worker }
9686*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_eq_4_fulltile_with_qmax)9687*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_eq_4_fulltile_with_qmax) {
9688*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9689*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9690*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9691*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9692*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9693*4bdc9457SAndroid Build Coastguard Worker }
9694*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_eq_4_fulltile_with_qmin)9695*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_eq_4_fulltile_with_qmin) {
9696*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9697*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9698*4bdc9457SAndroid Build Coastguard Worker .channels(4)
9699*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9700*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9701*4bdc9457SAndroid Build Coastguard Worker }
9702*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_div_4_fulltile)9703*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_div_4_fulltile) {
9704*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
9705*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9706*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9707*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9708*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9709*4bdc9457SAndroid Build Coastguard Worker }
9710*4bdc9457SAndroid Build Coastguard Worker }
9711*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_div_4_subtile)9712*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_div_4_subtile) {
9713*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
9714*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9715*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9716*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9717*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9718*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9719*4bdc9457SAndroid Build Coastguard Worker }
9720*4bdc9457SAndroid Build Coastguard Worker }
9721*4bdc9457SAndroid Build Coastguard Worker }
9722*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_lt_4_fulltile)9723*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_lt_4_fulltile) {
9724*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9725*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9726*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9727*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9728*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9729*4bdc9457SAndroid Build Coastguard Worker }
9730*4bdc9457SAndroid Build Coastguard Worker }
9731*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_lt_4_subtile)9732*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_lt_4_subtile) {
9733*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9734*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9735*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9736*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9737*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9738*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9739*4bdc9457SAndroid Build Coastguard Worker }
9740*4bdc9457SAndroid Build Coastguard Worker }
9741*4bdc9457SAndroid Build Coastguard Worker }
9742*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_lt_4_fulltile_with_qmax)9743*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_lt_4_fulltile_with_qmax) {
9744*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9745*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9746*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9747*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9748*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9749*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9750*4bdc9457SAndroid Build Coastguard Worker }
9751*4bdc9457SAndroid Build Coastguard Worker }
9752*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_lt_4_fulltile_with_qmin)9753*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_lt_4_fulltile_with_qmin) {
9754*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
9755*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9756*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9757*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9758*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9759*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9760*4bdc9457SAndroid Build Coastguard Worker }
9761*4bdc9457SAndroid Build Coastguard Worker }
9762*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_gt_4_fulltile)9763*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_gt_4_fulltile) {
9764*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9765*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9766*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9767*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9768*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9769*4bdc9457SAndroid Build Coastguard Worker }
9770*4bdc9457SAndroid Build Coastguard Worker }
9771*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_gt_4_subtile)9772*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_gt_4_subtile) {
9773*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9774*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9775*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9776*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9777*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9778*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9779*4bdc9457SAndroid Build Coastguard Worker }
9780*4bdc9457SAndroid Build Coastguard Worker }
9781*4bdc9457SAndroid Build Coastguard Worker }
9782*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_gt_4_fulltile_with_qmax)9783*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_gt_4_fulltile_with_qmax) {
9784*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9785*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9786*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9787*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9788*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9789*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9790*4bdc9457SAndroid Build Coastguard Worker }
9791*4bdc9457SAndroid Build Coastguard Worker }
9792*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4,channels_gt_4_fulltile_with_qmin)9793*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_FMAGIC_C4, channels_gt_4_fulltile_with_qmin) {
9794*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
9795*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9796*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9797*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9798*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9799*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_fmagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_fmagic_params, xnn_qu8_requantize_fp32);
9800*4bdc9457SAndroid Build Coastguard Worker }
9801*4bdc9457SAndroid Build Coastguard Worker }
9802*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1,channels_eq_1_fulltile)9803*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1, channels_eq_1_fulltile) {
9804*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9805*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9806*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9807*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9808*4bdc9457SAndroid Build Coastguard Worker }
9809*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1,channels_eq_1_subtile)9810*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1, channels_eq_1_subtile) {
9811*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9812*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9813*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9814*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9815*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9816*4bdc9457SAndroid Build Coastguard Worker }
9817*4bdc9457SAndroid Build Coastguard Worker }
9818*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1,channels_eq_1_fulltile_with_input_stride)9819*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1, channels_eq_1_fulltile_with_input_stride) {
9820*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9821*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9822*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9823*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
9824*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9825*4bdc9457SAndroid Build Coastguard Worker }
9826*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1,channels_eq_1_fulltile_with_qmax)9827*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1, channels_eq_1_fulltile_with_qmax) {
9828*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9829*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9830*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9831*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9832*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9833*4bdc9457SAndroid Build Coastguard Worker }
9834*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1,channels_eq_1_fulltile_with_qmin)9835*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1, channels_eq_1_fulltile_with_qmin) {
9836*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9837*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9838*4bdc9457SAndroid Build Coastguard Worker .channels(1)
9839*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9840*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9841*4bdc9457SAndroid Build Coastguard Worker }
9842*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1,channels_gt_1_fulltile)9843*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1, channels_gt_1_fulltile) {
9844*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
9845*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9846*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9847*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9848*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9849*4bdc9457SAndroid Build Coastguard Worker }
9850*4bdc9457SAndroid Build Coastguard Worker }
9851*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1,channels_gt_1_subtile)9852*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1, channels_gt_1_subtile) {
9853*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
9854*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9855*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9856*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9857*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9858*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9859*4bdc9457SAndroid Build Coastguard Worker }
9860*4bdc9457SAndroid Build Coastguard Worker }
9861*4bdc9457SAndroid Build Coastguard Worker }
9862*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1,channels_gt_1_fulltile_with_qmax)9863*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1, channels_gt_1_fulltile_with_qmax) {
9864*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
9865*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9866*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9867*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9868*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9869*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9870*4bdc9457SAndroid Build Coastguard Worker }
9871*4bdc9457SAndroid Build Coastguard Worker }
9872*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1,channels_gt_1_fulltile_with_qmin)9873*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C1, channels_gt_1_fulltile_with_qmin) {
9874*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
9875*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9876*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9877*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9878*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9879*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9880*4bdc9457SAndroid Build Coastguard Worker }
9881*4bdc9457SAndroid Build Coastguard Worker }
9882*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_eq_2_fulltile)9883*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_eq_2_fulltile) {
9884*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9885*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9886*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9887*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9888*4bdc9457SAndroid Build Coastguard Worker }
9889*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_eq_2_subtile)9890*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_eq_2_subtile) {
9891*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9892*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9893*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9894*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9895*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9896*4bdc9457SAndroid Build Coastguard Worker }
9897*4bdc9457SAndroid Build Coastguard Worker }
9898*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_eq_2_fulltile_with_input_stride)9899*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_eq_2_fulltile_with_input_stride) {
9900*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9901*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9902*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9903*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
9904*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9905*4bdc9457SAndroid Build Coastguard Worker }
9906*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_eq_2_fulltile_with_qmax)9907*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_eq_2_fulltile_with_qmax) {
9908*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9909*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9910*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9911*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9912*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9913*4bdc9457SAndroid Build Coastguard Worker }
9914*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_eq_2_fulltile_with_qmin)9915*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_eq_2_fulltile_with_qmin) {
9916*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9917*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9918*4bdc9457SAndroid Build Coastguard Worker .channels(2)
9919*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9920*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9921*4bdc9457SAndroid Build Coastguard Worker }
9922*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_div_2_fulltile)9923*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_div_2_fulltile) {
9924*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
9925*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9926*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9927*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9928*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9929*4bdc9457SAndroid Build Coastguard Worker }
9930*4bdc9457SAndroid Build Coastguard Worker }
9931*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_div_2_subtile)9932*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_div_2_subtile) {
9933*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
9934*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9935*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9936*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9937*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9938*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9939*4bdc9457SAndroid Build Coastguard Worker }
9940*4bdc9457SAndroid Build Coastguard Worker }
9941*4bdc9457SAndroid Build Coastguard Worker }
9942*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_lt_2_fulltile)9943*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_lt_2_fulltile) {
9944*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9945*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9946*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9947*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9948*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9949*4bdc9457SAndroid Build Coastguard Worker }
9950*4bdc9457SAndroid Build Coastguard Worker }
9951*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_lt_2_subtile)9952*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_lt_2_subtile) {
9953*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9954*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9955*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9956*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9957*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9958*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9959*4bdc9457SAndroid Build Coastguard Worker }
9960*4bdc9457SAndroid Build Coastguard Worker }
9961*4bdc9457SAndroid Build Coastguard Worker }
9962*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_lt_2_fulltile_with_qmax)9963*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_lt_2_fulltile_with_qmax) {
9964*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9965*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9966*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9967*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9968*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
9969*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9970*4bdc9457SAndroid Build Coastguard Worker }
9971*4bdc9457SAndroid Build Coastguard Worker }
9972*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_lt_2_fulltile_with_qmin)9973*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_lt_2_fulltile_with_qmin) {
9974*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
9975*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9976*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9977*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9978*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
9979*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9980*4bdc9457SAndroid Build Coastguard Worker }
9981*4bdc9457SAndroid Build Coastguard Worker }
9982*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_gt_2_fulltile)9983*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_gt_2_fulltile) {
9984*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9985*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9986*4bdc9457SAndroid Build Coastguard Worker .rows(7)
9987*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9988*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9989*4bdc9457SAndroid Build Coastguard Worker }
9990*4bdc9457SAndroid Build Coastguard Worker }
9991*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_gt_2_subtile)9992*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_gt_2_subtile) {
9993*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
9994*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
9995*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
9996*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
9997*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
9998*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
9999*4bdc9457SAndroid Build Coastguard Worker }
10000*4bdc9457SAndroid Build Coastguard Worker }
10001*4bdc9457SAndroid Build Coastguard Worker }
10002*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_gt_2_fulltile_with_qmax)10003*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_gt_2_fulltile_with_qmax) {
10004*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
10005*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10006*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10007*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10008*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10009*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10010*4bdc9457SAndroid Build Coastguard Worker }
10011*4bdc9457SAndroid Build Coastguard Worker }
10012*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2,channels_gt_2_fulltile_with_qmin)10013*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C2, channels_gt_2_fulltile_with_qmin) {
10014*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
10015*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10016*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10017*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10018*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10019*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10020*4bdc9457SAndroid Build Coastguard Worker }
10021*4bdc9457SAndroid Build Coastguard Worker }
10022*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_eq_4_fulltile)10023*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_eq_4_fulltile) {
10024*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10025*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10026*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10027*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10028*4bdc9457SAndroid Build Coastguard Worker }
10029*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_eq_4_subtile)10030*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_eq_4_subtile) {
10031*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10032*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10033*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10034*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10035*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10036*4bdc9457SAndroid Build Coastguard Worker }
10037*4bdc9457SAndroid Build Coastguard Worker }
10038*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_eq_4_fulltile_with_input_stride)10039*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_eq_4_fulltile_with_input_stride) {
10040*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10041*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10042*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10043*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
10044*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10045*4bdc9457SAndroid Build Coastguard Worker }
10046*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_eq_4_fulltile_with_qmax)10047*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_eq_4_fulltile_with_qmax) {
10048*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10049*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10050*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10051*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10052*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10053*4bdc9457SAndroid Build Coastguard Worker }
10054*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_eq_4_fulltile_with_qmin)10055*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_eq_4_fulltile_with_qmin) {
10056*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10057*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10058*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10059*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10060*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10061*4bdc9457SAndroid Build Coastguard Worker }
10062*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_div_4_fulltile)10063*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_div_4_fulltile) {
10064*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
10065*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10066*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10067*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10068*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10069*4bdc9457SAndroid Build Coastguard Worker }
10070*4bdc9457SAndroid Build Coastguard Worker }
10071*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_div_4_subtile)10072*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_div_4_subtile) {
10073*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
10074*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10075*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10076*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10077*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10078*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10079*4bdc9457SAndroid Build Coastguard Worker }
10080*4bdc9457SAndroid Build Coastguard Worker }
10081*4bdc9457SAndroid Build Coastguard Worker }
10082*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_lt_4_fulltile)10083*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_lt_4_fulltile) {
10084*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
10085*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10086*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10087*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10088*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10089*4bdc9457SAndroid Build Coastguard Worker }
10090*4bdc9457SAndroid Build Coastguard Worker }
10091*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_lt_4_subtile)10092*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_lt_4_subtile) {
10093*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
10094*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10095*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10096*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10097*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10098*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10099*4bdc9457SAndroid Build Coastguard Worker }
10100*4bdc9457SAndroid Build Coastguard Worker }
10101*4bdc9457SAndroid Build Coastguard Worker }
10102*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_lt_4_fulltile_with_qmax)10103*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_lt_4_fulltile_with_qmax) {
10104*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
10105*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10106*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10107*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10108*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10109*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10110*4bdc9457SAndroid Build Coastguard Worker }
10111*4bdc9457SAndroid Build Coastguard Worker }
10112*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_lt_4_fulltile_with_qmin)10113*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_lt_4_fulltile_with_qmin) {
10114*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
10115*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10116*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10117*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10118*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10119*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10120*4bdc9457SAndroid Build Coastguard Worker }
10121*4bdc9457SAndroid Build Coastguard Worker }
10122*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_gt_4_fulltile)10123*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_gt_4_fulltile) {
10124*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
10125*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10126*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10127*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10128*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10129*4bdc9457SAndroid Build Coastguard Worker }
10130*4bdc9457SAndroid Build Coastguard Worker }
10131*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_gt_4_subtile)10132*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_gt_4_subtile) {
10133*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
10134*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10135*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10136*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10137*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10138*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10139*4bdc9457SAndroid Build Coastguard Worker }
10140*4bdc9457SAndroid Build Coastguard Worker }
10141*4bdc9457SAndroid Build Coastguard Worker }
10142*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_gt_4_fulltile_with_qmax)10143*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_gt_4_fulltile_with_qmax) {
10144*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
10145*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10146*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10147*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10148*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10149*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10150*4bdc9457SAndroid Build Coastguard Worker }
10151*4bdc9457SAndroid Build Coastguard Worker }
10152*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4,channels_gt_4_fulltile_with_qmin)10153*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_IMAGIC_C4, channels_gt_4_fulltile_with_qmin) {
10154*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
10155*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10156*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10157*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10158*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10159*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_imagic_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_imagic_params, xnn_qu8_requantize_fp32);
10160*4bdc9457SAndroid Build Coastguard Worker }
10161*4bdc9457SAndroid Build Coastguard Worker }
10162*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1,channels_eq_1_fulltile)10163*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1, channels_eq_1_fulltile) {
10164*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10165*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10166*4bdc9457SAndroid Build Coastguard Worker .channels(1)
10167*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10168*4bdc9457SAndroid Build Coastguard Worker }
10169*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1,channels_eq_1_subtile)10170*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1, channels_eq_1_subtile) {
10171*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10172*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10173*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10174*4bdc9457SAndroid Build Coastguard Worker .channels(1)
10175*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10176*4bdc9457SAndroid Build Coastguard Worker }
10177*4bdc9457SAndroid Build Coastguard Worker }
10178*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1,channels_eq_1_fulltile_with_input_stride)10179*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1, channels_eq_1_fulltile_with_input_stride) {
10180*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10181*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10182*4bdc9457SAndroid Build Coastguard Worker .channels(1)
10183*4bdc9457SAndroid Build Coastguard Worker .input_stride(3)
10184*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10185*4bdc9457SAndroid Build Coastguard Worker }
10186*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1,channels_eq_1_fulltile_with_qmax)10187*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1, channels_eq_1_fulltile_with_qmax) {
10188*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10189*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10190*4bdc9457SAndroid Build Coastguard Worker .channels(1)
10191*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10192*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10193*4bdc9457SAndroid Build Coastguard Worker }
10194*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1,channels_eq_1_fulltile_with_qmin)10195*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1, channels_eq_1_fulltile_with_qmin) {
10196*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10197*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10198*4bdc9457SAndroid Build Coastguard Worker .channels(1)
10199*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10200*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10201*4bdc9457SAndroid Build Coastguard Worker }
10202*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1,channels_gt_1_fulltile)10203*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1, channels_gt_1_fulltile) {
10204*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
10205*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10206*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10207*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10208*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10209*4bdc9457SAndroid Build Coastguard Worker }
10210*4bdc9457SAndroid Build Coastguard Worker }
10211*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1,channels_gt_1_subtile)10212*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1, channels_gt_1_subtile) {
10213*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
10214*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10215*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10216*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10217*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10218*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10219*4bdc9457SAndroid Build Coastguard Worker }
10220*4bdc9457SAndroid Build Coastguard Worker }
10221*4bdc9457SAndroid Build Coastguard Worker }
10222*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1,channels_gt_1_fulltile_with_qmax)10223*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1, channels_gt_1_fulltile_with_qmax) {
10224*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
10225*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10226*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10227*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10228*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10229*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10230*4bdc9457SAndroid Build Coastguard Worker }
10231*4bdc9457SAndroid Build Coastguard Worker }
10232*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1,channels_gt_1_fulltile_with_qmin)10233*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C1, channels_gt_1_fulltile_with_qmin) {
10234*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 10; channels++) {
10235*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10236*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10237*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10238*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10239*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c1, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10240*4bdc9457SAndroid Build Coastguard Worker }
10241*4bdc9457SAndroid Build Coastguard Worker }
10242*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_eq_2_fulltile)10243*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_eq_2_fulltile) {
10244*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10245*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10246*4bdc9457SAndroid Build Coastguard Worker .channels(2)
10247*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10248*4bdc9457SAndroid Build Coastguard Worker }
10249*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_eq_2_subtile)10250*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_eq_2_subtile) {
10251*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10252*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10253*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10254*4bdc9457SAndroid Build Coastguard Worker .channels(2)
10255*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10256*4bdc9457SAndroid Build Coastguard Worker }
10257*4bdc9457SAndroid Build Coastguard Worker }
10258*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_eq_2_fulltile_with_input_stride)10259*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_eq_2_fulltile_with_input_stride) {
10260*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10261*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10262*4bdc9457SAndroid Build Coastguard Worker .channels(2)
10263*4bdc9457SAndroid Build Coastguard Worker .input_stride(5)
10264*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10265*4bdc9457SAndroid Build Coastguard Worker }
10266*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_eq_2_fulltile_with_qmax)10267*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_eq_2_fulltile_with_qmax) {
10268*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10269*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10270*4bdc9457SAndroid Build Coastguard Worker .channels(2)
10271*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10272*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10273*4bdc9457SAndroid Build Coastguard Worker }
10274*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_eq_2_fulltile_with_qmin)10275*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_eq_2_fulltile_with_qmin) {
10276*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10277*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10278*4bdc9457SAndroid Build Coastguard Worker .channels(2)
10279*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10280*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10281*4bdc9457SAndroid Build Coastguard Worker }
10282*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_div_2_fulltile)10283*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_div_2_fulltile) {
10284*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
10285*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10286*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10287*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10288*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10289*4bdc9457SAndroid Build Coastguard Worker }
10290*4bdc9457SAndroid Build Coastguard Worker }
10291*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_div_2_subtile)10292*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_div_2_subtile) {
10293*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 4; channels < 16; channels += 2) {
10294*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10295*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10296*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10297*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10298*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10299*4bdc9457SAndroid Build Coastguard Worker }
10300*4bdc9457SAndroid Build Coastguard Worker }
10301*4bdc9457SAndroid Build Coastguard Worker }
10302*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_lt_2_fulltile)10303*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_lt_2_fulltile) {
10304*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
10305*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10306*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10307*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10308*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10309*4bdc9457SAndroid Build Coastguard Worker }
10310*4bdc9457SAndroid Build Coastguard Worker }
10311*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_lt_2_subtile)10312*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_lt_2_subtile) {
10313*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
10314*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10315*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10316*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10317*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10318*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10319*4bdc9457SAndroid Build Coastguard Worker }
10320*4bdc9457SAndroid Build Coastguard Worker }
10321*4bdc9457SAndroid Build Coastguard Worker }
10322*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_lt_2_fulltile_with_qmax)10323*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_lt_2_fulltile_with_qmax) {
10324*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
10325*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10326*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10327*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10328*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10329*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10330*4bdc9457SAndroid Build Coastguard Worker }
10331*4bdc9457SAndroid Build Coastguard Worker }
10332*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_lt_2_fulltile_with_qmin)10333*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_lt_2_fulltile_with_qmin) {
10334*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 2; channels++) {
10335*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10336*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10337*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10338*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10339*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10340*4bdc9457SAndroid Build Coastguard Worker }
10341*4bdc9457SAndroid Build Coastguard Worker }
10342*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_gt_2_fulltile)10343*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_gt_2_fulltile) {
10344*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
10345*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10346*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10347*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10348*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10349*4bdc9457SAndroid Build Coastguard Worker }
10350*4bdc9457SAndroid Build Coastguard Worker }
10351*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_gt_2_subtile)10352*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_gt_2_subtile) {
10353*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
10354*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10355*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10356*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10357*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10358*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10359*4bdc9457SAndroid Build Coastguard Worker }
10360*4bdc9457SAndroid Build Coastguard Worker }
10361*4bdc9457SAndroid Build Coastguard Worker }
10362*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_gt_2_fulltile_with_qmax)10363*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_gt_2_fulltile_with_qmax) {
10364*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
10365*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10366*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10367*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10368*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10369*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10370*4bdc9457SAndroid Build Coastguard Worker }
10371*4bdc9457SAndroid Build Coastguard Worker }
10372*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2,channels_gt_2_fulltile_with_qmin)10373*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C2, channels_gt_2_fulltile_with_qmin) {
10374*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 3; channels < 4; channels++) {
10375*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10376*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10377*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10378*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10379*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c2, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10380*4bdc9457SAndroid Build Coastguard Worker }
10381*4bdc9457SAndroid Build Coastguard Worker }
10382*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_eq_4_fulltile)10383*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_eq_4_fulltile) {
10384*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10385*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10386*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10387*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10388*4bdc9457SAndroid Build Coastguard Worker }
10389*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_eq_4_subtile)10390*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_eq_4_subtile) {
10391*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10392*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10393*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10394*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10395*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10396*4bdc9457SAndroid Build Coastguard Worker }
10397*4bdc9457SAndroid Build Coastguard Worker }
10398*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_eq_4_fulltile_with_input_stride)10399*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_eq_4_fulltile_with_input_stride) {
10400*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10401*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10402*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10403*4bdc9457SAndroid Build Coastguard Worker .input_stride(7)
10404*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10405*4bdc9457SAndroid Build Coastguard Worker }
10406*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_eq_4_fulltile_with_qmax)10407*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_eq_4_fulltile_with_qmax) {
10408*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10409*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10410*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10411*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10412*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10413*4bdc9457SAndroid Build Coastguard Worker }
10414*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_eq_4_fulltile_with_qmin)10415*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_eq_4_fulltile_with_qmin) {
10416*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10417*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10418*4bdc9457SAndroid Build Coastguard Worker .channels(4)
10419*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10420*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10421*4bdc9457SAndroid Build Coastguard Worker }
10422*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_div_4_fulltile)10423*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_div_4_fulltile) {
10424*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
10425*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10426*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10427*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10428*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10429*4bdc9457SAndroid Build Coastguard Worker }
10430*4bdc9457SAndroid Build Coastguard Worker }
10431*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_div_4_subtile)10432*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_div_4_subtile) {
10433*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 8; channels < 32; channels += 4) {
10434*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10435*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10436*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10437*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10438*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10439*4bdc9457SAndroid Build Coastguard Worker }
10440*4bdc9457SAndroid Build Coastguard Worker }
10441*4bdc9457SAndroid Build Coastguard Worker }
10442*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_lt_4_fulltile)10443*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_lt_4_fulltile) {
10444*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
10445*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10446*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10447*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10448*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10449*4bdc9457SAndroid Build Coastguard Worker }
10450*4bdc9457SAndroid Build Coastguard Worker }
10451*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_lt_4_subtile)10452*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_lt_4_subtile) {
10453*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
10454*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10455*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10456*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10457*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10458*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10459*4bdc9457SAndroid Build Coastguard Worker }
10460*4bdc9457SAndroid Build Coastguard Worker }
10461*4bdc9457SAndroid Build Coastguard Worker }
10462*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_lt_4_fulltile_with_qmax)10463*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_lt_4_fulltile_with_qmax) {
10464*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
10465*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10466*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10467*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10468*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10469*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10470*4bdc9457SAndroid Build Coastguard Worker }
10471*4bdc9457SAndroid Build Coastguard Worker }
10472*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_lt_4_fulltile_with_qmin)10473*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_lt_4_fulltile_with_qmin) {
10474*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 4; channels++) {
10475*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10476*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10477*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10478*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10479*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10480*4bdc9457SAndroid Build Coastguard Worker }
10481*4bdc9457SAndroid Build Coastguard Worker }
10482*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_gt_4_fulltile)10483*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_gt_4_fulltile) {
10484*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
10485*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10486*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10487*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10488*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10489*4bdc9457SAndroid Build Coastguard Worker }
10490*4bdc9457SAndroid Build Coastguard Worker }
10491*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_gt_4_subtile)10492*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_gt_4_subtile) {
10493*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
10494*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) {
10495*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10496*4bdc9457SAndroid Build Coastguard Worker .rows(rows)
10497*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10498*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10499*4bdc9457SAndroid Build Coastguard Worker }
10500*4bdc9457SAndroid Build Coastguard Worker }
10501*4bdc9457SAndroid Build Coastguard Worker }
10502*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_gt_4_fulltile_with_qmax)10503*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_gt_4_fulltile_with_qmax) {
10504*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
10505*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10506*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10507*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10508*4bdc9457SAndroid Build Coastguard Worker .qmax(128)
10509*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10510*4bdc9457SAndroid Build Coastguard Worker }
10511*4bdc9457SAndroid Build Coastguard Worker }
10512*4bdc9457SAndroid Build Coastguard Worker
TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4,channels_gt_4_fulltile_with_qmin)10513*4bdc9457SAndroid Build Coastguard Worker TEST(QU8_GAVGPOOL_MINMAX_FP32_7X__SCALAR_LRINTF_C4, channels_gt_4_fulltile_with_qmin) {
10514*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 5; channels < 8; channels++) {
10515*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester()
10516*4bdc9457SAndroid Build Coastguard Worker .rows(7)
10517*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
10518*4bdc9457SAndroid Build Coastguard Worker .qmin(128)
10519*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qu8_gavgpool_minmax_fp32_ukernel_7x__scalar_lrintf_c4, xnn_init_qu8_avgpool_minmax_fp32_scalar_lrintf_params, xnn_qu8_requantize_fp32);
10520*4bdc9457SAndroid Build Coastguard Worker }
10521*4bdc9457SAndroid Build Coastguard Worker }