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/f16-gavgpool-minmax.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_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_eq_8_2pass_fulltile)24*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_eq_8_2pass_fulltile) { 25*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 30*4bdc9457SAndroid Build Coastguard Worker } 31*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_eq_8_2pass_fulltile_with_input_stride)32*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_eq_8_2pass_fulltile_with_input_stride) { 33*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 39*4bdc9457SAndroid Build Coastguard Worker } 40*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_eq_8_2pass_fulltile_with_qmax)41*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_eq_8_2pass_fulltile_with_qmax) { 42*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 48*4bdc9457SAndroid Build Coastguard Worker } 49*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_eq_8_2pass_fulltile_with_qmin)50*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_eq_8_2pass_fulltile_with_qmin) { 51*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 57*4bdc9457SAndroid Build Coastguard Worker } 58*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_eq_8_2pass_subtile)59*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_eq_8_2pass_subtile) { 60*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 66*4bdc9457SAndroid Build Coastguard Worker } 67*4bdc9457SAndroid Build Coastguard Worker } 68*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_eq_8_2pass_subtile_with_input_stride)69*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_eq_8_2pass_subtile_with_input_stride) { 70*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 77*4bdc9457SAndroid Build Coastguard Worker } 78*4bdc9457SAndroid Build Coastguard Worker } 79*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_eq_8_multipass_fulltile)80*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_eq_8_multipass_fulltile) { 81*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 87*4bdc9457SAndroid Build Coastguard Worker } 88*4bdc9457SAndroid Build Coastguard Worker } 89*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_eq_8_multipass_fulltile_with_input_stride)90*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_eq_8_multipass_fulltile_with_input_stride) { 91*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 98*4bdc9457SAndroid Build Coastguard Worker } 99*4bdc9457SAndroid Build Coastguard Worker } 100*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_div_8_2pass_fulltile)101*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_div_8_2pass_fulltile) { 102*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 108*4bdc9457SAndroid Build Coastguard Worker } 109*4bdc9457SAndroid Build Coastguard Worker } 110*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_div_8_2pass_subtile)111*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_div_8_2pass_subtile) { 112*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 119*4bdc9457SAndroid Build Coastguard Worker } 120*4bdc9457SAndroid Build Coastguard Worker } 121*4bdc9457SAndroid Build Coastguard Worker } 122*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_div_8_multipass_fulltile)123*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_div_8_multipass_fulltile) { 124*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 131*4bdc9457SAndroid Build Coastguard Worker } 132*4bdc9457SAndroid Build Coastguard Worker } 133*4bdc9457SAndroid Build Coastguard Worker } 134*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_div_8_multipass_fulltile_with_input_stride)135*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_div_8_multipass_fulltile_with_input_stride) { 136*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 144*4bdc9457SAndroid Build Coastguard Worker } 145*4bdc9457SAndroid Build Coastguard Worker } 146*4bdc9457SAndroid Build Coastguard Worker } 147*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_lt_8_2pass_fulltile)148*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_lt_8_2pass_fulltile) { 149*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 155*4bdc9457SAndroid Build Coastguard Worker } 156*4bdc9457SAndroid Build Coastguard Worker } 157*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_lt_8_2pass_fulltile_with_qmax)158*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_lt_8_2pass_fulltile_with_qmax) { 159*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 166*4bdc9457SAndroid Build Coastguard Worker } 167*4bdc9457SAndroid Build Coastguard Worker } 168*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_lt_8_2pass_fulltile_with_qmin)169*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_lt_8_2pass_fulltile_with_qmin) { 170*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 177*4bdc9457SAndroid Build Coastguard Worker } 178*4bdc9457SAndroid Build Coastguard Worker } 179*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_lt_8_2pass_subtile)180*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_lt_8_2pass_subtile) { 181*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 188*4bdc9457SAndroid Build Coastguard Worker } 189*4bdc9457SAndroid Build Coastguard Worker } 190*4bdc9457SAndroid Build Coastguard Worker } 191*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_lt_8_multipass_fulltile)192*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_lt_8_multipass_fulltile) { 193*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 200*4bdc9457SAndroid Build Coastguard Worker } 201*4bdc9457SAndroid Build Coastguard Worker } 202*4bdc9457SAndroid Build Coastguard Worker } 203*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_lt_8_multipass_fulltile_with_input_stride)204*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_lt_8_multipass_fulltile_with_input_stride) { 205*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 213*4bdc9457SAndroid Build Coastguard Worker } 214*4bdc9457SAndroid Build Coastguard Worker } 215*4bdc9457SAndroid Build Coastguard Worker } 216*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_gt_8_2pass_fulltile)217*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_gt_8_2pass_fulltile) { 218*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 224*4bdc9457SAndroid Build Coastguard Worker } 225*4bdc9457SAndroid Build Coastguard Worker } 226*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_gt_8_2pass_fulltile_with_qmax)227*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_gt_8_2pass_fulltile_with_qmax) { 228*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 235*4bdc9457SAndroid Build Coastguard Worker } 236*4bdc9457SAndroid Build Coastguard Worker } 237*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_gt_8_2pass_fulltile_with_qmin)238*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_gt_8_2pass_fulltile_with_qmin) { 239*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 246*4bdc9457SAndroid Build Coastguard Worker } 247*4bdc9457SAndroid Build Coastguard Worker } 248*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_gt_8_2pass_subtile)249*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_gt_8_2pass_subtile) { 250*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 257*4bdc9457SAndroid Build Coastguard Worker } 258*4bdc9457SAndroid Build Coastguard Worker } 259*4bdc9457SAndroid Build Coastguard Worker } 260*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_gt_8_multipass_fulltile)261*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_gt_8_multipass_fulltile) { 262*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 269*4bdc9457SAndroid Build Coastguard Worker } 270*4bdc9457SAndroid Build Coastguard Worker } 271*4bdc9457SAndroid Build Coastguard Worker } 272*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8,channels_gt_8_multipass_fulltile_with_input_stride)273*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C8, channels_gt_8_multipass_fulltile_with_input_stride) { 274*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 282*4bdc9457SAndroid Build Coastguard Worker } 283*4bdc9457SAndroid Build Coastguard Worker } 284*4bdc9457SAndroid Build Coastguard Worker } 285*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 286*4bdc9457SAndroid Build Coastguard Worker 287*4bdc9457SAndroid Build Coastguard Worker 288*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_eq_16_2pass_fulltile)289*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_eq_16_2pass_fulltile) { 290*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 295*4bdc9457SAndroid Build Coastguard Worker } 296*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_eq_16_2pass_fulltile_with_input_stride)297*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_eq_16_2pass_fulltile_with_input_stride) { 298*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 304*4bdc9457SAndroid Build Coastguard Worker } 305*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_eq_16_2pass_fulltile_with_qmax)306*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_eq_16_2pass_fulltile_with_qmax) { 307*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 313*4bdc9457SAndroid Build Coastguard Worker } 314*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_eq_16_2pass_fulltile_with_qmin)315*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_eq_16_2pass_fulltile_with_qmin) { 316*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 322*4bdc9457SAndroid Build Coastguard Worker } 323*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_eq_16_2pass_subtile)324*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_eq_16_2pass_subtile) { 325*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 331*4bdc9457SAndroid Build Coastguard Worker } 332*4bdc9457SAndroid Build Coastguard Worker } 333*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_eq_16_2pass_subtile_with_input_stride)334*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_eq_16_2pass_subtile_with_input_stride) { 335*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 342*4bdc9457SAndroid Build Coastguard Worker } 343*4bdc9457SAndroid Build Coastguard Worker } 344*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_eq_16_multipass_fulltile)345*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_eq_16_multipass_fulltile) { 346*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 352*4bdc9457SAndroid Build Coastguard Worker } 353*4bdc9457SAndroid Build Coastguard Worker } 354*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_eq_16_multipass_fulltile_with_input_stride)355*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_eq_16_multipass_fulltile_with_input_stride) { 356*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 363*4bdc9457SAndroid Build Coastguard Worker } 364*4bdc9457SAndroid Build Coastguard Worker } 365*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_div_16_2pass_fulltile)366*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_div_16_2pass_fulltile) { 367*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 373*4bdc9457SAndroid Build Coastguard Worker } 374*4bdc9457SAndroid Build Coastguard Worker } 375*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_div_16_2pass_subtile)376*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_div_16_2pass_subtile) { 377*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 384*4bdc9457SAndroid Build Coastguard Worker } 385*4bdc9457SAndroid Build Coastguard Worker } 386*4bdc9457SAndroid Build Coastguard Worker } 387*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_div_16_multipass_fulltile)388*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_div_16_multipass_fulltile) { 389*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 396*4bdc9457SAndroid Build Coastguard Worker } 397*4bdc9457SAndroid Build Coastguard Worker } 398*4bdc9457SAndroid Build Coastguard Worker } 399*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_div_16_multipass_fulltile_with_input_stride)400*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_div_16_multipass_fulltile_with_input_stride) { 401*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 409*4bdc9457SAndroid Build Coastguard Worker } 410*4bdc9457SAndroid Build Coastguard Worker } 411*4bdc9457SAndroid Build Coastguard Worker } 412*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_lt_16_2pass_fulltile)413*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_lt_16_2pass_fulltile) { 414*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 420*4bdc9457SAndroid Build Coastguard Worker } 421*4bdc9457SAndroid Build Coastguard Worker } 422*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_lt_16_2pass_fulltile_with_qmax)423*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_lt_16_2pass_fulltile_with_qmax) { 424*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 431*4bdc9457SAndroid Build Coastguard Worker } 432*4bdc9457SAndroid Build Coastguard Worker } 433*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_lt_16_2pass_fulltile_with_qmin)434*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_lt_16_2pass_fulltile_with_qmin) { 435*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 442*4bdc9457SAndroid Build Coastguard Worker } 443*4bdc9457SAndroid Build Coastguard Worker } 444*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_lt_16_2pass_subtile)445*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_lt_16_2pass_subtile) { 446*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 453*4bdc9457SAndroid Build Coastguard Worker } 454*4bdc9457SAndroid Build Coastguard Worker } 455*4bdc9457SAndroid Build Coastguard Worker } 456*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_lt_16_multipass_fulltile)457*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_lt_16_multipass_fulltile) { 458*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 465*4bdc9457SAndroid Build Coastguard Worker } 466*4bdc9457SAndroid Build Coastguard Worker } 467*4bdc9457SAndroid Build Coastguard Worker } 468*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_lt_16_multipass_fulltile_with_input_stride)469*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_lt_16_multipass_fulltile_with_input_stride) { 470*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 478*4bdc9457SAndroid Build Coastguard Worker } 479*4bdc9457SAndroid Build Coastguard Worker } 480*4bdc9457SAndroid Build Coastguard Worker } 481*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_gt_16_2pass_fulltile)482*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_gt_16_2pass_fulltile) { 483*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 489*4bdc9457SAndroid Build Coastguard Worker } 490*4bdc9457SAndroid Build Coastguard Worker } 491*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_gt_16_2pass_fulltile_with_qmax)492*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_gt_16_2pass_fulltile_with_qmax) { 493*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 500*4bdc9457SAndroid Build Coastguard Worker } 501*4bdc9457SAndroid Build Coastguard Worker } 502*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_gt_16_2pass_fulltile_with_qmin)503*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_gt_16_2pass_fulltile_with_qmin) { 504*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 511*4bdc9457SAndroid Build Coastguard Worker } 512*4bdc9457SAndroid Build Coastguard Worker } 513*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_gt_16_2pass_subtile)514*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_gt_16_2pass_subtile) { 515*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 522*4bdc9457SAndroid Build Coastguard Worker } 523*4bdc9457SAndroid Build Coastguard Worker } 524*4bdc9457SAndroid Build Coastguard Worker } 525*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_gt_16_multipass_fulltile)526*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_gt_16_multipass_fulltile) { 527*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 534*4bdc9457SAndroid Build Coastguard Worker } 535*4bdc9457SAndroid Build Coastguard Worker } 536*4bdc9457SAndroid Build Coastguard Worker } 537*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16,channels_gt_16_multipass_fulltile_with_input_stride)538*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C16, channels_gt_16_multipass_fulltile_with_input_stride) { 539*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 547*4bdc9457SAndroid Build Coastguard Worker } 548*4bdc9457SAndroid Build Coastguard Worker } 549*4bdc9457SAndroid Build Coastguard Worker } 550*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 551*4bdc9457SAndroid Build Coastguard Worker 552*4bdc9457SAndroid Build Coastguard Worker 553*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_eq_24_2pass_fulltile)554*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_eq_24_2pass_fulltile) { 555*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 560*4bdc9457SAndroid Build Coastguard Worker } 561*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_eq_24_2pass_fulltile_with_input_stride)562*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_eq_24_2pass_fulltile_with_input_stride) { 563*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 569*4bdc9457SAndroid Build Coastguard Worker } 570*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_eq_24_2pass_fulltile_with_qmax)571*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_eq_24_2pass_fulltile_with_qmax) { 572*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 578*4bdc9457SAndroid Build Coastguard Worker } 579*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_eq_24_2pass_fulltile_with_qmin)580*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_eq_24_2pass_fulltile_with_qmin) { 581*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 587*4bdc9457SAndroid Build Coastguard Worker } 588*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_eq_24_2pass_subtile)589*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_eq_24_2pass_subtile) { 590*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 596*4bdc9457SAndroid Build Coastguard Worker } 597*4bdc9457SAndroid Build Coastguard Worker } 598*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_eq_24_2pass_subtile_with_input_stride)599*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_eq_24_2pass_subtile_with_input_stride) { 600*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 607*4bdc9457SAndroid Build Coastguard Worker } 608*4bdc9457SAndroid Build Coastguard Worker } 609*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_eq_24_multipass_fulltile)610*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_eq_24_multipass_fulltile) { 611*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 617*4bdc9457SAndroid Build Coastguard Worker } 618*4bdc9457SAndroid Build Coastguard Worker } 619*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_eq_24_multipass_fulltile_with_input_stride)620*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_eq_24_multipass_fulltile_with_input_stride) { 621*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 628*4bdc9457SAndroid Build Coastguard Worker } 629*4bdc9457SAndroid Build Coastguard Worker } 630*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_div_24_2pass_fulltile)631*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_div_24_2pass_fulltile) { 632*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 638*4bdc9457SAndroid Build Coastguard Worker } 639*4bdc9457SAndroid Build Coastguard Worker } 640*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_div_24_2pass_subtile)641*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_div_24_2pass_subtile) { 642*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 649*4bdc9457SAndroid Build Coastguard Worker } 650*4bdc9457SAndroid Build Coastguard Worker } 651*4bdc9457SAndroid Build Coastguard Worker } 652*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_div_24_multipass_fulltile)653*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_div_24_multipass_fulltile) { 654*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 661*4bdc9457SAndroid Build Coastguard Worker } 662*4bdc9457SAndroid Build Coastguard Worker } 663*4bdc9457SAndroid Build Coastguard Worker } 664*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_div_24_multipass_fulltile_with_input_stride)665*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_div_24_multipass_fulltile_with_input_stride) { 666*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 674*4bdc9457SAndroid Build Coastguard Worker } 675*4bdc9457SAndroid Build Coastguard Worker } 676*4bdc9457SAndroid Build Coastguard Worker } 677*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_lt_24_2pass_fulltile)678*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_lt_24_2pass_fulltile) { 679*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 685*4bdc9457SAndroid Build Coastguard Worker } 686*4bdc9457SAndroid Build Coastguard Worker } 687*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_lt_24_2pass_fulltile_with_qmax)688*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_lt_24_2pass_fulltile_with_qmax) { 689*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 696*4bdc9457SAndroid Build Coastguard Worker } 697*4bdc9457SAndroid Build Coastguard Worker } 698*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_lt_24_2pass_fulltile_with_qmin)699*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_lt_24_2pass_fulltile_with_qmin) { 700*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 707*4bdc9457SAndroid Build Coastguard Worker } 708*4bdc9457SAndroid Build Coastguard Worker } 709*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_lt_24_2pass_subtile)710*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_lt_24_2pass_subtile) { 711*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 718*4bdc9457SAndroid Build Coastguard Worker } 719*4bdc9457SAndroid Build Coastguard Worker } 720*4bdc9457SAndroid Build Coastguard Worker } 721*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_lt_24_multipass_fulltile)722*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_lt_24_multipass_fulltile) { 723*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 730*4bdc9457SAndroid Build Coastguard Worker } 731*4bdc9457SAndroid Build Coastguard Worker } 732*4bdc9457SAndroid Build Coastguard Worker } 733*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_lt_24_multipass_fulltile_with_input_stride)734*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_lt_24_multipass_fulltile_with_input_stride) { 735*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 743*4bdc9457SAndroid Build Coastguard Worker } 744*4bdc9457SAndroid Build Coastguard Worker } 745*4bdc9457SAndroid Build Coastguard Worker } 746*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_gt_24_2pass_fulltile)747*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_gt_24_2pass_fulltile) { 748*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 754*4bdc9457SAndroid Build Coastguard Worker } 755*4bdc9457SAndroid Build Coastguard Worker } 756*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_gt_24_2pass_fulltile_with_qmax)757*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_gt_24_2pass_fulltile_with_qmax) { 758*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 765*4bdc9457SAndroid Build Coastguard Worker } 766*4bdc9457SAndroid Build Coastguard Worker } 767*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_gt_24_2pass_fulltile_with_qmin)768*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_gt_24_2pass_fulltile_with_qmin) { 769*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 776*4bdc9457SAndroid Build Coastguard Worker } 777*4bdc9457SAndroid Build Coastguard Worker } 778*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_gt_24_2pass_subtile)779*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_gt_24_2pass_subtile) { 780*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 787*4bdc9457SAndroid Build Coastguard Worker } 788*4bdc9457SAndroid Build Coastguard Worker } 789*4bdc9457SAndroid Build Coastguard Worker } 790*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_gt_24_multipass_fulltile)791*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_gt_24_multipass_fulltile) { 792*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 799*4bdc9457SAndroid Build Coastguard Worker } 800*4bdc9457SAndroid Build Coastguard Worker } 801*4bdc9457SAndroid Build Coastguard Worker } 802*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24,channels_gt_24_multipass_fulltile_with_input_stride)803*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C24, channels_gt_24_multipass_fulltile_with_input_stride) { 804*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 812*4bdc9457SAndroid Build Coastguard Worker } 813*4bdc9457SAndroid Build Coastguard Worker } 814*4bdc9457SAndroid Build Coastguard Worker } 815*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 816*4bdc9457SAndroid Build Coastguard Worker 817*4bdc9457SAndroid Build Coastguard Worker 818*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_eq_32_2pass_fulltile)819*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_eq_32_2pass_fulltile) { 820*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 825*4bdc9457SAndroid Build Coastguard Worker } 826*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_eq_32_2pass_fulltile_with_input_stride)827*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_eq_32_2pass_fulltile_with_input_stride) { 828*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 834*4bdc9457SAndroid Build Coastguard Worker } 835*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_eq_32_2pass_fulltile_with_qmax)836*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_eq_32_2pass_fulltile_with_qmax) { 837*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 843*4bdc9457SAndroid Build Coastguard Worker } 844*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_eq_32_2pass_fulltile_with_qmin)845*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_eq_32_2pass_fulltile_with_qmin) { 846*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 852*4bdc9457SAndroid Build Coastguard Worker } 853*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_eq_32_2pass_subtile)854*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_eq_32_2pass_subtile) { 855*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 861*4bdc9457SAndroid Build Coastguard Worker } 862*4bdc9457SAndroid Build Coastguard Worker } 863*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_eq_32_2pass_subtile_with_input_stride)864*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_eq_32_2pass_subtile_with_input_stride) { 865*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 872*4bdc9457SAndroid Build Coastguard Worker } 873*4bdc9457SAndroid Build Coastguard Worker } 874*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_eq_32_multipass_fulltile)875*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_eq_32_multipass_fulltile) { 876*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 882*4bdc9457SAndroid Build Coastguard Worker } 883*4bdc9457SAndroid Build Coastguard Worker } 884*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_eq_32_multipass_fulltile_with_input_stride)885*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_eq_32_multipass_fulltile_with_input_stride) { 886*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 893*4bdc9457SAndroid Build Coastguard Worker } 894*4bdc9457SAndroid Build Coastguard Worker } 895*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_div_32_2pass_fulltile)896*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_div_32_2pass_fulltile) { 897*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 903*4bdc9457SAndroid Build Coastguard Worker } 904*4bdc9457SAndroid Build Coastguard Worker } 905*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_div_32_2pass_subtile)906*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_div_32_2pass_subtile) { 907*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 914*4bdc9457SAndroid Build Coastguard Worker } 915*4bdc9457SAndroid Build Coastguard Worker } 916*4bdc9457SAndroid Build Coastguard Worker } 917*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_div_32_multipass_fulltile)918*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_div_32_multipass_fulltile) { 919*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 926*4bdc9457SAndroid Build Coastguard Worker } 927*4bdc9457SAndroid Build Coastguard Worker } 928*4bdc9457SAndroid Build Coastguard Worker } 929*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_div_32_multipass_fulltile_with_input_stride)930*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_div_32_multipass_fulltile_with_input_stride) { 931*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 939*4bdc9457SAndroid Build Coastguard Worker } 940*4bdc9457SAndroid Build Coastguard Worker } 941*4bdc9457SAndroid Build Coastguard Worker } 942*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_lt_32_2pass_fulltile)943*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_lt_32_2pass_fulltile) { 944*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 950*4bdc9457SAndroid Build Coastguard Worker } 951*4bdc9457SAndroid Build Coastguard Worker } 952*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_lt_32_2pass_fulltile_with_qmax)953*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_lt_32_2pass_fulltile_with_qmax) { 954*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 961*4bdc9457SAndroid Build Coastguard Worker } 962*4bdc9457SAndroid Build Coastguard Worker } 963*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_lt_32_2pass_fulltile_with_qmin)964*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_lt_32_2pass_fulltile_with_qmin) { 965*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 972*4bdc9457SAndroid Build Coastguard Worker } 973*4bdc9457SAndroid Build Coastguard Worker } 974*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_lt_32_2pass_subtile)975*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_lt_32_2pass_subtile) { 976*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 983*4bdc9457SAndroid Build Coastguard Worker } 984*4bdc9457SAndroid Build Coastguard Worker } 985*4bdc9457SAndroid Build Coastguard Worker } 986*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_lt_32_multipass_fulltile)987*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_lt_32_multipass_fulltile) { 988*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 995*4bdc9457SAndroid Build Coastguard Worker } 996*4bdc9457SAndroid Build Coastguard Worker } 997*4bdc9457SAndroid Build Coastguard Worker } 998*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_lt_32_multipass_fulltile_with_input_stride)999*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_lt_32_multipass_fulltile_with_input_stride) { 1000*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1008*4bdc9457SAndroid Build Coastguard Worker } 1009*4bdc9457SAndroid Build Coastguard Worker } 1010*4bdc9457SAndroid Build Coastguard Worker } 1011*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_gt_32_2pass_fulltile)1012*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_gt_32_2pass_fulltile) { 1013*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1019*4bdc9457SAndroid Build Coastguard Worker } 1020*4bdc9457SAndroid Build Coastguard Worker } 1021*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_gt_32_2pass_fulltile_with_qmax)1022*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_gt_32_2pass_fulltile_with_qmax) { 1023*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1030*4bdc9457SAndroid Build Coastguard Worker } 1031*4bdc9457SAndroid Build Coastguard Worker } 1032*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_gt_32_2pass_fulltile_with_qmin)1033*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_gt_32_2pass_fulltile_with_qmin) { 1034*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1041*4bdc9457SAndroid Build Coastguard Worker } 1042*4bdc9457SAndroid Build Coastguard Worker } 1043*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_gt_32_2pass_subtile)1044*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_gt_32_2pass_subtile) { 1045*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1052*4bdc9457SAndroid Build Coastguard Worker } 1053*4bdc9457SAndroid Build Coastguard Worker } 1054*4bdc9457SAndroid Build Coastguard Worker } 1055*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_gt_32_multipass_fulltile)1056*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_gt_32_multipass_fulltile) { 1057*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1064*4bdc9457SAndroid Build Coastguard Worker } 1065*4bdc9457SAndroid Build Coastguard Worker } 1066*4bdc9457SAndroid Build Coastguard Worker } 1067*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32,channels_gt_32_multipass_fulltile_with_input_stride)1068*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__NEONFP16ARITH_C32, channels_gt_32_multipass_fulltile_with_input_stride) { 1069*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7p7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1077*4bdc9457SAndroid Build Coastguard Worker } 1078*4bdc9457SAndroid Build Coastguard Worker } 1079*4bdc9457SAndroid Build Coastguard Worker } 1080*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 1081*4bdc9457SAndroid Build Coastguard Worker 1082*4bdc9457SAndroid Build Coastguard Worker 1083*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_eq_8_fulltile)1084*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_eq_8_fulltile) { 1085*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1090*4bdc9457SAndroid Build Coastguard Worker } 1091*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_eq_8_subtile)1092*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_eq_8_subtile) { 1093*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1099*4bdc9457SAndroid Build Coastguard Worker } 1100*4bdc9457SAndroid Build Coastguard Worker } 1101*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_eq_8_fulltile_with_input_stride)1102*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_eq_8_fulltile_with_input_stride) { 1103*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1109*4bdc9457SAndroid Build Coastguard Worker } 1110*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_eq_8_fulltile_with_qmax)1111*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_eq_8_fulltile_with_qmax) { 1112*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1118*4bdc9457SAndroid Build Coastguard Worker } 1119*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_eq_8_fulltile_with_qmin)1120*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_eq_8_fulltile_with_qmin) { 1121*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1127*4bdc9457SAndroid Build Coastguard Worker } 1128*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_div_8_fulltile)1129*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_div_8_fulltile) { 1130*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1136*4bdc9457SAndroid Build Coastguard Worker } 1137*4bdc9457SAndroid Build Coastguard Worker } 1138*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_div_8_subtile)1139*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_div_8_subtile) { 1140*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1147*4bdc9457SAndroid Build Coastguard Worker } 1148*4bdc9457SAndroid Build Coastguard Worker } 1149*4bdc9457SAndroid Build Coastguard Worker } 1150*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_lt_8_fulltile)1151*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_lt_8_fulltile) { 1152*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1158*4bdc9457SAndroid Build Coastguard Worker } 1159*4bdc9457SAndroid Build Coastguard Worker } 1160*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_lt_8_subtile)1161*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_lt_8_subtile) { 1162*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1169*4bdc9457SAndroid Build Coastguard Worker } 1170*4bdc9457SAndroid Build Coastguard Worker } 1171*4bdc9457SAndroid Build Coastguard Worker } 1172*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_lt_8_fulltile_with_qmax)1173*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_lt_8_fulltile_with_qmax) { 1174*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1181*4bdc9457SAndroid Build Coastguard Worker } 1182*4bdc9457SAndroid Build Coastguard Worker } 1183*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_lt_8_fulltile_with_qmin)1184*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_lt_8_fulltile_with_qmin) { 1185*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1192*4bdc9457SAndroid Build Coastguard Worker } 1193*4bdc9457SAndroid Build Coastguard Worker } 1194*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_gt_8_fulltile)1195*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_gt_8_fulltile) { 1196*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1202*4bdc9457SAndroid Build Coastguard Worker } 1203*4bdc9457SAndroid Build Coastguard Worker } 1204*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_gt_8_subtile)1205*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_gt_8_subtile) { 1206*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1213*4bdc9457SAndroid Build Coastguard Worker } 1214*4bdc9457SAndroid Build Coastguard Worker } 1215*4bdc9457SAndroid Build Coastguard Worker } 1216*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_gt_8_fulltile_with_qmax)1217*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_gt_8_fulltile_with_qmax) { 1218*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1225*4bdc9457SAndroid Build Coastguard Worker } 1226*4bdc9457SAndroid Build Coastguard Worker } 1227*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8,channels_gt_8_fulltile_with_qmin)1228*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C8, channels_gt_8_fulltile_with_qmin) { 1229*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c8, xnn_init_f16_scaleminmax_neon_params); 1236*4bdc9457SAndroid Build Coastguard Worker } 1237*4bdc9457SAndroid Build Coastguard Worker } 1238*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 1239*4bdc9457SAndroid Build Coastguard Worker 1240*4bdc9457SAndroid Build Coastguard Worker 1241*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_eq_16_fulltile)1242*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_eq_16_fulltile) { 1243*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1248*4bdc9457SAndroid Build Coastguard Worker } 1249*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_eq_16_subtile)1250*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_eq_16_subtile) { 1251*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1257*4bdc9457SAndroid Build Coastguard Worker } 1258*4bdc9457SAndroid Build Coastguard Worker } 1259*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_eq_16_fulltile_with_input_stride)1260*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_eq_16_fulltile_with_input_stride) { 1261*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1267*4bdc9457SAndroid Build Coastguard Worker } 1268*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_eq_16_fulltile_with_qmax)1269*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_eq_16_fulltile_with_qmax) { 1270*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1276*4bdc9457SAndroid Build Coastguard Worker } 1277*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_eq_16_fulltile_with_qmin)1278*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_eq_16_fulltile_with_qmin) { 1279*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1285*4bdc9457SAndroid Build Coastguard Worker } 1286*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_div_16_fulltile)1287*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_div_16_fulltile) { 1288*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1294*4bdc9457SAndroid Build Coastguard Worker } 1295*4bdc9457SAndroid Build Coastguard Worker } 1296*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_div_16_subtile)1297*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_div_16_subtile) { 1298*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1305*4bdc9457SAndroid Build Coastguard Worker } 1306*4bdc9457SAndroid Build Coastguard Worker } 1307*4bdc9457SAndroid Build Coastguard Worker } 1308*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_lt_16_fulltile)1309*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_lt_16_fulltile) { 1310*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1316*4bdc9457SAndroid Build Coastguard Worker } 1317*4bdc9457SAndroid Build Coastguard Worker } 1318*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_lt_16_subtile)1319*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_lt_16_subtile) { 1320*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1327*4bdc9457SAndroid Build Coastguard Worker } 1328*4bdc9457SAndroid Build Coastguard Worker } 1329*4bdc9457SAndroid Build Coastguard Worker } 1330*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_lt_16_fulltile_with_qmax)1331*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_lt_16_fulltile_with_qmax) { 1332*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1339*4bdc9457SAndroid Build Coastguard Worker } 1340*4bdc9457SAndroid Build Coastguard Worker } 1341*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_lt_16_fulltile_with_qmin)1342*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_lt_16_fulltile_with_qmin) { 1343*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1350*4bdc9457SAndroid Build Coastguard Worker } 1351*4bdc9457SAndroid Build Coastguard Worker } 1352*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_gt_16_fulltile)1353*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_gt_16_fulltile) { 1354*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1360*4bdc9457SAndroid Build Coastguard Worker } 1361*4bdc9457SAndroid Build Coastguard Worker } 1362*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_gt_16_subtile)1363*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_gt_16_subtile) { 1364*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1371*4bdc9457SAndroid Build Coastguard Worker } 1372*4bdc9457SAndroid Build Coastguard Worker } 1373*4bdc9457SAndroid Build Coastguard Worker } 1374*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_gt_16_fulltile_with_qmax)1375*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_gt_16_fulltile_with_qmax) { 1376*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1383*4bdc9457SAndroid Build Coastguard Worker } 1384*4bdc9457SAndroid Build Coastguard Worker } 1385*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16,channels_gt_16_fulltile_with_qmin)1386*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C16, channels_gt_16_fulltile_with_qmin) { 1387*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c16, xnn_init_f16_scaleminmax_neon_params); 1394*4bdc9457SAndroid Build Coastguard Worker } 1395*4bdc9457SAndroid Build Coastguard Worker } 1396*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 1397*4bdc9457SAndroid Build Coastguard Worker 1398*4bdc9457SAndroid Build Coastguard Worker 1399*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_eq_24_fulltile)1400*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_eq_24_fulltile) { 1401*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1406*4bdc9457SAndroid Build Coastguard Worker } 1407*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_eq_24_subtile)1408*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_eq_24_subtile) { 1409*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1415*4bdc9457SAndroid Build Coastguard Worker } 1416*4bdc9457SAndroid Build Coastguard Worker } 1417*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_eq_24_fulltile_with_input_stride)1418*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_eq_24_fulltile_with_input_stride) { 1419*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1425*4bdc9457SAndroid Build Coastguard Worker } 1426*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_eq_24_fulltile_with_qmax)1427*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_eq_24_fulltile_with_qmax) { 1428*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1434*4bdc9457SAndroid Build Coastguard Worker } 1435*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_eq_24_fulltile_with_qmin)1436*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_eq_24_fulltile_with_qmin) { 1437*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1443*4bdc9457SAndroid Build Coastguard Worker } 1444*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_div_24_fulltile)1445*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_div_24_fulltile) { 1446*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1452*4bdc9457SAndroid Build Coastguard Worker } 1453*4bdc9457SAndroid Build Coastguard Worker } 1454*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_div_24_subtile)1455*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_div_24_subtile) { 1456*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1463*4bdc9457SAndroid Build Coastguard Worker } 1464*4bdc9457SAndroid Build Coastguard Worker } 1465*4bdc9457SAndroid Build Coastguard Worker } 1466*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_lt_24_fulltile)1467*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_lt_24_fulltile) { 1468*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1474*4bdc9457SAndroid Build Coastguard Worker } 1475*4bdc9457SAndroid Build Coastguard Worker } 1476*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_lt_24_subtile)1477*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_lt_24_subtile) { 1478*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1485*4bdc9457SAndroid Build Coastguard Worker } 1486*4bdc9457SAndroid Build Coastguard Worker } 1487*4bdc9457SAndroid Build Coastguard Worker } 1488*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_lt_24_fulltile_with_qmax)1489*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_lt_24_fulltile_with_qmax) { 1490*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1497*4bdc9457SAndroid Build Coastguard Worker } 1498*4bdc9457SAndroid Build Coastguard Worker } 1499*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_lt_24_fulltile_with_qmin)1500*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_lt_24_fulltile_with_qmin) { 1501*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1508*4bdc9457SAndroid Build Coastguard Worker } 1509*4bdc9457SAndroid Build Coastguard Worker } 1510*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_gt_24_fulltile)1511*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_gt_24_fulltile) { 1512*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1518*4bdc9457SAndroid Build Coastguard Worker } 1519*4bdc9457SAndroid Build Coastguard Worker } 1520*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_gt_24_subtile)1521*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_gt_24_subtile) { 1522*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1529*4bdc9457SAndroid Build Coastguard Worker } 1530*4bdc9457SAndroid Build Coastguard Worker } 1531*4bdc9457SAndroid Build Coastguard Worker } 1532*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_gt_24_fulltile_with_qmax)1533*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_gt_24_fulltile_with_qmax) { 1534*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1541*4bdc9457SAndroid Build Coastguard Worker } 1542*4bdc9457SAndroid Build Coastguard Worker } 1543*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24,channels_gt_24_fulltile_with_qmin)1544*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C24, channels_gt_24_fulltile_with_qmin) { 1545*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c24, xnn_init_f16_scaleminmax_neon_params); 1552*4bdc9457SAndroid Build Coastguard Worker } 1553*4bdc9457SAndroid Build Coastguard Worker } 1554*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 1555*4bdc9457SAndroid Build Coastguard Worker 1556*4bdc9457SAndroid Build Coastguard Worker 1557*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_eq_32_fulltile)1558*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_eq_32_fulltile) { 1559*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1564*4bdc9457SAndroid Build Coastguard Worker } 1565*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_eq_32_subtile)1566*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_eq_32_subtile) { 1567*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1573*4bdc9457SAndroid Build Coastguard Worker } 1574*4bdc9457SAndroid Build Coastguard Worker } 1575*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_eq_32_fulltile_with_input_stride)1576*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_eq_32_fulltile_with_input_stride) { 1577*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1583*4bdc9457SAndroid Build Coastguard Worker } 1584*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_eq_32_fulltile_with_qmax)1585*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_eq_32_fulltile_with_qmax) { 1586*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1592*4bdc9457SAndroid Build Coastguard Worker } 1593*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_eq_32_fulltile_with_qmin)1594*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_eq_32_fulltile_with_qmin) { 1595*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1601*4bdc9457SAndroid Build Coastguard Worker } 1602*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_div_32_fulltile)1603*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_div_32_fulltile) { 1604*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1610*4bdc9457SAndroid Build Coastguard Worker } 1611*4bdc9457SAndroid Build Coastguard Worker } 1612*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_div_32_subtile)1613*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_div_32_subtile) { 1614*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1621*4bdc9457SAndroid Build Coastguard Worker } 1622*4bdc9457SAndroid Build Coastguard Worker } 1623*4bdc9457SAndroid Build Coastguard Worker } 1624*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_lt_32_fulltile)1625*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_lt_32_fulltile) { 1626*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1632*4bdc9457SAndroid Build Coastguard Worker } 1633*4bdc9457SAndroid Build Coastguard Worker } 1634*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_lt_32_subtile)1635*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_lt_32_subtile) { 1636*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1643*4bdc9457SAndroid Build Coastguard Worker } 1644*4bdc9457SAndroid Build Coastguard Worker } 1645*4bdc9457SAndroid Build Coastguard Worker } 1646*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_lt_32_fulltile_with_qmax)1647*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_lt_32_fulltile_with_qmax) { 1648*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1655*4bdc9457SAndroid Build Coastguard Worker } 1656*4bdc9457SAndroid Build Coastguard Worker } 1657*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_lt_32_fulltile_with_qmin)1658*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_lt_32_fulltile_with_qmin) { 1659*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1666*4bdc9457SAndroid Build Coastguard Worker } 1667*4bdc9457SAndroid Build Coastguard Worker } 1668*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_gt_32_fulltile)1669*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_gt_32_fulltile) { 1670*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1676*4bdc9457SAndroid Build Coastguard Worker } 1677*4bdc9457SAndroid Build Coastguard Worker } 1678*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_gt_32_subtile)1679*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_gt_32_subtile) { 1680*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1687*4bdc9457SAndroid Build Coastguard Worker } 1688*4bdc9457SAndroid Build Coastguard Worker } 1689*4bdc9457SAndroid Build Coastguard Worker } 1690*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_gt_32_fulltile_with_qmax)1691*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_gt_32_fulltile_with_qmax) { 1692*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1699*4bdc9457SAndroid Build Coastguard Worker } 1700*4bdc9457SAndroid Build Coastguard Worker } 1701*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32,channels_gt_32_fulltile_with_qmin)1702*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__NEONFP16ARITH_C32, channels_gt_32_fulltile_with_qmin) { 1703*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 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_f16_gavgpool_minmax_ukernel_7x__neonfp16arith_c32, xnn_init_f16_scaleminmax_neon_params); 1710*4bdc9457SAndroid Build Coastguard Worker } 1711*4bdc9457SAndroid Build Coastguard Worker } 1712*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 1713*4bdc9457SAndroid Build Coastguard Worker 1714*4bdc9457SAndroid Build Coastguard Worker 1715*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_eq_8_2pass_fulltile)1716*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_eq_8_2pass_fulltile) { 1717*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1718*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1719*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1720*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1721*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1722*4bdc9457SAndroid Build Coastguard Worker } 1723*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_eq_8_2pass_fulltile_with_input_stride)1724*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_eq_8_2pass_fulltile_with_input_stride) { 1725*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1726*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1727*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1728*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1729*4bdc9457SAndroid Build Coastguard Worker .input_stride(11) 1730*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1731*4bdc9457SAndroid Build Coastguard Worker } 1732*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_eq_8_2pass_fulltile_with_qmax)1733*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_eq_8_2pass_fulltile_with_qmax) { 1734*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1735*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1736*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1737*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1738*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1739*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1740*4bdc9457SAndroid Build Coastguard Worker } 1741*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_eq_8_2pass_fulltile_with_qmin)1742*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_eq_8_2pass_fulltile_with_qmin) { 1743*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1744*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1745*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1746*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1747*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1748*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1749*4bdc9457SAndroid Build Coastguard Worker } 1750*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_eq_8_2pass_subtile)1751*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_eq_8_2pass_subtile) { 1752*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1753*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 1754*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1755*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1756*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1757*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1758*4bdc9457SAndroid Build Coastguard Worker } 1759*4bdc9457SAndroid Build Coastguard Worker } 1760*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_eq_8_2pass_subtile_with_input_stride)1761*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_eq_8_2pass_subtile_with_input_stride) { 1762*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1763*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 1764*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1765*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1766*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1767*4bdc9457SAndroid Build Coastguard Worker .input_stride(11) 1768*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1769*4bdc9457SAndroid Build Coastguard Worker } 1770*4bdc9457SAndroid Build Coastguard Worker } 1771*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_eq_8_multipass_fulltile)1772*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_eq_8_multipass_fulltile) { 1773*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1774*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 1775*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1776*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1777*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1778*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1779*4bdc9457SAndroid Build Coastguard Worker } 1780*4bdc9457SAndroid Build Coastguard Worker } 1781*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_eq_8_multipass_fulltile_with_input_stride)1782*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_eq_8_multipass_fulltile_with_input_stride) { 1783*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1784*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 1785*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1786*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1787*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1788*4bdc9457SAndroid Build Coastguard Worker .input_stride(11) 1789*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1790*4bdc9457SAndroid Build Coastguard Worker } 1791*4bdc9457SAndroid Build Coastguard Worker } 1792*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_div_8_2pass_fulltile)1793*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_div_8_2pass_fulltile) { 1794*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1795*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1796*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1797*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1798*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1799*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1800*4bdc9457SAndroid Build Coastguard Worker } 1801*4bdc9457SAndroid Build Coastguard Worker } 1802*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_div_8_2pass_subtile)1803*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_div_8_2pass_subtile) { 1804*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1805*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1806*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 1807*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1808*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1809*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1810*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1811*4bdc9457SAndroid Build Coastguard Worker } 1812*4bdc9457SAndroid Build Coastguard Worker } 1813*4bdc9457SAndroid Build Coastguard Worker } 1814*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_div_8_multipass_fulltile)1815*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_div_8_multipass_fulltile) { 1816*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1817*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1818*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 1819*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1820*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1821*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1822*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1823*4bdc9457SAndroid Build Coastguard Worker } 1824*4bdc9457SAndroid Build Coastguard Worker } 1825*4bdc9457SAndroid Build Coastguard Worker } 1826*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_div_8_multipass_fulltile_with_input_stride)1827*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_div_8_multipass_fulltile_with_input_stride) { 1828*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1829*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1830*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 1831*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1832*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1833*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1834*4bdc9457SAndroid Build Coastguard Worker .input_stride(131) 1835*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1836*4bdc9457SAndroid Build Coastguard Worker } 1837*4bdc9457SAndroid Build Coastguard Worker } 1838*4bdc9457SAndroid Build Coastguard Worker } 1839*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_lt_8_2pass_fulltile)1840*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_lt_8_2pass_fulltile) { 1841*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1842*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1843*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1844*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1845*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1846*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1847*4bdc9457SAndroid Build Coastguard Worker } 1848*4bdc9457SAndroid Build Coastguard Worker } 1849*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_lt_8_2pass_fulltile_with_qmax)1850*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_lt_8_2pass_fulltile_with_qmax) { 1851*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1852*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1853*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1854*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1855*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1856*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1857*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1858*4bdc9457SAndroid Build Coastguard Worker } 1859*4bdc9457SAndroid Build Coastguard Worker } 1860*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_lt_8_2pass_fulltile_with_qmin)1861*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_lt_8_2pass_fulltile_with_qmin) { 1862*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1863*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1864*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1865*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1866*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1867*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1868*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1869*4bdc9457SAndroid Build Coastguard Worker } 1870*4bdc9457SAndroid Build Coastguard Worker } 1871*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_lt_8_2pass_subtile)1872*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_lt_8_2pass_subtile) { 1873*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1874*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1875*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 1876*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1877*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1878*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1879*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1880*4bdc9457SAndroid Build Coastguard Worker } 1881*4bdc9457SAndroid Build Coastguard Worker } 1882*4bdc9457SAndroid Build Coastguard Worker } 1883*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_lt_8_multipass_fulltile)1884*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_lt_8_multipass_fulltile) { 1885*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1886*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1887*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 1888*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1889*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1890*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1891*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1892*4bdc9457SAndroid Build Coastguard Worker } 1893*4bdc9457SAndroid Build Coastguard Worker } 1894*4bdc9457SAndroid Build Coastguard Worker } 1895*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_lt_8_multipass_fulltile_with_input_stride)1896*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_lt_8_multipass_fulltile_with_input_stride) { 1897*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1898*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1899*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 1900*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1901*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1902*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1903*4bdc9457SAndroid Build Coastguard Worker .input_stride(11) 1904*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1905*4bdc9457SAndroid Build Coastguard Worker } 1906*4bdc9457SAndroid Build Coastguard Worker } 1907*4bdc9457SAndroid Build Coastguard Worker } 1908*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_gt_8_2pass_fulltile)1909*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_gt_8_2pass_fulltile) { 1910*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1911*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1912*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1913*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1914*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1915*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1916*4bdc9457SAndroid Build Coastguard Worker } 1917*4bdc9457SAndroid Build Coastguard Worker } 1918*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_gt_8_2pass_fulltile_with_qmax)1919*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_gt_8_2pass_fulltile_with_qmax) { 1920*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1921*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1922*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1923*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1924*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1925*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1926*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1927*4bdc9457SAndroid Build Coastguard Worker } 1928*4bdc9457SAndroid Build Coastguard Worker } 1929*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_gt_8_2pass_fulltile_with_qmin)1930*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_gt_8_2pass_fulltile_with_qmin) { 1931*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1932*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1933*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1934*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1935*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1936*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1937*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1938*4bdc9457SAndroid Build Coastguard Worker } 1939*4bdc9457SAndroid Build Coastguard Worker } 1940*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_gt_8_2pass_subtile)1941*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_gt_8_2pass_subtile) { 1942*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1943*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1944*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 1945*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1946*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1947*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1948*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1949*4bdc9457SAndroid Build Coastguard Worker } 1950*4bdc9457SAndroid Build Coastguard Worker } 1951*4bdc9457SAndroid Build Coastguard Worker } 1952*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_gt_8_multipass_fulltile)1953*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_gt_8_multipass_fulltile) { 1954*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1955*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1956*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) { 1957*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1958*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1959*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1960*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1961*4bdc9457SAndroid Build Coastguard Worker } 1962*4bdc9457SAndroid Build Coastguard Worker } 1963*4bdc9457SAndroid Build Coastguard Worker } 1964*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8,channels_gt_8_multipass_fulltile_with_input_stride)1965*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C8, channels_gt_8_multipass_fulltile_with_input_stride) { 1966*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1967*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1968*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) { 1969*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1970*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 1971*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1972*4bdc9457SAndroid Build Coastguard Worker .input_stride(29) 1973*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 1974*4bdc9457SAndroid Build Coastguard Worker } 1975*4bdc9457SAndroid Build Coastguard Worker } 1976*4bdc9457SAndroid Build Coastguard Worker } 1977*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1978*4bdc9457SAndroid Build Coastguard Worker 1979*4bdc9457SAndroid Build Coastguard Worker 1980*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_eq_16_2pass_fulltile)1981*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_eq_16_2pass_fulltile) { 1982*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1983*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1984*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1985*4bdc9457SAndroid Build Coastguard Worker .channels(16) 1986*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 1987*4bdc9457SAndroid Build Coastguard Worker } 1988*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_eq_16_2pass_fulltile_with_input_stride)1989*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_eq_16_2pass_fulltile_with_input_stride) { 1990*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 1991*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 1992*4bdc9457SAndroid Build Coastguard Worker .rows(14) 1993*4bdc9457SAndroid Build Coastguard Worker .channels(16) 1994*4bdc9457SAndroid Build Coastguard Worker .input_stride(19) 1995*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 1996*4bdc9457SAndroid Build Coastguard Worker } 1997*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_eq_16_2pass_fulltile_with_qmax)1998*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_eq_16_2pass_fulltile_with_qmax) { 1999*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2000*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2001*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2002*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2003*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2004*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2005*4bdc9457SAndroid Build Coastguard Worker } 2006*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_eq_16_2pass_fulltile_with_qmin)2007*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_eq_16_2pass_fulltile_with_qmin) { 2008*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2009*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2010*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2011*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2012*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2013*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2014*4bdc9457SAndroid Build Coastguard Worker } 2015*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_eq_16_2pass_subtile)2016*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_eq_16_2pass_subtile) { 2017*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2018*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2019*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2020*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2021*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2022*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2023*4bdc9457SAndroid Build Coastguard Worker } 2024*4bdc9457SAndroid Build Coastguard Worker } 2025*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_eq_16_2pass_subtile_with_input_stride)2026*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_eq_16_2pass_subtile_with_input_stride) { 2027*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2028*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2029*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2030*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2031*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2032*4bdc9457SAndroid Build Coastguard Worker .input_stride(19) 2033*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2034*4bdc9457SAndroid Build Coastguard Worker } 2035*4bdc9457SAndroid Build Coastguard Worker } 2036*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_eq_16_multipass_fulltile)2037*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_eq_16_multipass_fulltile) { 2038*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2039*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2040*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2041*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2042*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2043*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2044*4bdc9457SAndroid Build Coastguard Worker } 2045*4bdc9457SAndroid Build Coastguard Worker } 2046*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_eq_16_multipass_fulltile_with_input_stride)2047*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_eq_16_multipass_fulltile_with_input_stride) { 2048*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2049*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2050*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2051*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2052*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2053*4bdc9457SAndroid Build Coastguard Worker .input_stride(19) 2054*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2055*4bdc9457SAndroid Build Coastguard Worker } 2056*4bdc9457SAndroid Build Coastguard Worker } 2057*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_div_16_2pass_fulltile)2058*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_div_16_2pass_fulltile) { 2059*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2060*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) { 2061*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2062*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2063*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2064*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2065*4bdc9457SAndroid Build Coastguard Worker } 2066*4bdc9457SAndroid Build Coastguard Worker } 2067*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_div_16_2pass_subtile)2068*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_div_16_2pass_subtile) { 2069*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2070*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) { 2071*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2072*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2073*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2074*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2075*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2076*4bdc9457SAndroid Build Coastguard Worker } 2077*4bdc9457SAndroid Build Coastguard Worker } 2078*4bdc9457SAndroid Build Coastguard Worker } 2079*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_div_16_multipass_fulltile)2080*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_div_16_multipass_fulltile) { 2081*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2082*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) { 2083*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2084*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2085*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2086*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2087*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2088*4bdc9457SAndroid Build Coastguard Worker } 2089*4bdc9457SAndroid Build Coastguard Worker } 2090*4bdc9457SAndroid Build Coastguard Worker } 2091*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_div_16_multipass_fulltile_with_input_stride)2092*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_div_16_multipass_fulltile_with_input_stride) { 2093*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2094*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) { 2095*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2096*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2097*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2098*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2099*4bdc9457SAndroid Build Coastguard Worker .input_stride(263) 2100*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2101*4bdc9457SAndroid Build Coastguard Worker } 2102*4bdc9457SAndroid Build Coastguard Worker } 2103*4bdc9457SAndroid Build Coastguard Worker } 2104*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_lt_16_2pass_fulltile)2105*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_lt_16_2pass_fulltile) { 2106*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2107*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 2108*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2109*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2110*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2111*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2112*4bdc9457SAndroid Build Coastguard Worker } 2113*4bdc9457SAndroid Build Coastguard Worker } 2114*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_lt_16_2pass_fulltile_with_qmax)2115*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_lt_16_2pass_fulltile_with_qmax) { 2116*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2117*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 2118*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2119*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2120*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2121*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2122*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2123*4bdc9457SAndroid Build Coastguard Worker } 2124*4bdc9457SAndroid Build Coastguard Worker } 2125*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_lt_16_2pass_fulltile_with_qmin)2126*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_lt_16_2pass_fulltile_with_qmin) { 2127*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2128*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 2129*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2130*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2131*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2132*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2133*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2134*4bdc9457SAndroid Build Coastguard Worker } 2135*4bdc9457SAndroid Build Coastguard Worker } 2136*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_lt_16_2pass_subtile)2137*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_lt_16_2pass_subtile) { 2138*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2139*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 2140*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2141*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2142*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2143*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2144*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2145*4bdc9457SAndroid Build Coastguard Worker } 2146*4bdc9457SAndroid Build Coastguard Worker } 2147*4bdc9457SAndroid Build Coastguard Worker } 2148*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_lt_16_multipass_fulltile)2149*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_lt_16_multipass_fulltile) { 2150*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2151*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 2152*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2153*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2154*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2155*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2156*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2157*4bdc9457SAndroid Build Coastguard Worker } 2158*4bdc9457SAndroid Build Coastguard Worker } 2159*4bdc9457SAndroid Build Coastguard Worker } 2160*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_lt_16_multipass_fulltile_with_input_stride)2161*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_lt_16_multipass_fulltile_with_input_stride) { 2162*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2163*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 2164*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2165*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2166*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2167*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2168*4bdc9457SAndroid Build Coastguard Worker .input_stride(19) 2169*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2170*4bdc9457SAndroid Build Coastguard Worker } 2171*4bdc9457SAndroid Build Coastguard Worker } 2172*4bdc9457SAndroid Build Coastguard Worker } 2173*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_gt_16_2pass_fulltile)2174*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_gt_16_2pass_fulltile) { 2175*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2176*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 2177*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2178*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2179*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2180*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2181*4bdc9457SAndroid Build Coastguard Worker } 2182*4bdc9457SAndroid Build Coastguard Worker } 2183*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_gt_16_2pass_fulltile_with_qmax)2184*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_gt_16_2pass_fulltile_with_qmax) { 2185*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2186*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 2187*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2188*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2189*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2190*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2191*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2192*4bdc9457SAndroid Build Coastguard Worker } 2193*4bdc9457SAndroid Build Coastguard Worker } 2194*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_gt_16_2pass_fulltile_with_qmin)2195*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_gt_16_2pass_fulltile_with_qmin) { 2196*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2197*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 2198*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2199*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2200*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2201*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2202*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2203*4bdc9457SAndroid Build Coastguard Worker } 2204*4bdc9457SAndroid Build Coastguard Worker } 2205*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_gt_16_2pass_subtile)2206*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_gt_16_2pass_subtile) { 2207*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2208*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 2209*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2210*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2211*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2212*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2213*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2214*4bdc9457SAndroid Build Coastguard Worker } 2215*4bdc9457SAndroid Build Coastguard Worker } 2216*4bdc9457SAndroid Build Coastguard Worker } 2217*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_gt_16_multipass_fulltile)2218*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_gt_16_multipass_fulltile) { 2219*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2220*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 2221*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) { 2222*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2223*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2224*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2225*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2226*4bdc9457SAndroid Build Coastguard Worker } 2227*4bdc9457SAndroid Build Coastguard Worker } 2228*4bdc9457SAndroid Build Coastguard Worker } 2229*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16,channels_gt_16_multipass_fulltile_with_input_stride)2230*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C16, channels_gt_16_multipass_fulltile_with_input_stride) { 2231*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2232*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 2233*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) { 2234*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2235*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2236*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2237*4bdc9457SAndroid Build Coastguard Worker .input_stride(47) 2238*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2239*4bdc9457SAndroid Build Coastguard Worker } 2240*4bdc9457SAndroid Build Coastguard Worker } 2241*4bdc9457SAndroid Build Coastguard Worker } 2242*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 2243*4bdc9457SAndroid Build Coastguard Worker 2244*4bdc9457SAndroid Build Coastguard Worker 2245*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_eq_24_2pass_fulltile)2246*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_eq_24_2pass_fulltile) { 2247*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2248*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2249*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2250*4bdc9457SAndroid Build Coastguard Worker .channels(24) 2251*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2252*4bdc9457SAndroid Build Coastguard Worker } 2253*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_eq_24_2pass_fulltile_with_input_stride)2254*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_eq_24_2pass_fulltile_with_input_stride) { 2255*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2256*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2257*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2258*4bdc9457SAndroid Build Coastguard Worker .channels(24) 2259*4bdc9457SAndroid Build Coastguard Worker .input_stride(29) 2260*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2261*4bdc9457SAndroid Build Coastguard Worker } 2262*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_eq_24_2pass_fulltile_with_qmax)2263*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_eq_24_2pass_fulltile_with_qmax) { 2264*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2265*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2266*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2267*4bdc9457SAndroid Build Coastguard Worker .channels(24) 2268*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2269*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2270*4bdc9457SAndroid Build Coastguard Worker } 2271*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_eq_24_2pass_fulltile_with_qmin)2272*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_eq_24_2pass_fulltile_with_qmin) { 2273*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2274*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2275*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2276*4bdc9457SAndroid Build Coastguard Worker .channels(24) 2277*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2278*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2279*4bdc9457SAndroid Build Coastguard Worker } 2280*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_eq_24_2pass_subtile)2281*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_eq_24_2pass_subtile) { 2282*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2283*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2284*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2285*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2286*4bdc9457SAndroid Build Coastguard Worker .channels(24) 2287*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2288*4bdc9457SAndroid Build Coastguard Worker } 2289*4bdc9457SAndroid Build Coastguard Worker } 2290*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_eq_24_2pass_subtile_with_input_stride)2291*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_eq_24_2pass_subtile_with_input_stride) { 2292*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2293*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2294*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2295*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2296*4bdc9457SAndroid Build Coastguard Worker .channels(24) 2297*4bdc9457SAndroid Build Coastguard Worker .input_stride(29) 2298*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2299*4bdc9457SAndroid Build Coastguard Worker } 2300*4bdc9457SAndroid Build Coastguard Worker } 2301*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_eq_24_multipass_fulltile)2302*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_eq_24_multipass_fulltile) { 2303*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2304*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2305*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2306*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2307*4bdc9457SAndroid Build Coastguard Worker .channels(24) 2308*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2309*4bdc9457SAndroid Build Coastguard Worker } 2310*4bdc9457SAndroid Build Coastguard Worker } 2311*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_eq_24_multipass_fulltile_with_input_stride)2312*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_eq_24_multipass_fulltile_with_input_stride) { 2313*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2314*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2315*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2316*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2317*4bdc9457SAndroid Build Coastguard Worker .channels(24) 2318*4bdc9457SAndroid Build Coastguard Worker .input_stride(29) 2319*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2320*4bdc9457SAndroid Build Coastguard Worker } 2321*4bdc9457SAndroid Build Coastguard Worker } 2322*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_div_24_2pass_fulltile)2323*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_div_24_2pass_fulltile) { 2324*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2325*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) { 2326*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2327*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2328*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2329*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2330*4bdc9457SAndroid Build Coastguard Worker } 2331*4bdc9457SAndroid Build Coastguard Worker } 2332*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_div_24_2pass_subtile)2333*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_div_24_2pass_subtile) { 2334*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2335*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) { 2336*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2337*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2338*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2339*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2340*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2341*4bdc9457SAndroid Build Coastguard Worker } 2342*4bdc9457SAndroid Build Coastguard Worker } 2343*4bdc9457SAndroid Build Coastguard Worker } 2344*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_div_24_multipass_fulltile)2345*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_div_24_multipass_fulltile) { 2346*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2347*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) { 2348*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2349*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2350*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2351*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2352*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2353*4bdc9457SAndroid Build Coastguard Worker } 2354*4bdc9457SAndroid Build Coastguard Worker } 2355*4bdc9457SAndroid Build Coastguard Worker } 2356*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_div_24_multipass_fulltile_with_input_stride)2357*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_div_24_multipass_fulltile_with_input_stride) { 2358*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2359*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) { 2360*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2361*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2362*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2363*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2364*4bdc9457SAndroid Build Coastguard Worker .input_stride(389) 2365*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2366*4bdc9457SAndroid Build Coastguard Worker } 2367*4bdc9457SAndroid Build Coastguard Worker } 2368*4bdc9457SAndroid Build Coastguard Worker } 2369*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_lt_24_2pass_fulltile)2370*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_lt_24_2pass_fulltile) { 2371*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2372*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 2373*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2374*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2375*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2376*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2377*4bdc9457SAndroid Build Coastguard Worker } 2378*4bdc9457SAndroid Build Coastguard Worker } 2379*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_lt_24_2pass_fulltile_with_qmax)2380*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_lt_24_2pass_fulltile_with_qmax) { 2381*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2382*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 2383*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2384*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2385*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2386*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2387*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2388*4bdc9457SAndroid Build Coastguard Worker } 2389*4bdc9457SAndroid Build Coastguard Worker } 2390*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_lt_24_2pass_fulltile_with_qmin)2391*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_lt_24_2pass_fulltile_with_qmin) { 2392*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2393*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 2394*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2395*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2396*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2397*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2398*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2399*4bdc9457SAndroid Build Coastguard Worker } 2400*4bdc9457SAndroid Build Coastguard Worker } 2401*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_lt_24_2pass_subtile)2402*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_lt_24_2pass_subtile) { 2403*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2404*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 2405*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2406*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2407*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2408*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2409*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2410*4bdc9457SAndroid Build Coastguard Worker } 2411*4bdc9457SAndroid Build Coastguard Worker } 2412*4bdc9457SAndroid Build Coastguard Worker } 2413*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_lt_24_multipass_fulltile)2414*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_lt_24_multipass_fulltile) { 2415*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2416*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 2417*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2418*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2419*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2420*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2421*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2422*4bdc9457SAndroid Build Coastguard Worker } 2423*4bdc9457SAndroid Build Coastguard Worker } 2424*4bdc9457SAndroid Build Coastguard Worker } 2425*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_lt_24_multipass_fulltile_with_input_stride)2426*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_lt_24_multipass_fulltile_with_input_stride) { 2427*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2428*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 2429*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2430*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2431*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2432*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2433*4bdc9457SAndroid Build Coastguard Worker .input_stride(29) 2434*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2435*4bdc9457SAndroid Build Coastguard Worker } 2436*4bdc9457SAndroid Build Coastguard Worker } 2437*4bdc9457SAndroid Build Coastguard Worker } 2438*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_gt_24_2pass_fulltile)2439*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_gt_24_2pass_fulltile) { 2440*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2441*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 2442*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2443*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2444*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2445*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2446*4bdc9457SAndroid Build Coastguard Worker } 2447*4bdc9457SAndroid Build Coastguard Worker } 2448*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_gt_24_2pass_fulltile_with_qmax)2449*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_gt_24_2pass_fulltile_with_qmax) { 2450*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2451*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 2452*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2453*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2454*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2455*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2456*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2457*4bdc9457SAndroid Build Coastguard Worker } 2458*4bdc9457SAndroid Build Coastguard Worker } 2459*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_gt_24_2pass_fulltile_with_qmin)2460*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_gt_24_2pass_fulltile_with_qmin) { 2461*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2462*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 2463*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2464*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2465*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2466*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2467*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2468*4bdc9457SAndroid Build Coastguard Worker } 2469*4bdc9457SAndroid Build Coastguard Worker } 2470*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_gt_24_2pass_subtile)2471*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_gt_24_2pass_subtile) { 2472*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2473*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 2474*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2475*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2476*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2477*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2478*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2479*4bdc9457SAndroid Build Coastguard Worker } 2480*4bdc9457SAndroid Build Coastguard Worker } 2481*4bdc9457SAndroid Build Coastguard Worker } 2482*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_gt_24_multipass_fulltile)2483*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_gt_24_multipass_fulltile) { 2484*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2485*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 2486*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) { 2487*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2488*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2489*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2490*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2491*4bdc9457SAndroid Build Coastguard Worker } 2492*4bdc9457SAndroid Build Coastguard Worker } 2493*4bdc9457SAndroid Build Coastguard Worker } 2494*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24,channels_gt_24_multipass_fulltile_with_input_stride)2495*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C24, channels_gt_24_multipass_fulltile_with_input_stride) { 2496*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2497*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 2498*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) { 2499*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2500*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2501*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2502*4bdc9457SAndroid Build Coastguard Worker .input_stride(61) 2503*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 2504*4bdc9457SAndroid Build Coastguard Worker } 2505*4bdc9457SAndroid Build Coastguard Worker } 2506*4bdc9457SAndroid Build Coastguard Worker } 2507*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 2508*4bdc9457SAndroid Build Coastguard Worker 2509*4bdc9457SAndroid Build Coastguard Worker 2510*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_eq_32_2pass_fulltile)2511*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_eq_32_2pass_fulltile) { 2512*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2513*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2514*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2515*4bdc9457SAndroid Build Coastguard Worker .channels(32) 2516*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2517*4bdc9457SAndroid Build Coastguard Worker } 2518*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_eq_32_2pass_fulltile_with_input_stride)2519*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_eq_32_2pass_fulltile_with_input_stride) { 2520*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2521*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2522*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2523*4bdc9457SAndroid Build Coastguard Worker .channels(32) 2524*4bdc9457SAndroid Build Coastguard Worker .input_stride(37) 2525*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2526*4bdc9457SAndroid Build Coastguard Worker } 2527*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_eq_32_2pass_fulltile_with_qmax)2528*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_eq_32_2pass_fulltile_with_qmax) { 2529*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2530*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2531*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2532*4bdc9457SAndroid Build Coastguard Worker .channels(32) 2533*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2534*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2535*4bdc9457SAndroid Build Coastguard Worker } 2536*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_eq_32_2pass_fulltile_with_qmin)2537*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_eq_32_2pass_fulltile_with_qmin) { 2538*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2539*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2540*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2541*4bdc9457SAndroid Build Coastguard Worker .channels(32) 2542*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2543*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2544*4bdc9457SAndroid Build Coastguard Worker } 2545*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_eq_32_2pass_subtile)2546*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_eq_32_2pass_subtile) { 2547*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2548*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2549*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2550*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2551*4bdc9457SAndroid Build Coastguard Worker .channels(32) 2552*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2553*4bdc9457SAndroid Build Coastguard Worker } 2554*4bdc9457SAndroid Build Coastguard Worker } 2555*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_eq_32_2pass_subtile_with_input_stride)2556*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_eq_32_2pass_subtile_with_input_stride) { 2557*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2558*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2559*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2560*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2561*4bdc9457SAndroid Build Coastguard Worker .channels(32) 2562*4bdc9457SAndroid Build Coastguard Worker .input_stride(37) 2563*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2564*4bdc9457SAndroid Build Coastguard Worker } 2565*4bdc9457SAndroid Build Coastguard Worker } 2566*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_eq_32_multipass_fulltile)2567*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_eq_32_multipass_fulltile) { 2568*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2569*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2570*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2571*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2572*4bdc9457SAndroid Build Coastguard Worker .channels(32) 2573*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2574*4bdc9457SAndroid Build Coastguard Worker } 2575*4bdc9457SAndroid Build Coastguard Worker } 2576*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_eq_32_multipass_fulltile_with_input_stride)2577*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_eq_32_multipass_fulltile_with_input_stride) { 2578*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2579*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2580*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2581*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2582*4bdc9457SAndroid Build Coastguard Worker .channels(32) 2583*4bdc9457SAndroid Build Coastguard Worker .input_stride(37) 2584*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2585*4bdc9457SAndroid Build Coastguard Worker } 2586*4bdc9457SAndroid Build Coastguard Worker } 2587*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_div_32_2pass_fulltile)2588*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_div_32_2pass_fulltile) { 2589*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2590*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) { 2591*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2592*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2593*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2594*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2595*4bdc9457SAndroid Build Coastguard Worker } 2596*4bdc9457SAndroid Build Coastguard Worker } 2597*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_div_32_2pass_subtile)2598*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_div_32_2pass_subtile) { 2599*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2600*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) { 2601*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2602*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2603*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2604*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2605*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2606*4bdc9457SAndroid Build Coastguard Worker } 2607*4bdc9457SAndroid Build Coastguard Worker } 2608*4bdc9457SAndroid Build Coastguard Worker } 2609*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_div_32_multipass_fulltile)2610*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_div_32_multipass_fulltile) { 2611*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2612*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) { 2613*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2614*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2615*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2616*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2617*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2618*4bdc9457SAndroid Build Coastguard Worker } 2619*4bdc9457SAndroid Build Coastguard Worker } 2620*4bdc9457SAndroid Build Coastguard Worker } 2621*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_div_32_multipass_fulltile_with_input_stride)2622*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_div_32_multipass_fulltile_with_input_stride) { 2623*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2624*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) { 2625*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2626*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2627*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2628*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2629*4bdc9457SAndroid Build Coastguard Worker .input_stride(521) 2630*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2631*4bdc9457SAndroid Build Coastguard Worker } 2632*4bdc9457SAndroid Build Coastguard Worker } 2633*4bdc9457SAndroid Build Coastguard Worker } 2634*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_lt_32_2pass_fulltile)2635*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_lt_32_2pass_fulltile) { 2636*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2637*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 2638*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2639*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2640*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2641*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2642*4bdc9457SAndroid Build Coastguard Worker } 2643*4bdc9457SAndroid Build Coastguard Worker } 2644*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_lt_32_2pass_fulltile_with_qmax)2645*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_lt_32_2pass_fulltile_with_qmax) { 2646*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2647*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 2648*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2649*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2650*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2651*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2652*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2653*4bdc9457SAndroid Build Coastguard Worker } 2654*4bdc9457SAndroid Build Coastguard Worker } 2655*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_lt_32_2pass_fulltile_with_qmin)2656*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_lt_32_2pass_fulltile_with_qmin) { 2657*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2658*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 2659*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2660*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2661*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2662*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2663*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2664*4bdc9457SAndroid Build Coastguard Worker } 2665*4bdc9457SAndroid Build Coastguard Worker } 2666*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_lt_32_2pass_subtile)2667*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_lt_32_2pass_subtile) { 2668*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2669*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 2670*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2671*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2672*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2673*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2674*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2675*4bdc9457SAndroid Build Coastguard Worker } 2676*4bdc9457SAndroid Build Coastguard Worker } 2677*4bdc9457SAndroid Build Coastguard Worker } 2678*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_lt_32_multipass_fulltile)2679*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_lt_32_multipass_fulltile) { 2680*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2681*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 2682*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2683*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2684*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2685*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2686*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2687*4bdc9457SAndroid Build Coastguard Worker } 2688*4bdc9457SAndroid Build Coastguard Worker } 2689*4bdc9457SAndroid Build Coastguard Worker } 2690*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_lt_32_multipass_fulltile_with_input_stride)2691*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_lt_32_multipass_fulltile_with_input_stride) { 2692*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2693*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 2694*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows <= 35; rows += 7) { 2695*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2696*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2697*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2698*4bdc9457SAndroid Build Coastguard Worker .input_stride(37) 2699*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2700*4bdc9457SAndroid Build Coastguard Worker } 2701*4bdc9457SAndroid Build Coastguard Worker } 2702*4bdc9457SAndroid Build Coastguard Worker } 2703*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_gt_32_2pass_fulltile)2704*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_gt_32_2pass_fulltile) { 2705*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2706*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 2707*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2708*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2709*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2710*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2711*4bdc9457SAndroid Build Coastguard Worker } 2712*4bdc9457SAndroid Build Coastguard Worker } 2713*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_gt_32_2pass_fulltile_with_qmax)2714*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_gt_32_2pass_fulltile_with_qmax) { 2715*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2716*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 2717*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2718*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2719*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2720*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2721*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2722*4bdc9457SAndroid Build Coastguard Worker } 2723*4bdc9457SAndroid Build Coastguard Worker } 2724*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_gt_32_2pass_fulltile_with_qmin)2725*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_gt_32_2pass_fulltile_with_qmin) { 2726*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2727*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 2728*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2729*4bdc9457SAndroid Build Coastguard Worker .rows(14) 2730*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2731*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2732*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2733*4bdc9457SAndroid Build Coastguard Worker } 2734*4bdc9457SAndroid Build Coastguard Worker } 2735*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_gt_32_2pass_subtile)2736*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_gt_32_2pass_subtile) { 2737*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2738*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 2739*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 8; rows < 14; rows++) { 2740*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2741*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2742*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2743*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2744*4bdc9457SAndroid Build Coastguard Worker } 2745*4bdc9457SAndroid Build Coastguard Worker } 2746*4bdc9457SAndroid Build Coastguard Worker } 2747*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_gt_32_multipass_fulltile)2748*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_gt_32_multipass_fulltile) { 2749*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2750*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 2751*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) { 2752*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2753*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2754*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2755*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2756*4bdc9457SAndroid Build Coastguard Worker } 2757*4bdc9457SAndroid Build Coastguard Worker } 2758*4bdc9457SAndroid Build Coastguard Worker } 2759*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32,channels_gt_32_multipass_fulltile_with_input_stride)2760*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7P7X__F16C_C32, channels_gt_32_multipass_fulltile_with_input_stride) { 2761*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2762*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 2763*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 14; rows < 35; rows += 14) { 2764*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2765*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2766*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2767*4bdc9457SAndroid Build Coastguard Worker .input_stride(79) 2768*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7p7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 2769*4bdc9457SAndroid Build Coastguard Worker } 2770*4bdc9457SAndroid Build Coastguard Worker } 2771*4bdc9457SAndroid Build Coastguard Worker } 2772*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 2773*4bdc9457SAndroid Build Coastguard Worker 2774*4bdc9457SAndroid Build Coastguard Worker 2775*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_eq_8_fulltile)2776*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_eq_8_fulltile) { 2777*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2778*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2779*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2780*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2781*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2782*4bdc9457SAndroid Build Coastguard Worker } 2783*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_eq_8_subtile)2784*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_eq_8_subtile) { 2785*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2786*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 2787*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2788*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2789*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2790*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2791*4bdc9457SAndroid Build Coastguard Worker } 2792*4bdc9457SAndroid Build Coastguard Worker } 2793*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_eq_8_fulltile_with_input_stride)2794*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_eq_8_fulltile_with_input_stride) { 2795*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2796*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2797*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2798*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2799*4bdc9457SAndroid Build Coastguard Worker .input_stride(11) 2800*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2801*4bdc9457SAndroid Build Coastguard Worker } 2802*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_eq_8_fulltile_with_qmax)2803*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_eq_8_fulltile_with_qmax) { 2804*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2805*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2806*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2807*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2808*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2809*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2810*4bdc9457SAndroid Build Coastguard Worker } 2811*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_eq_8_fulltile_with_qmin)2812*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_eq_8_fulltile_with_qmin) { 2813*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2814*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2815*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2816*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2817*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2818*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2819*4bdc9457SAndroid Build Coastguard Worker } 2820*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_div_8_fulltile)2821*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_div_8_fulltile) { 2822*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2823*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2824*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2825*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2826*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2827*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2828*4bdc9457SAndroid Build Coastguard Worker } 2829*4bdc9457SAndroid Build Coastguard Worker } 2830*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_div_8_subtile)2831*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_div_8_subtile) { 2832*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2833*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2834*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 2835*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2836*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2837*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2838*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2839*4bdc9457SAndroid Build Coastguard Worker } 2840*4bdc9457SAndroid Build Coastguard Worker } 2841*4bdc9457SAndroid Build Coastguard Worker } 2842*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_lt_8_fulltile)2843*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_lt_8_fulltile) { 2844*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2845*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2846*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2847*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2848*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2849*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2850*4bdc9457SAndroid Build Coastguard Worker } 2851*4bdc9457SAndroid Build Coastguard Worker } 2852*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_lt_8_subtile)2853*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_lt_8_subtile) { 2854*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2855*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2856*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 2857*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2858*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2859*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2860*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2861*4bdc9457SAndroid Build Coastguard Worker } 2862*4bdc9457SAndroid Build Coastguard Worker } 2863*4bdc9457SAndroid Build Coastguard Worker } 2864*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_lt_8_fulltile_with_qmax)2865*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_lt_8_fulltile_with_qmax) { 2866*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2867*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2868*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2869*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2870*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2871*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2872*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2873*4bdc9457SAndroid Build Coastguard Worker } 2874*4bdc9457SAndroid Build Coastguard Worker } 2875*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_lt_8_fulltile_with_qmin)2876*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_lt_8_fulltile_with_qmin) { 2877*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2878*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2879*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2880*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2881*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2882*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2883*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2884*4bdc9457SAndroid Build Coastguard Worker } 2885*4bdc9457SAndroid Build Coastguard Worker } 2886*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_gt_8_fulltile)2887*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_gt_8_fulltile) { 2888*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2889*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2890*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2891*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2892*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2893*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2894*4bdc9457SAndroid Build Coastguard Worker } 2895*4bdc9457SAndroid Build Coastguard Worker } 2896*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_gt_8_subtile)2897*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_gt_8_subtile) { 2898*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2899*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2900*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 2901*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2902*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2903*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2904*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2905*4bdc9457SAndroid Build Coastguard Worker } 2906*4bdc9457SAndroid Build Coastguard Worker } 2907*4bdc9457SAndroid Build Coastguard Worker } 2908*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_gt_8_fulltile_with_qmax)2909*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_gt_8_fulltile_with_qmax) { 2910*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2911*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2912*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2913*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2914*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2915*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2916*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2917*4bdc9457SAndroid Build Coastguard Worker } 2918*4bdc9457SAndroid Build Coastguard Worker } 2919*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8,channels_gt_8_fulltile_with_qmin)2920*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C8, channels_gt_8_fulltile_with_qmin) { 2921*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2922*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2923*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2924*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2925*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2926*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2927*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c8, xnn_init_f16_scaleminmax_avx_params); 2928*4bdc9457SAndroid Build Coastguard Worker } 2929*4bdc9457SAndroid Build Coastguard Worker } 2930*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 2931*4bdc9457SAndroid Build Coastguard Worker 2932*4bdc9457SAndroid Build Coastguard Worker 2933*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_eq_16_fulltile)2934*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_eq_16_fulltile) { 2935*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2936*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2937*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2938*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2939*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2940*4bdc9457SAndroid Build Coastguard Worker } 2941*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_eq_16_subtile)2942*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_eq_16_subtile) { 2943*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2944*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 2945*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2946*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2947*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2948*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2949*4bdc9457SAndroid Build Coastguard Worker } 2950*4bdc9457SAndroid Build Coastguard Worker } 2951*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_eq_16_fulltile_with_input_stride)2952*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_eq_16_fulltile_with_input_stride) { 2953*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2954*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2955*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2956*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2957*4bdc9457SAndroid Build Coastguard Worker .input_stride(19) 2958*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2959*4bdc9457SAndroid Build Coastguard Worker } 2960*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_eq_16_fulltile_with_qmax)2961*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_eq_16_fulltile_with_qmax) { 2962*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2963*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2964*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2965*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2966*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2967*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2968*4bdc9457SAndroid Build Coastguard Worker } 2969*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_eq_16_fulltile_with_qmin)2970*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_eq_16_fulltile_with_qmin) { 2971*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2972*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2973*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2974*4bdc9457SAndroid Build Coastguard Worker .channels(16) 2975*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2976*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2977*4bdc9457SAndroid Build Coastguard Worker } 2978*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_div_16_fulltile)2979*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_div_16_fulltile) { 2980*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2981*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) { 2982*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2983*4bdc9457SAndroid Build Coastguard Worker .rows(7) 2984*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2985*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2986*4bdc9457SAndroid Build Coastguard Worker } 2987*4bdc9457SAndroid Build Coastguard Worker } 2988*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_div_16_subtile)2989*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_div_16_subtile) { 2990*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 2991*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 128; channels += 16) { 2992*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 2993*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 2994*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 2995*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2996*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 2997*4bdc9457SAndroid Build Coastguard Worker } 2998*4bdc9457SAndroid Build Coastguard Worker } 2999*4bdc9457SAndroid Build Coastguard Worker } 3000*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_lt_16_fulltile)3001*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_lt_16_fulltile) { 3002*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3003*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 3004*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3005*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3006*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3007*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 3008*4bdc9457SAndroid Build Coastguard Worker } 3009*4bdc9457SAndroid Build Coastguard Worker } 3010*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_lt_16_subtile)3011*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_lt_16_subtile) { 3012*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3013*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 3014*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3015*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3016*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3017*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3018*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 3019*4bdc9457SAndroid Build Coastguard Worker } 3020*4bdc9457SAndroid Build Coastguard Worker } 3021*4bdc9457SAndroid Build Coastguard Worker } 3022*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_lt_16_fulltile_with_qmax)3023*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_lt_16_fulltile_with_qmax) { 3024*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3025*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 3026*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3027*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3028*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3029*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 3030*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 3031*4bdc9457SAndroid Build Coastguard Worker } 3032*4bdc9457SAndroid Build Coastguard Worker } 3033*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_lt_16_fulltile_with_qmin)3034*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_lt_16_fulltile_with_qmin) { 3035*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3036*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 3037*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3038*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3039*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3040*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 3041*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 3042*4bdc9457SAndroid Build Coastguard Worker } 3043*4bdc9457SAndroid Build Coastguard Worker } 3044*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_gt_16_fulltile)3045*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_gt_16_fulltile) { 3046*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3047*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 3048*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3049*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3050*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3051*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 3052*4bdc9457SAndroid Build Coastguard Worker } 3053*4bdc9457SAndroid Build Coastguard Worker } 3054*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_gt_16_subtile)3055*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_gt_16_subtile) { 3056*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3057*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 3058*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3059*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3060*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3061*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3062*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 3063*4bdc9457SAndroid Build Coastguard Worker } 3064*4bdc9457SAndroid Build Coastguard Worker } 3065*4bdc9457SAndroid Build Coastguard Worker } 3066*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_gt_16_fulltile_with_qmax)3067*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_gt_16_fulltile_with_qmax) { 3068*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3069*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 3070*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3071*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3072*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3073*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 3074*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 3075*4bdc9457SAndroid Build Coastguard Worker } 3076*4bdc9457SAndroid Build Coastguard Worker } 3077*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16,channels_gt_16_fulltile_with_qmin)3078*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C16, channels_gt_16_fulltile_with_qmin) { 3079*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3080*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 3081*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3082*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3083*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3084*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 3085*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c16, xnn_init_f16_scaleminmax_avx_params); 3086*4bdc9457SAndroid Build Coastguard Worker } 3087*4bdc9457SAndroid Build Coastguard Worker } 3088*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 3089*4bdc9457SAndroid Build Coastguard Worker 3090*4bdc9457SAndroid Build Coastguard Worker 3091*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_eq_24_fulltile)3092*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_eq_24_fulltile) { 3093*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3094*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3095*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3096*4bdc9457SAndroid Build Coastguard Worker .channels(24) 3097*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3098*4bdc9457SAndroid Build Coastguard Worker } 3099*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_eq_24_subtile)3100*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_eq_24_subtile) { 3101*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3102*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3103*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3104*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3105*4bdc9457SAndroid Build Coastguard Worker .channels(24) 3106*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3107*4bdc9457SAndroid Build Coastguard Worker } 3108*4bdc9457SAndroid Build Coastguard Worker } 3109*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_eq_24_fulltile_with_input_stride)3110*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_eq_24_fulltile_with_input_stride) { 3111*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3112*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3113*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3114*4bdc9457SAndroid Build Coastguard Worker .channels(24) 3115*4bdc9457SAndroid Build Coastguard Worker .input_stride(29) 3116*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3117*4bdc9457SAndroid Build Coastguard Worker } 3118*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_eq_24_fulltile_with_qmax)3119*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_eq_24_fulltile_with_qmax) { 3120*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3121*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3122*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3123*4bdc9457SAndroid Build Coastguard Worker .channels(24) 3124*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 3125*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3126*4bdc9457SAndroid Build Coastguard Worker } 3127*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_eq_24_fulltile_with_qmin)3128*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_eq_24_fulltile_with_qmin) { 3129*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3130*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3131*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3132*4bdc9457SAndroid Build Coastguard Worker .channels(24) 3133*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 3134*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3135*4bdc9457SAndroid Build Coastguard Worker } 3136*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_div_24_fulltile)3137*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_div_24_fulltile) { 3138*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3139*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) { 3140*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3141*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3142*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3143*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3144*4bdc9457SAndroid Build Coastguard Worker } 3145*4bdc9457SAndroid Build Coastguard Worker } 3146*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_div_24_subtile)3147*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_div_24_subtile) { 3148*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3149*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 48; channels < 192; channels += 24) { 3150*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3151*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3152*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3153*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3154*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3155*4bdc9457SAndroid Build Coastguard Worker } 3156*4bdc9457SAndroid Build Coastguard Worker } 3157*4bdc9457SAndroid Build Coastguard Worker } 3158*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_lt_24_fulltile)3159*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_lt_24_fulltile) { 3160*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3161*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 3162*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3163*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3164*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3165*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3166*4bdc9457SAndroid Build Coastguard Worker } 3167*4bdc9457SAndroid Build Coastguard Worker } 3168*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_lt_24_subtile)3169*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_lt_24_subtile) { 3170*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3171*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 3172*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3173*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3174*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3175*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3176*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3177*4bdc9457SAndroid Build Coastguard Worker } 3178*4bdc9457SAndroid Build Coastguard Worker } 3179*4bdc9457SAndroid Build Coastguard Worker } 3180*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_lt_24_fulltile_with_qmax)3181*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_lt_24_fulltile_with_qmax) { 3182*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3183*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 3184*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3185*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3186*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3187*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 3188*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3189*4bdc9457SAndroid Build Coastguard Worker } 3190*4bdc9457SAndroid Build Coastguard Worker } 3191*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_lt_24_fulltile_with_qmin)3192*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_lt_24_fulltile_with_qmin) { 3193*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3194*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 24; channels++) { 3195*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3196*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3197*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3198*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 3199*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3200*4bdc9457SAndroid Build Coastguard Worker } 3201*4bdc9457SAndroid Build Coastguard Worker } 3202*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_gt_24_fulltile)3203*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_gt_24_fulltile) { 3204*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3205*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 3206*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3207*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3208*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3209*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3210*4bdc9457SAndroid Build Coastguard Worker } 3211*4bdc9457SAndroid Build Coastguard Worker } 3212*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_gt_24_subtile)3213*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_gt_24_subtile) { 3214*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3215*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 3216*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3217*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3218*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3219*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3220*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3221*4bdc9457SAndroid Build Coastguard Worker } 3222*4bdc9457SAndroid Build Coastguard Worker } 3223*4bdc9457SAndroid Build Coastguard Worker } 3224*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_gt_24_fulltile_with_qmax)3225*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_gt_24_fulltile_with_qmax) { 3226*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3227*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 3228*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3229*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3230*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3231*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 3232*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3233*4bdc9457SAndroid Build Coastguard Worker } 3234*4bdc9457SAndroid Build Coastguard Worker } 3235*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24,channels_gt_24_fulltile_with_qmin)3236*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C24, channels_gt_24_fulltile_with_qmin) { 3237*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3238*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 25; channels < 48; channels++) { 3239*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3240*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3241*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3242*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 3243*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c24, xnn_init_f16_scaleminmax_avx_params); 3244*4bdc9457SAndroid Build Coastguard Worker } 3245*4bdc9457SAndroid Build Coastguard Worker } 3246*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 3247*4bdc9457SAndroid Build Coastguard Worker 3248*4bdc9457SAndroid Build Coastguard Worker 3249*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_eq_32_fulltile)3250*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_eq_32_fulltile) { 3251*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3252*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3253*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3254*4bdc9457SAndroid Build Coastguard Worker .channels(32) 3255*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3256*4bdc9457SAndroid Build Coastguard Worker } 3257*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_eq_32_subtile)3258*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_eq_32_subtile) { 3259*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3260*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3261*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3262*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3263*4bdc9457SAndroid Build Coastguard Worker .channels(32) 3264*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3265*4bdc9457SAndroid Build Coastguard Worker } 3266*4bdc9457SAndroid Build Coastguard Worker } 3267*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_eq_32_fulltile_with_input_stride)3268*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_eq_32_fulltile_with_input_stride) { 3269*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3270*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3271*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3272*4bdc9457SAndroid Build Coastguard Worker .channels(32) 3273*4bdc9457SAndroid Build Coastguard Worker .input_stride(37) 3274*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3275*4bdc9457SAndroid Build Coastguard Worker } 3276*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_eq_32_fulltile_with_qmax)3277*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_eq_32_fulltile_with_qmax) { 3278*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3279*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3280*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3281*4bdc9457SAndroid Build Coastguard Worker .channels(32) 3282*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 3283*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3284*4bdc9457SAndroid Build Coastguard Worker } 3285*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_eq_32_fulltile_with_qmin)3286*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_eq_32_fulltile_with_qmin) { 3287*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3288*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3289*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3290*4bdc9457SAndroid Build Coastguard Worker .channels(32) 3291*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 3292*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3293*4bdc9457SAndroid Build Coastguard Worker } 3294*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_div_32_fulltile)3295*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_div_32_fulltile) { 3296*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3297*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) { 3298*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3299*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3300*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3301*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3302*4bdc9457SAndroid Build Coastguard Worker } 3303*4bdc9457SAndroid Build Coastguard Worker } 3304*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_div_32_subtile)3305*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_div_32_subtile) { 3306*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3307*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 64; channels < 256; channels += 32) { 3308*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3309*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3310*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3311*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3312*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3313*4bdc9457SAndroid Build Coastguard Worker } 3314*4bdc9457SAndroid Build Coastguard Worker } 3315*4bdc9457SAndroid Build Coastguard Worker } 3316*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_lt_32_fulltile)3317*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_lt_32_fulltile) { 3318*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3319*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 3320*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3321*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3322*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3323*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3324*4bdc9457SAndroid Build Coastguard Worker } 3325*4bdc9457SAndroid Build Coastguard Worker } 3326*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_lt_32_subtile)3327*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_lt_32_subtile) { 3328*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3329*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 3330*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3331*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3332*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3333*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3334*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3335*4bdc9457SAndroid Build Coastguard Worker } 3336*4bdc9457SAndroid Build Coastguard Worker } 3337*4bdc9457SAndroid Build Coastguard Worker } 3338*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_lt_32_fulltile_with_qmax)3339*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_lt_32_fulltile_with_qmax) { 3340*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3341*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 3342*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3343*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3344*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3345*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 3346*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3347*4bdc9457SAndroid Build Coastguard Worker } 3348*4bdc9457SAndroid Build Coastguard Worker } 3349*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_lt_32_fulltile_with_qmin)3350*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_lt_32_fulltile_with_qmin) { 3351*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3352*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 32; channels++) { 3353*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3354*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3355*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3356*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 3357*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3358*4bdc9457SAndroid Build Coastguard Worker } 3359*4bdc9457SAndroid Build Coastguard Worker } 3360*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_gt_32_fulltile)3361*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_gt_32_fulltile) { 3362*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3363*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 3364*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3365*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3366*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3367*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3368*4bdc9457SAndroid Build Coastguard Worker } 3369*4bdc9457SAndroid Build Coastguard Worker } 3370*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_gt_32_subtile)3371*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_gt_32_subtile) { 3372*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3373*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 3374*4bdc9457SAndroid Build Coastguard Worker for (size_t rows = 1; rows < 7; rows++) { 3375*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3376*4bdc9457SAndroid Build Coastguard Worker .rows(rows) 3377*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3378*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3379*4bdc9457SAndroid Build Coastguard Worker } 3380*4bdc9457SAndroid Build Coastguard Worker } 3381*4bdc9457SAndroid Build Coastguard Worker } 3382*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_gt_32_fulltile_with_qmax)3383*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_gt_32_fulltile_with_qmax) { 3384*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3385*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 3386*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3387*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3388*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3389*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 3390*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3391*4bdc9457SAndroid Build Coastguard Worker } 3392*4bdc9457SAndroid Build Coastguard Worker } 3393*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32,channels_gt_32_fulltile_with_qmin)3394*4bdc9457SAndroid Build Coastguard Worker TEST(F16_GAVGPOOL_MINMAX_7X__F16C_C32, channels_gt_32_fulltile_with_qmin) { 3395*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 3396*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 33; channels < 64; channels++) { 3397*4bdc9457SAndroid Build Coastguard Worker GAvgPoolMicrokernelTester() 3398*4bdc9457SAndroid Build Coastguard Worker .rows(7) 3399*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 3400*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 3401*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_gavgpool_minmax_ukernel_7x__f16c_c32, xnn_init_f16_scaleminmax_avx_params); 3402*4bdc9457SAndroid Build Coastguard Worker } 3403*4bdc9457SAndroid Build Coastguard Worker } 3404*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 3405