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/qs8-gavgpool-minmax-rndnu.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(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_eq_8_2pass_fulltile)24*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 30*4bdc9457SAndroid Build Coastguard Worker } 31*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_eq_8_2pass_fulltile_with_input_stride)32*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 39*4bdc9457SAndroid Build Coastguard Worker } 40*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_eq_8_2pass_fulltile_with_qmax)41*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 48*4bdc9457SAndroid Build Coastguard Worker } 49*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_eq_8_2pass_fulltile_with_qmin)50*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 57*4bdc9457SAndroid Build Coastguard Worker } 58*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_eq_8_2pass_subtile)59*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 66*4bdc9457SAndroid Build Coastguard Worker } 67*4bdc9457SAndroid Build Coastguard Worker } 68*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_eq_8_2pass_subtile_with_input_stride)69*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 77*4bdc9457SAndroid Build Coastguard Worker } 78*4bdc9457SAndroid Build Coastguard Worker } 79*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_eq_8_multipass_fulltile)80*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 87*4bdc9457SAndroid Build Coastguard Worker } 88*4bdc9457SAndroid Build Coastguard Worker } 89*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_eq_8_multipass_fulltile_with_input_stride)90*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 98*4bdc9457SAndroid Build Coastguard Worker } 99*4bdc9457SAndroid Build Coastguard Worker } 100*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_div_8_2pass_fulltile)101*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 108*4bdc9457SAndroid Build Coastguard Worker } 109*4bdc9457SAndroid Build Coastguard Worker } 110*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_div_8_2pass_subtile)111*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 119*4bdc9457SAndroid Build Coastguard Worker } 120*4bdc9457SAndroid Build Coastguard Worker } 121*4bdc9457SAndroid Build Coastguard Worker } 122*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_div_8_multipass_fulltile)123*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 131*4bdc9457SAndroid Build Coastguard Worker } 132*4bdc9457SAndroid Build Coastguard Worker } 133*4bdc9457SAndroid Build Coastguard Worker } 134*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_div_8_multipass_fulltile_with_input_stride)135*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 144*4bdc9457SAndroid Build Coastguard Worker } 145*4bdc9457SAndroid Build Coastguard Worker } 146*4bdc9457SAndroid Build Coastguard Worker } 147*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_lt_8_2pass_fulltile)148*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 155*4bdc9457SAndroid Build Coastguard Worker } 156*4bdc9457SAndroid Build Coastguard Worker } 157*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_lt_8_2pass_fulltile_with_qmax)158*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 166*4bdc9457SAndroid Build Coastguard Worker } 167*4bdc9457SAndroid Build Coastguard Worker } 168*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_lt_8_2pass_fulltile_with_qmin)169*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 177*4bdc9457SAndroid Build Coastguard Worker } 178*4bdc9457SAndroid Build Coastguard Worker } 179*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_lt_8_2pass_subtile)180*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 188*4bdc9457SAndroid Build Coastguard Worker } 189*4bdc9457SAndroid Build Coastguard Worker } 190*4bdc9457SAndroid Build Coastguard Worker } 191*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_lt_8_multipass_fulltile)192*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 200*4bdc9457SAndroid Build Coastguard Worker } 201*4bdc9457SAndroid Build Coastguard Worker } 202*4bdc9457SAndroid Build Coastguard Worker } 203*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_lt_8_multipass_fulltile_with_input_stride)204*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 213*4bdc9457SAndroid Build Coastguard Worker } 214*4bdc9457SAndroid Build Coastguard Worker } 215*4bdc9457SAndroid Build Coastguard Worker } 216*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_gt_8_2pass_fulltile)217*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 224*4bdc9457SAndroid Build Coastguard Worker } 225*4bdc9457SAndroid Build Coastguard Worker } 226*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_gt_8_2pass_fulltile_with_qmax)227*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 235*4bdc9457SAndroid Build Coastguard Worker } 236*4bdc9457SAndroid Build Coastguard Worker } 237*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_gt_8_2pass_fulltile_with_qmin)238*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 246*4bdc9457SAndroid Build Coastguard Worker } 247*4bdc9457SAndroid Build Coastguard Worker } 248*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_gt_8_2pass_subtile)249*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 257*4bdc9457SAndroid Build Coastguard Worker } 258*4bdc9457SAndroid Build Coastguard Worker } 259*4bdc9457SAndroid Build Coastguard Worker } 260*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_gt_8_multipass_fulltile)261*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 269*4bdc9457SAndroid Build Coastguard Worker } 270*4bdc9457SAndroid Build Coastguard Worker } 271*4bdc9457SAndroid Build Coastguard Worker } 272*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C8,channels_gt_8_multipass_fulltile_with_input_stride)273*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 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(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_eq_16_2pass_fulltile)289*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 295*4bdc9457SAndroid Build Coastguard Worker } 296*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_eq_16_2pass_fulltile_with_input_stride)297*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 304*4bdc9457SAndroid Build Coastguard Worker } 305*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_eq_16_2pass_fulltile_with_qmax)306*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 313*4bdc9457SAndroid Build Coastguard Worker } 314*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_eq_16_2pass_fulltile_with_qmin)315*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 322*4bdc9457SAndroid Build Coastguard Worker } 323*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_eq_16_2pass_subtile)324*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 331*4bdc9457SAndroid Build Coastguard Worker } 332*4bdc9457SAndroid Build Coastguard Worker } 333*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_eq_16_2pass_subtile_with_input_stride)334*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 342*4bdc9457SAndroid Build Coastguard Worker } 343*4bdc9457SAndroid Build Coastguard Worker } 344*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_eq_16_multipass_fulltile)345*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 352*4bdc9457SAndroid Build Coastguard Worker } 353*4bdc9457SAndroid Build Coastguard Worker } 354*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_eq_16_multipass_fulltile_with_input_stride)355*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 363*4bdc9457SAndroid Build Coastguard Worker } 364*4bdc9457SAndroid Build Coastguard Worker } 365*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_div_16_2pass_fulltile)366*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 373*4bdc9457SAndroid Build Coastguard Worker } 374*4bdc9457SAndroid Build Coastguard Worker } 375*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_div_16_2pass_subtile)376*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 384*4bdc9457SAndroid Build Coastguard Worker } 385*4bdc9457SAndroid Build Coastguard Worker } 386*4bdc9457SAndroid Build Coastguard Worker } 387*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_div_16_multipass_fulltile)388*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 396*4bdc9457SAndroid Build Coastguard Worker } 397*4bdc9457SAndroid Build Coastguard Worker } 398*4bdc9457SAndroid Build Coastguard Worker } 399*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_div_16_multipass_fulltile_with_input_stride)400*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 409*4bdc9457SAndroid Build Coastguard Worker } 410*4bdc9457SAndroid Build Coastguard Worker } 411*4bdc9457SAndroid Build Coastguard Worker } 412*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_lt_16_2pass_fulltile)413*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 420*4bdc9457SAndroid Build Coastguard Worker } 421*4bdc9457SAndroid Build Coastguard Worker } 422*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_lt_16_2pass_fulltile_with_qmax)423*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 431*4bdc9457SAndroid Build Coastguard Worker } 432*4bdc9457SAndroid Build Coastguard Worker } 433*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_lt_16_2pass_fulltile_with_qmin)434*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 442*4bdc9457SAndroid Build Coastguard Worker } 443*4bdc9457SAndroid Build Coastguard Worker } 444*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_lt_16_2pass_subtile)445*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 453*4bdc9457SAndroid Build Coastguard Worker } 454*4bdc9457SAndroid Build Coastguard Worker } 455*4bdc9457SAndroid Build Coastguard Worker } 456*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_lt_16_multipass_fulltile)457*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 465*4bdc9457SAndroid Build Coastguard Worker } 466*4bdc9457SAndroid Build Coastguard Worker } 467*4bdc9457SAndroid Build Coastguard Worker } 468*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_lt_16_multipass_fulltile_with_input_stride)469*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 478*4bdc9457SAndroid Build Coastguard Worker } 479*4bdc9457SAndroid Build Coastguard Worker } 480*4bdc9457SAndroid Build Coastguard Worker } 481*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_gt_16_2pass_fulltile)482*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 489*4bdc9457SAndroid Build Coastguard Worker } 490*4bdc9457SAndroid Build Coastguard Worker } 491*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_gt_16_2pass_fulltile_with_qmax)492*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 500*4bdc9457SAndroid Build Coastguard Worker } 501*4bdc9457SAndroid Build Coastguard Worker } 502*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_gt_16_2pass_fulltile_with_qmin)503*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 511*4bdc9457SAndroid Build Coastguard Worker } 512*4bdc9457SAndroid Build Coastguard Worker } 513*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_gt_16_2pass_subtile)514*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 522*4bdc9457SAndroid Build Coastguard Worker } 523*4bdc9457SAndroid Build Coastguard Worker } 524*4bdc9457SAndroid Build Coastguard Worker } 525*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_gt_16_multipass_fulltile)526*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 534*4bdc9457SAndroid Build Coastguard Worker } 535*4bdc9457SAndroid Build Coastguard Worker } 536*4bdc9457SAndroid Build Coastguard Worker } 537*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C16,channels_gt_16_multipass_fulltile_with_input_stride)538*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 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(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_eq_24_2pass_fulltile)554*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 560*4bdc9457SAndroid Build Coastguard Worker } 561*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_eq_24_2pass_fulltile_with_input_stride)562*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 569*4bdc9457SAndroid Build Coastguard Worker } 570*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_eq_24_2pass_fulltile_with_qmax)571*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 578*4bdc9457SAndroid Build Coastguard Worker } 579*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_eq_24_2pass_fulltile_with_qmin)580*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 587*4bdc9457SAndroid Build Coastguard Worker } 588*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_eq_24_2pass_subtile)589*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 596*4bdc9457SAndroid Build Coastguard Worker } 597*4bdc9457SAndroid Build Coastguard Worker } 598*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_eq_24_2pass_subtile_with_input_stride)599*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 607*4bdc9457SAndroid Build Coastguard Worker } 608*4bdc9457SAndroid Build Coastguard Worker } 609*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_eq_24_multipass_fulltile)610*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 617*4bdc9457SAndroid Build Coastguard Worker } 618*4bdc9457SAndroid Build Coastguard Worker } 619*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_eq_24_multipass_fulltile_with_input_stride)620*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 628*4bdc9457SAndroid Build Coastguard Worker } 629*4bdc9457SAndroid Build Coastguard Worker } 630*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_div_24_2pass_fulltile)631*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 638*4bdc9457SAndroid Build Coastguard Worker } 639*4bdc9457SAndroid Build Coastguard Worker } 640*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_div_24_2pass_subtile)641*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 649*4bdc9457SAndroid Build Coastguard Worker } 650*4bdc9457SAndroid Build Coastguard Worker } 651*4bdc9457SAndroid Build Coastguard Worker } 652*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_div_24_multipass_fulltile)653*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 661*4bdc9457SAndroid Build Coastguard Worker } 662*4bdc9457SAndroid Build Coastguard Worker } 663*4bdc9457SAndroid Build Coastguard Worker } 664*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_div_24_multipass_fulltile_with_input_stride)665*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 674*4bdc9457SAndroid Build Coastguard Worker } 675*4bdc9457SAndroid Build Coastguard Worker } 676*4bdc9457SAndroid Build Coastguard Worker } 677*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_lt_24_2pass_fulltile)678*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 685*4bdc9457SAndroid Build Coastguard Worker } 686*4bdc9457SAndroid Build Coastguard Worker } 687*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_lt_24_2pass_fulltile_with_qmax)688*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 696*4bdc9457SAndroid Build Coastguard Worker } 697*4bdc9457SAndroid Build Coastguard Worker } 698*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_lt_24_2pass_fulltile_with_qmin)699*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 707*4bdc9457SAndroid Build Coastguard Worker } 708*4bdc9457SAndroid Build Coastguard Worker } 709*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_lt_24_2pass_subtile)710*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 718*4bdc9457SAndroid Build Coastguard Worker } 719*4bdc9457SAndroid Build Coastguard Worker } 720*4bdc9457SAndroid Build Coastguard Worker } 721*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_lt_24_multipass_fulltile)722*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 730*4bdc9457SAndroid Build Coastguard Worker } 731*4bdc9457SAndroid Build Coastguard Worker } 732*4bdc9457SAndroid Build Coastguard Worker } 733*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_lt_24_multipass_fulltile_with_input_stride)734*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 743*4bdc9457SAndroid Build Coastguard Worker } 744*4bdc9457SAndroid Build Coastguard Worker } 745*4bdc9457SAndroid Build Coastguard Worker } 746*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_gt_24_2pass_fulltile)747*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 754*4bdc9457SAndroid Build Coastguard Worker } 755*4bdc9457SAndroid Build Coastguard Worker } 756*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_gt_24_2pass_fulltile_with_qmax)757*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 765*4bdc9457SAndroid Build Coastguard Worker } 766*4bdc9457SAndroid Build Coastguard Worker } 767*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_gt_24_2pass_fulltile_with_qmin)768*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 776*4bdc9457SAndroid Build Coastguard Worker } 777*4bdc9457SAndroid Build Coastguard Worker } 778*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_gt_24_2pass_subtile)779*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 787*4bdc9457SAndroid Build Coastguard Worker } 788*4bdc9457SAndroid Build Coastguard Worker } 789*4bdc9457SAndroid Build Coastguard Worker } 790*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_gt_24_multipass_fulltile)791*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 799*4bdc9457SAndroid Build Coastguard Worker } 800*4bdc9457SAndroid Build Coastguard Worker } 801*4bdc9457SAndroid Build Coastguard Worker } 802*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C24,channels_gt_24_multipass_fulltile_with_input_stride)803*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 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(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_eq_32_2pass_fulltile)819*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 825*4bdc9457SAndroid Build Coastguard Worker } 826*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_eq_32_2pass_fulltile_with_input_stride)827*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 834*4bdc9457SAndroid Build Coastguard Worker } 835*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_eq_32_2pass_fulltile_with_qmax)836*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 843*4bdc9457SAndroid Build Coastguard Worker } 844*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_eq_32_2pass_fulltile_with_qmin)845*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 852*4bdc9457SAndroid Build Coastguard Worker } 853*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_eq_32_2pass_subtile)854*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 861*4bdc9457SAndroid Build Coastguard Worker } 862*4bdc9457SAndroid Build Coastguard Worker } 863*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_eq_32_2pass_subtile_with_input_stride)864*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 872*4bdc9457SAndroid Build Coastguard Worker } 873*4bdc9457SAndroid Build Coastguard Worker } 874*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_eq_32_multipass_fulltile)875*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 882*4bdc9457SAndroid Build Coastguard Worker } 883*4bdc9457SAndroid Build Coastguard Worker } 884*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_eq_32_multipass_fulltile_with_input_stride)885*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 893*4bdc9457SAndroid Build Coastguard Worker } 894*4bdc9457SAndroid Build Coastguard Worker } 895*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_div_32_2pass_fulltile)896*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 903*4bdc9457SAndroid Build Coastguard Worker } 904*4bdc9457SAndroid Build Coastguard Worker } 905*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_div_32_2pass_subtile)906*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 914*4bdc9457SAndroid Build Coastguard Worker } 915*4bdc9457SAndroid Build Coastguard Worker } 916*4bdc9457SAndroid Build Coastguard Worker } 917*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_div_32_multipass_fulltile)918*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 926*4bdc9457SAndroid Build Coastguard Worker } 927*4bdc9457SAndroid Build Coastguard Worker } 928*4bdc9457SAndroid Build Coastguard Worker } 929*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_div_32_multipass_fulltile_with_input_stride)930*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 939*4bdc9457SAndroid Build Coastguard Worker } 940*4bdc9457SAndroid Build Coastguard Worker } 941*4bdc9457SAndroid Build Coastguard Worker } 942*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_lt_32_2pass_fulltile)943*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 950*4bdc9457SAndroid Build Coastguard Worker } 951*4bdc9457SAndroid Build Coastguard Worker } 952*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_lt_32_2pass_fulltile_with_qmax)953*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 961*4bdc9457SAndroid Build Coastguard Worker } 962*4bdc9457SAndroid Build Coastguard Worker } 963*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_lt_32_2pass_fulltile_with_qmin)964*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 972*4bdc9457SAndroid Build Coastguard Worker } 973*4bdc9457SAndroid Build Coastguard Worker } 974*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_lt_32_2pass_subtile)975*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 983*4bdc9457SAndroid Build Coastguard Worker } 984*4bdc9457SAndroid Build Coastguard Worker } 985*4bdc9457SAndroid Build Coastguard Worker } 986*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_lt_32_multipass_fulltile)987*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 995*4bdc9457SAndroid Build Coastguard Worker } 996*4bdc9457SAndroid Build Coastguard Worker } 997*4bdc9457SAndroid Build Coastguard Worker } 998*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_lt_32_multipass_fulltile_with_input_stride)999*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1008*4bdc9457SAndroid Build Coastguard Worker } 1009*4bdc9457SAndroid Build Coastguard Worker } 1010*4bdc9457SAndroid Build Coastguard Worker } 1011*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_gt_32_2pass_fulltile)1012*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1019*4bdc9457SAndroid Build Coastguard Worker } 1020*4bdc9457SAndroid Build Coastguard Worker } 1021*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_gt_32_2pass_fulltile_with_qmax)1022*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1030*4bdc9457SAndroid Build Coastguard Worker } 1031*4bdc9457SAndroid Build Coastguard Worker } 1032*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_gt_32_2pass_fulltile_with_qmin)1033*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1041*4bdc9457SAndroid Build Coastguard Worker } 1042*4bdc9457SAndroid Build Coastguard Worker } 1043*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_gt_32_2pass_subtile)1044*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1052*4bdc9457SAndroid Build Coastguard Worker } 1053*4bdc9457SAndroid Build Coastguard Worker } 1054*4bdc9457SAndroid Build Coastguard Worker } 1055*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_gt_32_multipass_fulltile)1056*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1064*4bdc9457SAndroid Build Coastguard Worker } 1065*4bdc9457SAndroid Build Coastguard Worker } 1066*4bdc9457SAndroid Build Coastguard Worker } 1067*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7P7X__NEON_C32,channels_gt_32_multipass_fulltile_with_input_stride)1068*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_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_qs8_gavgpool_minmax_rndnu_ukernel_7p7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 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(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_eq_8_fulltile)1084*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_eq_8_fulltile) { 1085*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1086*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1087*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1088*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1089*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1090*4bdc9457SAndroid Build Coastguard Worker } 1091*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_eq_8_subtile)1092*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_eq_8_subtile) { 1093*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1094*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1095*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1096*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1097*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1098*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1099*4bdc9457SAndroid Build Coastguard Worker } 1100*4bdc9457SAndroid Build Coastguard Worker } 1101*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_eq_8_fulltile_with_input_stride)1102*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_eq_8_fulltile_with_input_stride) { 1103*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1104*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1105*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1106*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1107*4bdc9457SAndroid Build Coastguard Worker .input_stride(11) 1108*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1109*4bdc9457SAndroid Build Coastguard Worker } 1110*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_eq_8_fulltile_with_qmax)1111*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_eq_8_fulltile_with_qmax) { 1112*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1113*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1114*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1115*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1116*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1117*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1118*4bdc9457SAndroid Build Coastguard Worker } 1119*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_eq_8_fulltile_with_qmin)1120*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_eq_8_fulltile_with_qmin) { 1121*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1122*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1123*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1124*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1125*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1126*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1127*4bdc9457SAndroid Build Coastguard Worker } 1128*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_div_8_fulltile)1129*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_div_8_fulltile) { 1130*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1131*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1132*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1133*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1134*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1135*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1136*4bdc9457SAndroid Build Coastguard Worker } 1137*4bdc9457SAndroid Build Coastguard Worker } 1138*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_div_8_subtile)1139*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_div_8_subtile) { 1140*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1141*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1142*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1143*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1144*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1145*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1146*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1147*4bdc9457SAndroid Build Coastguard Worker } 1148*4bdc9457SAndroid Build Coastguard Worker } 1149*4bdc9457SAndroid Build Coastguard Worker } 1150*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_lt_8_fulltile)1151*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_lt_8_fulltile) { 1152*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1153*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1154*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1155*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1156*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1157*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1158*4bdc9457SAndroid Build Coastguard Worker } 1159*4bdc9457SAndroid Build Coastguard Worker } 1160*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_lt_8_subtile)1161*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_lt_8_subtile) { 1162*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1163*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1164*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1165*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1166*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1167*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1168*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1169*4bdc9457SAndroid Build Coastguard Worker } 1170*4bdc9457SAndroid Build Coastguard Worker } 1171*4bdc9457SAndroid Build Coastguard Worker } 1172*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_lt_8_fulltile_with_qmax)1173*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_lt_8_fulltile_with_qmax) { 1174*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1175*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1176*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1177*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1178*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1179*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1180*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1181*4bdc9457SAndroid Build Coastguard Worker } 1182*4bdc9457SAndroid Build Coastguard Worker } 1183*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_lt_8_fulltile_with_qmin)1184*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_lt_8_fulltile_with_qmin) { 1185*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1186*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1187*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1188*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1189*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1190*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1191*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1192*4bdc9457SAndroid Build Coastguard Worker } 1193*4bdc9457SAndroid Build Coastguard Worker } 1194*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_gt_8_fulltile)1195*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_gt_8_fulltile) { 1196*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1197*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1198*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1199*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1200*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1201*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1202*4bdc9457SAndroid Build Coastguard Worker } 1203*4bdc9457SAndroid Build Coastguard Worker } 1204*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_gt_8_subtile)1205*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_gt_8_subtile) { 1206*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1207*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1208*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1209*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1210*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1211*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1212*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1213*4bdc9457SAndroid Build Coastguard Worker } 1214*4bdc9457SAndroid Build Coastguard Worker } 1215*4bdc9457SAndroid Build Coastguard Worker } 1216*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_gt_8_fulltile_with_qmax)1217*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_gt_8_fulltile_with_qmax) { 1218*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1219*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1220*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1221*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1222*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1223*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1224*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1225*4bdc9457SAndroid Build Coastguard Worker } 1226*4bdc9457SAndroid Build Coastguard Worker } 1227*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8,channels_gt_8_fulltile_with_qmin)1228*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C8, channels_gt_8_fulltile_with_qmin) { 1229*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1230*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1231*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1232*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1233*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1234*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1235*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c8, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1236*4bdc9457SAndroid Build Coastguard Worker } 1237*4bdc9457SAndroid Build Coastguard Worker } 1238*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64 1239*4bdc9457SAndroid Build Coastguard Worker 1240*4bdc9457SAndroid Build Coastguard Worker 1241*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64 TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_eq_16_fulltile)1242*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_eq_16_fulltile) { 1243*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1244*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1245*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1246*4bdc9457SAndroid Build Coastguard Worker .channels(16) 1247*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1248*4bdc9457SAndroid Build Coastguard Worker } 1249*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_eq_16_subtile)1250*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_eq_16_subtile) { 1251*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1252*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1253*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1254*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1255*4bdc9457SAndroid Build Coastguard Worker .channels(16) 1256*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1257*4bdc9457SAndroid Build Coastguard Worker } 1258*4bdc9457SAndroid Build Coastguard Worker } 1259*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_eq_16_fulltile_with_input_stride)1260*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_eq_16_fulltile_with_input_stride) { 1261*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1262*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1263*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1264*4bdc9457SAndroid Build Coastguard Worker .channels(16) 1265*4bdc9457SAndroid Build Coastguard Worker .input_stride(19) 1266*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1267*4bdc9457SAndroid Build Coastguard Worker } 1268*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_eq_16_fulltile_with_qmax)1269*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_eq_16_fulltile_with_qmax) { 1270*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1271*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1272*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1273*4bdc9457SAndroid Build Coastguard Worker .channels(16) 1274*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1275*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1276*4bdc9457SAndroid Build Coastguard Worker } 1277*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_eq_16_fulltile_with_qmin)1278*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_eq_16_fulltile_with_qmin) { 1279*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1280*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1281*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1282*4bdc9457SAndroid Build Coastguard Worker .channels(16) 1283*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1284*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1285*4bdc9457SAndroid Build Coastguard Worker } 1286*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_div_16_fulltile)1287*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_div_16_fulltile) { 1288*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1289*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) { 1290*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1291*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1292*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1293*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1294*4bdc9457SAndroid Build Coastguard Worker } 1295*4bdc9457SAndroid Build Coastguard Worker } 1296*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_div_16_subtile)1297*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_div_16_subtile) { 1298*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1299*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) { 1300*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1301*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1302*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1303*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1304*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1305*4bdc9457SAndroid Build Coastguard Worker } 1306*4bdc9457SAndroid Build Coastguard Worker } 1307*4bdc9457SAndroid Build Coastguard Worker } 1308*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_lt_16_fulltile)1309*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_lt_16_fulltile) { 1310*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1311*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 1312*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1313*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1314*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1315*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1316*4bdc9457SAndroid Build Coastguard Worker } 1317*4bdc9457SAndroid Build Coastguard Worker } 1318*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_lt_16_subtile)1319*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_lt_16_subtile) { 1320*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1321*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 1322*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1323*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1324*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1325*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1326*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1327*4bdc9457SAndroid Build Coastguard Worker } 1328*4bdc9457SAndroid Build Coastguard Worker } 1329*4bdc9457SAndroid Build Coastguard Worker } 1330*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_lt_16_fulltile_with_qmax)1331*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_lt_16_fulltile_with_qmax) { 1332*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1333*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 1334*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1335*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1336*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1337*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1338*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1339*4bdc9457SAndroid Build Coastguard Worker } 1340*4bdc9457SAndroid Build Coastguard Worker } 1341*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_lt_16_fulltile_with_qmin)1342*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_lt_16_fulltile_with_qmin) { 1343*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1344*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 1345*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1346*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1347*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1348*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1349*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1350*4bdc9457SAndroid Build Coastguard Worker } 1351*4bdc9457SAndroid Build Coastguard Worker } 1352*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_gt_16_fulltile)1353*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_gt_16_fulltile) { 1354*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1355*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 1356*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1357*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1358*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1359*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1360*4bdc9457SAndroid Build Coastguard Worker } 1361*4bdc9457SAndroid Build Coastguard Worker } 1362*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_gt_16_subtile)1363*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_gt_16_subtile) { 1364*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1365*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 1366*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1367*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1368*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1369*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1370*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1371*4bdc9457SAndroid Build Coastguard Worker } 1372*4bdc9457SAndroid Build Coastguard Worker } 1373*4bdc9457SAndroid Build Coastguard Worker } 1374*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_gt_16_fulltile_with_qmax)1375*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_gt_16_fulltile_with_qmax) { 1376*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1377*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 1378*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1379*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1380*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1381*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1382*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1383*4bdc9457SAndroid Build Coastguard Worker } 1384*4bdc9457SAndroid Build Coastguard Worker } 1385*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16,channels_gt_16_fulltile_with_qmin)1386*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C16, channels_gt_16_fulltile_with_qmin) { 1387*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1388*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 1389*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1390*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1391*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1392*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1393*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c16, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1394*4bdc9457SAndroid Build Coastguard Worker } 1395*4bdc9457SAndroid Build Coastguard Worker } 1396*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64 1397*4bdc9457SAndroid Build Coastguard Worker 1398*4bdc9457SAndroid Build Coastguard Worker 1399*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64 TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_eq_24_fulltile)1400*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_eq_24_fulltile) { 1401*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1402*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1403*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1404*4bdc9457SAndroid Build Coastguard Worker .channels(24) 1405*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1406*4bdc9457SAndroid Build Coastguard Worker } 1407*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_eq_24_subtile)1408*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_eq_24_subtile) { 1409*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1410*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1411*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1412*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1413*4bdc9457SAndroid Build Coastguard Worker .channels(24) 1414*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1415*4bdc9457SAndroid Build Coastguard Worker } 1416*4bdc9457SAndroid Build Coastguard Worker } 1417*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_eq_24_fulltile_with_input_stride)1418*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_eq_24_fulltile_with_input_stride) { 1419*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1420*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1421*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1422*4bdc9457SAndroid Build Coastguard Worker .channels(24) 1423*4bdc9457SAndroid Build Coastguard Worker .input_stride(29) 1424*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1425*4bdc9457SAndroid Build Coastguard Worker } 1426*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_eq_24_fulltile_with_qmax)1427*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_eq_24_fulltile_with_qmax) { 1428*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1429*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1430*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1431*4bdc9457SAndroid Build Coastguard Worker .channels(24) 1432*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1433*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1434*4bdc9457SAndroid Build Coastguard Worker } 1435*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_eq_24_fulltile_with_qmin)1436*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_eq_24_fulltile_with_qmin) { 1437*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1438*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1439*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1440*4bdc9457SAndroid Build Coastguard Worker .channels(24) 1441*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1442*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1443*4bdc9457SAndroid Build Coastguard Worker } 1444*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_div_24_fulltile)1445*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_div_24_fulltile) { 1446*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1447*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) { 1448*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1449*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1450*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1451*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1452*4bdc9457SAndroid Build Coastguard Worker } 1453*4bdc9457SAndroid Build Coastguard Worker } 1454*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_div_24_subtile)1455*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_div_24_subtile) { 1456*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1457*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) { 1458*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1459*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1460*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1461*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1462*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1463*4bdc9457SAndroid Build Coastguard Worker } 1464*4bdc9457SAndroid Build Coastguard Worker } 1465*4bdc9457SAndroid Build Coastguard Worker } 1466*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_lt_24_fulltile)1467*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_lt_24_fulltile) { 1468*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1469*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 1470*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1471*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1472*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1473*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1474*4bdc9457SAndroid Build Coastguard Worker } 1475*4bdc9457SAndroid Build Coastguard Worker } 1476*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_lt_24_subtile)1477*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_lt_24_subtile) { 1478*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1479*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 1480*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1481*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1482*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1483*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1484*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1485*4bdc9457SAndroid Build Coastguard Worker } 1486*4bdc9457SAndroid Build Coastguard Worker } 1487*4bdc9457SAndroid Build Coastguard Worker } 1488*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_lt_24_fulltile_with_qmax)1489*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_lt_24_fulltile_with_qmax) { 1490*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1491*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 1492*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1493*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1494*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1495*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1496*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1497*4bdc9457SAndroid Build Coastguard Worker } 1498*4bdc9457SAndroid Build Coastguard Worker } 1499*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_lt_24_fulltile_with_qmin)1500*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_lt_24_fulltile_with_qmin) { 1501*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1502*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 1503*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1504*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1505*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1506*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1507*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1508*4bdc9457SAndroid Build Coastguard Worker } 1509*4bdc9457SAndroid Build Coastguard Worker } 1510*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_gt_24_fulltile)1511*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_gt_24_fulltile) { 1512*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1513*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 1514*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1515*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1516*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1517*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1518*4bdc9457SAndroid Build Coastguard Worker } 1519*4bdc9457SAndroid Build Coastguard Worker } 1520*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_gt_24_subtile)1521*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_gt_24_subtile) { 1522*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1523*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 1524*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1525*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1526*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1527*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1528*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1529*4bdc9457SAndroid Build Coastguard Worker } 1530*4bdc9457SAndroid Build Coastguard Worker } 1531*4bdc9457SAndroid Build Coastguard Worker } 1532*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_gt_24_fulltile_with_qmax)1533*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_gt_24_fulltile_with_qmax) { 1534*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1535*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 1536*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1537*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1538*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1539*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1540*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1541*4bdc9457SAndroid Build Coastguard Worker } 1542*4bdc9457SAndroid Build Coastguard Worker } 1543*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24,channels_gt_24_fulltile_with_qmin)1544*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C24, channels_gt_24_fulltile_with_qmin) { 1545*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1546*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 1547*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1548*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1549*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1550*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1551*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c24, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1552*4bdc9457SAndroid Build Coastguard Worker } 1553*4bdc9457SAndroid Build Coastguard Worker } 1554*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64 1555*4bdc9457SAndroid Build Coastguard Worker 1556*4bdc9457SAndroid Build Coastguard Worker 1557*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64 TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_eq_32_fulltile)1558*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_eq_32_fulltile) { 1559*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1560*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1561*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1562*4bdc9457SAndroid Build Coastguard Worker .channels(32) 1563*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1564*4bdc9457SAndroid Build Coastguard Worker } 1565*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_eq_32_subtile)1566*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_eq_32_subtile) { 1567*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1568*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1569*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1570*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1571*4bdc9457SAndroid Build Coastguard Worker .channels(32) 1572*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1573*4bdc9457SAndroid Build Coastguard Worker } 1574*4bdc9457SAndroid Build Coastguard Worker } 1575*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_eq_32_fulltile_with_input_stride)1576*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_eq_32_fulltile_with_input_stride) { 1577*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1578*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1579*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1580*4bdc9457SAndroid Build Coastguard Worker .channels(32) 1581*4bdc9457SAndroid Build Coastguard Worker .input_stride(37) 1582*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1583*4bdc9457SAndroid Build Coastguard Worker } 1584*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_eq_32_fulltile_with_qmax)1585*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_eq_32_fulltile_with_qmax) { 1586*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1587*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1588*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1589*4bdc9457SAndroid Build Coastguard Worker .channels(32) 1590*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1591*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1592*4bdc9457SAndroid Build Coastguard Worker } 1593*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_eq_32_fulltile_with_qmin)1594*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_eq_32_fulltile_with_qmin) { 1595*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1596*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1597*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1598*4bdc9457SAndroid Build Coastguard Worker .channels(32) 1599*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1600*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1601*4bdc9457SAndroid Build Coastguard Worker } 1602*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_div_32_fulltile)1603*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_div_32_fulltile) { 1604*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1605*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) { 1606*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1607*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1608*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1609*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1610*4bdc9457SAndroid Build Coastguard Worker } 1611*4bdc9457SAndroid Build Coastguard Worker } 1612*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_div_32_subtile)1613*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_div_32_subtile) { 1614*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1615*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) { 1616*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1617*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1618*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1619*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1620*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1621*4bdc9457SAndroid Build Coastguard Worker } 1622*4bdc9457SAndroid Build Coastguard Worker } 1623*4bdc9457SAndroid Build Coastguard Worker } 1624*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_lt_32_fulltile)1625*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_lt_32_fulltile) { 1626*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1627*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 1628*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1629*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1630*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1631*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1632*4bdc9457SAndroid Build Coastguard Worker } 1633*4bdc9457SAndroid Build Coastguard Worker } 1634*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_lt_32_subtile)1635*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_lt_32_subtile) { 1636*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1637*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 1638*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1639*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1640*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1641*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1642*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1643*4bdc9457SAndroid Build Coastguard Worker } 1644*4bdc9457SAndroid Build Coastguard Worker } 1645*4bdc9457SAndroid Build Coastguard Worker } 1646*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_lt_32_fulltile_with_qmax)1647*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_lt_32_fulltile_with_qmax) { 1648*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1649*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 1650*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1651*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1652*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1653*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1654*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1655*4bdc9457SAndroid Build Coastguard Worker } 1656*4bdc9457SAndroid Build Coastguard Worker } 1657*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_lt_32_fulltile_with_qmin)1658*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_lt_32_fulltile_with_qmin) { 1659*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1660*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 1661*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1662*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1663*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1664*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1665*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1666*4bdc9457SAndroid Build Coastguard Worker } 1667*4bdc9457SAndroid Build Coastguard Worker } 1668*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_gt_32_fulltile)1669*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_gt_32_fulltile) { 1670*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1671*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 1672*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1673*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1674*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1675*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1676*4bdc9457SAndroid Build Coastguard Worker } 1677*4bdc9457SAndroid Build Coastguard Worker } 1678*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_gt_32_subtile)1679*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_gt_32_subtile) { 1680*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1681*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 1682*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 1683*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1684*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1685*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1686*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1687*4bdc9457SAndroid Build Coastguard Worker } 1688*4bdc9457SAndroid Build Coastguard Worker } 1689*4bdc9457SAndroid Build Coastguard Worker } 1690*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_gt_32_fulltile_with_qmax)1691*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_gt_32_fulltile_with_qmax) { 1692*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1693*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 1694*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1695*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1696*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1697*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1698*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1699*4bdc9457SAndroid Build Coastguard Worker } 1700*4bdc9457SAndroid Build Coastguard Worker } 1701*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32,channels_gt_32_fulltile_with_qmin)1702*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_GAVGPOOL_MINMAX_RNDNU_7X__NEON_C32, channels_gt_32_fulltile_with_qmin) { 1703*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 1704*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 1705*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1706*4bdc9457SAndroid Build Coastguard Worker .rows(7) 1707*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1708*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1709*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_gavgpool_minmax_rndnu_ukernel_7x__neon_c32, xnn_init_qs8_avgpool_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 1710*4bdc9457SAndroid Build Coastguard Worker } 1711*4bdc9457SAndroid Build Coastguard Worker } 1712*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64 1713