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/qs8-vmulc-minmax-rndnu.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/vmul.h> 18*4bdc9457SAndroid Build Coastguard Worker #include "vmulc-microkernel-tester.h" 19*4bdc9457SAndroid Build Coastguard Worker 20*4bdc9457SAndroid Build Coastguard Worker 21*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64 TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,batch_eq_8)22*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, batch_eq_8) { 23*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 24*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 25*4bdc9457SAndroid Build Coastguard Worker .batch_size(8) 26*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 27*4bdc9457SAndroid Build Coastguard Worker } 28*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,batch_div_8)29*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, batch_div_8) { 30*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 31*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 16; batch_size < 80; batch_size += 8) { 32*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 33*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 34*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 35*4bdc9457SAndroid Build Coastguard Worker } 36*4bdc9457SAndroid Build Coastguard Worker } 37*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,batch_lt_8)38*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, batch_lt_8) { 39*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 40*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 8; batch_size++) { 41*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 42*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 43*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 44*4bdc9457SAndroid Build Coastguard Worker } 45*4bdc9457SAndroid Build Coastguard Worker } 46*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,batch_gt_8)47*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, batch_gt_8) { 48*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 49*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 9; batch_size < 16; batch_size++) { 50*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 51*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 52*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 53*4bdc9457SAndroid Build Coastguard Worker } 54*4bdc9457SAndroid Build Coastguard Worker } 55*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,inplace)56*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, inplace) { 57*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 58*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 59*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 60*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 61*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 62*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 63*4bdc9457SAndroid Build Coastguard Worker } 64*4bdc9457SAndroid Build Coastguard Worker } 65*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,a_zero_point)66*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, a_zero_point) { 67*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 68*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 69*4bdc9457SAndroid Build Coastguard Worker for (int32_t a_zero_point = -128; a_zero_point <= 127; a_zero_point += 51) { 70*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 71*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 72*4bdc9457SAndroid Build Coastguard Worker .a_zero_point(a_zero_point) 73*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 74*4bdc9457SAndroid Build Coastguard Worker } 75*4bdc9457SAndroid Build Coastguard Worker } 76*4bdc9457SAndroid Build Coastguard Worker } 77*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,b_zero_point)78*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, b_zero_point) { 79*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 80*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 81*4bdc9457SAndroid Build Coastguard Worker for (int32_t b_zero_point = -128; b_zero_point <= 127; b_zero_point += 51) { 82*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 83*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 84*4bdc9457SAndroid Build Coastguard Worker .b_zero_point(b_zero_point) 85*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 86*4bdc9457SAndroid Build Coastguard Worker } 87*4bdc9457SAndroid Build Coastguard Worker } 88*4bdc9457SAndroid Build Coastguard Worker } 89*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,y_zero_point)90*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, y_zero_point) { 91*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 92*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 93*4bdc9457SAndroid Build Coastguard Worker for (int32_t y_zero_point = -128; y_zero_point <= 127; y_zero_point += 51) { 94*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 95*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 96*4bdc9457SAndroid Build Coastguard Worker .y_zero_point(y_zero_point) 97*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 98*4bdc9457SAndroid Build Coastguard Worker } 99*4bdc9457SAndroid Build Coastguard Worker } 100*4bdc9457SAndroid Build Coastguard Worker } 101*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,a_scale)102*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, a_scale) { 103*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 104*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 105*4bdc9457SAndroid Build Coastguard Worker for (float a_scale = 0.1f; a_scale <= 10.0f; a_scale *= 3.14f) { 106*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 107*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 108*4bdc9457SAndroid Build Coastguard Worker .a_scale(a_scale) 109*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 110*4bdc9457SAndroid Build Coastguard Worker } 111*4bdc9457SAndroid Build Coastguard Worker } 112*4bdc9457SAndroid Build Coastguard Worker } 113*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,b_scale)114*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, b_scale) { 115*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 116*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 117*4bdc9457SAndroid Build Coastguard Worker for (float b_scale = 0.1f; b_scale <= 10.0f; b_scale *= 3.14f) { 118*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 119*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 120*4bdc9457SAndroid Build Coastguard Worker .b_scale(b_scale) 121*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 122*4bdc9457SAndroid Build Coastguard Worker } 123*4bdc9457SAndroid Build Coastguard Worker } 124*4bdc9457SAndroid Build Coastguard Worker } 125*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,y_scale)126*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, y_scale) { 127*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 128*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 129*4bdc9457SAndroid Build Coastguard Worker for (float y_scale = 0.1f; y_scale <= 10.0f; y_scale *= 3.14f) { 130*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 131*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 132*4bdc9457SAndroid Build Coastguard Worker .y_scale(y_scale) 133*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 134*4bdc9457SAndroid Build Coastguard Worker } 135*4bdc9457SAndroid Build Coastguard Worker } 136*4bdc9457SAndroid Build Coastguard Worker } 137*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,qmin)138*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, qmin) { 139*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 140*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 141*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 142*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 143*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 144*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 145*4bdc9457SAndroid Build Coastguard Worker } 146*4bdc9457SAndroid Build Coastguard Worker } 147*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8,qmax)148*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X8, qmax) { 149*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 150*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) { 151*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 152*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 153*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 154*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x8, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 155*4bdc9457SAndroid Build Coastguard Worker } 156*4bdc9457SAndroid Build Coastguard Worker } 157*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64 158*4bdc9457SAndroid Build Coastguard Worker 159*4bdc9457SAndroid Build Coastguard Worker 160*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64 TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,batch_eq_16)161*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, batch_eq_16) { 162*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 163*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 164*4bdc9457SAndroid Build Coastguard Worker .batch_size(16) 165*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 166*4bdc9457SAndroid Build Coastguard Worker } 167*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,batch_div_16)168*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, batch_div_16) { 169*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 170*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 32; batch_size < 160; batch_size += 16) { 171*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 172*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 173*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 174*4bdc9457SAndroid Build Coastguard Worker } 175*4bdc9457SAndroid Build Coastguard Worker } 176*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,batch_lt_16)177*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, batch_lt_16) { 178*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 179*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 16; batch_size++) { 180*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 181*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 182*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 183*4bdc9457SAndroid Build Coastguard Worker } 184*4bdc9457SAndroid Build Coastguard Worker } 185*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,batch_gt_16)186*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, batch_gt_16) { 187*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 188*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 17; batch_size < 32; batch_size++) { 189*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 190*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 191*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 192*4bdc9457SAndroid Build Coastguard Worker } 193*4bdc9457SAndroid Build Coastguard Worker } 194*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,inplace)195*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, inplace) { 196*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 197*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 198*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 199*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 200*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 201*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 202*4bdc9457SAndroid Build Coastguard Worker } 203*4bdc9457SAndroid Build Coastguard Worker } 204*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,a_zero_point)205*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, a_zero_point) { 206*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 207*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 208*4bdc9457SAndroid Build Coastguard Worker for (int32_t a_zero_point = -128; a_zero_point <= 127; a_zero_point += 51) { 209*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 210*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 211*4bdc9457SAndroid Build Coastguard Worker .a_zero_point(a_zero_point) 212*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 213*4bdc9457SAndroid Build Coastguard Worker } 214*4bdc9457SAndroid Build Coastguard Worker } 215*4bdc9457SAndroid Build Coastguard Worker } 216*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,b_zero_point)217*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, b_zero_point) { 218*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 219*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 220*4bdc9457SAndroid Build Coastguard Worker for (int32_t b_zero_point = -128; b_zero_point <= 127; b_zero_point += 51) { 221*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 222*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 223*4bdc9457SAndroid Build Coastguard Worker .b_zero_point(b_zero_point) 224*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 225*4bdc9457SAndroid Build Coastguard Worker } 226*4bdc9457SAndroid Build Coastguard Worker } 227*4bdc9457SAndroid Build Coastguard Worker } 228*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,y_zero_point)229*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, y_zero_point) { 230*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 231*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 232*4bdc9457SAndroid Build Coastguard Worker for (int32_t y_zero_point = -128; y_zero_point <= 127; y_zero_point += 51) { 233*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 234*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 235*4bdc9457SAndroid Build Coastguard Worker .y_zero_point(y_zero_point) 236*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 237*4bdc9457SAndroid Build Coastguard Worker } 238*4bdc9457SAndroid Build Coastguard Worker } 239*4bdc9457SAndroid Build Coastguard Worker } 240*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,a_scale)241*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, a_scale) { 242*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 243*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 244*4bdc9457SAndroid Build Coastguard Worker for (float a_scale = 0.1f; a_scale <= 10.0f; a_scale *= 3.14f) { 245*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 246*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 247*4bdc9457SAndroid Build Coastguard Worker .a_scale(a_scale) 248*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 249*4bdc9457SAndroid Build Coastguard Worker } 250*4bdc9457SAndroid Build Coastguard Worker } 251*4bdc9457SAndroid Build Coastguard Worker } 252*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,b_scale)253*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, b_scale) { 254*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 255*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 256*4bdc9457SAndroid Build Coastguard Worker for (float b_scale = 0.1f; b_scale <= 10.0f; b_scale *= 3.14f) { 257*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 258*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 259*4bdc9457SAndroid Build Coastguard Worker .b_scale(b_scale) 260*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 261*4bdc9457SAndroid Build Coastguard Worker } 262*4bdc9457SAndroid Build Coastguard Worker } 263*4bdc9457SAndroid Build Coastguard Worker } 264*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,y_scale)265*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, y_scale) { 266*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 267*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 268*4bdc9457SAndroid Build Coastguard Worker for (float y_scale = 0.1f; y_scale <= 10.0f; y_scale *= 3.14f) { 269*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 270*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 271*4bdc9457SAndroid Build Coastguard Worker .y_scale(y_scale) 272*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 273*4bdc9457SAndroid Build Coastguard Worker } 274*4bdc9457SAndroid Build Coastguard Worker } 275*4bdc9457SAndroid Build Coastguard Worker } 276*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,qmin)277*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, qmin) { 278*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 279*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 280*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 281*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 282*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 283*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 284*4bdc9457SAndroid Build Coastguard Worker } 285*4bdc9457SAndroid Build Coastguard Worker } 286*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16,qmax)287*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD64_X16, qmax) { 288*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 289*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 290*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 291*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 292*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 293*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld64_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 294*4bdc9457SAndroid Build Coastguard Worker } 295*4bdc9457SAndroid Build Coastguard Worker } 296*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64 297*4bdc9457SAndroid Build Coastguard Worker 298*4bdc9457SAndroid Build Coastguard Worker 299*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_ARM || XNN_ARCH_ARM64 TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,batch_eq_16)300*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, batch_eq_16) { 301*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 302*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 303*4bdc9457SAndroid Build Coastguard Worker .batch_size(16) 304*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 305*4bdc9457SAndroid Build Coastguard Worker } 306*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,batch_div_16)307*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, batch_div_16) { 308*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 309*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 32; batch_size < 160; batch_size += 16) { 310*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 311*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 312*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 313*4bdc9457SAndroid Build Coastguard Worker } 314*4bdc9457SAndroid Build Coastguard Worker } 315*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,batch_lt_16)316*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, batch_lt_16) { 317*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 318*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size < 16; batch_size++) { 319*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 320*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 321*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 322*4bdc9457SAndroid Build Coastguard Worker } 323*4bdc9457SAndroid Build Coastguard Worker } 324*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,batch_gt_16)325*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, batch_gt_16) { 326*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 327*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 17; batch_size < 32; batch_size++) { 328*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 329*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 330*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 331*4bdc9457SAndroid Build Coastguard Worker } 332*4bdc9457SAndroid Build Coastguard Worker } 333*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,inplace)334*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, inplace) { 335*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 336*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 337*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 338*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 339*4bdc9457SAndroid Build Coastguard Worker .inplace(true) 340*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 341*4bdc9457SAndroid Build Coastguard Worker } 342*4bdc9457SAndroid Build Coastguard Worker } 343*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,a_zero_point)344*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, a_zero_point) { 345*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 346*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 347*4bdc9457SAndroid Build Coastguard Worker for (int32_t a_zero_point = -128; a_zero_point <= 127; a_zero_point += 51) { 348*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 349*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 350*4bdc9457SAndroid Build Coastguard Worker .a_zero_point(a_zero_point) 351*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 352*4bdc9457SAndroid Build Coastguard Worker } 353*4bdc9457SAndroid Build Coastguard Worker } 354*4bdc9457SAndroid Build Coastguard Worker } 355*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,b_zero_point)356*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, b_zero_point) { 357*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 358*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 359*4bdc9457SAndroid Build Coastguard Worker for (int32_t b_zero_point = -128; b_zero_point <= 127; b_zero_point += 51) { 360*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 361*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 362*4bdc9457SAndroid Build Coastguard Worker .b_zero_point(b_zero_point) 363*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 364*4bdc9457SAndroid Build Coastguard Worker } 365*4bdc9457SAndroid Build Coastguard Worker } 366*4bdc9457SAndroid Build Coastguard Worker } 367*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,y_zero_point)368*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, y_zero_point) { 369*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 370*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 371*4bdc9457SAndroid Build Coastguard Worker for (int32_t y_zero_point = -128; y_zero_point <= 127; y_zero_point += 51) { 372*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 373*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 374*4bdc9457SAndroid Build Coastguard Worker .y_zero_point(y_zero_point) 375*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 376*4bdc9457SAndroid Build Coastguard Worker } 377*4bdc9457SAndroid Build Coastguard Worker } 378*4bdc9457SAndroid Build Coastguard Worker } 379*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,a_scale)380*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, a_scale) { 381*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 382*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 383*4bdc9457SAndroid Build Coastguard Worker for (float a_scale = 0.1f; a_scale <= 10.0f; a_scale *= 3.14f) { 384*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 385*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 386*4bdc9457SAndroid Build Coastguard Worker .a_scale(a_scale) 387*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 388*4bdc9457SAndroid Build Coastguard Worker } 389*4bdc9457SAndroid Build Coastguard Worker } 390*4bdc9457SAndroid Build Coastguard Worker } 391*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,b_scale)392*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, b_scale) { 393*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 394*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 395*4bdc9457SAndroid Build Coastguard Worker for (float b_scale = 0.1f; b_scale <= 10.0f; b_scale *= 3.14f) { 396*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 397*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 398*4bdc9457SAndroid Build Coastguard Worker .b_scale(b_scale) 399*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 400*4bdc9457SAndroid Build Coastguard Worker } 401*4bdc9457SAndroid Build Coastguard Worker } 402*4bdc9457SAndroid Build Coastguard Worker } 403*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,y_scale)404*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, y_scale) { 405*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 406*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 407*4bdc9457SAndroid Build Coastguard Worker for (float y_scale = 0.1f; y_scale <= 10.0f; y_scale *= 3.14f) { 408*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 409*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 410*4bdc9457SAndroid Build Coastguard Worker .y_scale(y_scale) 411*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 412*4bdc9457SAndroid Build Coastguard Worker } 413*4bdc9457SAndroid Build Coastguard Worker } 414*4bdc9457SAndroid Build Coastguard Worker } 415*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,qmin)416*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, qmin) { 417*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 418*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 419*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 420*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 421*4bdc9457SAndroid Build Coastguard Worker .qmin(128) 422*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 423*4bdc9457SAndroid Build Coastguard Worker } 424*4bdc9457SAndroid Build Coastguard Worker } 425*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16,qmax)426*4bdc9457SAndroid Build Coastguard Worker TEST(QS8_VMULC_MINMAX_RNDNU__NEON_LD128_X16, qmax) { 427*4bdc9457SAndroid Build Coastguard Worker TEST_REQUIRES_ARM_NEON; 428*4bdc9457SAndroid Build Coastguard Worker for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) { 429*4bdc9457SAndroid Build Coastguard Worker VMulCMicrokernelTester() 430*4bdc9457SAndroid Build Coastguard Worker .batch_size(batch_size) 431*4bdc9457SAndroid Build Coastguard Worker .qmax(128) 432*4bdc9457SAndroid Build Coastguard Worker .Test(xnn_qs8_vmulc_minmax_rndnu_ukernel__neon_ld128_x16, xnn_init_qs8_mul_minmax_rndnu_neon_params, xnn_qs8_requantize_rndnu); 433*4bdc9457SAndroid Build Coastguard Worker } 434*4bdc9457SAndroid Build Coastguard Worker } 435*4bdc9457SAndroid Build Coastguard Worker #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64 436