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-vclamp.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_VCLAMP__NEONFP16ARITH_X8,batch_eq_8)21*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__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_vclamp_ukernel__neonfp16arith_x8, xnn_init_f16_minmax_neon_params); 26*4bdc9457SAndroid Build Coastguard Worker } 27*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X8,batch_div_8)28*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__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_vclamp_ukernel__neonfp16arith_x8, xnn_init_f16_minmax_neon_params); 34*4bdc9457SAndroid Build Coastguard Worker } 35*4bdc9457SAndroid Build Coastguard Worker } 36*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X8,batch_lt_8)37*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__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_vclamp_ukernel__neonfp16arith_x8, xnn_init_f16_minmax_neon_params); 43*4bdc9457SAndroid Build Coastguard Worker } 44*4bdc9457SAndroid Build Coastguard Worker } 45*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X8,batch_gt_8)46*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__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_vclamp_ukernel__neonfp16arith_x8, xnn_init_f16_minmax_neon_params); 52*4bdc9457SAndroid Build Coastguard Worker } 53*4bdc9457SAndroid Build Coastguard Worker } 54*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X8,inplace)55*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__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_vclamp_ukernel__neonfp16arith_x8, xnn_init_f16_minmax_neon_params); 62*4bdc9457SAndroid Build Coastguard Worker } 63*4bdc9457SAndroid Build Coastguard Worker } 64*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X8,qmin)65*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X8, qmin) { 66*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 67*4bdc9457SAndroid Build Coastguard Worker for (uint8_t qmin = 1; qmin < 255; qmin++) { 68*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 69*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 70*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 71*4bdc9457SAndroid Build Coastguard Worker .qmin(qmin) 72*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__neonfp16arith_x8, xnn_init_f16_minmax_neon_params); 73*4bdc9457SAndroid Build Coastguard Worker } 74*4bdc9457SAndroid Build Coastguard Worker } 75*4bdc9457SAndroid Build Coastguard Worker } 76*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X8,qmax)77*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X8, qmax) { 78*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 79*4bdc9457SAndroid Build Coastguard Worker for (uint8_t qmax = 1; qmax < 255; qmax++) { 80*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 81*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 82*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 83*4bdc9457SAndroid Build Coastguard Worker .qmax(qmax) 84*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__neonfp16arith_x8, xnn_init_f16_minmax_neon_params); 85*4bdc9457SAndroid Build Coastguard Worker } 86*4bdc9457SAndroid Build Coastguard Worker } 87*4bdc9457SAndroid Build Coastguard Worker } 88*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 89*4bdc9457SAndroid Build Coastguard Worker 90*4bdc9457SAndroid Build Coastguard Worker 91*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) TEST(F16_VCLAMP__NEONFP16ARITH_X16,batch_eq_16)92*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16, batch_eq_16) { 93*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 94*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 95*4bdc9457SAndroid Build Coastguard Worker .batch_size(16) 96*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__neonfp16arith_x16, xnn_init_f16_minmax_neon_params); 97*4bdc9457SAndroid Build Coastguard Worker } 98*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16,batch_div_16)99*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16, batch_div_16) { 100*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 101*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 32; batch_size < 160; batch_size += 16) { 102*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 103*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 104*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__neonfp16arith_x16, xnn_init_f16_minmax_neon_params); 105*4bdc9457SAndroid Build Coastguard Worker } 106*4bdc9457SAndroid Build Coastguard Worker } 107*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16,batch_lt_16)108*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16, batch_lt_16) { 109*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 110*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 16; batch_size++) { 111*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 112*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 113*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__neonfp16arith_x16, xnn_init_f16_minmax_neon_params); 114*4bdc9457SAndroid Build Coastguard Worker } 115*4bdc9457SAndroid Build Coastguard Worker } 116*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16,batch_gt_16)117*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16, batch_gt_16) { 118*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 119*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 17; batch_size < 32; batch_size++) { 120*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 121*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 122*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__neonfp16arith_x16, xnn_init_f16_minmax_neon_params); 123*4bdc9457SAndroid Build Coastguard Worker } 124*4bdc9457SAndroid Build Coastguard Worker } 125*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16,inplace)126*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16, inplace) { 127*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 128*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 129*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 130*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 131*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 132*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__neonfp16arith_x16, xnn_init_f16_minmax_neon_params); 133*4bdc9457SAndroid Build Coastguard Worker } 134*4bdc9457SAndroid Build Coastguard Worker } 135*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16,qmin)136*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16, qmin) { 137*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 138*4bdc9457SAndroid Build Coastguard Worker for (uint8_t qmin = 1; qmin < 255; qmin++) { 139*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 140*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 141*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 142*4bdc9457SAndroid Build Coastguard Worker .qmin(qmin) 143*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__neonfp16arith_x16, xnn_init_f16_minmax_neon_params); 144*4bdc9457SAndroid Build Coastguard Worker } 145*4bdc9457SAndroid Build Coastguard Worker } 146*4bdc9457SAndroid Build Coastguard Worker } 147*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16,qmax)148*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__NEONFP16ARITH_X16, qmax) { 149*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 150*4bdc9457SAndroid Build Coastguard Worker for (uint8_t qmax = 1; qmax < 255; qmax++) { 151*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 152*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 153*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 154*4bdc9457SAndroid Build Coastguard Worker .qmax(qmax) 155*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__neonfp16arith_x16, xnn_init_f16_minmax_neon_params); 156*4bdc9457SAndroid Build Coastguard Worker } 157*4bdc9457SAndroid Build Coastguard Worker } 158*4bdc9457SAndroid Build Coastguard Worker } 159*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && (XNN_ARCH_ARM || XNN_ARCH_ARM64) 160*4bdc9457SAndroid Build Coastguard Worker 161*4bdc9457SAndroid Build Coastguard Worker 162*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_VCLAMP__F16C_X8,batch_eq_8)163*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8, batch_eq_8) { 164*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 165*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 166*4bdc9457SAndroid Build Coastguard Worker .batch_size(8) 167*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x8, xnn_init_f16_minmax_avx_params); 168*4bdc9457SAndroid Build Coastguard Worker } 169*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8,batch_div_8)170*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8, batch_div_8) { 171*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 172*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 16; batch_size < 80; batch_size += 8) { 173*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 174*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 175*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x8, xnn_init_f16_minmax_avx_params); 176*4bdc9457SAndroid Build Coastguard Worker } 177*4bdc9457SAndroid Build Coastguard Worker } 178*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8,batch_lt_8)179*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8, batch_lt_8) { 180*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 181*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 8; batch_size++) { 182*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 183*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 184*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x8, xnn_init_f16_minmax_avx_params); 185*4bdc9457SAndroid Build Coastguard Worker } 186*4bdc9457SAndroid Build Coastguard Worker } 187*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8,batch_gt_8)188*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8, batch_gt_8) { 189*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 190*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 9; batch_size < 16; batch_size++) { 191*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 192*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 193*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x8, xnn_init_f16_minmax_avx_params); 194*4bdc9457SAndroid Build Coastguard Worker } 195*4bdc9457SAndroid Build Coastguard Worker } 196*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8,inplace)197*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8, inplace) { 198*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 199*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 200*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 201*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 202*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 203*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x8, xnn_init_f16_minmax_avx_params); 204*4bdc9457SAndroid Build Coastguard Worker } 205*4bdc9457SAndroid Build Coastguard Worker } 206*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8,qmin)207*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8, qmin) { 208*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 209*4bdc9457SAndroid Build Coastguard Worker for (uint8_t qmin = 1; qmin < 255; qmin++) { 210*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 211*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 212*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 213*4bdc9457SAndroid Build Coastguard Worker .qmin(qmin) 214*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x8, xnn_init_f16_minmax_avx_params); 215*4bdc9457SAndroid Build Coastguard Worker } 216*4bdc9457SAndroid Build Coastguard Worker } 217*4bdc9457SAndroid Build Coastguard Worker } 218*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8,qmax)219*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X8, qmax) { 220*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 221*4bdc9457SAndroid Build Coastguard Worker for (uint8_t qmax = 1; qmax < 255; qmax++) { 222*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 223*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 224*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 225*4bdc9457SAndroid Build Coastguard Worker .qmax(qmax) 226*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x8, xnn_init_f16_minmax_avx_params); 227*4bdc9457SAndroid Build Coastguard Worker } 228*4bdc9457SAndroid Build Coastguard Worker } 229*4bdc9457SAndroid Build Coastguard Worker } 230*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 231*4bdc9457SAndroid Build Coastguard Worker 232*4bdc9457SAndroid Build Coastguard Worker 233*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_VCLAMP__F16C_X16,batch_eq_16)234*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16, batch_eq_16) { 235*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 236*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 237*4bdc9457SAndroid Build Coastguard Worker .batch_size(16) 238*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x16, xnn_init_f16_minmax_avx_params); 239*4bdc9457SAndroid Build Coastguard Worker } 240*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16,batch_div_16)241*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16, batch_div_16) { 242*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 243*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 32; batch_size < 160; batch_size += 16) { 244*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 245*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 246*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x16, xnn_init_f16_minmax_avx_params); 247*4bdc9457SAndroid Build Coastguard Worker } 248*4bdc9457SAndroid Build Coastguard Worker } 249*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16,batch_lt_16)250*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16, batch_lt_16) { 251*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 252*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 16; batch_size++) { 253*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 254*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 255*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x16, xnn_init_f16_minmax_avx_params); 256*4bdc9457SAndroid Build Coastguard Worker } 257*4bdc9457SAndroid Build Coastguard Worker } 258*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16,batch_gt_16)259*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16, batch_gt_16) { 260*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 261*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 17; batch_size < 32; batch_size++) { 262*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 263*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 264*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x16, xnn_init_f16_minmax_avx_params); 265*4bdc9457SAndroid Build Coastguard Worker } 266*4bdc9457SAndroid Build Coastguard Worker } 267*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16,inplace)268*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16, inplace) { 269*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 270*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 271*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 272*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 273*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 274*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x16, xnn_init_f16_minmax_avx_params); 275*4bdc9457SAndroid Build Coastguard Worker } 276*4bdc9457SAndroid Build Coastguard Worker } 277*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16,qmin)278*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16, qmin) { 279*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 280*4bdc9457SAndroid Build Coastguard Worker for (uint8_t qmin = 1; qmin < 255; qmin++) { 281*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 282*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 283*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 284*4bdc9457SAndroid Build Coastguard Worker .qmin(qmin) 285*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x16, xnn_init_f16_minmax_avx_params); 286*4bdc9457SAndroid Build Coastguard Worker } 287*4bdc9457SAndroid Build Coastguard Worker } 288*4bdc9457SAndroid Build Coastguard Worker } 289*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16,qmax)290*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VCLAMP__F16C_X16, qmax) { 291*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 292*4bdc9457SAndroid Build Coastguard Worker for (uint8_t qmax = 1; qmax < 255; qmax++) { 293*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 294*4bdc9457SAndroid Build Coastguard Worker VUnaryMicrokernelTester() 295*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 296*4bdc9457SAndroid Build Coastguard Worker .qmax(qmax) 297*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vclamp_ukernel__f16c_x16, xnn_init_f16_minmax_avx_params); 298*4bdc9457SAndroid Build Coastguard Worker } 299*4bdc9457SAndroid Build Coastguard Worker } 300*4bdc9457SAndroid Build Coastguard Worker } 301*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 302