1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2020 Google LLC 2*4bdc9457SAndroid Build Coastguard Worker // 3*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the 4*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree. 5*4bdc9457SAndroid Build Coastguard Worker // 6*4bdc9457SAndroid Build Coastguard Worker // Auto-generated file. Do not edit! 7*4bdc9457SAndroid Build Coastguard Worker // Specification: test/f16-ibilinear-chw.yaml 8*4bdc9457SAndroid Build Coastguard Worker // Generator: tools/generate-ibilinear-chw-test.py 9*4bdc9457SAndroid Build Coastguard Worker 10*4bdc9457SAndroid Build Coastguard Worker 11*4bdc9457SAndroid Build Coastguard Worker #include <gtest/gtest.h> 12*4bdc9457SAndroid Build Coastguard Worker 13*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/common.h> 14*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/isa-checks.h> 15*4bdc9457SAndroid Build Coastguard Worker 16*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/ibilinear.h> 17*4bdc9457SAndroid Build Coastguard Worker #include "ibilinear-microkernel-tester.h" 18*4bdc9457SAndroid Build Coastguard Worker 19*4bdc9457SAndroid Build Coastguard Worker 20*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4,pixels_eq_4)21*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4, pixels_eq_4) { 22*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 23*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 24*4bdc9457SAndroid Build Coastguard Worker .pixels(4) 25*4bdc9457SAndroid Build Coastguard Worker .channels(1) 26*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p4); 27*4bdc9457SAndroid Build Coastguard Worker } 28*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4,pixels_div_4)29*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4, pixels_div_4) { 30*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 31*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 8; pixels < 40; pixels += 4) { 32*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 33*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 34*4bdc9457SAndroid Build Coastguard Worker .channels(1) 35*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p4); 36*4bdc9457SAndroid Build Coastguard Worker } 37*4bdc9457SAndroid Build Coastguard Worker } 38*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4,pixels_lt_4)39*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4, pixels_lt_4) { 40*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 41*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 4; pixels++) { 42*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 43*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 44*4bdc9457SAndroid Build Coastguard Worker .channels(1) 45*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p4); 46*4bdc9457SAndroid Build Coastguard Worker } 47*4bdc9457SAndroid Build Coastguard Worker } 48*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4,pixels_gt_4)49*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4, pixels_gt_4) { 50*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 51*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 5; pixels < 8; pixels++) { 52*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 53*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 54*4bdc9457SAndroid Build Coastguard Worker .channels(1) 55*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p4); 56*4bdc9457SAndroid Build Coastguard Worker } 57*4bdc9457SAndroid Build Coastguard Worker } 58*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4,channels_eq_1)59*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4, channels_eq_1) { 60*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 61*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels <= 20; pixels += 3) { 62*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 63*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 64*4bdc9457SAndroid Build Coastguard Worker .channels(1) 65*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p4); 66*4bdc9457SAndroid Build Coastguard Worker } 67*4bdc9457SAndroid Build Coastguard Worker } 68*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4,channels_gt_1)69*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4, channels_gt_1) { 70*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 71*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 3; channels++) { 72*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels <= 20; pixels += 3) { 73*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 74*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 75*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 76*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p4); 77*4bdc9457SAndroid Build Coastguard Worker } 78*4bdc9457SAndroid Build Coastguard Worker } 79*4bdc9457SAndroid Build Coastguard Worker } 80*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4,input_offset)81*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4, input_offset) { 82*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 83*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 20; pixels += 3) { 84*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) { 85*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 86*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 87*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 88*4bdc9457SAndroid Build Coastguard Worker .input_offset(7) 89*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p4); 90*4bdc9457SAndroid Build Coastguard Worker } 91*4bdc9457SAndroid Build Coastguard Worker } 92*4bdc9457SAndroid Build Coastguard Worker } 93*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4,input_stride)94*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P4, input_stride) { 95*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 96*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 20; pixels += 3) { 97*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) { 98*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 99*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 100*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 101*4bdc9457SAndroid Build Coastguard Worker .input_stride(83) 102*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p4); 103*4bdc9457SAndroid Build Coastguard Worker } 104*4bdc9457SAndroid Build Coastguard Worker } 105*4bdc9457SAndroid Build Coastguard Worker } 106*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 107*4bdc9457SAndroid Build Coastguard Worker 108*4bdc9457SAndroid Build Coastguard Worker 109*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8,pixels_eq_8)110*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8, pixels_eq_8) { 111*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 112*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 113*4bdc9457SAndroid Build Coastguard Worker .pixels(8) 114*4bdc9457SAndroid Build Coastguard Worker .channels(1) 115*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p8); 116*4bdc9457SAndroid Build Coastguard Worker } 117*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8,pixels_div_8)118*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8, pixels_div_8) { 119*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 120*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 16; pixels < 80; pixels += 8) { 121*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 122*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 123*4bdc9457SAndroid Build Coastguard Worker .channels(1) 124*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p8); 125*4bdc9457SAndroid Build Coastguard Worker } 126*4bdc9457SAndroid Build Coastguard Worker } 127*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8,pixels_lt_8)128*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8, pixels_lt_8) { 129*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 130*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 8; pixels++) { 131*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 132*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 133*4bdc9457SAndroid Build Coastguard Worker .channels(1) 134*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p8); 135*4bdc9457SAndroid Build Coastguard Worker } 136*4bdc9457SAndroid Build Coastguard Worker } 137*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8,pixels_gt_8)138*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8, pixels_gt_8) { 139*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 140*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 9; pixels < 16; pixels++) { 141*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 142*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 143*4bdc9457SAndroid Build Coastguard Worker .channels(1) 144*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p8); 145*4bdc9457SAndroid Build Coastguard Worker } 146*4bdc9457SAndroid Build Coastguard Worker } 147*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8,channels_eq_1)148*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8, channels_eq_1) { 149*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 150*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels <= 40; pixels += 7) { 151*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 152*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 153*4bdc9457SAndroid Build Coastguard Worker .channels(1) 154*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p8); 155*4bdc9457SAndroid Build Coastguard Worker } 156*4bdc9457SAndroid Build Coastguard Worker } 157*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8,channels_gt_1)158*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8, channels_gt_1) { 159*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 160*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 3; channels++) { 161*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels <= 40; pixels += 7) { 162*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 163*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 164*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 165*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p8); 166*4bdc9457SAndroid Build Coastguard Worker } 167*4bdc9457SAndroid Build Coastguard Worker } 168*4bdc9457SAndroid Build Coastguard Worker } 169*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8,input_offset)170*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8, input_offset) { 171*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 172*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 40; pixels += 7) { 173*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) { 174*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 175*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 176*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 177*4bdc9457SAndroid Build Coastguard Worker .input_offset(7) 178*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p8); 179*4bdc9457SAndroid Build Coastguard Worker } 180*4bdc9457SAndroid Build Coastguard Worker } 181*4bdc9457SAndroid Build Coastguard Worker } 182*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8,input_stride)183*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P8, input_stride) { 184*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 185*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 40; pixels += 7) { 186*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) { 187*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 188*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 189*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 190*4bdc9457SAndroid Build Coastguard Worker .input_stride(163) 191*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p8); 192*4bdc9457SAndroid Build Coastguard Worker } 193*4bdc9457SAndroid Build Coastguard Worker } 194*4bdc9457SAndroid Build Coastguard Worker } 195*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 196*4bdc9457SAndroid Build Coastguard Worker 197*4bdc9457SAndroid Build Coastguard Worker 198*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16,pixels_eq_16)199*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16, pixels_eq_16) { 200*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 201*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 202*4bdc9457SAndroid Build Coastguard Worker .pixels(16) 203*4bdc9457SAndroid Build Coastguard Worker .channels(1) 204*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p16); 205*4bdc9457SAndroid Build Coastguard Worker } 206*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16,pixels_div_16)207*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16, pixels_div_16) { 208*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 209*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 32; pixels < 160; pixels += 16) { 210*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 211*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 212*4bdc9457SAndroid Build Coastguard Worker .channels(1) 213*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p16); 214*4bdc9457SAndroid Build Coastguard Worker } 215*4bdc9457SAndroid Build Coastguard Worker } 216*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16,pixels_lt_16)217*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16, pixels_lt_16) { 218*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 219*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 16; pixels++) { 220*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 221*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 222*4bdc9457SAndroid Build Coastguard Worker .channels(1) 223*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p16); 224*4bdc9457SAndroid Build Coastguard Worker } 225*4bdc9457SAndroid Build Coastguard Worker } 226*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16,pixels_gt_16)227*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16, pixels_gt_16) { 228*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 229*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 17; pixels < 32; pixels++) { 230*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 231*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 232*4bdc9457SAndroid Build Coastguard Worker .channels(1) 233*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p16); 234*4bdc9457SAndroid Build Coastguard Worker } 235*4bdc9457SAndroid Build Coastguard Worker } 236*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16,channels_eq_1)237*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16, channels_eq_1) { 238*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 239*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels <= 80; pixels += 15) { 240*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 241*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 242*4bdc9457SAndroid Build Coastguard Worker .channels(1) 243*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p16); 244*4bdc9457SAndroid Build Coastguard Worker } 245*4bdc9457SAndroid Build Coastguard Worker } 246*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16,channels_gt_1)247*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16, channels_gt_1) { 248*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 249*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 2; channels < 3; channels++) { 250*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels <= 80; pixels += 15) { 251*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 252*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 253*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 254*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p16); 255*4bdc9457SAndroid Build Coastguard Worker } 256*4bdc9457SAndroid Build Coastguard Worker } 257*4bdc9457SAndroid Build Coastguard Worker } 258*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16,input_offset)259*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16, input_offset) { 260*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 261*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 80; pixels += 15) { 262*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) { 263*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 264*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 265*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 266*4bdc9457SAndroid Build Coastguard Worker .input_offset(7) 267*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p16); 268*4bdc9457SAndroid Build Coastguard Worker } 269*4bdc9457SAndroid Build Coastguard Worker } 270*4bdc9457SAndroid Build Coastguard Worker } 271*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16,input_stride)272*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR_CHW__NEONFP16ARITH_P16, input_stride) { 273*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 274*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 80; pixels += 15) { 275*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 5; channels += 1) { 276*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 277*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 278*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 279*4bdc9457SAndroid Build Coastguard Worker .input_stride(331) 280*4bdc9457SAndroid Build Coastguard Worker .TestCHW(xnn_f16_ibilinear_chw_ukernel__neonfp16arith_p16); 281*4bdc9457SAndroid Build Coastguard Worker } 282*4bdc9457SAndroid Build Coastguard Worker } 283*4bdc9457SAndroid Build Coastguard Worker } 284*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 285