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-raddstoreexpminusmax.yaml 8*4bdc9457SAndroid Build Coastguard Worker // Generator: tools/generate-raddstoreexpminusmax-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/raddstoreexpminusmax.h> 17*4bdc9457SAndroid Build Coastguard Worker #include "raddstoreexpminusmax-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_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32,elements_eq_32)21*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32, elements_eq_32) { 22*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 23*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 24*4bdc9457SAndroid Build Coastguard Worker .elements(32) 25*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 26*4bdc9457SAndroid Build Coastguard Worker } 27*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32,elements_div_32)28*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32, elements_div_32) { 29*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 30*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 64; elements < 320; elements += 32) { 31*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 32*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 33*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 34*4bdc9457SAndroid Build Coastguard Worker } 35*4bdc9457SAndroid Build Coastguard Worker } 36*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32,elements_lt_32)37*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32, elements_lt_32) { 38*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 39*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 32; elements++) { 40*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 41*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 42*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 43*4bdc9457SAndroid Build Coastguard Worker } 44*4bdc9457SAndroid Build Coastguard Worker } 45*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32,elements_gt_32)46*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32, elements_gt_32) { 47*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 48*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 33; elements < 64; elements++) { 49*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 50*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 51*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 52*4bdc9457SAndroid Build Coastguard Worker } 53*4bdc9457SAndroid Build Coastguard Worker } 54*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 55*4bdc9457SAndroid Build Coastguard Worker 56*4bdc9457SAndroid Build Coastguard Worker 57*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2,elements_eq_32)58*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2, elements_eq_32) { 59*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 60*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 61*4bdc9457SAndroid Build Coastguard Worker .elements(32) 62*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 63*4bdc9457SAndroid Build Coastguard Worker } 64*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2,elements_div_32)65*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2, elements_div_32) { 66*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 67*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 64; elements < 320; elements += 32) { 68*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 69*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 70*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 71*4bdc9457SAndroid Build Coastguard Worker } 72*4bdc9457SAndroid Build Coastguard Worker } 73*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2,elements_lt_32)74*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2, elements_lt_32) { 75*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 76*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 32; elements++) { 77*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 78*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 79*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 80*4bdc9457SAndroid Build Coastguard Worker } 81*4bdc9457SAndroid Build Coastguard Worker } 82*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2,elements_gt_32)83*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC2, elements_gt_32) { 84*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 85*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 33; elements < 64; elements++) { 86*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 87*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 88*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 89*4bdc9457SAndroid Build Coastguard Worker } 90*4bdc9457SAndroid Build Coastguard Worker } 91*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 92*4bdc9457SAndroid Build Coastguard Worker 93*4bdc9457SAndroid Build Coastguard Worker 94*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4,elements_eq_32)95*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4, elements_eq_32) { 96*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 97*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 98*4bdc9457SAndroid Build Coastguard Worker .elements(32) 99*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 100*4bdc9457SAndroid Build Coastguard Worker } 101*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4,elements_div_32)102*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4, elements_div_32) { 103*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 104*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 64; elements < 320; elements += 32) { 105*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 106*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 107*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 108*4bdc9457SAndroid Build Coastguard Worker } 109*4bdc9457SAndroid Build Coastguard Worker } 110*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4,elements_lt_32)111*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4, elements_lt_32) { 112*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 113*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 32; elements++) { 114*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 115*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 116*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 117*4bdc9457SAndroid Build Coastguard Worker } 118*4bdc9457SAndroid Build Coastguard Worker } 119*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4,elements_gt_32)120*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X32_ACC4, elements_gt_32) { 121*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 122*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 33; elements < 64; elements++) { 123*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 124*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 125*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x32_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 126*4bdc9457SAndroid Build Coastguard Worker } 127*4bdc9457SAndroid Build Coastguard Worker } 128*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 129*4bdc9457SAndroid Build Coastguard Worker 130*4bdc9457SAndroid Build Coastguard Worker 131*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40,elements_eq_40)132*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40, elements_eq_40) { 133*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 134*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 135*4bdc9457SAndroid Build Coastguard Worker .elements(40) 136*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 137*4bdc9457SAndroid Build Coastguard Worker } 138*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40,elements_div_40)139*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40, elements_div_40) { 140*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 141*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 80; elements < 400; elements += 40) { 142*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 143*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 144*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 145*4bdc9457SAndroid Build Coastguard Worker } 146*4bdc9457SAndroid Build Coastguard Worker } 147*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40,elements_lt_40)148*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40, elements_lt_40) { 149*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 150*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 40; elements++) { 151*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 152*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 153*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 154*4bdc9457SAndroid Build Coastguard Worker } 155*4bdc9457SAndroid Build Coastguard Worker } 156*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40,elements_gt_40)157*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40, elements_gt_40) { 158*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 159*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 41; elements < 80; elements++) { 160*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 161*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 162*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 163*4bdc9457SAndroid Build Coastguard Worker } 164*4bdc9457SAndroid Build Coastguard Worker } 165*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 166*4bdc9457SAndroid Build Coastguard Worker 167*4bdc9457SAndroid Build Coastguard Worker 168*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2,elements_eq_40)169*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2, elements_eq_40) { 170*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 171*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 172*4bdc9457SAndroid Build Coastguard Worker .elements(40) 173*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 174*4bdc9457SAndroid Build Coastguard Worker } 175*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2,elements_div_40)176*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2, elements_div_40) { 177*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 178*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 80; elements < 400; elements += 40) { 179*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 180*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 181*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 182*4bdc9457SAndroid Build Coastguard Worker } 183*4bdc9457SAndroid Build Coastguard Worker } 184*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2,elements_lt_40)185*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2, elements_lt_40) { 186*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 187*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 40; elements++) { 188*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 189*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 190*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 191*4bdc9457SAndroid Build Coastguard Worker } 192*4bdc9457SAndroid Build Coastguard Worker } 193*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2,elements_gt_40)194*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC2, elements_gt_40) { 195*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 196*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 41; elements < 80; elements++) { 197*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 198*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 199*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 200*4bdc9457SAndroid Build Coastguard Worker } 201*4bdc9457SAndroid Build Coastguard Worker } 202*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 203*4bdc9457SAndroid Build Coastguard Worker 204*4bdc9457SAndroid Build Coastguard Worker 205*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5,elements_eq_40)206*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5, elements_eq_40) { 207*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 208*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 209*4bdc9457SAndroid Build Coastguard Worker .elements(40) 210*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 211*4bdc9457SAndroid Build Coastguard Worker } 212*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5,elements_div_40)213*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5, elements_div_40) { 214*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 215*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 80; elements < 400; elements += 40) { 216*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 217*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 218*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 219*4bdc9457SAndroid Build Coastguard Worker } 220*4bdc9457SAndroid Build Coastguard Worker } 221*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5,elements_lt_40)222*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5, elements_lt_40) { 223*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 224*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 40; elements++) { 225*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 226*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 227*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 228*4bdc9457SAndroid Build Coastguard Worker } 229*4bdc9457SAndroid Build Coastguard Worker } 230*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5,elements_gt_40)231*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X40_ACC5, elements_gt_40) { 232*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 233*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 41; elements < 80; elements++) { 234*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 235*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 236*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x40_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 237*4bdc9457SAndroid Build Coastguard Worker } 238*4bdc9457SAndroid Build Coastguard Worker } 239*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 240*4bdc9457SAndroid Build Coastguard Worker 241*4bdc9457SAndroid Build Coastguard Worker 242*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48,elements_eq_48)243*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48, elements_eq_48) { 244*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 245*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 246*4bdc9457SAndroid Build Coastguard Worker .elements(48) 247*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 248*4bdc9457SAndroid Build Coastguard Worker } 249*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48,elements_div_48)250*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48, elements_div_48) { 251*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 252*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 96; elements < 480; elements += 48) { 253*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 254*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 255*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 256*4bdc9457SAndroid Build Coastguard Worker } 257*4bdc9457SAndroid Build Coastguard Worker } 258*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48,elements_lt_48)259*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48, elements_lt_48) { 260*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 261*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 48; elements++) { 262*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 263*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 264*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 265*4bdc9457SAndroid Build Coastguard Worker } 266*4bdc9457SAndroid Build Coastguard Worker } 267*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48,elements_gt_48)268*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48, elements_gt_48) { 269*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 270*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 49; elements < 96; elements++) { 271*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 272*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 273*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 274*4bdc9457SAndroid Build Coastguard Worker } 275*4bdc9457SAndroid Build Coastguard Worker } 276*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 277*4bdc9457SAndroid Build Coastguard Worker 278*4bdc9457SAndroid Build Coastguard Worker 279*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2,elements_eq_48)280*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2, elements_eq_48) { 281*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 282*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 283*4bdc9457SAndroid Build Coastguard Worker .elements(48) 284*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 285*4bdc9457SAndroid Build Coastguard Worker } 286*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2,elements_div_48)287*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2, elements_div_48) { 288*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 289*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 96; elements < 480; elements += 48) { 290*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 291*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 292*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 293*4bdc9457SAndroid Build Coastguard Worker } 294*4bdc9457SAndroid Build Coastguard Worker } 295*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2,elements_lt_48)296*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2, elements_lt_48) { 297*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 298*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 48; elements++) { 299*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 300*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 301*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 302*4bdc9457SAndroid Build Coastguard Worker } 303*4bdc9457SAndroid Build Coastguard Worker } 304*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2,elements_gt_48)305*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC2, elements_gt_48) { 306*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 307*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 49; elements < 96; elements++) { 308*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 309*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 310*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 311*4bdc9457SAndroid Build Coastguard Worker } 312*4bdc9457SAndroid Build Coastguard Worker } 313*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 314*4bdc9457SAndroid Build Coastguard Worker 315*4bdc9457SAndroid Build Coastguard Worker 316*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3,elements_eq_48)317*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3, elements_eq_48) { 318*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 319*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 320*4bdc9457SAndroid Build Coastguard Worker .elements(48) 321*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 322*4bdc9457SAndroid Build Coastguard Worker } 323*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3,elements_div_48)324*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3, elements_div_48) { 325*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 326*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 96; elements < 480; elements += 48) { 327*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 328*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 329*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 330*4bdc9457SAndroid Build Coastguard Worker } 331*4bdc9457SAndroid Build Coastguard Worker } 332*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3,elements_lt_48)333*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3, elements_lt_48) { 334*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 335*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 48; elements++) { 336*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 337*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 338*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 339*4bdc9457SAndroid Build Coastguard Worker } 340*4bdc9457SAndroid Build Coastguard Worker } 341*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3,elements_gt_48)342*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X48_ACC3, elements_gt_48) { 343*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 344*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 49; elements < 96; elements++) { 345*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 346*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 347*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x48_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 348*4bdc9457SAndroid Build Coastguard Worker } 349*4bdc9457SAndroid Build Coastguard Worker } 350*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 351*4bdc9457SAndroid Build Coastguard Worker 352*4bdc9457SAndroid Build Coastguard Worker 353*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64,elements_eq_64)354*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64, elements_eq_64) { 355*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 356*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 357*4bdc9457SAndroid Build Coastguard Worker .elements(64) 358*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 359*4bdc9457SAndroid Build Coastguard Worker } 360*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64,elements_div_64)361*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64, elements_div_64) { 362*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 363*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 128; elements < 640; elements += 64) { 364*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 365*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 366*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 367*4bdc9457SAndroid Build Coastguard Worker } 368*4bdc9457SAndroid Build Coastguard Worker } 369*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64,elements_lt_64)370*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64, elements_lt_64) { 371*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 372*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 64; elements++) { 373*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 374*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 375*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 376*4bdc9457SAndroid Build Coastguard Worker } 377*4bdc9457SAndroid Build Coastguard Worker } 378*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64,elements_gt_64)379*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64, elements_gt_64) { 380*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 381*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 65; elements < 128; elements++) { 382*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 383*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 384*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 385*4bdc9457SAndroid Build Coastguard Worker } 386*4bdc9457SAndroid Build Coastguard Worker } 387*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 388*4bdc9457SAndroid Build Coastguard Worker 389*4bdc9457SAndroid Build Coastguard Worker 390*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2,elements_eq_64)391*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2, elements_eq_64) { 392*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 393*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 394*4bdc9457SAndroid Build Coastguard Worker .elements(64) 395*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 396*4bdc9457SAndroid Build Coastguard Worker } 397*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2,elements_div_64)398*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2, elements_div_64) { 399*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 400*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 128; elements < 640; elements += 64) { 401*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 402*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 403*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 404*4bdc9457SAndroid Build Coastguard Worker } 405*4bdc9457SAndroid Build Coastguard Worker } 406*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2,elements_lt_64)407*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2, elements_lt_64) { 408*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 409*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 64; elements++) { 410*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 411*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 412*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 413*4bdc9457SAndroid Build Coastguard Worker } 414*4bdc9457SAndroid Build Coastguard Worker } 415*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2,elements_gt_64)416*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC2, elements_gt_64) { 417*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 418*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 65; elements < 128; elements++) { 419*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 420*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 421*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 422*4bdc9457SAndroid Build Coastguard Worker } 423*4bdc9457SAndroid Build Coastguard Worker } 424*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 425*4bdc9457SAndroid Build Coastguard Worker 426*4bdc9457SAndroid Build Coastguard Worker 427*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4,elements_eq_64)428*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4, elements_eq_64) { 429*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 430*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 431*4bdc9457SAndroid Build Coastguard Worker .elements(64) 432*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 433*4bdc9457SAndroid Build Coastguard Worker } 434*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4,elements_div_64)435*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4, elements_div_64) { 436*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 437*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 128; elements < 640; elements += 64) { 438*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 439*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 440*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 441*4bdc9457SAndroid Build Coastguard Worker } 442*4bdc9457SAndroid Build Coastguard Worker } 443*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4,elements_lt_64)444*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4, elements_lt_64) { 445*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 446*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 64; elements++) { 447*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 448*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 449*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 450*4bdc9457SAndroid Build Coastguard Worker } 451*4bdc9457SAndroid Build Coastguard Worker } 452*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4,elements_gt_64)453*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X64_ACC4, elements_gt_64) { 454*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 455*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 65; elements < 128; elements++) { 456*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 457*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 458*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x64_acc4, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 459*4bdc9457SAndroid Build Coastguard Worker } 460*4bdc9457SAndroid Build Coastguard Worker } 461*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 462*4bdc9457SAndroid Build Coastguard Worker 463*4bdc9457SAndroid Build Coastguard Worker 464*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72,elements_eq_72)465*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72, elements_eq_72) { 466*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 467*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 468*4bdc9457SAndroid Build Coastguard Worker .elements(72) 469*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 470*4bdc9457SAndroid Build Coastguard Worker } 471*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72,elements_div_72)472*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72, elements_div_72) { 473*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 474*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 144; elements < 720; elements += 72) { 475*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 476*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 477*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 478*4bdc9457SAndroid Build Coastguard Worker } 479*4bdc9457SAndroid Build Coastguard Worker } 480*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72,elements_lt_72)481*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72, elements_lt_72) { 482*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 483*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 72; elements++) { 484*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 485*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 486*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 487*4bdc9457SAndroid Build Coastguard Worker } 488*4bdc9457SAndroid Build Coastguard Worker } 489*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72,elements_gt_72)490*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72, elements_gt_72) { 491*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 492*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 73; elements < 144; elements++) { 493*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 494*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 495*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 496*4bdc9457SAndroid Build Coastguard Worker } 497*4bdc9457SAndroid Build Coastguard Worker } 498*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 499*4bdc9457SAndroid Build Coastguard Worker 500*4bdc9457SAndroid Build Coastguard Worker 501*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3,elements_eq_72)502*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3, elements_eq_72) { 503*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 504*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 505*4bdc9457SAndroid Build Coastguard Worker .elements(72) 506*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 507*4bdc9457SAndroid Build Coastguard Worker } 508*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3,elements_div_72)509*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3, elements_div_72) { 510*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 511*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 144; elements < 720; elements += 72) { 512*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 513*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 514*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 515*4bdc9457SAndroid Build Coastguard Worker } 516*4bdc9457SAndroid Build Coastguard Worker } 517*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3,elements_lt_72)518*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3, elements_lt_72) { 519*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 520*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 72; elements++) { 521*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 522*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 523*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 524*4bdc9457SAndroid Build Coastguard Worker } 525*4bdc9457SAndroid Build Coastguard Worker } 526*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3,elements_gt_72)527*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X72_ACC3, elements_gt_72) { 528*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 529*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 73; elements < 144; elements++) { 530*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 531*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 532*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x72_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 533*4bdc9457SAndroid Build Coastguard Worker } 534*4bdc9457SAndroid Build Coastguard Worker } 535*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 536*4bdc9457SAndroid Build Coastguard Worker 537*4bdc9457SAndroid Build Coastguard Worker 538*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80,elements_eq_80)539*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80, elements_eq_80) { 540*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 541*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 542*4bdc9457SAndroid Build Coastguard Worker .elements(80) 543*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 544*4bdc9457SAndroid Build Coastguard Worker } 545*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80,elements_div_80)546*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80, elements_div_80) { 547*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 548*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 160; elements < 800; elements += 80) { 549*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 550*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 551*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 552*4bdc9457SAndroid Build Coastguard Worker } 553*4bdc9457SAndroid Build Coastguard Worker } 554*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80,elements_lt_80)555*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80, elements_lt_80) { 556*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 557*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 80; elements++) { 558*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 559*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 560*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 561*4bdc9457SAndroid Build Coastguard Worker } 562*4bdc9457SAndroid Build Coastguard Worker } 563*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80,elements_gt_80)564*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80, elements_gt_80) { 565*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 566*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 81; elements < 160; elements++) { 567*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 568*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 569*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 570*4bdc9457SAndroid Build Coastguard Worker } 571*4bdc9457SAndroid Build Coastguard Worker } 572*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 573*4bdc9457SAndroid Build Coastguard Worker 574*4bdc9457SAndroid Build Coastguard Worker 575*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2,elements_eq_80)576*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2, elements_eq_80) { 577*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 578*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 579*4bdc9457SAndroid Build Coastguard Worker .elements(80) 580*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 581*4bdc9457SAndroid Build Coastguard Worker } 582*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2,elements_div_80)583*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2, elements_div_80) { 584*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 585*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 160; elements < 800; elements += 80) { 586*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 587*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 588*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 589*4bdc9457SAndroid Build Coastguard Worker } 590*4bdc9457SAndroid Build Coastguard Worker } 591*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2,elements_lt_80)592*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2, elements_lt_80) { 593*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 594*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 80; elements++) { 595*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 596*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 597*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 598*4bdc9457SAndroid Build Coastguard Worker } 599*4bdc9457SAndroid Build Coastguard Worker } 600*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2,elements_gt_80)601*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC2, elements_gt_80) { 602*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 603*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 81; elements < 160; elements++) { 604*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 605*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 606*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 607*4bdc9457SAndroid Build Coastguard Worker } 608*4bdc9457SAndroid Build Coastguard Worker } 609*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 610*4bdc9457SAndroid Build Coastguard Worker 611*4bdc9457SAndroid Build Coastguard Worker 612*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5,elements_eq_80)613*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5, elements_eq_80) { 614*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 615*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 616*4bdc9457SAndroid Build Coastguard Worker .elements(80) 617*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 618*4bdc9457SAndroid Build Coastguard Worker } 619*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5,elements_div_80)620*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5, elements_div_80) { 621*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 622*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 160; elements < 800; elements += 80) { 623*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 624*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 625*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 626*4bdc9457SAndroid Build Coastguard Worker } 627*4bdc9457SAndroid Build Coastguard Worker } 628*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5,elements_lt_80)629*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5, elements_lt_80) { 630*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 631*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 80; elements++) { 632*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 633*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 634*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 635*4bdc9457SAndroid Build Coastguard Worker } 636*4bdc9457SAndroid Build Coastguard Worker } 637*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5,elements_gt_80)638*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X80_ACC5, elements_gt_80) { 639*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 640*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 81; elements < 160; elements++) { 641*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 642*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 643*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x80_acc5, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 644*4bdc9457SAndroid Build Coastguard Worker } 645*4bdc9457SAndroid Build Coastguard Worker } 646*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 647*4bdc9457SAndroid Build Coastguard Worker 648*4bdc9457SAndroid Build Coastguard Worker 649*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96,elements_eq_96)650*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96, elements_eq_96) { 651*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 652*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 653*4bdc9457SAndroid Build Coastguard Worker .elements(96) 654*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 655*4bdc9457SAndroid Build Coastguard Worker } 656*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96,elements_div_96)657*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96, elements_div_96) { 658*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 659*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 192; elements < 960; elements += 96) { 660*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 661*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 662*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 663*4bdc9457SAndroid Build Coastguard Worker } 664*4bdc9457SAndroid Build Coastguard Worker } 665*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96,elements_lt_96)666*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96, elements_lt_96) { 667*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 668*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 96; elements++) { 669*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 670*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 671*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 672*4bdc9457SAndroid Build Coastguard Worker } 673*4bdc9457SAndroid Build Coastguard Worker } 674*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96,elements_gt_96)675*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96, elements_gt_96) { 676*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 677*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 97; elements < 192; elements++) { 678*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 679*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 680*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 681*4bdc9457SAndroid Build Coastguard Worker } 682*4bdc9457SAndroid Build Coastguard Worker } 683*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 684*4bdc9457SAndroid Build Coastguard Worker 685*4bdc9457SAndroid Build Coastguard Worker 686*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2,elements_eq_96)687*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2, elements_eq_96) { 688*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 689*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 690*4bdc9457SAndroid Build Coastguard Worker .elements(96) 691*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 692*4bdc9457SAndroid Build Coastguard Worker } 693*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2,elements_div_96)694*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2, elements_div_96) { 695*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 696*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 192; elements < 960; elements += 96) { 697*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 698*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 699*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 700*4bdc9457SAndroid Build Coastguard Worker } 701*4bdc9457SAndroid Build Coastguard Worker } 702*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2,elements_lt_96)703*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2, elements_lt_96) { 704*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 705*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 96; elements++) { 706*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 707*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 708*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 709*4bdc9457SAndroid Build Coastguard Worker } 710*4bdc9457SAndroid Build Coastguard Worker } 711*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2,elements_gt_96)712*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC2, elements_gt_96) { 713*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 714*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 97; elements < 192; elements++) { 715*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 716*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 717*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc2, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 718*4bdc9457SAndroid Build Coastguard Worker } 719*4bdc9457SAndroid Build Coastguard Worker } 720*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 721*4bdc9457SAndroid Build Coastguard Worker 722*4bdc9457SAndroid Build Coastguard Worker 723*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3,elements_eq_96)724*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3, elements_eq_96) { 725*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 726*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 727*4bdc9457SAndroid Build Coastguard Worker .elements(96) 728*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 729*4bdc9457SAndroid Build Coastguard Worker } 730*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3,elements_div_96)731*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3, elements_div_96) { 732*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 733*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 192; elements < 960; elements += 96) { 734*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 735*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 736*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 737*4bdc9457SAndroid Build Coastguard Worker } 738*4bdc9457SAndroid Build Coastguard Worker } 739*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3,elements_lt_96)740*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3, elements_lt_96) { 741*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 742*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 96; elements++) { 743*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 744*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 745*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 746*4bdc9457SAndroid Build Coastguard Worker } 747*4bdc9457SAndroid Build Coastguard Worker } 748*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3,elements_gt_96)749*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC3, elements_gt_96) { 750*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 751*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 97; elements < 192; elements++) { 752*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 753*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 754*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc3, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 755*4bdc9457SAndroid Build Coastguard Worker } 756*4bdc9457SAndroid Build Coastguard Worker } 757*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 758*4bdc9457SAndroid Build Coastguard Worker 759*4bdc9457SAndroid Build Coastguard Worker 760*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6,elements_eq_96)761*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6, elements_eq_96) { 762*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 763*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 764*4bdc9457SAndroid Build Coastguard Worker .elements(96) 765*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc6, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 766*4bdc9457SAndroid Build Coastguard Worker } 767*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6,elements_div_96)768*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6, elements_div_96) { 769*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 770*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 192; elements < 960; elements += 96) { 771*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 772*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 773*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc6, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 774*4bdc9457SAndroid Build Coastguard Worker } 775*4bdc9457SAndroid Build Coastguard Worker } 776*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6,elements_lt_96)777*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6, elements_lt_96) { 778*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 779*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 96; elements++) { 780*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 781*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 782*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc6, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 783*4bdc9457SAndroid Build Coastguard Worker } 784*4bdc9457SAndroid Build Coastguard Worker } 785*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6,elements_gt_96)786*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__NEONFP16ARITH_RR2_P2_X96_ACC6, elements_gt_96) { 787*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 788*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 97; elements < 192; elements++) { 789*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 790*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 791*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__neonfp16arith_rr2_p2_x96_acc6, xnn_init_f16_expminus_neonfp16arith_rr2_p2_params); 792*4bdc9457SAndroid Build Coastguard Worker } 793*4bdc9457SAndroid Build Coastguard Worker } 794*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 795*4bdc9457SAndroid Build Coastguard Worker 796*4bdc9457SAndroid Build Coastguard Worker 797*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32,elements_eq_32)798*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32, elements_eq_32) { 799*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 800*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 801*4bdc9457SAndroid Build Coastguard Worker .elements(32) 802*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32, xnn_init_f16_expminus_avx2_rr1_p2_params); 803*4bdc9457SAndroid Build Coastguard Worker } 804*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32,elements_div_32)805*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32, elements_div_32) { 806*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 807*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 64; elements < 320; elements += 32) { 808*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 809*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 810*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32, xnn_init_f16_expminus_avx2_rr1_p2_params); 811*4bdc9457SAndroid Build Coastguard Worker } 812*4bdc9457SAndroid Build Coastguard Worker } 813*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32,elements_lt_32)814*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32, elements_lt_32) { 815*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 816*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 32; elements++) { 817*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 818*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 819*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32, xnn_init_f16_expminus_avx2_rr1_p2_params); 820*4bdc9457SAndroid Build Coastguard Worker } 821*4bdc9457SAndroid Build Coastguard Worker } 822*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32,elements_gt_32)823*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32, elements_gt_32) { 824*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 825*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 33; elements < 64; elements++) { 826*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 827*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 828*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32, xnn_init_f16_expminus_avx2_rr1_p2_params); 829*4bdc9457SAndroid Build Coastguard Worker } 830*4bdc9457SAndroid Build Coastguard Worker } 831*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 832*4bdc9457SAndroid Build Coastguard Worker 833*4bdc9457SAndroid Build Coastguard Worker 834*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2,elements_eq_32)835*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2, elements_eq_32) { 836*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 837*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 838*4bdc9457SAndroid Build Coastguard Worker .elements(32) 839*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 840*4bdc9457SAndroid Build Coastguard Worker } 841*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2,elements_div_32)842*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2, elements_div_32) { 843*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 844*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 64; elements < 320; elements += 32) { 845*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 846*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 847*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 848*4bdc9457SAndroid Build Coastguard Worker } 849*4bdc9457SAndroid Build Coastguard Worker } 850*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2,elements_lt_32)851*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2, elements_lt_32) { 852*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 853*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 32; elements++) { 854*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 855*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 856*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 857*4bdc9457SAndroid Build Coastguard Worker } 858*4bdc9457SAndroid Build Coastguard Worker } 859*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2,elements_gt_32)860*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC2, elements_gt_32) { 861*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 862*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 33; elements < 64; elements++) { 863*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 864*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 865*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 866*4bdc9457SAndroid Build Coastguard Worker } 867*4bdc9457SAndroid Build Coastguard Worker } 868*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 869*4bdc9457SAndroid Build Coastguard Worker 870*4bdc9457SAndroid Build Coastguard Worker 871*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4,elements_eq_32)872*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4, elements_eq_32) { 873*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 874*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 875*4bdc9457SAndroid Build Coastguard Worker .elements(32) 876*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params); 877*4bdc9457SAndroid Build Coastguard Worker } 878*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4,elements_div_32)879*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4, elements_div_32) { 880*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 881*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 64; elements < 320; elements += 32) { 882*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 883*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 884*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params); 885*4bdc9457SAndroid Build Coastguard Worker } 886*4bdc9457SAndroid Build Coastguard Worker } 887*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4,elements_lt_32)888*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4, elements_lt_32) { 889*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 890*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 32; elements++) { 891*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 892*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 893*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params); 894*4bdc9457SAndroid Build Coastguard Worker } 895*4bdc9457SAndroid Build Coastguard Worker } 896*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4,elements_gt_32)897*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X32_ACC4, elements_gt_32) { 898*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 899*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 33; elements < 64; elements++) { 900*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 901*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 902*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x32_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params); 903*4bdc9457SAndroid Build Coastguard Worker } 904*4bdc9457SAndroid Build Coastguard Worker } 905*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 906*4bdc9457SAndroid Build Coastguard Worker 907*4bdc9457SAndroid Build Coastguard Worker 908*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40,elements_eq_40)909*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40, elements_eq_40) { 910*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 911*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 912*4bdc9457SAndroid Build Coastguard Worker .elements(40) 913*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40, xnn_init_f16_expminus_avx2_rr1_p2_params); 914*4bdc9457SAndroid Build Coastguard Worker } 915*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40,elements_div_40)916*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40, elements_div_40) { 917*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 918*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 80; elements < 400; elements += 40) { 919*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 920*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 921*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40, xnn_init_f16_expminus_avx2_rr1_p2_params); 922*4bdc9457SAndroid Build Coastguard Worker } 923*4bdc9457SAndroid Build Coastguard Worker } 924*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40,elements_lt_40)925*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40, elements_lt_40) { 926*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 927*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 40; elements++) { 928*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 929*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 930*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40, xnn_init_f16_expminus_avx2_rr1_p2_params); 931*4bdc9457SAndroid Build Coastguard Worker } 932*4bdc9457SAndroid Build Coastguard Worker } 933*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40,elements_gt_40)934*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40, elements_gt_40) { 935*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 936*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 41; elements < 80; elements++) { 937*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 938*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 939*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40, xnn_init_f16_expminus_avx2_rr1_p2_params); 940*4bdc9457SAndroid Build Coastguard Worker } 941*4bdc9457SAndroid Build Coastguard Worker } 942*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 943*4bdc9457SAndroid Build Coastguard Worker 944*4bdc9457SAndroid Build Coastguard Worker 945*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2,elements_eq_40)946*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2, elements_eq_40) { 947*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 948*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 949*4bdc9457SAndroid Build Coastguard Worker .elements(40) 950*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 951*4bdc9457SAndroid Build Coastguard Worker } 952*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2,elements_div_40)953*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2, elements_div_40) { 954*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 955*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 80; elements < 400; elements += 40) { 956*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 957*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 958*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 959*4bdc9457SAndroid Build Coastguard Worker } 960*4bdc9457SAndroid Build Coastguard Worker } 961*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2,elements_lt_40)962*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2, elements_lt_40) { 963*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 964*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 40; elements++) { 965*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 966*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 967*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 968*4bdc9457SAndroid Build Coastguard Worker } 969*4bdc9457SAndroid Build Coastguard Worker } 970*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2,elements_gt_40)971*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC2, elements_gt_40) { 972*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 973*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 41; elements < 80; elements++) { 974*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 975*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 976*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 977*4bdc9457SAndroid Build Coastguard Worker } 978*4bdc9457SAndroid Build Coastguard Worker } 979*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 980*4bdc9457SAndroid Build Coastguard Worker 981*4bdc9457SAndroid Build Coastguard Worker 982*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5,elements_eq_40)983*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5, elements_eq_40) { 984*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 985*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 986*4bdc9457SAndroid Build Coastguard Worker .elements(40) 987*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params); 988*4bdc9457SAndroid Build Coastguard Worker } 989*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5,elements_div_40)990*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5, elements_div_40) { 991*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 992*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 80; elements < 400; elements += 40) { 993*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 994*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 995*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params); 996*4bdc9457SAndroid Build Coastguard Worker } 997*4bdc9457SAndroid Build Coastguard Worker } 998*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5,elements_lt_40)999*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5, elements_lt_40) { 1000*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1001*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 40; elements++) { 1002*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1003*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1004*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params); 1005*4bdc9457SAndroid Build Coastguard Worker } 1006*4bdc9457SAndroid Build Coastguard Worker } 1007*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5,elements_gt_40)1008*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X40_ACC5, elements_gt_40) { 1009*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1010*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 41; elements < 80; elements++) { 1011*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1012*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1013*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x40_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params); 1014*4bdc9457SAndroid Build Coastguard Worker } 1015*4bdc9457SAndroid Build Coastguard Worker } 1016*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1017*4bdc9457SAndroid Build Coastguard Worker 1018*4bdc9457SAndroid Build Coastguard Worker 1019*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48,elements_eq_48)1020*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48, elements_eq_48) { 1021*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1022*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1023*4bdc9457SAndroid Build Coastguard Worker .elements(48) 1024*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48, xnn_init_f16_expminus_avx2_rr1_p2_params); 1025*4bdc9457SAndroid Build Coastguard Worker } 1026*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48,elements_div_48)1027*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48, elements_div_48) { 1028*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1029*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 96; elements < 480; elements += 48) { 1030*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1031*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1032*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48, xnn_init_f16_expminus_avx2_rr1_p2_params); 1033*4bdc9457SAndroid Build Coastguard Worker } 1034*4bdc9457SAndroid Build Coastguard Worker } 1035*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48,elements_lt_48)1036*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48, elements_lt_48) { 1037*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1038*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 48; elements++) { 1039*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1040*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1041*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48, xnn_init_f16_expminus_avx2_rr1_p2_params); 1042*4bdc9457SAndroid Build Coastguard Worker } 1043*4bdc9457SAndroid Build Coastguard Worker } 1044*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48,elements_gt_48)1045*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48, elements_gt_48) { 1046*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1047*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 49; elements < 96; elements++) { 1048*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1049*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1050*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48, xnn_init_f16_expminus_avx2_rr1_p2_params); 1051*4bdc9457SAndroid Build Coastguard Worker } 1052*4bdc9457SAndroid Build Coastguard Worker } 1053*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1054*4bdc9457SAndroid Build Coastguard Worker 1055*4bdc9457SAndroid Build Coastguard Worker 1056*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2,elements_eq_48)1057*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2, elements_eq_48) { 1058*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1059*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1060*4bdc9457SAndroid Build Coastguard Worker .elements(48) 1061*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1062*4bdc9457SAndroid Build Coastguard Worker } 1063*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2,elements_div_48)1064*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2, elements_div_48) { 1065*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1066*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 96; elements < 480; elements += 48) { 1067*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1068*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1069*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1070*4bdc9457SAndroid Build Coastguard Worker } 1071*4bdc9457SAndroid Build Coastguard Worker } 1072*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2,elements_lt_48)1073*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2, elements_lt_48) { 1074*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1075*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 48; elements++) { 1076*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1077*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1078*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1079*4bdc9457SAndroid Build Coastguard Worker } 1080*4bdc9457SAndroid Build Coastguard Worker } 1081*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2,elements_gt_48)1082*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC2, elements_gt_48) { 1083*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1084*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 49; elements < 96; elements++) { 1085*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1086*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1087*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1088*4bdc9457SAndroid Build Coastguard Worker } 1089*4bdc9457SAndroid Build Coastguard Worker } 1090*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1091*4bdc9457SAndroid Build Coastguard Worker 1092*4bdc9457SAndroid Build Coastguard Worker 1093*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3,elements_eq_48)1094*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3, elements_eq_48) { 1095*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1096*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1097*4bdc9457SAndroid Build Coastguard Worker .elements(48) 1098*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1099*4bdc9457SAndroid Build Coastguard Worker } 1100*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3,elements_div_48)1101*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3, elements_div_48) { 1102*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1103*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 96; elements < 480; elements += 48) { 1104*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1105*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1106*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1107*4bdc9457SAndroid Build Coastguard Worker } 1108*4bdc9457SAndroid Build Coastguard Worker } 1109*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3,elements_lt_48)1110*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3, elements_lt_48) { 1111*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1112*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 48; elements++) { 1113*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1114*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1115*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1116*4bdc9457SAndroid Build Coastguard Worker } 1117*4bdc9457SAndroid Build Coastguard Worker } 1118*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3,elements_gt_48)1119*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X48_ACC3, elements_gt_48) { 1120*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1121*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 49; elements < 96; elements++) { 1122*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1123*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1124*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x48_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1125*4bdc9457SAndroid Build Coastguard Worker } 1126*4bdc9457SAndroid Build Coastguard Worker } 1127*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1128*4bdc9457SAndroid Build Coastguard Worker 1129*4bdc9457SAndroid Build Coastguard Worker 1130*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64,elements_eq_64)1131*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64, elements_eq_64) { 1132*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1133*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1134*4bdc9457SAndroid Build Coastguard Worker .elements(64) 1135*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64, xnn_init_f16_expminus_avx2_rr1_p2_params); 1136*4bdc9457SAndroid Build Coastguard Worker } 1137*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64,elements_div_64)1138*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64, elements_div_64) { 1139*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1140*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 128; elements < 640; elements += 64) { 1141*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1142*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1143*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64, xnn_init_f16_expminus_avx2_rr1_p2_params); 1144*4bdc9457SAndroid Build Coastguard Worker } 1145*4bdc9457SAndroid Build Coastguard Worker } 1146*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64,elements_lt_64)1147*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64, elements_lt_64) { 1148*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1149*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 64; elements++) { 1150*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1151*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1152*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64, xnn_init_f16_expminus_avx2_rr1_p2_params); 1153*4bdc9457SAndroid Build Coastguard Worker } 1154*4bdc9457SAndroid Build Coastguard Worker } 1155*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64,elements_gt_64)1156*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64, elements_gt_64) { 1157*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1158*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 65; elements < 128; elements++) { 1159*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1160*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1161*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64, xnn_init_f16_expminus_avx2_rr1_p2_params); 1162*4bdc9457SAndroid Build Coastguard Worker } 1163*4bdc9457SAndroid Build Coastguard Worker } 1164*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1165*4bdc9457SAndroid Build Coastguard Worker 1166*4bdc9457SAndroid Build Coastguard Worker 1167*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2,elements_eq_64)1168*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2, elements_eq_64) { 1169*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1170*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1171*4bdc9457SAndroid Build Coastguard Worker .elements(64) 1172*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1173*4bdc9457SAndroid Build Coastguard Worker } 1174*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2,elements_div_64)1175*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2, elements_div_64) { 1176*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1177*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 128; elements < 640; elements += 64) { 1178*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1179*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1180*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1181*4bdc9457SAndroid Build Coastguard Worker } 1182*4bdc9457SAndroid Build Coastguard Worker } 1183*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2,elements_lt_64)1184*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2, elements_lt_64) { 1185*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1186*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 64; elements++) { 1187*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1188*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1189*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1190*4bdc9457SAndroid Build Coastguard Worker } 1191*4bdc9457SAndroid Build Coastguard Worker } 1192*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2,elements_gt_64)1193*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC2, elements_gt_64) { 1194*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1195*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 65; elements < 128; elements++) { 1196*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1197*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1198*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1199*4bdc9457SAndroid Build Coastguard Worker } 1200*4bdc9457SAndroid Build Coastguard Worker } 1201*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1202*4bdc9457SAndroid Build Coastguard Worker 1203*4bdc9457SAndroid Build Coastguard Worker 1204*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4,elements_eq_64)1205*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4, elements_eq_64) { 1206*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1207*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1208*4bdc9457SAndroid Build Coastguard Worker .elements(64) 1209*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params); 1210*4bdc9457SAndroid Build Coastguard Worker } 1211*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4,elements_div_64)1212*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4, elements_div_64) { 1213*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1214*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 128; elements < 640; elements += 64) { 1215*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1216*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1217*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params); 1218*4bdc9457SAndroid Build Coastguard Worker } 1219*4bdc9457SAndroid Build Coastguard Worker } 1220*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4,elements_lt_64)1221*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4, elements_lt_64) { 1222*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1223*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 64; elements++) { 1224*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1225*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1226*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params); 1227*4bdc9457SAndroid Build Coastguard Worker } 1228*4bdc9457SAndroid Build Coastguard Worker } 1229*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4,elements_gt_64)1230*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X64_ACC4, elements_gt_64) { 1231*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1232*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 65; elements < 128; elements++) { 1233*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1234*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1235*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x64_acc4, xnn_init_f16_expminus_avx2_rr1_p2_params); 1236*4bdc9457SAndroid Build Coastguard Worker } 1237*4bdc9457SAndroid Build Coastguard Worker } 1238*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1239*4bdc9457SAndroid Build Coastguard Worker 1240*4bdc9457SAndroid Build Coastguard Worker 1241*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72,elements_eq_72)1242*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72, elements_eq_72) { 1243*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1244*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1245*4bdc9457SAndroid Build Coastguard Worker .elements(72) 1246*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72, xnn_init_f16_expminus_avx2_rr1_p2_params); 1247*4bdc9457SAndroid Build Coastguard Worker } 1248*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72,elements_div_72)1249*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72, elements_div_72) { 1250*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1251*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 144; elements < 720; elements += 72) { 1252*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1253*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1254*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72, xnn_init_f16_expminus_avx2_rr1_p2_params); 1255*4bdc9457SAndroid Build Coastguard Worker } 1256*4bdc9457SAndroid Build Coastguard Worker } 1257*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72,elements_lt_72)1258*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72, elements_lt_72) { 1259*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1260*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 72; elements++) { 1261*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1262*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1263*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72, xnn_init_f16_expminus_avx2_rr1_p2_params); 1264*4bdc9457SAndroid Build Coastguard Worker } 1265*4bdc9457SAndroid Build Coastguard Worker } 1266*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72,elements_gt_72)1267*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72, elements_gt_72) { 1268*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1269*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 73; elements < 144; elements++) { 1270*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1271*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1272*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72, xnn_init_f16_expminus_avx2_rr1_p2_params); 1273*4bdc9457SAndroid Build Coastguard Worker } 1274*4bdc9457SAndroid Build Coastguard Worker } 1275*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1276*4bdc9457SAndroid Build Coastguard Worker 1277*4bdc9457SAndroid Build Coastguard Worker 1278*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3,elements_eq_72)1279*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3, elements_eq_72) { 1280*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1281*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1282*4bdc9457SAndroid Build Coastguard Worker .elements(72) 1283*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1284*4bdc9457SAndroid Build Coastguard Worker } 1285*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3,elements_div_72)1286*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3, elements_div_72) { 1287*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1288*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 144; elements < 720; elements += 72) { 1289*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1290*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1291*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1292*4bdc9457SAndroid Build Coastguard Worker } 1293*4bdc9457SAndroid Build Coastguard Worker } 1294*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3,elements_lt_72)1295*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3, elements_lt_72) { 1296*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1297*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 72; elements++) { 1298*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1299*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1300*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1301*4bdc9457SAndroid Build Coastguard Worker } 1302*4bdc9457SAndroid Build Coastguard Worker } 1303*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3,elements_gt_72)1304*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X72_ACC3, elements_gt_72) { 1305*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1306*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 73; elements < 144; elements++) { 1307*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1308*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1309*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x72_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1310*4bdc9457SAndroid Build Coastguard Worker } 1311*4bdc9457SAndroid Build Coastguard Worker } 1312*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1313*4bdc9457SAndroid Build Coastguard Worker 1314*4bdc9457SAndroid Build Coastguard Worker 1315*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80,elements_eq_80)1316*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80, elements_eq_80) { 1317*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1318*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1319*4bdc9457SAndroid Build Coastguard Worker .elements(80) 1320*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80, xnn_init_f16_expminus_avx2_rr1_p2_params); 1321*4bdc9457SAndroid Build Coastguard Worker } 1322*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80,elements_div_80)1323*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80, elements_div_80) { 1324*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1325*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 160; elements < 800; elements += 80) { 1326*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1327*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1328*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80, xnn_init_f16_expminus_avx2_rr1_p2_params); 1329*4bdc9457SAndroid Build Coastguard Worker } 1330*4bdc9457SAndroid Build Coastguard Worker } 1331*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80,elements_lt_80)1332*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80, elements_lt_80) { 1333*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1334*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 80; elements++) { 1335*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1336*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1337*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80, xnn_init_f16_expminus_avx2_rr1_p2_params); 1338*4bdc9457SAndroid Build Coastguard Worker } 1339*4bdc9457SAndroid Build Coastguard Worker } 1340*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80,elements_gt_80)1341*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80, elements_gt_80) { 1342*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1343*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 81; elements < 160; elements++) { 1344*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1345*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1346*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80, xnn_init_f16_expminus_avx2_rr1_p2_params); 1347*4bdc9457SAndroid Build Coastguard Worker } 1348*4bdc9457SAndroid Build Coastguard Worker } 1349*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1350*4bdc9457SAndroid Build Coastguard Worker 1351*4bdc9457SAndroid Build Coastguard Worker 1352*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2,elements_eq_80)1353*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2, elements_eq_80) { 1354*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1355*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1356*4bdc9457SAndroid Build Coastguard Worker .elements(80) 1357*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1358*4bdc9457SAndroid Build Coastguard Worker } 1359*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2,elements_div_80)1360*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2, elements_div_80) { 1361*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1362*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 160; elements < 800; elements += 80) { 1363*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1364*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1365*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1366*4bdc9457SAndroid Build Coastguard Worker } 1367*4bdc9457SAndroid Build Coastguard Worker } 1368*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2,elements_lt_80)1369*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2, elements_lt_80) { 1370*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1371*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 80; elements++) { 1372*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1373*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1374*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1375*4bdc9457SAndroid Build Coastguard Worker } 1376*4bdc9457SAndroid Build Coastguard Worker } 1377*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2,elements_gt_80)1378*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC2, elements_gt_80) { 1379*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1380*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 81; elements < 160; elements++) { 1381*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1382*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1383*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1384*4bdc9457SAndroid Build Coastguard Worker } 1385*4bdc9457SAndroid Build Coastguard Worker } 1386*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1387*4bdc9457SAndroid Build Coastguard Worker 1388*4bdc9457SAndroid Build Coastguard Worker 1389*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5,elements_eq_80)1390*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5, elements_eq_80) { 1391*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1392*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1393*4bdc9457SAndroid Build Coastguard Worker .elements(80) 1394*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params); 1395*4bdc9457SAndroid Build Coastguard Worker } 1396*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5,elements_div_80)1397*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5, elements_div_80) { 1398*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1399*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 160; elements < 800; elements += 80) { 1400*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1401*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1402*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params); 1403*4bdc9457SAndroid Build Coastguard Worker } 1404*4bdc9457SAndroid Build Coastguard Worker } 1405*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5,elements_lt_80)1406*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5, elements_lt_80) { 1407*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1408*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 80; elements++) { 1409*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1410*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1411*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params); 1412*4bdc9457SAndroid Build Coastguard Worker } 1413*4bdc9457SAndroid Build Coastguard Worker } 1414*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5,elements_gt_80)1415*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X80_ACC5, elements_gt_80) { 1416*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1417*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 81; elements < 160; elements++) { 1418*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1419*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1420*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x80_acc5, xnn_init_f16_expminus_avx2_rr1_p2_params); 1421*4bdc9457SAndroid Build Coastguard Worker } 1422*4bdc9457SAndroid Build Coastguard Worker } 1423*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1424*4bdc9457SAndroid Build Coastguard Worker 1425*4bdc9457SAndroid Build Coastguard Worker 1426*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96,elements_eq_96)1427*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96, elements_eq_96) { 1428*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1429*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1430*4bdc9457SAndroid Build Coastguard Worker .elements(96) 1431*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96, xnn_init_f16_expminus_avx2_rr1_p2_params); 1432*4bdc9457SAndroid Build Coastguard Worker } 1433*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96,elements_div_96)1434*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96, elements_div_96) { 1435*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1436*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 192; elements < 960; elements += 96) { 1437*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1438*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1439*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96, xnn_init_f16_expminus_avx2_rr1_p2_params); 1440*4bdc9457SAndroid Build Coastguard Worker } 1441*4bdc9457SAndroid Build Coastguard Worker } 1442*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96,elements_lt_96)1443*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96, elements_lt_96) { 1444*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1445*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 96; elements++) { 1446*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1447*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1448*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96, xnn_init_f16_expminus_avx2_rr1_p2_params); 1449*4bdc9457SAndroid Build Coastguard Worker } 1450*4bdc9457SAndroid Build Coastguard Worker } 1451*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96,elements_gt_96)1452*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96, elements_gt_96) { 1453*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1454*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 97; elements < 192; elements++) { 1455*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1456*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1457*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96, xnn_init_f16_expminus_avx2_rr1_p2_params); 1458*4bdc9457SAndroid Build Coastguard Worker } 1459*4bdc9457SAndroid Build Coastguard Worker } 1460*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1461*4bdc9457SAndroid Build Coastguard Worker 1462*4bdc9457SAndroid Build Coastguard Worker 1463*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2,elements_eq_96)1464*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2, elements_eq_96) { 1465*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1466*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1467*4bdc9457SAndroid Build Coastguard Worker .elements(96) 1468*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1469*4bdc9457SAndroid Build Coastguard Worker } 1470*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2,elements_div_96)1471*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2, elements_div_96) { 1472*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1473*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 192; elements < 960; elements += 96) { 1474*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1475*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1476*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1477*4bdc9457SAndroid Build Coastguard Worker } 1478*4bdc9457SAndroid Build Coastguard Worker } 1479*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2,elements_lt_96)1480*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2, elements_lt_96) { 1481*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1482*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 96; elements++) { 1483*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1484*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1485*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1486*4bdc9457SAndroid Build Coastguard Worker } 1487*4bdc9457SAndroid Build Coastguard Worker } 1488*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2,elements_gt_96)1489*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC2, elements_gt_96) { 1490*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1491*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 97; elements < 192; elements++) { 1492*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1493*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1494*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc2, xnn_init_f16_expminus_avx2_rr1_p2_params); 1495*4bdc9457SAndroid Build Coastguard Worker } 1496*4bdc9457SAndroid Build Coastguard Worker } 1497*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1498*4bdc9457SAndroid Build Coastguard Worker 1499*4bdc9457SAndroid Build Coastguard Worker 1500*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3,elements_eq_96)1501*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3, elements_eq_96) { 1502*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1503*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1504*4bdc9457SAndroid Build Coastguard Worker .elements(96) 1505*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1506*4bdc9457SAndroid Build Coastguard Worker } 1507*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3,elements_div_96)1508*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3, elements_div_96) { 1509*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1510*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 192; elements < 960; elements += 96) { 1511*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1512*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1513*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1514*4bdc9457SAndroid Build Coastguard Worker } 1515*4bdc9457SAndroid Build Coastguard Worker } 1516*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3,elements_lt_96)1517*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3, elements_lt_96) { 1518*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1519*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 96; elements++) { 1520*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1521*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1522*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1523*4bdc9457SAndroid Build Coastguard Worker } 1524*4bdc9457SAndroid Build Coastguard Worker } 1525*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3,elements_gt_96)1526*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC3, elements_gt_96) { 1527*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1528*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 97; elements < 192; elements++) { 1529*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1530*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1531*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc3, xnn_init_f16_expminus_avx2_rr1_p2_params); 1532*4bdc9457SAndroid Build Coastguard Worker } 1533*4bdc9457SAndroid Build Coastguard Worker } 1534*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1535*4bdc9457SAndroid Build Coastguard Worker 1536*4bdc9457SAndroid Build Coastguard Worker 1537*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6,elements_eq_96)1538*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6, elements_eq_96) { 1539*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1540*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1541*4bdc9457SAndroid Build Coastguard Worker .elements(96) 1542*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc6, xnn_init_f16_expminus_avx2_rr1_p2_params); 1543*4bdc9457SAndroid Build Coastguard Worker } 1544*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6,elements_div_96)1545*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6, elements_div_96) { 1546*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1547*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 192; elements < 960; elements += 96) { 1548*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1549*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1550*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc6, xnn_init_f16_expminus_avx2_rr1_p2_params); 1551*4bdc9457SAndroid Build Coastguard Worker } 1552*4bdc9457SAndroid Build Coastguard Worker } 1553*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6,elements_lt_96)1554*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6, elements_lt_96) { 1555*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1556*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 1; elements < 96; elements++) { 1557*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1558*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1559*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc6, xnn_init_f16_expminus_avx2_rr1_p2_params); 1560*4bdc9457SAndroid Build Coastguard Worker } 1561*4bdc9457SAndroid Build Coastguard Worker } 1562*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6,elements_gt_96)1563*4bdc9457SAndroid Build Coastguard Worker TEST(F16_RADDSTOREEXPMINUSMAX__AVX2_RR1_P2_X96_ACC6, elements_gt_96) { 1564*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_AVX2; 1565*4bdc9457SAndroid Build Coastguard Worker for (size_t elements = 97; elements < 192; elements++) { 1566*4bdc9457SAndroid Build Coastguard Worker RAddStoreExpMinusMaxMicrokernelTester() 1567*4bdc9457SAndroid Build Coastguard Worker .elements(elements) 1568*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_raddstoreexpminusmax_ukernel__avx2_rr1_p2_x96_acc6, xnn_init_f16_expminus_avx2_rr1_p2_params); 1569*4bdc9457SAndroid Build Coastguard Worker } 1570*4bdc9457SAndroid Build Coastguard Worker } 1571*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 1572