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