1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2019 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.yaml 8*4bdc9457SAndroid Build Coastguard Worker // Generator: tools/generate-ibilinear-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__NEONFP16ARITH_C8,channels_eq_8)21*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8, channels_eq_8) { 22*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 23*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 24*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 25*4bdc9457SAndroid Build Coastguard Worker .channels(8) 26*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c8); 27*4bdc9457SAndroid Build Coastguard Worker } 28*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8,channels_div_8)29*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8, channels_div_8) { 30*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 31*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) { 32*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 33*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 34*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 35*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c8); 36*4bdc9457SAndroid Build Coastguard Worker } 37*4bdc9457SAndroid Build Coastguard Worker } 38*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8,channels_lt_8)39*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8, channels_lt_8) { 40*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 41*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 42*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 43*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 44*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 45*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c8); 46*4bdc9457SAndroid Build Coastguard Worker } 47*4bdc9457SAndroid Build Coastguard Worker } 48*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8,channels_gt_8)49*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8, channels_gt_8) { 50*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 51*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 52*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 53*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 54*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 55*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c8); 56*4bdc9457SAndroid Build Coastguard Worker } 57*4bdc9457SAndroid Build Coastguard Worker } 58*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8,pixels_gt_1)59*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8, pixels_gt_1) { 60*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 61*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 2; pixels < 3; pixels++) { 62*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 63*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 64*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 65*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 66*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c8); 67*4bdc9457SAndroid Build Coastguard Worker } 68*4bdc9457SAndroid Build Coastguard Worker } 69*4bdc9457SAndroid Build Coastguard Worker } 70*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8,input_offset)71*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8, input_offset) { 72*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 73*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 5; pixels += 1) { 74*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 75*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 76*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 77*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 78*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 79*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c8); 80*4bdc9457SAndroid Build Coastguard Worker } 81*4bdc9457SAndroid Build Coastguard Worker } 82*4bdc9457SAndroid Build Coastguard Worker } 83*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8,output_stride)84*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C8, output_stride) { 85*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 86*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 5; pixels += 1) { 87*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 88*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 89*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 90*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 91*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 92*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c8); 93*4bdc9457SAndroid Build Coastguard Worker } 94*4bdc9457SAndroid Build Coastguard Worker } 95*4bdc9457SAndroid Build Coastguard Worker } 96*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 97*4bdc9457SAndroid Build Coastguard Worker 98*4bdc9457SAndroid Build Coastguard Worker 99*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_IBILINEAR__NEONFP16ARITH_C16,channels_eq_16)100*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16, channels_eq_16) { 101*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 102*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 103*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 104*4bdc9457SAndroid Build Coastguard Worker .channels(16) 105*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c16); 106*4bdc9457SAndroid Build Coastguard Worker } 107*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16,channels_div_16)108*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16, channels_div_16) { 109*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 110*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) { 111*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 112*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 113*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 114*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c16); 115*4bdc9457SAndroid Build Coastguard Worker } 116*4bdc9457SAndroid Build Coastguard Worker } 117*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16,channels_lt_16)118*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16, channels_lt_16) { 119*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 120*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 121*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 122*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 123*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 124*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c16); 125*4bdc9457SAndroid Build Coastguard Worker } 126*4bdc9457SAndroid Build Coastguard Worker } 127*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16,channels_gt_16)128*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16, channels_gt_16) { 129*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 130*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 131*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 132*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 133*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 134*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c16); 135*4bdc9457SAndroid Build Coastguard Worker } 136*4bdc9457SAndroid Build Coastguard Worker } 137*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16,pixels_gt_1)138*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16, pixels_gt_1) { 139*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 140*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 2; pixels < 3; pixels++) { 141*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) { 142*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 143*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 144*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 145*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c16); 146*4bdc9457SAndroid Build Coastguard Worker } 147*4bdc9457SAndroid Build Coastguard Worker } 148*4bdc9457SAndroid Build Coastguard Worker } 149*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16,input_offset)150*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16, input_offset) { 151*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 152*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 5; pixels += 1) { 153*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) { 154*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 155*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 156*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 157*4bdc9457SAndroid Build Coastguard Worker .input_offset(83) 158*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c16); 159*4bdc9457SAndroid Build Coastguard Worker } 160*4bdc9457SAndroid Build Coastguard Worker } 161*4bdc9457SAndroid Build Coastguard Worker } 162*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16,output_stride)163*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__NEONFP16ARITH_C16, output_stride) { 164*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 165*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 5; pixels += 1) { 166*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) { 167*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 168*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 169*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 170*4bdc9457SAndroid Build Coastguard Worker .output_stride(83) 171*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__neonfp16arith_c16); 172*4bdc9457SAndroid Build Coastguard Worker } 173*4bdc9457SAndroid Build Coastguard Worker } 174*4bdc9457SAndroid Build Coastguard Worker } 175*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 176*4bdc9457SAndroid Build Coastguard Worker 177*4bdc9457SAndroid Build Coastguard Worker 178*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_IBILINEAR__FMA3_C8,channels_eq_8)179*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8, channels_eq_8) { 180*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 181*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 182*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 183*4bdc9457SAndroid Build Coastguard Worker .channels(8) 184*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c8); 185*4bdc9457SAndroid Build Coastguard Worker } 186*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8,channels_div_8)187*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8, channels_div_8) { 188*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 189*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 16; channels < 80; channels += 8) { 190*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 191*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 192*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 193*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c8); 194*4bdc9457SAndroid Build Coastguard Worker } 195*4bdc9457SAndroid Build Coastguard Worker } 196*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8,channels_lt_8)197*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8, channels_lt_8) { 198*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 199*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 8; channels++) { 200*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 201*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 202*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 203*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c8); 204*4bdc9457SAndroid Build Coastguard Worker } 205*4bdc9457SAndroid Build Coastguard Worker } 206*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8,channels_gt_8)207*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8, channels_gt_8) { 208*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 209*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 9; channels < 16; channels++) { 210*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 211*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 212*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 213*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c8); 214*4bdc9457SAndroid Build Coastguard Worker } 215*4bdc9457SAndroid Build Coastguard Worker } 216*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8,pixels_gt_1)217*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8, pixels_gt_1) { 218*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 219*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 2; pixels < 3; pixels++) { 220*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 221*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 222*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 223*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 224*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c8); 225*4bdc9457SAndroid Build Coastguard Worker } 226*4bdc9457SAndroid Build Coastguard Worker } 227*4bdc9457SAndroid Build Coastguard Worker } 228*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8,input_offset)229*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8, input_offset) { 230*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 231*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 5; pixels += 1) { 232*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 233*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 234*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 235*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 236*4bdc9457SAndroid Build Coastguard Worker .input_offset(43) 237*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c8); 238*4bdc9457SAndroid Build Coastguard Worker } 239*4bdc9457SAndroid Build Coastguard Worker } 240*4bdc9457SAndroid Build Coastguard Worker } 241*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8,output_stride)242*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C8, output_stride) { 243*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 244*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 5; pixels += 1) { 245*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 40; channels += 7) { 246*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 247*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 248*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 249*4bdc9457SAndroid Build Coastguard Worker .output_stride(43) 250*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c8); 251*4bdc9457SAndroid Build Coastguard Worker } 252*4bdc9457SAndroid Build Coastguard Worker } 253*4bdc9457SAndroid Build Coastguard Worker } 254*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 255*4bdc9457SAndroid Build Coastguard Worker 256*4bdc9457SAndroid Build Coastguard Worker 257*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_IBILINEAR__FMA3_C16,channels_eq_16)258*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16, channels_eq_16) { 259*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 260*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 261*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 262*4bdc9457SAndroid Build Coastguard Worker .channels(16) 263*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c16); 264*4bdc9457SAndroid Build Coastguard Worker } 265*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16,channels_div_16)266*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16, channels_div_16) { 267*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 268*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 32; channels < 160; channels += 16) { 269*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 270*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 271*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 272*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c16); 273*4bdc9457SAndroid Build Coastguard Worker } 274*4bdc9457SAndroid Build Coastguard Worker } 275*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16,channels_lt_16)276*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16, channels_lt_16) { 277*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 278*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels < 16; channels++) { 279*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 280*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 281*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 282*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c16); 283*4bdc9457SAndroid Build Coastguard Worker } 284*4bdc9457SAndroid Build Coastguard Worker } 285*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16,channels_gt_16)286*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16, channels_gt_16) { 287*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 288*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 17; channels < 32; channels++) { 289*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 290*4bdc9457SAndroid Build Coastguard Worker .pixels(1) 291*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 292*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c16); 293*4bdc9457SAndroid Build Coastguard Worker } 294*4bdc9457SAndroid Build Coastguard Worker } 295*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16,pixels_gt_1)296*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16, pixels_gt_1) { 297*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 298*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 2; pixels < 3; pixels++) { 299*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) { 300*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 301*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 302*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 303*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c16); 304*4bdc9457SAndroid Build Coastguard Worker } 305*4bdc9457SAndroid Build Coastguard Worker } 306*4bdc9457SAndroid Build Coastguard Worker } 307*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16,input_offset)308*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16, input_offset) { 309*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 310*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 5; pixels += 1) { 311*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) { 312*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 313*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 314*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 315*4bdc9457SAndroid Build Coastguard Worker .input_offset(83) 316*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c16); 317*4bdc9457SAndroid Build Coastguard Worker } 318*4bdc9457SAndroid Build Coastguard Worker } 319*4bdc9457SAndroid Build Coastguard Worker } 320*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16,output_stride)321*4bdc9457SAndroid Build Coastguard Worker TEST(F16_IBILINEAR__FMA3_C16, output_stride) { 322*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_FMA3; 323*4bdc9457SAndroid Build Coastguard Worker for (size_t pixels = 1; pixels < 5; pixels += 1) { 324*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 80; channels += 15) { 325*4bdc9457SAndroid Build Coastguard Worker IBilinearMicrokernelTester() 326*4bdc9457SAndroid Build Coastguard Worker .pixels(pixels) 327*4bdc9457SAndroid Build Coastguard Worker .channels(channels) 328*4bdc9457SAndroid Build Coastguard Worker .output_stride(83) 329*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_ibilinear_ukernel__fma3_c16); 330*4bdc9457SAndroid Build Coastguard Worker } 331*4bdc9457SAndroid Build Coastguard Worker } 332*4bdc9457SAndroid Build Coastguard Worker } 333*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 334