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-vsqrdiff.yaml 8*4bdc9457SAndroid Build Coastguard Worker // Generator: tools/generate-vbinary-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/microparams-init.h> 17*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/vbinary.h> 18*4bdc9457SAndroid Build Coastguard Worker #include "vbinary-microkernel-tester.h" 19*4bdc9457SAndroid Build Coastguard Worker 20*4bdc9457SAndroid Build Coastguard Worker 21*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64 TEST(F16_VSQRDIFF__NEONFP16ARITH_X8,batch_eq_8)22*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8, batch_eq_8) { 23*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 24*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 25*4bdc9457SAndroid Build Coastguard Worker .batch_size(8) 26*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 27*4bdc9457SAndroid Build Coastguard Worker } 28*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8,batch_div_8)29*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8, batch_div_8) { 30*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 31*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 16; batch_size < 80; batch_size += 8) { 32*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 33*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 34*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 35*4bdc9457SAndroid Build Coastguard Worker } 36*4bdc9457SAndroid Build Coastguard Worker } 37*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8,batch_lt_8)38*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8, batch_lt_8) { 39*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 40*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 8; batch_size++) { 41*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 42*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 43*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 44*4bdc9457SAndroid Build Coastguard Worker } 45*4bdc9457SAndroid Build Coastguard Worker } 46*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8,batch_gt_8)47*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8, batch_gt_8) { 48*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 49*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 9; batch_size < 16; batch_size++) { 50*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 51*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 52*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 53*4bdc9457SAndroid Build Coastguard Worker } 54*4bdc9457SAndroid Build Coastguard Worker } 55*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8,inplace_a)56*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8, inplace_a) { 57*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 58*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 59*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 60*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 61*4bdc9457SAndroid Build Coastguard Worker .inplace_a(true) 62*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 63*4bdc9457SAndroid Build Coastguard Worker } 64*4bdc9457SAndroid Build Coastguard Worker } 65*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8,inplace_b)66*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8, inplace_b) { 67*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 68*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 69*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 70*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 71*4bdc9457SAndroid Build Coastguard Worker .inplace_b(true) 72*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 73*4bdc9457SAndroid Build Coastguard Worker } 74*4bdc9457SAndroid Build Coastguard Worker } 75*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8,inplace_a_and_b)76*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X8, inplace_a_and_b) { 77*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 78*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 79*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 80*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 81*4bdc9457SAndroid Build Coastguard Worker .inplace_a(true) 82*4bdc9457SAndroid Build Coastguard Worker .inplace_b(true) 83*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 84*4bdc9457SAndroid Build Coastguard Worker } 85*4bdc9457SAndroid Build Coastguard Worker } 86*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64 87*4bdc9457SAndroid Build Coastguard Worker 88*4bdc9457SAndroid Build Coastguard Worker 89*4bdc9457SAndroid Build Coastguard Worker #if XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64 TEST(F16_VSQRDIFF__NEONFP16ARITH_X16,batch_eq_16)90*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16, batch_eq_16) { 91*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 92*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 93*4bdc9457SAndroid Build Coastguard Worker .batch_size(16) 94*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 95*4bdc9457SAndroid Build Coastguard Worker } 96*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16,batch_div_16)97*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16, batch_div_16) { 98*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 99*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 32; batch_size < 160; batch_size += 16) { 100*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 101*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 102*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 103*4bdc9457SAndroid Build Coastguard Worker } 104*4bdc9457SAndroid Build Coastguard Worker } 105*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16,batch_lt_16)106*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16, batch_lt_16) { 107*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 108*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 16; batch_size++) { 109*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 110*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 111*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 112*4bdc9457SAndroid Build Coastguard Worker } 113*4bdc9457SAndroid Build Coastguard Worker } 114*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16,batch_gt_16)115*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16, batch_gt_16) { 116*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 117*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 17; batch_size < 32; batch_size++) { 118*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 119*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 120*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 121*4bdc9457SAndroid Build Coastguard Worker } 122*4bdc9457SAndroid Build Coastguard Worker } 123*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16,inplace_a)124*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16, inplace_a) { 125*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 126*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 127*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 128*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 129*4bdc9457SAndroid Build Coastguard Worker .inplace_a(true) 130*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 131*4bdc9457SAndroid Build Coastguard Worker } 132*4bdc9457SAndroid Build Coastguard Worker } 133*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16,inplace_b)134*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16, inplace_b) { 135*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 136*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 137*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 138*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 139*4bdc9457SAndroid Build Coastguard Worker .inplace_b(true) 140*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 141*4bdc9457SAndroid Build Coastguard Worker } 142*4bdc9457SAndroid Build Coastguard Worker } 143*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16,inplace_a_and_b)144*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__NEONFP16ARITH_X16, inplace_a_and_b) { 145*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON_FP16_ARITH; 146*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 147*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 148*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 149*4bdc9457SAndroid Build Coastguard Worker .inplace_a(true) 150*4bdc9457SAndroid Build Coastguard Worker .inplace_b(true) 151*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__neonfp16arith_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 152*4bdc9457SAndroid Build Coastguard Worker } 153*4bdc9457SAndroid Build Coastguard Worker } 154*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ENABLE_ARM_FP16 && XNN_ARCH_ARM64 155*4bdc9457SAndroid Build Coastguard Worker 156*4bdc9457SAndroid Build Coastguard Worker 157*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_VSQRDIFF__F16C_X8,batch_eq_8)158*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8, batch_eq_8) { 159*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 160*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 161*4bdc9457SAndroid Build Coastguard Worker .batch_size(8) 162*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 163*4bdc9457SAndroid Build Coastguard Worker } 164*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8,batch_div_8)165*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8, batch_div_8) { 166*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 167*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 16; batch_size < 80; batch_size += 8) { 168*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 169*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 170*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 171*4bdc9457SAndroid Build Coastguard Worker } 172*4bdc9457SAndroid Build Coastguard Worker } 173*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8,batch_lt_8)174*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8, batch_lt_8) { 175*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 176*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 8; batch_size++) { 177*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 178*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 179*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 180*4bdc9457SAndroid Build Coastguard Worker } 181*4bdc9457SAndroid Build Coastguard Worker } 182*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8,batch_gt_8)183*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8, batch_gt_8) { 184*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 185*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 9; batch_size < 16; batch_size++) { 186*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 187*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 188*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 189*4bdc9457SAndroid Build Coastguard Worker } 190*4bdc9457SAndroid Build Coastguard Worker } 191*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8,inplace_a)192*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8, inplace_a) { 193*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 194*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 195*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 196*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 197*4bdc9457SAndroid Build Coastguard Worker .inplace_a(true) 198*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 199*4bdc9457SAndroid Build Coastguard Worker } 200*4bdc9457SAndroid Build Coastguard Worker } 201*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8,inplace_b)202*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8, inplace_b) { 203*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 204*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 205*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 206*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 207*4bdc9457SAndroid Build Coastguard Worker .inplace_b(true) 208*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 209*4bdc9457SAndroid Build Coastguard Worker } 210*4bdc9457SAndroid Build Coastguard Worker } 211*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8,inplace_a_and_b)212*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X8, inplace_a_and_b) { 213*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 214*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 215*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 216*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 217*4bdc9457SAndroid Build Coastguard Worker .inplace_a(true) 218*4bdc9457SAndroid Build Coastguard Worker .inplace_b(true) 219*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x8, VBinaryMicrokernelTester::OpType::SqrDiff); 220*4bdc9457SAndroid Build Coastguard Worker } 221*4bdc9457SAndroid Build Coastguard Worker } 222*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 223*4bdc9457SAndroid Build Coastguard Worker 224*4bdc9457SAndroid Build Coastguard Worker 225*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64 TEST(F16_VSQRDIFF__F16C_X16,batch_eq_16)226*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16, batch_eq_16) { 227*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 228*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 229*4bdc9457SAndroid Build Coastguard Worker .batch_size(16) 230*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 231*4bdc9457SAndroid Build Coastguard Worker } 232*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16,batch_div_16)233*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16, batch_div_16) { 234*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 235*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 32; batch_size < 160; batch_size += 16) { 236*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 237*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 238*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 239*4bdc9457SAndroid Build Coastguard Worker } 240*4bdc9457SAndroid Build Coastguard Worker } 241*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16,batch_lt_16)242*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16, batch_lt_16) { 243*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 244*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 16; batch_size++) { 245*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 246*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 247*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 248*4bdc9457SAndroid Build Coastguard Worker } 249*4bdc9457SAndroid Build Coastguard Worker } 250*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16,batch_gt_16)251*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16, batch_gt_16) { 252*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 253*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 17; batch_size < 32; batch_size++) { 254*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 255*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 256*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 257*4bdc9457SAndroid Build Coastguard Worker } 258*4bdc9457SAndroid Build Coastguard Worker } 259*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16,inplace_a)260*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16, inplace_a) { 261*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 262*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 263*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 264*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 265*4bdc9457SAndroid Build Coastguard Worker .inplace_a(true) 266*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 267*4bdc9457SAndroid Build Coastguard Worker } 268*4bdc9457SAndroid Build Coastguard Worker } 269*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16,inplace_b)270*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16, inplace_b) { 271*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 272*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 273*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 274*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 275*4bdc9457SAndroid Build Coastguard Worker .inplace_b(true) 276*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 277*4bdc9457SAndroid Build Coastguard Worker } 278*4bdc9457SAndroid Build Coastguard Worker } 279*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16,inplace_a_and_b)280*4bdc9457SAndroid Build Coastguard Worker TEST(F16_VSQRDIFF__F16C_X16, inplace_a_and_b) { 281*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_X86_F16C; 282*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 283*4bdc9457SAndroid Build Coastguard Worker VBinaryMicrokernelTester() 284*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 285*4bdc9457SAndroid Build Coastguard Worker .inplace_a(true) 286*4bdc9457SAndroid Build Coastguard Worker .inplace_b(true) 287*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_f16_vsqrdiff_ukernel__f16c_x16, VBinaryMicrokernelTester::OpType::SqrDiff); 288*4bdc9457SAndroid Build Coastguard Worker } 289*4bdc9457SAndroid Build Coastguard Worker } 290*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_X86 || XNN_ARCH_X86_64 291