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-pavgpool-minmax.yaml 11*4bdc9457SAndroid Build Coastguard Worker // Generator: tools/generate-avgpool-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/avgpool.h> 20*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/pavgpool.h> 21*4bdc9457SAndroid Build Coastguard Worker #include "avgpool-microkernel-tester.h" 22*4bdc9457SAndroid Build Coastguard Worker 23*4bdc9457SAndroid Build Coastguard Worker 24*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64 TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_twopass_fulltile)25*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_twopass_fulltile) { 26*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 27*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 28*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 29*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 30*4bdc9457SAndroid Build Coastguard Worker .channels(8) 31*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 32*4bdc9457SAndroid Build Coastguard Worker } 33*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_twopass_fulltile_with_input_offset)34*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_twopass_fulltile_with_input_offset) { 35*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 36*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 37*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 38*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 39*4bdc9457SAndroid Build Coastguard Worker .channels(8) 40*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 41*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 42*4bdc9457SAndroid Build Coastguard Worker } 43*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_twopass_fulltile_with_zero)44*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_twopass_fulltile_with_zero) { 45*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 46*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 17; zero_index++) { 47*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 48*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 49*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 50*4bdc9457SAndroid Build Coastguard Worker .channels(8) 51*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 52*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 53*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 54*4bdc9457SAndroid Build Coastguard Worker } 55*4bdc9457SAndroid Build Coastguard Worker } 56*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_twopass_fulltile_with_qmin)57*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_twopass_fulltile_with_qmin) { 58*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 59*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 60*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 61*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 62*4bdc9457SAndroid Build Coastguard Worker .channels(8) 63*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 64*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 65*4bdc9457SAndroid Build Coastguard Worker } 66*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_twopass_fulltile_with_qmax)67*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_twopass_fulltile_with_qmax) { 68*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 69*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 70*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 71*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 72*4bdc9457SAndroid Build Coastguard Worker .channels(8) 73*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 74*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 75*4bdc9457SAndroid Build Coastguard Worker } 76*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_twopass_subtile)77*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_twopass_subtile) { 78*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 79*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 80*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 81*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 82*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 83*4bdc9457SAndroid Build Coastguard Worker .channels(8) 84*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 85*4bdc9457SAndroid Build Coastguard Worker } 86*4bdc9457SAndroid Build Coastguard Worker } 87*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_twopass_subtile_with_input_offset)88*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_twopass_subtile_with_input_offset) { 89*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 90*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 91*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 92*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 93*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 94*4bdc9457SAndroid Build Coastguard Worker .channels(8) 95*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 96*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 97*4bdc9457SAndroid Build Coastguard Worker } 98*4bdc9457SAndroid Build Coastguard Worker } 99*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_twopass_subtile_with_zero)100*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_twopass_subtile_with_zero) { 101*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 102*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 103*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 104*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 105*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 106*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 107*4bdc9457SAndroid Build Coastguard Worker .channels(8) 108*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 109*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 110*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 111*4bdc9457SAndroid Build Coastguard Worker } 112*4bdc9457SAndroid Build Coastguard Worker } 113*4bdc9457SAndroid Build Coastguard Worker } 114*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_twopass_fulltile)115*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_twopass_fulltile) { 116*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 117*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 118*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 119*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 120*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 121*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 122*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 123*4bdc9457SAndroid Build Coastguard Worker } 124*4bdc9457SAndroid Build Coastguard Worker } 125*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_twopass_fulltile_with_input_offset)126*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_twopass_fulltile_with_input_offset) { 127*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 128*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 129*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 130*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 131*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 132*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 133*4bdc9457SAndroid Build Coastguard Worker .input_offset(41) 134*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 135*4bdc9457SAndroid Build Coastguard Worker } 136*4bdc9457SAndroid Build Coastguard Worker } 137*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_twopass_fulltile_with_zero)138*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_twopass_fulltile_with_zero) { 139*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 140*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 141*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 17; zero_index++) { 142*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 143*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 144*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 145*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 146*4bdc9457SAndroid Build Coastguard Worker .input_offset(41) 147*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 148*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 149*4bdc9457SAndroid Build Coastguard Worker } 150*4bdc9457SAndroid Build Coastguard Worker } 151*4bdc9457SAndroid Build Coastguard Worker } 152*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_twopass_fulltile_with_qmin)153*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_twopass_fulltile_with_qmin) { 154*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 155*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 156*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 157*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 158*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 159*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 160*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 161*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 162*4bdc9457SAndroid Build Coastguard Worker } 163*4bdc9457SAndroid Build Coastguard Worker } 164*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_twopass_fulltile_with_qmax)165*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_twopass_fulltile_with_qmax) { 166*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 167*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 168*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 169*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 170*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 171*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 172*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 173*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 174*4bdc9457SAndroid Build Coastguard Worker } 175*4bdc9457SAndroid Build Coastguard Worker } 176*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_twopass_subtile)177*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_twopass_subtile) { 178*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 179*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 180*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 181*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 182*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 183*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 184*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 185*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 186*4bdc9457SAndroid Build Coastguard Worker } 187*4bdc9457SAndroid Build Coastguard Worker } 188*4bdc9457SAndroid Build Coastguard Worker } 189*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_twopass_subtile_with_input_offset)190*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_twopass_subtile_with_input_offset) { 191*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 192*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 193*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 194*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 195*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 196*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 197*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 198*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 199*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 200*4bdc9457SAndroid Build Coastguard Worker } 201*4bdc9457SAndroid Build Coastguard Worker } 202*4bdc9457SAndroid Build Coastguard Worker } 203*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_twopass_subtile_with_zero)204*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_twopass_subtile_with_zero) { 205*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 206*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 207*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 208*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 209*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 210*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 211*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 212*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 213*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 214*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 215*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 216*4bdc9457SAndroid Build Coastguard Worker } 217*4bdc9457SAndroid Build Coastguard Worker } 218*4bdc9457SAndroid Build Coastguard Worker } 219*4bdc9457SAndroid Build Coastguard Worker } 220*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_twopass_fulltile)221*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_twopass_fulltile) { 222*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 223*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 224*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 225*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 226*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 227*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 228*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 229*4bdc9457SAndroid Build Coastguard Worker } 230*4bdc9457SAndroid Build Coastguard Worker } 231*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_twopass_fulltile_with_input_offset)232*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_twopass_fulltile_with_input_offset) { 233*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 234*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 235*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 236*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 237*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 238*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 239*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 240*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 241*4bdc9457SAndroid Build Coastguard Worker } 242*4bdc9457SAndroid Build Coastguard Worker } 243*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_twopass_fulltile_with_zero_index)244*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_twopass_fulltile_with_zero_index) { 245*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 246*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 247*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 17; zero_index++) { 248*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 249*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 250*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 251*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 252*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 253*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 254*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 255*4bdc9457SAndroid Build Coastguard Worker } 256*4bdc9457SAndroid Build Coastguard Worker } 257*4bdc9457SAndroid Build Coastguard Worker } 258*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_twopass_fulltile_with_qmin)259*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_twopass_fulltile_with_qmin) { 260*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 261*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 262*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 263*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 264*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 265*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 266*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 267*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 268*4bdc9457SAndroid Build Coastguard Worker } 269*4bdc9457SAndroid Build Coastguard Worker } 270*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_twopass_fulltile_with_qmax)271*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_twopass_fulltile_with_qmax) { 272*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 273*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 274*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 275*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 276*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 277*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 278*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 279*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 280*4bdc9457SAndroid Build Coastguard Worker } 281*4bdc9457SAndroid Build Coastguard Worker } 282*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_twopass_subtile)283*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_twopass_subtile) { 284*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 285*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 286*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 287*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 288*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 289*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 290*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 291*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 292*4bdc9457SAndroid Build Coastguard Worker } 293*4bdc9457SAndroid Build Coastguard Worker } 294*4bdc9457SAndroid Build Coastguard Worker } 295*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_twopass_subtile_with_input_offset)296*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_twopass_subtile_with_input_offset) { 297*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 298*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 299*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 300*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 301*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 302*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 303*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 304*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 305*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 306*4bdc9457SAndroid Build Coastguard Worker } 307*4bdc9457SAndroid Build Coastguard Worker } 308*4bdc9457SAndroid Build Coastguard Worker } 309*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_twopass_subtile_with_zero)310*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_twopass_subtile_with_zero) { 311*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 312*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 313*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 314*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 315*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 316*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 317*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 318*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 319*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 320*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 321*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 322*4bdc9457SAndroid Build Coastguard Worker } 323*4bdc9457SAndroid Build Coastguard Worker } 324*4bdc9457SAndroid Build Coastguard Worker } 325*4bdc9457SAndroid Build Coastguard Worker } 326*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_twopass_fulltile)327*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_twopass_fulltile) { 328*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 329*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 330*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 331*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 332*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 333*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 334*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 335*4bdc9457SAndroid Build Coastguard Worker } 336*4bdc9457SAndroid Build Coastguard Worker } 337*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_twopass_fulltile_with_input_offset)338*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_twopass_fulltile_with_input_offset) { 339*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 340*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 341*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 342*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 343*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 344*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 345*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 346*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 347*4bdc9457SAndroid Build Coastguard Worker } 348*4bdc9457SAndroid Build Coastguard Worker } 349*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_twopass_fulltile_with_zero)350*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_twopass_fulltile_with_zero) { 351*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 352*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 353*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 17; zero_index++) { 354*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 355*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 356*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 357*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 358*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 359*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 360*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 361*4bdc9457SAndroid Build Coastguard Worker } 362*4bdc9457SAndroid Build Coastguard Worker } 363*4bdc9457SAndroid Build Coastguard Worker } 364*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_twopass_fulltile_with_qmin)365*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_twopass_fulltile_with_qmin) { 366*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 367*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 368*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 369*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 370*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 371*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 372*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 373*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 374*4bdc9457SAndroid Build Coastguard Worker } 375*4bdc9457SAndroid Build Coastguard Worker } 376*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_twopass_fulltile_with_qmax)377*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_twopass_fulltile_with_qmax) { 378*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 379*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 380*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 381*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 382*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 383*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 384*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 385*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 386*4bdc9457SAndroid Build Coastguard Worker } 387*4bdc9457SAndroid Build Coastguard Worker } 388*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_twopass_subtile)389*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_twopass_subtile) { 390*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 391*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 392*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 393*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 394*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 395*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 396*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 397*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 398*4bdc9457SAndroid Build Coastguard Worker } 399*4bdc9457SAndroid Build Coastguard Worker } 400*4bdc9457SAndroid Build Coastguard Worker } 401*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_twopass_subtile_with_input_offset)402*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_twopass_subtile_with_input_offset) { 403*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 404*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 405*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 406*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 407*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 408*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 409*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 410*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 411*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 412*4bdc9457SAndroid Build Coastguard Worker } 413*4bdc9457SAndroid Build Coastguard Worker } 414*4bdc9457SAndroid Build Coastguard Worker } 415*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_twopass_subtile_with_zero)416*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_twopass_subtile_with_zero) { 417*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 418*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 419*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 420*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 421*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 422*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 423*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 424*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 425*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 426*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 427*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 428*4bdc9457SAndroid Build Coastguard Worker } 429*4bdc9457SAndroid Build Coastguard Worker } 430*4bdc9457SAndroid Build Coastguard Worker } 431*4bdc9457SAndroid Build Coastguard Worker } 432*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_multipass)433*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_multipass) { 434*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 435*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 436*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 437*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 438*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 439*4bdc9457SAndroid Build Coastguard Worker .channels(8) 440*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 441*4bdc9457SAndroid Build Coastguard Worker } 442*4bdc9457SAndroid Build Coastguard Worker } 443*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_multipass_with_input_offset)444*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_multipass_with_input_offset) { 445*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 446*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 447*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 448*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 449*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 450*4bdc9457SAndroid Build Coastguard Worker .channels(8) 451*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 452*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 453*4bdc9457SAndroid Build Coastguard Worker } 454*4bdc9457SAndroid Build Coastguard Worker } 455*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_multipass_with_zero)456*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_multipass_with_zero) { 457*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 458*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 459*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 460*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 461*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 462*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 463*4bdc9457SAndroid Build Coastguard Worker .channels(8) 464*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 465*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 466*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 467*4bdc9457SAndroid Build Coastguard Worker } 468*4bdc9457SAndroid Build Coastguard Worker } 469*4bdc9457SAndroid Build Coastguard Worker } 470*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_multipass_with_qmin)471*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_multipass_with_qmin) { 472*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 473*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 474*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 475*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 476*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 477*4bdc9457SAndroid Build Coastguard Worker .channels(8) 478*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 479*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 480*4bdc9457SAndroid Build Coastguard Worker } 481*4bdc9457SAndroid Build Coastguard Worker } 482*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_eq_8_multipass_with_qmax)483*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_eq_8_multipass_with_qmax) { 484*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 485*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 486*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 487*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 488*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 489*4bdc9457SAndroid Build Coastguard Worker .channels(8) 490*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 491*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 492*4bdc9457SAndroid Build Coastguard Worker } 493*4bdc9457SAndroid Build Coastguard Worker } 494*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_multipass)495*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_multipass) { 496*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 497*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 498*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 499*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 500*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 501*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 502*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 503*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 504*4bdc9457SAndroid Build Coastguard Worker } 505*4bdc9457SAndroid Build Coastguard Worker } 506*4bdc9457SAndroid Build Coastguard Worker } 507*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_multipass_with_input_offset)508*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_multipass_with_input_offset) { 509*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 510*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 511*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 512*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 513*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 514*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 515*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 516*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 517*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 518*4bdc9457SAndroid Build Coastguard Worker } 519*4bdc9457SAndroid Build Coastguard Worker } 520*4bdc9457SAndroid Build Coastguard Worker } 521*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_multipass_with_zero)522*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_multipass_with_zero) { 523*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 524*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 525*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 526*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 527*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 528*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 529*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 530*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 531*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 532*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 533*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 534*4bdc9457SAndroid Build Coastguard Worker } 535*4bdc9457SAndroid Build Coastguard Worker } 536*4bdc9457SAndroid Build Coastguard Worker } 537*4bdc9457SAndroid Build Coastguard Worker } 538*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_multipass_with_qmin)539*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_multipass_with_qmin) { 540*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 541*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 542*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 543*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 544*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 545*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 546*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 547*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 548*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 549*4bdc9457SAndroid Build Coastguard Worker } 550*4bdc9457SAndroid Build Coastguard Worker } 551*4bdc9457SAndroid Build Coastguard Worker } 552*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_div_8_multipass_with_qmax)553*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_div_8_multipass_with_qmax) { 554*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 555*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 556*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 557*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 558*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 559*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 560*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 561*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 562*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 563*4bdc9457SAndroid Build Coastguard Worker } 564*4bdc9457SAndroid Build Coastguard Worker } 565*4bdc9457SAndroid Build Coastguard Worker } 566*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_multipass)567*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_multipass) { 568*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 569*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 570*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 571*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 572*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 573*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 574*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 575*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 576*4bdc9457SAndroid Build Coastguard Worker } 577*4bdc9457SAndroid Build Coastguard Worker } 578*4bdc9457SAndroid Build Coastguard Worker } 579*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_multipass_with_input_offset)580*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_multipass_with_input_offset) { 581*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 582*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 583*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 584*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 585*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 586*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 587*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 588*4bdc9457SAndroid Build Coastguard Worker .input_offset(8) 589*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 590*4bdc9457SAndroid Build Coastguard Worker } 591*4bdc9457SAndroid Build Coastguard Worker } 592*4bdc9457SAndroid Build Coastguard Worker } 593*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_multipass_with_zero)594*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_multipass_with_zero) { 595*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 596*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 597*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 598*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 599*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 600*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 601*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 602*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 603*4bdc9457SAndroid Build Coastguard Worker .input_offset(8) 604*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 605*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 606*4bdc9457SAndroid Build Coastguard Worker } 607*4bdc9457SAndroid Build Coastguard Worker } 608*4bdc9457SAndroid Build Coastguard Worker } 609*4bdc9457SAndroid Build Coastguard Worker } 610*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_multipass_with_qmin)611*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_multipass_with_qmin) { 612*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 613*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 614*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 615*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 616*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 617*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 618*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 619*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 620*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 621*4bdc9457SAndroid Build Coastguard Worker } 622*4bdc9457SAndroid Build Coastguard Worker } 623*4bdc9457SAndroid Build Coastguard Worker } 624*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_lt_8_multipass_with_qmax)625*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_lt_8_multipass_with_qmax) { 626*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 627*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 628*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 629*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 630*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 631*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 632*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 633*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 634*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 635*4bdc9457SAndroid Build Coastguard Worker } 636*4bdc9457SAndroid Build Coastguard Worker } 637*4bdc9457SAndroid Build Coastguard Worker } 638*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_multipass)639*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_multipass) { 640*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 641*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 642*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 643*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 644*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 645*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 646*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 647*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 648*4bdc9457SAndroid Build Coastguard Worker } 649*4bdc9457SAndroid Build Coastguard Worker } 650*4bdc9457SAndroid Build Coastguard Worker } 651*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_multipass_with_input_offset)652*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_multipass_with_input_offset) { 653*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 654*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 655*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 656*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 657*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 658*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 659*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 660*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 661*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 662*4bdc9457SAndroid Build Coastguard Worker } 663*4bdc9457SAndroid Build Coastguard Worker } 664*4bdc9457SAndroid Build Coastguard Worker } 665*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_multipass_with_zero)666*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_multipass_with_zero) { 667*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 668*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 669*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 670*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 671*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 672*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 673*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 674*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 675*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 676*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 677*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 678*4bdc9457SAndroid Build Coastguard Worker } 679*4bdc9457SAndroid Build Coastguard Worker } 680*4bdc9457SAndroid Build Coastguard Worker } 681*4bdc9457SAndroid Build Coastguard Worker } 682*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_multipass_with_qmin)683*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_multipass_with_qmin) { 684*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 685*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 686*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 687*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 688*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 689*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 690*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 691*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 692*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 693*4bdc9457SAndroid Build Coastguard Worker } 694*4bdc9457SAndroid Build Coastguard Worker } 695*4bdc9457SAndroid Build Coastguard Worker } 696*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,channels_gt_8_multipass_with_qmax)697*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, channels_gt_8_multipass_with_qmax) { 698*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 699*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 700*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 701*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 702*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 703*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 704*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 705*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 706*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 707*4bdc9457SAndroid Build Coastguard Worker } 708*4bdc9457SAndroid Build Coastguard Worker } 709*4bdc9457SAndroid Build Coastguard Worker } 710*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,few_output_pixels)711*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, few_output_pixels) { 712*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 713*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 714*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 715*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 716*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 717*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 718*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 719*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 720*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 721*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 722*4bdc9457SAndroid Build Coastguard Worker } 723*4bdc9457SAndroid Build Coastguard Worker } 724*4bdc9457SAndroid Build Coastguard Worker } 725*4bdc9457SAndroid Build Coastguard Worker } 726*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,few_output_pixels_with_input_offset)727*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, few_output_pixels_with_input_offset) { 728*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 729*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 730*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 731*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 732*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 733*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 734*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 735*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 736*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 737*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 738*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 739*4bdc9457SAndroid Build Coastguard Worker } 740*4bdc9457SAndroid Build Coastguard Worker } 741*4bdc9457SAndroid Build Coastguard Worker } 742*4bdc9457SAndroid Build Coastguard Worker } 743*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,few_output_pixels_with_zero)744*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, few_output_pixels_with_zero) { 745*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 746*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 747*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 748*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 749*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 750*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 751*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 752*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 753*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 754*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 755*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 756*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 757*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 758*4bdc9457SAndroid Build Coastguard Worker } 759*4bdc9457SAndroid Build Coastguard Worker } 760*4bdc9457SAndroid Build Coastguard Worker } 761*4bdc9457SAndroid Build Coastguard Worker } 762*4bdc9457SAndroid Build Coastguard Worker } 763*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,few_output_pixels_with_qmin)764*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, few_output_pixels_with_qmin) { 765*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 766*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 767*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 768*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 769*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 770*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 771*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 772*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 773*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 774*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 775*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 776*4bdc9457SAndroid Build Coastguard Worker } 777*4bdc9457SAndroid Build Coastguard Worker } 778*4bdc9457SAndroid Build Coastguard Worker } 779*4bdc9457SAndroid Build Coastguard Worker } 780*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,few_output_pixels_with_qmax)781*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, few_output_pixels_with_qmax) { 782*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 783*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 784*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 785*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 786*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 787*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 788*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 789*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 790*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 791*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 792*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 793*4bdc9457SAndroid Build Coastguard Worker } 794*4bdc9457SAndroid Build Coastguard Worker } 795*4bdc9457SAndroid Build Coastguard Worker } 796*4bdc9457SAndroid Build Coastguard Worker } 797*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,few_output_pixels_with_output_stride)798*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, few_output_pixels_with_output_stride) { 799*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 800*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 801*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 802*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 803*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 804*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 805*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 806*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 807*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 808*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 809*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 810*4bdc9457SAndroid Build Coastguard Worker } 811*4bdc9457SAndroid Build Coastguard Worker } 812*4bdc9457SAndroid Build Coastguard Worker } 813*4bdc9457SAndroid Build Coastguard Worker } 814*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8,few_output_pixels_with_step)815*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__NEONFP16ARITH_C8, few_output_pixels_with_step) { 816*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 817*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 818*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 819*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 820*4bdc9457SAndroid Build Coastguard Worker for (size_t step = 2; step <= pooling_elements; step++) { 821*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 822*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 823*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 824*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 825*4bdc9457SAndroid Build Coastguard Worker .step(step) 826*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 827*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 828*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 829*4bdc9457SAndroid Build Coastguard Worker } 830*4bdc9457SAndroid Build Coastguard Worker } 831*4bdc9457SAndroid Build Coastguard Worker } 832*4bdc9457SAndroid Build Coastguard Worker } 833*4bdc9457SAndroid Build Coastguard Worker } 834*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64 835*4bdc9457SAndroid Build Coastguard Worker 836*4bdc9457SAndroid Build Coastguard Worker 837*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64 TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_eq_8_unipass_fulltile)838*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_eq_8_unipass_fulltile) { 839*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 840*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 841*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 842*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 843*4bdc9457SAndroid Build Coastguard Worker .channels(8) 844*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 845*4bdc9457SAndroid Build Coastguard Worker } 846*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_eq_8_unipass_fulltile_with_input_offset)847*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_eq_8_unipass_fulltile_with_input_offset) { 848*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 849*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 850*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 851*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 852*4bdc9457SAndroid Build Coastguard Worker .channels(8) 853*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 854*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 855*4bdc9457SAndroid Build Coastguard Worker } 856*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_eq_8_unipass_fulltile_with_zero)857*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_eq_8_unipass_fulltile_with_zero) { 858*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 859*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 9; zero_index++) { 860*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 861*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 862*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 863*4bdc9457SAndroid Build Coastguard Worker .channels(8) 864*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 865*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 866*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 867*4bdc9457SAndroid Build Coastguard Worker } 868*4bdc9457SAndroid Build Coastguard Worker } 869*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_eq_8_unipass_fulltile_with_qmin)870*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_eq_8_unipass_fulltile_with_qmin) { 871*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 872*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 873*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 874*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 875*4bdc9457SAndroid Build Coastguard Worker .channels(8) 876*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 877*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 878*4bdc9457SAndroid Build Coastguard Worker } 879*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_eq_8_unipass_fulltile_with_qmax)880*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_eq_8_unipass_fulltile_with_qmax) { 881*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 882*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 883*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 884*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 885*4bdc9457SAndroid Build Coastguard Worker .channels(8) 886*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 887*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 888*4bdc9457SAndroid Build Coastguard Worker } 889*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_eq_8_unipass_subtile)890*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_eq_8_unipass_subtile) { 891*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 892*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 893*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 894*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 895*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 896*4bdc9457SAndroid Build Coastguard Worker .channels(8) 897*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 898*4bdc9457SAndroid Build Coastguard Worker } 899*4bdc9457SAndroid Build Coastguard Worker } 900*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_eq_8_unipass_subtile_with_input_offset)901*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_eq_8_unipass_subtile_with_input_offset) { 902*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 903*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 904*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 905*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 906*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 907*4bdc9457SAndroid Build Coastguard Worker .channels(8) 908*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 909*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 910*4bdc9457SAndroid Build Coastguard Worker } 911*4bdc9457SAndroid Build Coastguard Worker } 912*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_eq_8_unipass_subtile_with_zero)913*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_eq_8_unipass_subtile_with_zero) { 914*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 915*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 916*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 917*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 918*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 919*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 920*4bdc9457SAndroid Build Coastguard Worker .channels(8) 921*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 922*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 923*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 924*4bdc9457SAndroid Build Coastguard Worker } 925*4bdc9457SAndroid Build Coastguard Worker } 926*4bdc9457SAndroid Build Coastguard Worker } 927*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_div_8_unipass_fulltile)928*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_div_8_unipass_fulltile) { 929*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 930*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 931*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 932*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 933*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 934*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 935*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 936*4bdc9457SAndroid Build Coastguard Worker } 937*4bdc9457SAndroid Build Coastguard Worker } 938*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_div_8_unipass_fulltile_with_input_offset)939*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_div_8_unipass_fulltile_with_input_offset) { 940*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 941*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 942*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 943*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 944*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 945*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 946*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 947*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 948*4bdc9457SAndroid Build Coastguard Worker } 949*4bdc9457SAndroid Build Coastguard Worker } 950*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_div_8_unipass_fulltile_with_zero)951*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_div_8_unipass_fulltile_with_zero) { 952*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 953*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 954*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 9; zero_index++) { 955*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 956*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 957*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 958*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 959*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 960*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 961*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 962*4bdc9457SAndroid Build Coastguard Worker } 963*4bdc9457SAndroid Build Coastguard Worker } 964*4bdc9457SAndroid Build Coastguard Worker } 965*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_div_8_unipass_fulltile_with_qmin)966*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_div_8_unipass_fulltile_with_qmin) { 967*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 968*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 969*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 970*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 971*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 972*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 973*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 974*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 975*4bdc9457SAndroid Build Coastguard Worker } 976*4bdc9457SAndroid Build Coastguard Worker } 977*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_div_8_unipass_fulltile_with_qmax)978*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_div_8_unipass_fulltile_with_qmax) { 979*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 980*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 981*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 982*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 983*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 984*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 985*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 986*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 987*4bdc9457SAndroid Build Coastguard Worker } 988*4bdc9457SAndroid Build Coastguard Worker } 989*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_div_8_unipass_subtile)990*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_div_8_unipass_subtile) { 991*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 992*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 993*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 994*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 995*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 996*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 997*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 998*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 999*4bdc9457SAndroid Build Coastguard Worker } 1000*4bdc9457SAndroid Build Coastguard Worker } 1001*4bdc9457SAndroid Build Coastguard Worker } 1002*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_div_8_unipass_subtile_with_input_offset)1003*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_div_8_unipass_subtile_with_input_offset) { 1004*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1005*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 1006*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1007*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1008*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1009*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1010*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1011*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 1012*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1013*4bdc9457SAndroid Build Coastguard Worker } 1014*4bdc9457SAndroid Build Coastguard Worker } 1015*4bdc9457SAndroid Build Coastguard Worker } 1016*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_div_8_unipass_subtile_with_zero)1017*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_div_8_unipass_subtile_with_zero) { 1018*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1019*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 1020*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1021*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1022*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1023*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1024*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1025*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1026*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 1027*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1028*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1029*4bdc9457SAndroid Build Coastguard Worker } 1030*4bdc9457SAndroid Build Coastguard Worker } 1031*4bdc9457SAndroid Build Coastguard Worker } 1032*4bdc9457SAndroid Build Coastguard Worker } 1033*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_lt_8_unipass_fulltile)1034*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_lt_8_unipass_fulltile) { 1035*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1036*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1037*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1038*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1039*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1040*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1041*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1042*4bdc9457SAndroid Build Coastguard Worker } 1043*4bdc9457SAndroid Build Coastguard Worker } 1044*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_lt_8_unipass_fulltile_with_input_offset)1045*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_lt_8_unipass_fulltile_with_input_offset) { 1046*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1047*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1048*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1049*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1050*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1051*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1052*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1053*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1054*4bdc9457SAndroid Build Coastguard Worker } 1055*4bdc9457SAndroid Build Coastguard Worker } 1056*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_lt_8_unipass_fulltile_with_zero)1057*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_lt_8_unipass_fulltile_with_zero) { 1058*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1059*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1060*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 9; zero_index++) { 1061*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1062*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1063*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1064*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1065*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1066*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1067*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1068*4bdc9457SAndroid Build Coastguard Worker } 1069*4bdc9457SAndroid Build Coastguard Worker } 1070*4bdc9457SAndroid Build Coastguard Worker } 1071*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_lt_8_unipass_fulltile_with_qmin)1072*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_lt_8_unipass_fulltile_with_qmin) { 1073*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1074*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1075*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1076*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1077*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1078*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1079*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1080*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1081*4bdc9457SAndroid Build Coastguard Worker } 1082*4bdc9457SAndroid Build Coastguard Worker } 1083*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_lt_8_unipass_fulltile_with_qmax)1084*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_lt_8_unipass_fulltile_with_qmax) { 1085*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1086*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1087*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1088*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1089*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1090*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1091*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1092*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1093*4bdc9457SAndroid Build Coastguard Worker } 1094*4bdc9457SAndroid Build Coastguard Worker } 1095*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_lt_8_unipass_subtile)1096*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_lt_8_unipass_subtile) { 1097*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1098*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 1099*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1100*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1101*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1102*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1103*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1104*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1105*4bdc9457SAndroid Build Coastguard Worker } 1106*4bdc9457SAndroid Build Coastguard Worker } 1107*4bdc9457SAndroid Build Coastguard Worker } 1108*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_lt_8_unipass_subtile_with_input_offset)1109*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_lt_8_unipass_subtile_with_input_offset) { 1110*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1111*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 1112*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1113*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1114*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1115*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1116*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1117*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1118*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1119*4bdc9457SAndroid Build Coastguard Worker } 1120*4bdc9457SAndroid Build Coastguard Worker } 1121*4bdc9457SAndroid Build Coastguard Worker } 1122*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_lt_8_unipass_subtile_with_zero)1123*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_lt_8_unipass_subtile_with_zero) { 1124*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1125*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 1126*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1127*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1128*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1129*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1130*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1131*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1132*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1133*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1134*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1135*4bdc9457SAndroid Build Coastguard Worker } 1136*4bdc9457SAndroid Build Coastguard Worker } 1137*4bdc9457SAndroid Build Coastguard Worker } 1138*4bdc9457SAndroid Build Coastguard Worker } 1139*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_gt_8_unipass_fulltile)1140*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_gt_8_unipass_fulltile) { 1141*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1142*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1143*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1144*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1145*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1146*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1147*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1148*4bdc9457SAndroid Build Coastguard Worker } 1149*4bdc9457SAndroid Build Coastguard Worker } 1150*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_gt_8_unipass_fulltile_with_input_offset)1151*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_gt_8_unipass_fulltile_with_input_offset) { 1152*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1153*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1154*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1155*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1156*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1157*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1158*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 1159*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1160*4bdc9457SAndroid Build Coastguard Worker } 1161*4bdc9457SAndroid Build Coastguard Worker } 1162*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_gt_8_unipass_fulltile_with_zero)1163*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_gt_8_unipass_fulltile_with_zero) { 1164*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1165*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1166*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 9; zero_index++) { 1167*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1168*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1169*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1170*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1171*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 1172*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1173*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1174*4bdc9457SAndroid Build Coastguard Worker } 1175*4bdc9457SAndroid Build Coastguard Worker } 1176*4bdc9457SAndroid Build Coastguard Worker } 1177*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_gt_8_unipass_fulltile_with_qmin)1178*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_gt_8_unipass_fulltile_with_qmin) { 1179*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1180*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1181*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1182*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1183*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1184*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1185*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1186*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1187*4bdc9457SAndroid Build Coastguard Worker } 1188*4bdc9457SAndroid Build Coastguard Worker } 1189*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_gt_8_unipass_fulltile_with_qmax)1190*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_gt_8_unipass_fulltile_with_qmax) { 1191*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1192*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1193*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1194*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 1195*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1196*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1197*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1198*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1199*4bdc9457SAndroid Build Coastguard Worker } 1200*4bdc9457SAndroid Build Coastguard Worker } 1201*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_gt_8_unipass_subtile)1202*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_gt_8_unipass_subtile) { 1203*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1204*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 1205*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1206*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1207*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1208*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1209*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1210*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1211*4bdc9457SAndroid Build Coastguard Worker } 1212*4bdc9457SAndroid Build Coastguard Worker } 1213*4bdc9457SAndroid Build Coastguard Worker } 1214*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_gt_8_unipass_subtile_with_input_offset)1215*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_gt_8_unipass_subtile_with_input_offset) { 1216*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1217*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 1218*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1219*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1220*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1221*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1222*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1223*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 1224*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1225*4bdc9457SAndroid Build Coastguard Worker } 1226*4bdc9457SAndroid Build Coastguard Worker } 1227*4bdc9457SAndroid Build Coastguard Worker } 1228*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,channels_gt_8_unipass_subtile_with_zero)1229*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, channels_gt_8_unipass_subtile_with_zero) { 1230*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1231*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 1232*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1233*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1234*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1235*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1236*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 1237*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1238*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 1239*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1240*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1241*4bdc9457SAndroid Build Coastguard Worker } 1242*4bdc9457SAndroid Build Coastguard Worker } 1243*4bdc9457SAndroid Build Coastguard Worker } 1244*4bdc9457SAndroid Build Coastguard Worker } 1245*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,few_output_pixels)1246*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, few_output_pixels) { 1247*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1248*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 1249*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 1250*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 1251*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1252*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 1253*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1254*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 1255*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1256*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1257*4bdc9457SAndroid Build Coastguard Worker } 1258*4bdc9457SAndroid Build Coastguard Worker } 1259*4bdc9457SAndroid Build Coastguard Worker } 1260*4bdc9457SAndroid Build Coastguard Worker } 1261*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,few_output_pixels_with_input_offset)1262*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, few_output_pixels_with_input_offset) { 1263*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1264*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 1265*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 1266*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 1267*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1268*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 1269*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1270*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 1271*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1272*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 1273*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1274*4bdc9457SAndroid Build Coastguard Worker } 1275*4bdc9457SAndroid Build Coastguard Worker } 1276*4bdc9457SAndroid Build Coastguard Worker } 1277*4bdc9457SAndroid Build Coastguard Worker } 1278*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,few_output_pixels_with_zero)1279*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, few_output_pixels_with_zero) { 1280*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1281*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 1282*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 1283*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 1284*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1285*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1286*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 1287*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1288*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 1289*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1290*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 1291*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1292*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1293*4bdc9457SAndroid Build Coastguard Worker } 1294*4bdc9457SAndroid Build Coastguard Worker } 1295*4bdc9457SAndroid Build Coastguard Worker } 1296*4bdc9457SAndroid Build Coastguard Worker } 1297*4bdc9457SAndroid Build Coastguard Worker } 1298*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,few_output_pixels_with_qmin)1299*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, few_output_pixels_with_qmin) { 1300*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1301*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 1302*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 1303*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 1304*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1305*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 1306*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1307*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 1308*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1309*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1310*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1311*4bdc9457SAndroid Build Coastguard Worker } 1312*4bdc9457SAndroid Build Coastguard Worker } 1313*4bdc9457SAndroid Build Coastguard Worker } 1314*4bdc9457SAndroid Build Coastguard Worker } 1315*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,few_output_pixels_with_qmax)1316*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, few_output_pixels_with_qmax) { 1317*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1318*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 1319*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 1320*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 1321*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1322*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 1323*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1324*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 1325*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1326*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1327*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1328*4bdc9457SAndroid Build Coastguard Worker } 1329*4bdc9457SAndroid Build Coastguard Worker } 1330*4bdc9457SAndroid Build Coastguard Worker } 1331*4bdc9457SAndroid Build Coastguard Worker } 1332*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,few_output_pixels_with_output_stride)1333*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, few_output_pixels_with_output_stride) { 1334*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1335*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 1336*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 1337*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 1338*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1339*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 1340*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1341*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 1342*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1343*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 1344*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1345*4bdc9457SAndroid Build Coastguard Worker } 1346*4bdc9457SAndroid Build Coastguard Worker } 1347*4bdc9457SAndroid Build Coastguard Worker } 1348*4bdc9457SAndroid Build Coastguard Worker } 1349*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8,few_output_pixels_with_step)1350*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__NEONFP16ARITH_C8, few_output_pixels_with_step) { 1351*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 1352*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 1353*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 1354*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 1355*4bdc9457SAndroid Build Coastguard Worker for (size_t step = 2; step <= pooling_elements; step++) { 1356*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1357*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 1358*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1359*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 1360*4bdc9457SAndroid Build Coastguard Worker .step(step) 1361*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1362*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 1363*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__neonfp16arith_c8, xnn_init_f16_minmax_neon_params); 1364*4bdc9457SAndroid Build Coastguard Worker } 1365*4bdc9457SAndroid Build Coastguard Worker } 1366*4bdc9457SAndroid Build Coastguard Worker } 1367*4bdc9457SAndroid Build Coastguard Worker } 1368*4bdc9457SAndroid Build Coastguard Worker } 1369*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64 1370*4bdc9457SAndroid Build Coastguard Worker 1371*4bdc9457SAndroid Build Coastguard Worker 1372*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_twopass_fulltile)1373*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_twopass_fulltile) { 1374*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1375*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1376*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1377*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1378*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1379*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1380*4bdc9457SAndroid Build Coastguard Worker } 1381*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_twopass_fulltile_with_input_offset)1382*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_twopass_fulltile_with_input_offset) { 1383*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1384*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1385*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1386*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1387*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1388*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1389*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1390*4bdc9457SAndroid Build Coastguard Worker } 1391*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_twopass_fulltile_with_zero)1392*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_twopass_fulltile_with_zero) { 1393*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1394*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 17; zero_index++) { 1395*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1396*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1397*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1398*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1399*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1400*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1401*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1402*4bdc9457SAndroid Build Coastguard Worker } 1403*4bdc9457SAndroid Build Coastguard Worker } 1404*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_twopass_fulltile_with_qmin)1405*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_twopass_fulltile_with_qmin) { 1406*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1407*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1408*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1409*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1410*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1411*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1412*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1413*4bdc9457SAndroid Build Coastguard Worker } 1414*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_twopass_fulltile_with_qmax)1415*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_twopass_fulltile_with_qmax) { 1416*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1417*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1418*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1419*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1420*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1421*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1422*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1423*4bdc9457SAndroid Build Coastguard Worker } 1424*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_twopass_subtile)1425*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_twopass_subtile) { 1426*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1427*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1428*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1429*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1430*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1431*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1432*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1433*4bdc9457SAndroid Build Coastguard Worker } 1434*4bdc9457SAndroid Build Coastguard Worker } 1435*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_twopass_subtile_with_input_offset)1436*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_twopass_subtile_with_input_offset) { 1437*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1438*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1439*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1440*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1441*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1442*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1443*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1444*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1445*4bdc9457SAndroid Build Coastguard Worker } 1446*4bdc9457SAndroid Build Coastguard Worker } 1447*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_twopass_subtile_with_zero)1448*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_twopass_subtile_with_zero) { 1449*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1450*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1451*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1452*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1453*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1454*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1455*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1456*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1457*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1458*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1459*4bdc9457SAndroid Build Coastguard Worker } 1460*4bdc9457SAndroid Build Coastguard Worker } 1461*4bdc9457SAndroid Build Coastguard Worker } 1462*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_twopass_fulltile)1463*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_twopass_fulltile) { 1464*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1465*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1466*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1467*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1468*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1469*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1470*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1471*4bdc9457SAndroid Build Coastguard Worker } 1472*4bdc9457SAndroid Build Coastguard Worker } 1473*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_twopass_fulltile_with_input_offset)1474*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_twopass_fulltile_with_input_offset) { 1475*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1476*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1477*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1478*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1479*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1480*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1481*4bdc9457SAndroid Build Coastguard Worker .input_offset(41) 1482*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1483*4bdc9457SAndroid Build Coastguard Worker } 1484*4bdc9457SAndroid Build Coastguard Worker } 1485*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_twopass_fulltile_with_zero)1486*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_twopass_fulltile_with_zero) { 1487*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1488*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1489*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 17; zero_index++) { 1490*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1491*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1492*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1493*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1494*4bdc9457SAndroid Build Coastguard Worker .input_offset(41) 1495*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1496*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1497*4bdc9457SAndroid Build Coastguard Worker } 1498*4bdc9457SAndroid Build Coastguard Worker } 1499*4bdc9457SAndroid Build Coastguard Worker } 1500*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_twopass_fulltile_with_qmin)1501*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_twopass_fulltile_with_qmin) { 1502*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1503*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1504*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1505*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1506*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1507*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1508*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1509*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1510*4bdc9457SAndroid Build Coastguard Worker } 1511*4bdc9457SAndroid Build Coastguard Worker } 1512*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_twopass_fulltile_with_qmax)1513*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_twopass_fulltile_with_qmax) { 1514*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1515*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1516*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1517*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1518*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1519*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1520*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1521*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1522*4bdc9457SAndroid Build Coastguard Worker } 1523*4bdc9457SAndroid Build Coastguard Worker } 1524*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_twopass_subtile)1525*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_twopass_subtile) { 1526*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1527*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1528*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1529*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1530*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1531*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1532*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1533*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1534*4bdc9457SAndroid Build Coastguard Worker } 1535*4bdc9457SAndroid Build Coastguard Worker } 1536*4bdc9457SAndroid Build Coastguard Worker } 1537*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_twopass_subtile_with_input_offset)1538*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_twopass_subtile_with_input_offset) { 1539*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1540*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1541*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1542*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1543*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1544*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1545*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1546*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 1547*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1548*4bdc9457SAndroid Build Coastguard Worker } 1549*4bdc9457SAndroid Build Coastguard Worker } 1550*4bdc9457SAndroid Build Coastguard Worker } 1551*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_twopass_subtile_with_zero)1552*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_twopass_subtile_with_zero) { 1553*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1554*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1555*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1556*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1557*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1558*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1559*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1560*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1561*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 1562*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1563*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1564*4bdc9457SAndroid Build Coastguard Worker } 1565*4bdc9457SAndroid Build Coastguard Worker } 1566*4bdc9457SAndroid Build Coastguard Worker } 1567*4bdc9457SAndroid Build Coastguard Worker } 1568*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_twopass_fulltile)1569*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_twopass_fulltile) { 1570*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1571*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1572*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1573*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1574*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1575*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1576*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1577*4bdc9457SAndroid Build Coastguard Worker } 1578*4bdc9457SAndroid Build Coastguard Worker } 1579*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_twopass_fulltile_with_input_offset)1580*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_twopass_fulltile_with_input_offset) { 1581*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1582*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1583*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1584*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1585*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1586*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1587*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1588*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1589*4bdc9457SAndroid Build Coastguard Worker } 1590*4bdc9457SAndroid Build Coastguard Worker } 1591*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_twopass_fulltile_with_zero_index)1592*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_twopass_fulltile_with_zero_index) { 1593*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1594*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1595*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 17; zero_index++) { 1596*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1597*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1598*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1599*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1600*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1601*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1602*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1603*4bdc9457SAndroid Build Coastguard Worker } 1604*4bdc9457SAndroid Build Coastguard Worker } 1605*4bdc9457SAndroid Build Coastguard Worker } 1606*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_twopass_fulltile_with_qmin)1607*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_twopass_fulltile_with_qmin) { 1608*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1609*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1610*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1611*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1612*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1613*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1614*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1615*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1616*4bdc9457SAndroid Build Coastguard Worker } 1617*4bdc9457SAndroid Build Coastguard Worker } 1618*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_twopass_fulltile_with_qmax)1619*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_twopass_fulltile_with_qmax) { 1620*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1621*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1622*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1623*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1624*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1625*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1626*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1627*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1628*4bdc9457SAndroid Build Coastguard Worker } 1629*4bdc9457SAndroid Build Coastguard Worker } 1630*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_twopass_subtile)1631*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_twopass_subtile) { 1632*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1633*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1634*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1635*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1636*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1637*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1638*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1639*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1640*4bdc9457SAndroid Build Coastguard Worker } 1641*4bdc9457SAndroid Build Coastguard Worker } 1642*4bdc9457SAndroid Build Coastguard Worker } 1643*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_twopass_subtile_with_input_offset)1644*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_twopass_subtile_with_input_offset) { 1645*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1646*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1647*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1648*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1649*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1650*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1651*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1652*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1653*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1654*4bdc9457SAndroid Build Coastguard Worker } 1655*4bdc9457SAndroid Build Coastguard Worker } 1656*4bdc9457SAndroid Build Coastguard Worker } 1657*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_twopass_subtile_with_zero)1658*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_twopass_subtile_with_zero) { 1659*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1660*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1661*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1662*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1663*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1664*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1665*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1666*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1667*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1668*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1669*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1670*4bdc9457SAndroid Build Coastguard Worker } 1671*4bdc9457SAndroid Build Coastguard Worker } 1672*4bdc9457SAndroid Build Coastguard Worker } 1673*4bdc9457SAndroid Build Coastguard Worker } 1674*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_twopass_fulltile)1675*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_twopass_fulltile) { 1676*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1677*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1678*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1679*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1680*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1681*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1682*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1683*4bdc9457SAndroid Build Coastguard Worker } 1684*4bdc9457SAndroid Build Coastguard Worker } 1685*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_twopass_fulltile_with_input_offset)1686*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_twopass_fulltile_with_input_offset) { 1687*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1688*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1689*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1690*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1691*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1692*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1693*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 1694*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1695*4bdc9457SAndroid Build Coastguard Worker } 1696*4bdc9457SAndroid Build Coastguard Worker } 1697*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_twopass_fulltile_with_zero)1698*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_twopass_fulltile_with_zero) { 1699*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1700*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1701*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 17; zero_index++) { 1702*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1703*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1704*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1705*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1706*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 1707*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1708*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1709*4bdc9457SAndroid Build Coastguard Worker } 1710*4bdc9457SAndroid Build Coastguard Worker } 1711*4bdc9457SAndroid Build Coastguard Worker } 1712*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_twopass_fulltile_with_qmin)1713*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_twopass_fulltile_with_qmin) { 1714*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1715*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1716*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1717*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1718*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1719*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1720*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1721*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1722*4bdc9457SAndroid Build Coastguard Worker } 1723*4bdc9457SAndroid Build Coastguard Worker } 1724*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_twopass_fulltile_with_qmax)1725*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_twopass_fulltile_with_qmax) { 1726*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1727*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1728*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1729*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(17) 1730*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1731*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1732*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1733*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1734*4bdc9457SAndroid Build Coastguard Worker } 1735*4bdc9457SAndroid Build Coastguard Worker } 1736*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_twopass_subtile)1737*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_twopass_subtile) { 1738*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1739*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1740*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1741*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1742*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1743*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1744*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1745*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1746*4bdc9457SAndroid Build Coastguard Worker } 1747*4bdc9457SAndroid Build Coastguard Worker } 1748*4bdc9457SAndroid Build Coastguard Worker } 1749*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_twopass_subtile_with_input_offset)1750*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_twopass_subtile_with_input_offset) { 1751*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1752*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1753*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1754*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1755*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1756*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1757*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1758*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 1759*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1760*4bdc9457SAndroid Build Coastguard Worker } 1761*4bdc9457SAndroid Build Coastguard Worker } 1762*4bdc9457SAndroid Build Coastguard Worker } 1763*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_twopass_subtile_with_zero)1764*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_twopass_subtile_with_zero) { 1765*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1766*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 10; pooling_elements < 17; pooling_elements++) { 1767*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1768*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1769*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1770*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1771*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1772*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1773*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 1774*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1775*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1776*4bdc9457SAndroid Build Coastguard Worker } 1777*4bdc9457SAndroid Build Coastguard Worker } 1778*4bdc9457SAndroid Build Coastguard Worker } 1779*4bdc9457SAndroid Build Coastguard Worker } 1780*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_multipass)1781*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_multipass) { 1782*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1783*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1784*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1785*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1786*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1787*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1788*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1789*4bdc9457SAndroid Build Coastguard Worker } 1790*4bdc9457SAndroid Build Coastguard Worker } 1791*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_multipass_with_input_offset)1792*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_multipass_with_input_offset) { 1793*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1794*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1795*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1796*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1797*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1798*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1799*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1800*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1801*4bdc9457SAndroid Build Coastguard Worker } 1802*4bdc9457SAndroid Build Coastguard Worker } 1803*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_multipass_with_zero)1804*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_multipass_with_zero) { 1805*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1806*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1807*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1808*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1809*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1810*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1811*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1812*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 1813*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1814*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1815*4bdc9457SAndroid Build Coastguard Worker } 1816*4bdc9457SAndroid Build Coastguard Worker } 1817*4bdc9457SAndroid Build Coastguard Worker } 1818*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_multipass_with_qmin)1819*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_multipass_with_qmin) { 1820*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1821*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1822*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1823*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1824*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1825*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1826*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1827*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1828*4bdc9457SAndroid Build Coastguard Worker } 1829*4bdc9457SAndroid Build Coastguard Worker } 1830*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_eq_8_multipass_with_qmax)1831*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_eq_8_multipass_with_qmax) { 1832*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1833*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1834*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1835*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1836*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1837*4bdc9457SAndroid Build Coastguard Worker .channels(8) 1838*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1839*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1840*4bdc9457SAndroid Build Coastguard Worker } 1841*4bdc9457SAndroid Build Coastguard Worker } 1842*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_multipass)1843*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_multipass) { 1844*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1845*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1846*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1847*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1848*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1849*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1850*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1851*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1852*4bdc9457SAndroid Build Coastguard Worker } 1853*4bdc9457SAndroid Build Coastguard Worker } 1854*4bdc9457SAndroid Build Coastguard Worker } 1855*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_multipass_with_input_offset)1856*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_multipass_with_input_offset) { 1857*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1858*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1859*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1860*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1861*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1862*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1863*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1864*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 1865*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1866*4bdc9457SAndroid Build Coastguard Worker } 1867*4bdc9457SAndroid Build Coastguard Worker } 1868*4bdc9457SAndroid Build Coastguard Worker } 1869*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_multipass_with_zero)1870*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_multipass_with_zero) { 1871*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1872*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1873*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1874*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1875*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1876*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1877*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1878*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1879*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 1880*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1881*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1882*4bdc9457SAndroid Build Coastguard Worker } 1883*4bdc9457SAndroid Build Coastguard Worker } 1884*4bdc9457SAndroid Build Coastguard Worker } 1885*4bdc9457SAndroid Build Coastguard Worker } 1886*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_multipass_with_qmin)1887*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_multipass_with_qmin) { 1888*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1889*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1890*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1891*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1892*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1893*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1894*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1895*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1896*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1897*4bdc9457SAndroid Build Coastguard Worker } 1898*4bdc9457SAndroid Build Coastguard Worker } 1899*4bdc9457SAndroid Build Coastguard Worker } 1900*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_div_8_multipass_with_qmax)1901*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_div_8_multipass_with_qmax) { 1902*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1903*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1904*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 1905*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1906*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1907*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1908*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1909*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1910*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1911*4bdc9457SAndroid Build Coastguard Worker } 1912*4bdc9457SAndroid Build Coastguard Worker } 1913*4bdc9457SAndroid Build Coastguard Worker } 1914*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_multipass)1915*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_multipass) { 1916*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1917*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1918*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1919*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1920*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1921*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1922*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1923*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1924*4bdc9457SAndroid Build Coastguard Worker } 1925*4bdc9457SAndroid Build Coastguard Worker } 1926*4bdc9457SAndroid Build Coastguard Worker } 1927*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_multipass_with_input_offset)1928*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_multipass_with_input_offset) { 1929*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1930*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1931*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1932*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1933*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1934*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1935*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1936*4bdc9457SAndroid Build Coastguard Worker .input_offset(8) 1937*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1938*4bdc9457SAndroid Build Coastguard Worker } 1939*4bdc9457SAndroid Build Coastguard Worker } 1940*4bdc9457SAndroid Build Coastguard Worker } 1941*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_multipass_with_zero)1942*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_multipass_with_zero) { 1943*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1944*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1945*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1946*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 1947*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1948*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1949*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1950*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1951*4bdc9457SAndroid Build Coastguard Worker .input_offset(8) 1952*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 1953*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1954*4bdc9457SAndroid Build Coastguard Worker } 1955*4bdc9457SAndroid Build Coastguard Worker } 1956*4bdc9457SAndroid Build Coastguard Worker } 1957*4bdc9457SAndroid Build Coastguard Worker } 1958*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_multipass_with_qmin)1959*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_multipass_with_qmin) { 1960*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1961*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1962*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1963*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1964*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1965*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1966*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1967*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 1968*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1969*4bdc9457SAndroid Build Coastguard Worker } 1970*4bdc9457SAndroid Build Coastguard Worker } 1971*4bdc9457SAndroid Build Coastguard Worker } 1972*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_lt_8_multipass_with_qmax)1973*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_lt_8_multipass_with_qmax) { 1974*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1975*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1976*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 1977*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1978*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1979*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1980*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1981*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 1982*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1983*4bdc9457SAndroid Build Coastguard Worker } 1984*4bdc9457SAndroid Build Coastguard Worker } 1985*4bdc9457SAndroid Build Coastguard Worker } 1986*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_multipass)1987*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_multipass) { 1988*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1989*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 1990*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 1991*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 1992*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 1993*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 1994*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 1995*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 1996*4bdc9457SAndroid Build Coastguard Worker } 1997*4bdc9457SAndroid Build Coastguard Worker } 1998*4bdc9457SAndroid Build Coastguard Worker } 1999*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_multipass_with_input_offset)2000*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_multipass_with_input_offset) { 2001*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2002*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 2003*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2004*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2005*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2006*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2007*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2008*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 2009*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2010*4bdc9457SAndroid Build Coastguard Worker } 2011*4bdc9457SAndroid Build Coastguard Worker } 2012*4bdc9457SAndroid Build Coastguard Worker } 2013*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_multipass_with_zero)2014*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_multipass_with_zero) { 2015*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2016*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 2017*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2018*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 2019*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2020*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2021*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2022*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2023*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 2024*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2025*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2026*4bdc9457SAndroid Build Coastguard Worker } 2027*4bdc9457SAndroid Build Coastguard Worker } 2028*4bdc9457SAndroid Build Coastguard Worker } 2029*4bdc9457SAndroid Build Coastguard Worker } 2030*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_multipass_with_qmin)2031*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_multipass_with_qmin) { 2032*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2033*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 2034*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2035*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2036*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2037*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2038*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2039*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2040*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2041*4bdc9457SAndroid Build Coastguard Worker } 2042*4bdc9457SAndroid Build Coastguard Worker } 2043*4bdc9457SAndroid Build Coastguard Worker } 2044*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,channels_gt_8_multipass_with_qmax)2045*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, channels_gt_8_multipass_with_qmax) { 2046*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2047*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 18; pooling_elements <= 33; pooling_elements += 3) { 2048*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2049*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2050*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2051*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2052*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2053*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2054*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2055*4bdc9457SAndroid Build Coastguard Worker } 2056*4bdc9457SAndroid Build Coastguard Worker } 2057*4bdc9457SAndroid Build Coastguard Worker } 2058*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,few_output_pixels)2059*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, few_output_pixels) { 2060*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2061*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2062*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 2063*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2064*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2065*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2066*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2067*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2068*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2069*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2070*4bdc9457SAndroid Build Coastguard Worker } 2071*4bdc9457SAndroid Build Coastguard Worker } 2072*4bdc9457SAndroid Build Coastguard Worker } 2073*4bdc9457SAndroid Build Coastguard Worker } 2074*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,few_output_pixels_with_input_offset)2075*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, few_output_pixels_with_input_offset) { 2076*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2077*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2078*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 2079*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2080*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2081*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2082*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2083*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2084*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2085*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 2086*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2087*4bdc9457SAndroid Build Coastguard Worker } 2088*4bdc9457SAndroid Build Coastguard Worker } 2089*4bdc9457SAndroid Build Coastguard Worker } 2090*4bdc9457SAndroid Build Coastguard Worker } 2091*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,few_output_pixels_with_zero)2092*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, few_output_pixels_with_zero) { 2093*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2094*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2095*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 2096*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2097*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 2098*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2099*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2100*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2101*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2102*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2103*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 2104*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2105*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2106*4bdc9457SAndroid Build Coastguard Worker } 2107*4bdc9457SAndroid Build Coastguard Worker } 2108*4bdc9457SAndroid Build Coastguard Worker } 2109*4bdc9457SAndroid Build Coastguard Worker } 2110*4bdc9457SAndroid Build Coastguard Worker } 2111*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,few_output_pixels_with_qmin)2112*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, few_output_pixels_with_qmin) { 2113*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2114*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2115*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 2116*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2117*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2118*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2119*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2120*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2121*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2122*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2123*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2124*4bdc9457SAndroid Build Coastguard Worker } 2125*4bdc9457SAndroid Build Coastguard Worker } 2126*4bdc9457SAndroid Build Coastguard Worker } 2127*4bdc9457SAndroid Build Coastguard Worker } 2128*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,few_output_pixels_with_qmax)2129*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, few_output_pixels_with_qmax) { 2130*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2131*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2132*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 2133*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2134*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2135*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2136*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2137*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2138*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2139*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2140*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2141*4bdc9457SAndroid Build Coastguard Worker } 2142*4bdc9457SAndroid Build Coastguard Worker } 2143*4bdc9457SAndroid Build Coastguard Worker } 2144*4bdc9457SAndroid Build Coastguard Worker } 2145*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,few_output_pixels_with_output_stride)2146*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, few_output_pixels_with_output_stride) { 2147*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2148*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2149*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 2150*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2151*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2152*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2153*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2154*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2155*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2156*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 2157*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2158*4bdc9457SAndroid Build Coastguard Worker } 2159*4bdc9457SAndroid Build Coastguard Worker } 2160*4bdc9457SAndroid Build Coastguard Worker } 2161*4bdc9457SAndroid Build Coastguard Worker } 2162*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8,few_output_pixels_with_step)2163*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9P8X__AVX2_C8, few_output_pixels_with_step) { 2164*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2165*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2166*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{10, 16, 18}}) { 2167*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2168*4bdc9457SAndroid Build Coastguard Worker for (size_t step = 2; step <= pooling_elements; step++) { 2169*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2170*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2171*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2172*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 8) 2173*4bdc9457SAndroid Build Coastguard Worker .step(step) 2174*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2175*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 2176*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9p8x__avx2_c8, xnn_init_f16_minmax_avx_params); 2177*4bdc9457SAndroid Build Coastguard Worker } 2178*4bdc9457SAndroid Build Coastguard Worker } 2179*4bdc9457SAndroid Build Coastguard Worker } 2180*4bdc9457SAndroid Build Coastguard Worker } 2181*4bdc9457SAndroid Build Coastguard Worker } 2182*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 2183*4bdc9457SAndroid Build Coastguard Worker 2184*4bdc9457SAndroid Build Coastguard Worker 2185*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_eq_8_unipass_fulltile)2186*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_eq_8_unipass_fulltile) { 2187*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2188*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2189*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2190*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2191*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2192*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2193*4bdc9457SAndroid Build Coastguard Worker } 2194*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_eq_8_unipass_fulltile_with_input_offset)2195*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_eq_8_unipass_fulltile_with_input_offset) { 2196*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2197*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2198*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2199*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2200*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2201*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 2202*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2203*4bdc9457SAndroid Build Coastguard Worker } 2204*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_eq_8_unipass_fulltile_with_zero)2205*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_eq_8_unipass_fulltile_with_zero) { 2206*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2207*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 9; zero_index++) { 2208*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2209*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2210*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2211*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2212*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 2213*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2214*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2215*4bdc9457SAndroid Build Coastguard Worker } 2216*4bdc9457SAndroid Build Coastguard Worker } 2217*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_eq_8_unipass_fulltile_with_qmin)2218*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_eq_8_unipass_fulltile_with_qmin) { 2219*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2220*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2221*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2222*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2223*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2224*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2225*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2226*4bdc9457SAndroid Build Coastguard Worker } 2227*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_eq_8_unipass_fulltile_with_qmax)2228*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_eq_8_unipass_fulltile_with_qmax) { 2229*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2230*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2231*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2232*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2233*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2234*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2235*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2236*4bdc9457SAndroid Build Coastguard Worker } 2237*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_eq_8_unipass_subtile)2238*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_eq_8_unipass_subtile) { 2239*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2240*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2241*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2242*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2243*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2244*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2245*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2246*4bdc9457SAndroid Build Coastguard Worker } 2247*4bdc9457SAndroid Build Coastguard Worker } 2248*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_eq_8_unipass_subtile_with_input_offset)2249*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_eq_8_unipass_subtile_with_input_offset) { 2250*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2251*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2252*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2253*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2254*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2255*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2256*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 2257*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2258*4bdc9457SAndroid Build Coastguard Worker } 2259*4bdc9457SAndroid Build Coastguard Worker } 2260*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_eq_8_unipass_subtile_with_zero)2261*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_eq_8_unipass_subtile_with_zero) { 2262*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2263*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2264*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 2265*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2266*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2267*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2268*4bdc9457SAndroid Build Coastguard Worker .channels(8) 2269*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 2270*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2271*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2272*4bdc9457SAndroid Build Coastguard Worker } 2273*4bdc9457SAndroid Build Coastguard Worker } 2274*4bdc9457SAndroid Build Coastguard Worker } 2275*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_div_8_unipass_fulltile)2276*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_div_8_unipass_fulltile) { 2277*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2278*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2279*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2280*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2281*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2282*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2283*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2284*4bdc9457SAndroid Build Coastguard Worker } 2285*4bdc9457SAndroid Build Coastguard Worker } 2286*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_div_8_unipass_fulltile_with_input_offset)2287*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_div_8_unipass_fulltile_with_input_offset) { 2288*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2289*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2290*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2291*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2292*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2293*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2294*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 2295*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2296*4bdc9457SAndroid Build Coastguard Worker } 2297*4bdc9457SAndroid Build Coastguard Worker } 2298*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_div_8_unipass_fulltile_with_zero)2299*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_div_8_unipass_fulltile_with_zero) { 2300*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2301*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2302*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 9; zero_index++) { 2303*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2304*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2305*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2306*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2307*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 2308*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2309*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2310*4bdc9457SAndroid Build Coastguard Worker } 2311*4bdc9457SAndroid Build Coastguard Worker } 2312*4bdc9457SAndroid Build Coastguard Worker } 2313*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_div_8_unipass_fulltile_with_qmin)2314*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_div_8_unipass_fulltile_with_qmin) { 2315*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2316*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2317*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2318*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2319*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2320*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2321*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2322*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2323*4bdc9457SAndroid Build Coastguard Worker } 2324*4bdc9457SAndroid Build Coastguard Worker } 2325*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_div_8_unipass_fulltile_with_qmax)2326*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_div_8_unipass_fulltile_with_qmax) { 2327*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2328*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2329*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2330*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2331*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2332*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2333*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2334*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2335*4bdc9457SAndroid Build Coastguard Worker } 2336*4bdc9457SAndroid Build Coastguard Worker } 2337*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_div_8_unipass_subtile)2338*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_div_8_unipass_subtile) { 2339*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2340*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2341*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2342*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2343*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2344*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2345*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2346*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2347*4bdc9457SAndroid Build Coastguard Worker } 2348*4bdc9457SAndroid Build Coastguard Worker } 2349*4bdc9457SAndroid Build Coastguard Worker } 2350*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_div_8_unipass_subtile_with_input_offset)2351*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_div_8_unipass_subtile_with_input_offset) { 2352*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2353*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2354*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2355*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2356*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2357*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2358*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2359*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 2360*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2361*4bdc9457SAndroid Build Coastguard Worker } 2362*4bdc9457SAndroid Build Coastguard Worker } 2363*4bdc9457SAndroid Build Coastguard Worker } 2364*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_div_8_unipass_subtile_with_zero)2365*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_div_8_unipass_subtile_with_zero) { 2366*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2367*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2368*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 64; channels += 8) { 2369*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 2370*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2371*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2372*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2373*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2374*4bdc9457SAndroid Build Coastguard Worker .input_offset(67) 2375*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2376*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2377*4bdc9457SAndroid Build Coastguard Worker } 2378*4bdc9457SAndroid Build Coastguard Worker } 2379*4bdc9457SAndroid Build Coastguard Worker } 2380*4bdc9457SAndroid Build Coastguard Worker } 2381*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_lt_8_unipass_fulltile)2382*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_lt_8_unipass_fulltile) { 2383*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2384*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2385*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2386*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2387*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2388*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2389*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2390*4bdc9457SAndroid Build Coastguard Worker } 2391*4bdc9457SAndroid Build Coastguard Worker } 2392*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_lt_8_unipass_fulltile_with_input_offset)2393*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_lt_8_unipass_fulltile_with_input_offset) { 2394*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2395*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2396*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2397*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2398*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2399*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2400*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 2401*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2402*4bdc9457SAndroid Build Coastguard Worker } 2403*4bdc9457SAndroid Build Coastguard Worker } 2404*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_lt_8_unipass_fulltile_with_zero)2405*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_lt_8_unipass_fulltile_with_zero) { 2406*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2407*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2408*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 9; zero_index++) { 2409*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2410*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2411*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2412*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2413*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 2414*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2415*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2416*4bdc9457SAndroid Build Coastguard Worker } 2417*4bdc9457SAndroid Build Coastguard Worker } 2418*4bdc9457SAndroid Build Coastguard Worker } 2419*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_lt_8_unipass_fulltile_with_qmin)2420*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_lt_8_unipass_fulltile_with_qmin) { 2421*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2422*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2423*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2424*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2425*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2426*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2427*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2428*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2429*4bdc9457SAndroid Build Coastguard Worker } 2430*4bdc9457SAndroid Build Coastguard Worker } 2431*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_lt_8_unipass_fulltile_with_qmax)2432*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_lt_8_unipass_fulltile_with_qmax) { 2433*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2434*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2435*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2436*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2437*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2438*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2439*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2440*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2441*4bdc9457SAndroid Build Coastguard Worker } 2442*4bdc9457SAndroid Build Coastguard Worker } 2443*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_lt_8_unipass_subtile)2444*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_lt_8_unipass_subtile) { 2445*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2446*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2447*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2448*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2449*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2450*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2451*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2452*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2453*4bdc9457SAndroid Build Coastguard Worker } 2454*4bdc9457SAndroid Build Coastguard Worker } 2455*4bdc9457SAndroid Build Coastguard Worker } 2456*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_lt_8_unipass_subtile_with_input_offset)2457*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_lt_8_unipass_subtile_with_input_offset) { 2458*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2459*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2460*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2461*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2462*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2463*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2464*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2465*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 2466*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2467*4bdc9457SAndroid Build Coastguard Worker } 2468*4bdc9457SAndroid Build Coastguard Worker } 2469*4bdc9457SAndroid Build Coastguard Worker } 2470*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_lt_8_unipass_subtile_with_zero)2471*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_lt_8_unipass_subtile_with_zero) { 2472*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2473*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2474*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 2475*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 2476*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2477*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2478*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2479*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2480*4bdc9457SAndroid Build Coastguard Worker .input_offset(11) 2481*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2482*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2483*4bdc9457SAndroid Build Coastguard Worker } 2484*4bdc9457SAndroid Build Coastguard Worker } 2485*4bdc9457SAndroid Build Coastguard Worker } 2486*4bdc9457SAndroid Build Coastguard Worker } 2487*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_gt_8_unipass_fulltile)2488*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_gt_8_unipass_fulltile) { 2489*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2490*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2491*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2492*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2493*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2494*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2495*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2496*4bdc9457SAndroid Build Coastguard Worker } 2497*4bdc9457SAndroid Build Coastguard Worker } 2498*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_gt_8_unipass_fulltile_with_input_offset)2499*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_gt_8_unipass_fulltile_with_input_offset) { 2500*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2501*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2502*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2503*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2504*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2505*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2506*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 2507*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2508*4bdc9457SAndroid Build Coastguard Worker } 2509*4bdc9457SAndroid Build Coastguard Worker } 2510*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_gt_8_unipass_fulltile_with_zero)2511*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_gt_8_unipass_fulltile_with_zero) { 2512*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2513*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2514*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < 9; zero_index++) { 2515*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2516*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2517*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2518*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2519*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 2520*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2521*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2522*4bdc9457SAndroid Build Coastguard Worker } 2523*4bdc9457SAndroid Build Coastguard Worker } 2524*4bdc9457SAndroid Build Coastguard Worker } 2525*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_gt_8_unipass_fulltile_with_qmin)2526*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_gt_8_unipass_fulltile_with_qmin) { 2527*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2528*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2529*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2530*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2531*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2532*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2533*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2534*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2535*4bdc9457SAndroid Build Coastguard Worker } 2536*4bdc9457SAndroid Build Coastguard Worker } 2537*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_gt_8_unipass_fulltile_with_qmax)2538*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_gt_8_unipass_fulltile_with_qmax) { 2539*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2540*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2541*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2542*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(9) 2543*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2544*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2545*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2546*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2547*4bdc9457SAndroid Build Coastguard Worker } 2548*4bdc9457SAndroid Build Coastguard Worker } 2549*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_gt_8_unipass_subtile)2550*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_gt_8_unipass_subtile) { 2551*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2552*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2553*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2554*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2555*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2556*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2557*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2558*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2559*4bdc9457SAndroid Build Coastguard Worker } 2560*4bdc9457SAndroid Build Coastguard Worker } 2561*4bdc9457SAndroid Build Coastguard Worker } 2562*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_gt_8_unipass_subtile_with_input_offset)2563*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_gt_8_unipass_subtile_with_input_offset) { 2564*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2565*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2566*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2567*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2568*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2569*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2570*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2571*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 2572*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2573*4bdc9457SAndroid Build Coastguard Worker } 2574*4bdc9457SAndroid Build Coastguard Worker } 2575*4bdc9457SAndroid Build Coastguard Worker } 2576*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,channels_gt_8_unipass_subtile_with_zero)2577*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, channels_gt_8_unipass_subtile_with_zero) { 2578*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2579*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements = 2; pooling_elements < 9; pooling_elements++) { 2580*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 2581*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 2582*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2583*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2584*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9) 2585*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2586*4bdc9457SAndroid Build Coastguard Worker .input_offset(17) 2587*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2588*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2589*4bdc9457SAndroid Build Coastguard Worker } 2590*4bdc9457SAndroid Build Coastguard Worker } 2591*4bdc9457SAndroid Build Coastguard Worker } 2592*4bdc9457SAndroid Build Coastguard Worker } 2593*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,few_output_pixels)2594*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, few_output_pixels) { 2595*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2596*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2597*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 2598*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2599*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2600*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2601*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2602*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 2603*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2604*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2605*4bdc9457SAndroid Build Coastguard Worker } 2606*4bdc9457SAndroid Build Coastguard Worker } 2607*4bdc9457SAndroid Build Coastguard Worker } 2608*4bdc9457SAndroid Build Coastguard Worker } 2609*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,few_output_pixels_with_input_offset)2610*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, few_output_pixels_with_input_offset) { 2611*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2612*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2613*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 2614*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2615*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2616*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2617*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2618*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 2619*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2620*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 2621*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2622*4bdc9457SAndroid Build Coastguard Worker } 2623*4bdc9457SAndroid Build Coastguard Worker } 2624*4bdc9457SAndroid Build Coastguard Worker } 2625*4bdc9457SAndroid Build Coastguard Worker } 2626*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,few_output_pixels_with_zero)2627*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, few_output_pixels_with_zero) { 2628*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2629*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2630*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 2631*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2632*4bdc9457SAndroid Build Coastguard Worker for (size_t zero_index = 0; zero_index < pooling_elements; zero_index++) { 2633*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2634*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2635*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2636*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 2637*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2638*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 2639*4bdc9457SAndroid Build Coastguard Worker .zero_index(zero_index) 2640*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2641*4bdc9457SAndroid Build Coastguard Worker } 2642*4bdc9457SAndroid Build Coastguard Worker } 2643*4bdc9457SAndroid Build Coastguard Worker } 2644*4bdc9457SAndroid Build Coastguard Worker } 2645*4bdc9457SAndroid Build Coastguard Worker } 2646*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,few_output_pixels_with_qmin)2647*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, few_output_pixels_with_qmin) { 2648*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2649*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2650*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 2651*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2652*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2653*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2654*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2655*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 2656*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2657*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 2658*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2659*4bdc9457SAndroid Build Coastguard Worker } 2660*4bdc9457SAndroid Build Coastguard Worker } 2661*4bdc9457SAndroid Build Coastguard Worker } 2662*4bdc9457SAndroid Build Coastguard Worker } 2663*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,few_output_pixels_with_qmax)2664*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, few_output_pixels_with_qmax) { 2665*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2666*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2667*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 2668*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2669*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2670*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2671*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2672*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 2673*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2674*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 2675*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2676*4bdc9457SAndroid Build Coastguard Worker } 2677*4bdc9457SAndroid Build Coastguard Worker } 2678*4bdc9457SAndroid Build Coastguard Worker } 2679*4bdc9457SAndroid Build Coastguard Worker } 2680*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,few_output_pixels_with_output_stride)2681*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, few_output_pixels_with_output_stride) { 2682*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2683*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2684*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 2685*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2686*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2687*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2688*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2689*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 2690*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2691*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 2692*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2693*4bdc9457SAndroid Build Coastguard Worker } 2694*4bdc9457SAndroid Build Coastguard Worker } 2695*4bdc9457SAndroid Build Coastguard Worker } 2696*4bdc9457SAndroid Build Coastguard Worker } 2697*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8,few_output_pixels_with_step)2698*4bdc9457SAndroid Build Coastguard Worker TEST(F16_PAVGPOOL_MINMAX_9X__AVX2_C8, few_output_pixels_with_step) { 2699*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 2700*4bdc9457SAndroid Build Coastguard Worker for (size_t output_pixels = 2; output_pixels <= 5; output_pixels++) { 2701*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_elements : std::vector<size_t>{{2, 8, 9}}) { 2702*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 2703*4bdc9457SAndroid Build Coastguard Worker for (size_t step = 2; step <= pooling_elements; step++) { 2704*4bdc9457SAndroid Build Coastguard Worker AvgPoolMicrokernelTester() 2705*4bdc9457SAndroid Build Coastguard Worker .output_pixels(output_pixels) 2706*4bdc9457SAndroid Build Coastguard Worker .pooling_elements(pooling_elements) 2707*4bdc9457SAndroid Build Coastguard Worker .pooling_tile(9, 0) 2708*4bdc9457SAndroid Build Coastguard Worker .step(step) 2709*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 2710*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 2711*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_pavgpool_minmax_ukernel_9x__avx2_c8, xnn_init_f16_minmax_avx_params); 2712*4bdc9457SAndroid Build Coastguard Worker } 2713*4bdc9457SAndroid Build Coastguard Worker } 2714*4bdc9457SAndroid Build Coastguard Worker } 2715*4bdc9457SAndroid Build Coastguard Worker } 2716*4bdc9457SAndroid Build Coastguard Worker } 2717*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 2718