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-vabs.yaml 8*4bdc9457SAndroid Build Coastguard Worker // Generator: tools/generate-vunary-test.py 9*4bdc9457SAndroid Build Coastguard Worker 10*4bdc9457SAndroid Build Coastguard Worker 11*4bdc9457SAndroid Build Coastguard Worker #include <gtest/gtest.h> 12*4bdc9457SAndroid Build Coastguard Worker 13*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/common.h> 14*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/isa-checks.h> 15*4bdc9457SAndroid Build Coastguard Worker 16*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/vunary.h> 17*4bdc9457SAndroid Build Coastguard Worker #include "vunary-microkernel-tester.h" 18*4bdc9457SAndroid Build Coastguard Worker 19*4bdc9457SAndroid Build Coastguard Worker 20*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_VABS__NEONFP16ARITH_X8,batch_eq_8)21*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X8, batch_eq_8) { 22*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 23*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 24*4bdc9457SAndroid Build Coastguard Worker .batch_size(8) 25*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x8); 26*4bdc9457SAndroid Build Coastguard Worker } 27*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X8,batch_div_8)28*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X8, batch_div_8) { 29*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 30*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 16; batch_size < 80; batch_size += 8) { 31*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 32*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 33*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x8); 34*4bdc9457SAndroid Build Coastguard Worker } 35*4bdc9457SAndroid Build Coastguard Worker } 36*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X8,batch_lt_8)37*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X8, batch_lt_8) { 38*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 39*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 8; batch_size++) { 40*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 41*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 42*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x8); 43*4bdc9457SAndroid Build Coastguard Worker } 44*4bdc9457SAndroid Build Coastguard Worker } 45*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X8,batch_gt_8)46*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X8, batch_gt_8) { 47*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 48*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 9; batch_size < 16; batch_size++) { 49*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 50*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 51*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x8); 52*4bdc9457SAndroid Build Coastguard Worker } 53*4bdc9457SAndroid Build Coastguard Worker } 54*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X8,inplace)55*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X8, inplace) { 56*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 57*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 58*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 59*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 60*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 61*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x8); 62*4bdc9457SAndroid Build Coastguard Worker } 63*4bdc9457SAndroid Build Coastguard Worker } 64*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 65*4bdc9457SAndroid Build Coastguard Worker 66*4bdc9457SAndroid Build Coastguard Worker 67*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_VABS__NEONFP16ARITH_X16,batch_eq_16)68*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X16, batch_eq_16) { 69*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 70*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 71*4bdc9457SAndroid Build Coastguard Worker .batch_size(16) 72*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x16); 73*4bdc9457SAndroid Build Coastguard Worker } 74*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X16,batch_div_16)75*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X16, batch_div_16) { 76*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 77*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 32; batch_size < 160; batch_size += 16) { 78*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 79*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 80*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x16); 81*4bdc9457SAndroid Build Coastguard Worker } 82*4bdc9457SAndroid Build Coastguard Worker } 83*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X16,batch_lt_16)84*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X16, batch_lt_16) { 85*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 86*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 16; batch_size++) { 87*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 88*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 89*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x16); 90*4bdc9457SAndroid Build Coastguard Worker } 91*4bdc9457SAndroid Build Coastguard Worker } 92*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X16,batch_gt_16)93*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X16, batch_gt_16) { 94*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 95*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 17; batch_size < 32; batch_size++) { 96*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 97*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 98*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x16); 99*4bdc9457SAndroid Build Coastguard Worker } 100*4bdc9457SAndroid Build Coastguard Worker } 101*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X16,inplace)102*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__NEONFP16ARITH_X16, inplace) { 103*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 104*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 105*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 106*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 107*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 108*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__neonfp16arith_x16); 109*4bdc9457SAndroid Build Coastguard Worker } 110*4bdc9457SAndroid Build Coastguard Worker } 111*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 112*4bdc9457SAndroid Build Coastguard Worker 113*4bdc9457SAndroid Build Coastguard Worker 114*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_VABS__SSE2_X8,batch_eq_8)115*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X8, batch_eq_8) { 116*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 117*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 118*4bdc9457SAndroid Build Coastguard Worker .batch_size(8) 119*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x8, xnn_init_f16_abs_sse_params); 120*4bdc9457SAndroid Build Coastguard Worker } 121*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X8,batch_div_8)122*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X8, batch_div_8) { 123*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 124*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 16; batch_size < 80; batch_size += 8) { 125*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 126*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 127*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x8, xnn_init_f16_abs_sse_params); 128*4bdc9457SAndroid Build Coastguard Worker } 129*4bdc9457SAndroid Build Coastguard Worker } 130*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X8,batch_lt_8)131*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X8, batch_lt_8) { 132*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 133*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 8; batch_size++) { 134*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 135*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 136*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x8, xnn_init_f16_abs_sse_params); 137*4bdc9457SAndroid Build Coastguard Worker } 138*4bdc9457SAndroid Build Coastguard Worker } 139*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X8,batch_gt_8)140*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X8, batch_gt_8) { 141*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 142*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 9; batch_size < 16; batch_size++) { 143*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 144*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 145*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x8, xnn_init_f16_abs_sse_params); 146*4bdc9457SAndroid Build Coastguard Worker } 147*4bdc9457SAndroid Build Coastguard Worker } 148*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X8,inplace)149*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X8, inplace) { 150*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 151*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 152*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 153*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 154*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 155*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x8, xnn_init_f16_abs_sse_params); 156*4bdc9457SAndroid Build Coastguard Worker } 157*4bdc9457SAndroid Build Coastguard Worker } 158*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 159*4bdc9457SAndroid Build Coastguard Worker 160*4bdc9457SAndroid Build Coastguard Worker 161*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_VABS__SSE2_X16,batch_eq_16)162*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X16, batch_eq_16) { 163*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 164*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 165*4bdc9457SAndroid Build Coastguard Worker .batch_size(16) 166*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x16, xnn_init_f16_abs_sse_params); 167*4bdc9457SAndroid Build Coastguard Worker } 168*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X16,batch_div_16)169*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X16, batch_div_16) { 170*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 171*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 32; batch_size < 160; batch_size += 16) { 172*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 173*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 174*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x16, xnn_init_f16_abs_sse_params); 175*4bdc9457SAndroid Build Coastguard Worker } 176*4bdc9457SAndroid Build Coastguard Worker } 177*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X16,batch_lt_16)178*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X16, batch_lt_16) { 179*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 180*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 16; batch_size++) { 181*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 182*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 183*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x16, xnn_init_f16_abs_sse_params); 184*4bdc9457SAndroid Build Coastguard Worker } 185*4bdc9457SAndroid Build Coastguard Worker } 186*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X16,batch_gt_16)187*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X16, batch_gt_16) { 188*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 189*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 17; batch_size < 32; batch_size++) { 190*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 191*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 192*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x16, xnn_init_f16_abs_sse_params); 193*4bdc9457SAndroid Build Coastguard Worker } 194*4bdc9457SAndroid Build Coastguard Worker } 195*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X16,inplace)196*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VABS__SSE2_X16, inplace) { 197*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_SSE2; 198*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 199*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 200*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 201*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 202*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vabs_ukernel__sse2_x16, xnn_init_f16_abs_sse_params); 203*4bdc9457SAndroid Build Coastguard Worker } 204*4bdc9457SAndroid Build Coastguard Worker } 205*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 206