Refactor VUNARY microkernel parameters
- Move mask_table into AVX microkernel parameters to unblock amalgamation
PiperOrigin-RevId: 419115513
diff --git a/test/f32-vabs.cc b/test/f32-vabs.cc
index f5a7d4a..4c7b1d1 100644
--- a/test/f32-vabs.cc
+++ b/test/f32-vabs.cc
@@ -22,7 +22,7 @@
TEST_REQUIRES_ARM_NEON;
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vabs_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x4);
}
TEST(F32_VABS__NEON_X4, batch_div_4) {
@@ -30,7 +30,7 @@
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x4);
}
}
@@ -39,7 +39,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x4);
}
}
@@ -48,7 +48,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x4);
}
}
@@ -58,7 +58,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x4);
}
}
#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
@@ -69,7 +69,7 @@
TEST_REQUIRES_ARM_NEON;
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vabs_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x8);
}
TEST(F32_VABS__NEON_X8, batch_div_8) {
@@ -77,7 +77,7 @@
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x8);
}
}
@@ -86,7 +86,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x8);
}
}
@@ -95,7 +95,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x8);
}
}
@@ -105,7 +105,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__neon_x8);
}
}
#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
@@ -116,7 +116,7 @@
TEST_REQUIRES_X86_SSE;
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vabs_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x4, xnn_init_f32_abs_sse_params);
}
TEST(F32_VABS__SSE_X4, batch_div_4) {
@@ -124,7 +124,7 @@
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x4, xnn_init_f32_abs_sse_params);
}
}
@@ -133,7 +133,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x4, xnn_init_f32_abs_sse_params);
}
}
@@ -142,7 +142,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x4, xnn_init_f32_abs_sse_params);
}
}
@@ -152,7 +152,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x4, xnn_init_f32_abs_sse_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -163,7 +163,7 @@
TEST_REQUIRES_X86_SSE;
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vabs_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x8, xnn_init_f32_abs_sse_params);
}
TEST(F32_VABS__SSE_X8, batch_div_8) {
@@ -171,7 +171,7 @@
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x8, xnn_init_f32_abs_sse_params);
}
}
@@ -180,7 +180,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x8, xnn_init_f32_abs_sse_params);
}
}
@@ -189,7 +189,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x8, xnn_init_f32_abs_sse_params);
}
}
@@ -199,7 +199,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__sse_x8, xnn_init_f32_abs_sse_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -210,7 +210,7 @@
TEST_REQUIRES_X86_AVX;
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vabs_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x8, xnn_init_f32_abs_avx_params);
}
TEST(F32_VABS__AVX_X8, batch_div_8) {
@@ -218,7 +218,7 @@
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x8, xnn_init_f32_abs_avx_params);
}
}
@@ -227,7 +227,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x8, xnn_init_f32_abs_avx_params);
}
}
@@ -236,7 +236,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x8, xnn_init_f32_abs_avx_params);
}
}
@@ -246,7 +246,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x8, xnn_init_f32_abs_avx_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -257,7 +257,7 @@
TEST_REQUIRES_X86_AVX;
VUnaryMicrokernelTester()
.batch_size(16)
- .Test(xnn_f32_vabs_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x16, xnn_init_f32_abs_avx_params);
}
TEST(F32_VABS__AVX_X16, batch_div_16) {
@@ -265,7 +265,7 @@
for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x16, xnn_init_f32_abs_avx_params);
}
}
@@ -274,7 +274,7 @@
for (size_t batch_size = 1; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x16, xnn_init_f32_abs_avx_params);
}
}
@@ -283,7 +283,7 @@
for (size_t batch_size = 17; batch_size < 32; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x16, xnn_init_f32_abs_avx_params);
}
}
@@ -293,7 +293,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx_x16, xnn_init_f32_abs_avx_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -304,7 +304,7 @@
TEST_REQUIRES_X86_AVX512F;
VUnaryMicrokernelTester()
.batch_size(16)
- .Test(xnn_f32_vabs_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x16, xnn_init_f32_abs_avx512_params);
}
TEST(F32_VABS__AVX512F_X16, batch_div_16) {
@@ -312,7 +312,7 @@
for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x16, xnn_init_f32_abs_avx512_params);
}
}
@@ -321,7 +321,7 @@
for (size_t batch_size = 1; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x16, xnn_init_f32_abs_avx512_params);
}
}
@@ -330,7 +330,7 @@
for (size_t batch_size = 17; batch_size < 32; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x16, xnn_init_f32_abs_avx512_params);
}
}
@@ -340,7 +340,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x16, xnn_init_f32_abs_avx512_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -351,7 +351,7 @@
TEST_REQUIRES_X86_AVX512F;
VUnaryMicrokernelTester()
.batch_size(32)
- .Test(xnn_f32_vabs_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x32, xnn_init_f32_abs_avx512_params);
}
TEST(F32_VABS__AVX512F_X32, batch_div_32) {
@@ -359,7 +359,7 @@
for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x32, xnn_init_f32_abs_avx512_params);
}
}
@@ -368,7 +368,7 @@
for (size_t batch_size = 1; batch_size < 32; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x32, xnn_init_f32_abs_avx512_params);
}
}
@@ -377,7 +377,7 @@
for (size_t batch_size = 33; batch_size < 64; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x32, xnn_init_f32_abs_avx512_params);
}
}
@@ -387,7 +387,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__avx512f_x32, xnn_init_f32_abs_avx512_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -397,14 +397,14 @@
TEST(F32_VABS__WASMSIMD_X4, batch_eq_4) {
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, xnn_init_f32_abs_wasmsimd_params);
}
TEST(F32_VABS__WASMSIMD_X4, batch_div_4) {
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, xnn_init_f32_abs_wasmsimd_params);
}
}
@@ -412,7 +412,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, xnn_init_f32_abs_wasmsimd_params);
}
}
@@ -420,7 +420,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, xnn_init_f32_abs_wasmsimd_params);
}
}
@@ -429,7 +429,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x4, xnn_init_f32_abs_wasmsimd_params);
}
}
#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
@@ -439,14 +439,14 @@
TEST(F32_VABS__WASMSIMD_X8, batch_eq_8) {
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, xnn_init_f32_abs_wasmsimd_params);
}
TEST(F32_VABS__WASMSIMD_X8, batch_div_8) {
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, xnn_init_f32_abs_wasmsimd_params);
}
}
@@ -454,7 +454,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, xnn_init_f32_abs_wasmsimd_params);
}
}
@@ -462,7 +462,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, xnn_init_f32_abs_wasmsimd_params);
}
}
@@ -471,7 +471,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Abs);
+ .Test(xnn_f32_vabs_ukernel__wasmsimd_x8, xnn_init_f32_abs_wasmsimd_params);
}
}
#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
@@ -480,14 +480,14 @@
TEST(F32_VABS__SCALAR_X1, batch_eq_1) {
VUnaryMicrokernelTester()
.batch_size(1)
- .Test(xnn_f32_vabs_ukernel__scalar_x1, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x1);
}
TEST(F32_VABS__SCALAR_X1, batch_gt_1) {
for (size_t batch_size = 2; batch_size < 10; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__scalar_x1, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x1);
}
}
@@ -496,7 +496,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__scalar_x1, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x1);
}
}
@@ -504,14 +504,14 @@
TEST(F32_VABS__SCALAR_X2, batch_eq_2) {
VUnaryMicrokernelTester()
.batch_size(2)
- .Test(xnn_f32_vabs_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x2);
}
TEST(F32_VABS__SCALAR_X2, batch_div_2) {
for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x2);
}
}
@@ -519,7 +519,7 @@
for (size_t batch_size = 1; batch_size < 2; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x2);
}
}
@@ -527,7 +527,7 @@
for (size_t batch_size = 3; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x2);
}
}
@@ -536,7 +536,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x2);
}
}
@@ -544,14 +544,14 @@
TEST(F32_VABS__SCALAR_X4, batch_eq_4) {
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vabs_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x4);
}
TEST(F32_VABS__SCALAR_X4, batch_div_4) {
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x4);
}
}
@@ -559,7 +559,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x4);
}
}
@@ -567,7 +567,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vabs_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x4);
}
}
@@ -576,6 +576,6 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vabs_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Abs, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vabs_ukernel__scalar_x4);
}
}
diff --git a/test/f32-vabs.yaml b/test/f32-vabs.yaml
index 6ca68fe..60ab238 100644
--- a/test/f32-vabs.yaml
+++ b/test/f32-vabs.yaml
@@ -5,13 +5,21 @@
- name: xnn_f32_vabs_ukernel__neon_x4
- name: xnn_f32_vabs_ukernel__neon_x8
- name: xnn_f32_vabs_ukernel__sse_x4
+ init: xnn_init_f32_abs_sse_params
- name: xnn_f32_vabs_ukernel__sse_x8
+ init: xnn_init_f32_abs_sse_params
- name: xnn_f32_vabs_ukernel__avx_x8
+ init: xnn_init_f32_abs_avx_params
- name: xnn_f32_vabs_ukernel__avx_x16
+ init: xnn_init_f32_abs_avx_params
- name: xnn_f32_vabs_ukernel__avx512f_x16
+ init: xnn_init_f32_abs_avx512_params
- name: xnn_f32_vabs_ukernel__avx512f_x32
+ init: xnn_init_f32_abs_avx512_params
- name: xnn_f32_vabs_ukernel__wasmsimd_x4
+ init: xnn_init_f32_abs_wasmsimd_params
- name: xnn_f32_vabs_ukernel__wasmsimd_x8
+ init: xnn_init_f32_abs_wasmsimd_params
- name: xnn_f32_vabs_ukernel__scalar_x1
- name: xnn_f32_vabs_ukernel__scalar_x2
- name: xnn_f32_vabs_ukernel__scalar_x4
diff --git a/test/f32-vneg.cc b/test/f32-vneg.cc
index 729821b..dd27098 100644
--- a/test/f32-vneg.cc
+++ b/test/f32-vneg.cc
@@ -22,7 +22,7 @@
TEST_REQUIRES_ARM_NEON;
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vneg_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x4);
}
TEST(F32_VNEG__NEON_X4, batch_div_4) {
@@ -30,7 +30,7 @@
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x4);
}
}
@@ -39,7 +39,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x4);
}
}
@@ -48,7 +48,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x4);
}
}
@@ -58,7 +58,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x4);
}
}
#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
@@ -69,7 +69,7 @@
TEST_REQUIRES_ARM_NEON;
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vneg_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x8);
}
TEST(F32_VNEG__NEON_X8, batch_div_8) {
@@ -77,7 +77,7 @@
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x8);
}
}
@@ -86,7 +86,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x8);
}
}
@@ -95,7 +95,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x8);
}
}
@@ -105,7 +105,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__neon_x8);
}
}
#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
@@ -116,7 +116,7 @@
TEST_REQUIRES_X86_SSE;
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vneg_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x4, xnn_init_f32_neg_sse_params);
}
TEST(F32_VNEG__SSE_X4, batch_div_4) {
@@ -124,7 +124,7 @@
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x4, xnn_init_f32_neg_sse_params);
}
}
@@ -133,7 +133,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x4, xnn_init_f32_neg_sse_params);
}
}
@@ -142,7 +142,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x4, xnn_init_f32_neg_sse_params);
}
}
@@ -152,7 +152,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x4, xnn_init_f32_neg_sse_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -163,7 +163,7 @@
TEST_REQUIRES_X86_SSE;
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vneg_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x8, xnn_init_f32_neg_sse_params);
}
TEST(F32_VNEG__SSE_X8, batch_div_8) {
@@ -171,7 +171,7 @@
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x8, xnn_init_f32_neg_sse_params);
}
}
@@ -180,7 +180,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x8, xnn_init_f32_neg_sse_params);
}
}
@@ -189,7 +189,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x8, xnn_init_f32_neg_sse_params);
}
}
@@ -199,7 +199,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__sse_x8, xnn_init_f32_neg_sse_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -210,7 +210,7 @@
TEST_REQUIRES_X86_AVX;
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vneg_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x8, xnn_init_f32_neg_avx_params);
}
TEST(F32_VNEG__AVX_X8, batch_div_8) {
@@ -218,7 +218,7 @@
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x8, xnn_init_f32_neg_avx_params);
}
}
@@ -227,7 +227,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x8, xnn_init_f32_neg_avx_params);
}
}
@@ -236,7 +236,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x8, xnn_init_f32_neg_avx_params);
}
}
@@ -246,7 +246,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x8, xnn_init_f32_neg_avx_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -257,7 +257,7 @@
TEST_REQUIRES_X86_AVX;
VUnaryMicrokernelTester()
.batch_size(16)
- .Test(xnn_f32_vneg_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x16, xnn_init_f32_neg_avx_params);
}
TEST(F32_VNEG__AVX_X16, batch_div_16) {
@@ -265,7 +265,7 @@
for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x16, xnn_init_f32_neg_avx_params);
}
}
@@ -274,7 +274,7 @@
for (size_t batch_size = 1; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x16, xnn_init_f32_neg_avx_params);
}
}
@@ -283,7 +283,7 @@
for (size_t batch_size = 17; batch_size < 32; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x16, xnn_init_f32_neg_avx_params);
}
}
@@ -293,7 +293,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx_x16, xnn_init_f32_neg_avx_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -304,7 +304,7 @@
TEST_REQUIRES_X86_AVX512F;
VUnaryMicrokernelTester()
.batch_size(16)
- .Test(xnn_f32_vneg_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x16, xnn_init_f32_neg_avx512_params);
}
TEST(F32_VNEG__AVX512F_X16, batch_div_16) {
@@ -312,7 +312,7 @@
for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x16, xnn_init_f32_neg_avx512_params);
}
}
@@ -321,7 +321,7 @@
for (size_t batch_size = 1; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x16, xnn_init_f32_neg_avx512_params);
}
}
@@ -330,7 +330,7 @@
for (size_t batch_size = 17; batch_size < 32; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x16, xnn_init_f32_neg_avx512_params);
}
}
@@ -340,7 +340,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x16, xnn_init_f32_neg_avx512_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -351,7 +351,7 @@
TEST_REQUIRES_X86_AVX512F;
VUnaryMicrokernelTester()
.batch_size(32)
- .Test(xnn_f32_vneg_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x32, xnn_init_f32_neg_avx512_params);
}
TEST(F32_VNEG__AVX512F_X32, batch_div_32) {
@@ -359,7 +359,7 @@
for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x32, xnn_init_f32_neg_avx512_params);
}
}
@@ -368,7 +368,7 @@
for (size_t batch_size = 1; batch_size < 32; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x32, xnn_init_f32_neg_avx512_params);
}
}
@@ -377,7 +377,7 @@
for (size_t batch_size = 33; batch_size < 64; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x32, xnn_init_f32_neg_avx512_params);
}
}
@@ -387,7 +387,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__avx512f_x32, xnn_init_f32_neg_avx512_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -397,14 +397,14 @@
TEST(F32_VNEG__WASMSIMD_X4, batch_eq_4) {
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, xnn_init_f32_neg_wasmsimd_params);
}
TEST(F32_VNEG__WASMSIMD_X4, batch_div_4) {
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, xnn_init_f32_neg_wasmsimd_params);
}
}
@@ -412,7 +412,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, xnn_init_f32_neg_wasmsimd_params);
}
}
@@ -420,7 +420,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, xnn_init_f32_neg_wasmsimd_params);
}
}
@@ -429,7 +429,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x4, xnn_init_f32_neg_wasmsimd_params);
}
}
#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
@@ -439,14 +439,14 @@
TEST(F32_VNEG__WASMSIMD_X8, batch_eq_8) {
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, xnn_init_f32_neg_wasmsimd_params);
}
TEST(F32_VNEG__WASMSIMD_X8, batch_div_8) {
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, xnn_init_f32_neg_wasmsimd_params);
}
}
@@ -454,7 +454,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, xnn_init_f32_neg_wasmsimd_params);
}
}
@@ -462,7 +462,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, xnn_init_f32_neg_wasmsimd_params);
}
}
@@ -471,7 +471,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Negate);
+ .Test(xnn_f32_vneg_ukernel__wasmsimd_x8, xnn_init_f32_neg_wasmsimd_params);
}
}
#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
@@ -480,14 +480,14 @@
TEST(F32_VNEG__SCALAR_X1, batch_eq_1) {
VUnaryMicrokernelTester()
.batch_size(1)
- .Test(xnn_f32_vneg_ukernel__scalar_x1, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x1);
}
TEST(F32_VNEG__SCALAR_X1, batch_gt_1) {
for (size_t batch_size = 2; batch_size < 10; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__scalar_x1, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x1);
}
}
@@ -496,7 +496,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__scalar_x1, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x1);
}
}
@@ -504,14 +504,14 @@
TEST(F32_VNEG__SCALAR_X2, batch_eq_2) {
VUnaryMicrokernelTester()
.batch_size(2)
- .Test(xnn_f32_vneg_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x2);
}
TEST(F32_VNEG__SCALAR_X2, batch_div_2) {
for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x2);
}
}
@@ -519,7 +519,7 @@
for (size_t batch_size = 1; batch_size < 2; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x2);
}
}
@@ -527,7 +527,7 @@
for (size_t batch_size = 3; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x2);
}
}
@@ -536,7 +536,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x2);
}
}
@@ -544,14 +544,14 @@
TEST(F32_VNEG__SCALAR_X4, batch_eq_4) {
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vneg_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x4);
}
TEST(F32_VNEG__SCALAR_X4, batch_div_4) {
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x4);
}
}
@@ -559,7 +559,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x4);
}
}
@@ -567,7 +567,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vneg_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x4);
}
}
@@ -576,6 +576,6 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vneg_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Negate, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vneg_ukernel__scalar_x4);
}
}
diff --git a/test/f32-vneg.yaml b/test/f32-vneg.yaml
index b05fbf5..07b26ba 100644
--- a/test/f32-vneg.yaml
+++ b/test/f32-vneg.yaml
@@ -5,13 +5,21 @@
- name: xnn_f32_vneg_ukernel__neon_x4
- name: xnn_f32_vneg_ukernel__neon_x8
- name: xnn_f32_vneg_ukernel__sse_x4
+ init: xnn_init_f32_neg_sse_params
- name: xnn_f32_vneg_ukernel__sse_x8
+ init: xnn_init_f32_neg_sse_params
- name: xnn_f32_vneg_ukernel__avx_x8
+ init: xnn_init_f32_neg_avx_params
- name: xnn_f32_vneg_ukernel__avx_x16
+ init: xnn_init_f32_neg_avx_params
- name: xnn_f32_vneg_ukernel__avx512f_x16
+ init: xnn_init_f32_neg_avx512_params
- name: xnn_f32_vneg_ukernel__avx512f_x32
+ init: xnn_init_f32_neg_avx512_params
- name: xnn_f32_vneg_ukernel__wasmsimd_x4
+ init: xnn_init_f32_neg_wasmsimd_params
- name: xnn_f32_vneg_ukernel__wasmsimd_x8
+ init: xnn_init_f32_neg_wasmsimd_params
- name: xnn_f32_vneg_ukernel__scalar_x1
- name: xnn_f32_vneg_ukernel__scalar_x2
- name: xnn_f32_vneg_ukernel__scalar_x4
diff --git a/test/f32-vsqr.cc b/test/f32-vsqr.cc
index 168a2e7..c199ee8 100644
--- a/test/f32-vsqr.cc
+++ b/test/f32-vsqr.cc
@@ -22,7 +22,7 @@
TEST_REQUIRES_ARM_NEON;
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vsqr_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x4);
}
TEST(F32_VSQR__NEON_X4, batch_div_4) {
@@ -30,7 +30,7 @@
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x4);
}
}
@@ -39,7 +39,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x4);
}
}
@@ -48,7 +48,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x4);
}
}
@@ -58,7 +58,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x4);
}
}
#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
@@ -69,7 +69,7 @@
TEST_REQUIRES_ARM_NEON;
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vsqr_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x8);
}
TEST(F32_VSQR__NEON_X8, batch_div_8) {
@@ -77,7 +77,7 @@
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x8);
}
}
@@ -86,7 +86,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x8);
}
}
@@ -95,7 +95,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x8);
}
}
@@ -105,7 +105,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__neon_x8);
}
}
#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
@@ -116,7 +116,7 @@
TEST_REQUIRES_X86_SSE;
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vsqr_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x4);
}
TEST(F32_VSQR__SSE_X4, batch_div_4) {
@@ -124,7 +124,7 @@
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x4);
}
}
@@ -133,7 +133,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x4);
}
}
@@ -142,7 +142,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x4);
}
}
@@ -152,7 +152,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__sse_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x4);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -163,7 +163,7 @@
TEST_REQUIRES_X86_SSE;
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vsqr_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x8);
}
TEST(F32_VSQR__SSE_X8, batch_div_8) {
@@ -171,7 +171,7 @@
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x8);
}
}
@@ -180,7 +180,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x8);
}
}
@@ -189,7 +189,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x8);
}
}
@@ -199,7 +199,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__sse_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__sse_x8);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -210,7 +210,7 @@
TEST_REQUIRES_X86_AVX;
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vsqr_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x8, xnn_init_f32_default_avx_params);
}
TEST(F32_VSQR__AVX_X8, batch_div_8) {
@@ -218,7 +218,7 @@
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x8, xnn_init_f32_default_avx_params);
}
}
@@ -227,7 +227,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x8, xnn_init_f32_default_avx_params);
}
}
@@ -236,7 +236,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x8, xnn_init_f32_default_avx_params);
}
}
@@ -246,7 +246,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x8, xnn_init_f32_default_avx_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -257,7 +257,7 @@
TEST_REQUIRES_X86_AVX;
VUnaryMicrokernelTester()
.batch_size(16)
- .Test(xnn_f32_vsqr_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x16, xnn_init_f32_default_avx_params);
}
TEST(F32_VSQR__AVX_X16, batch_div_16) {
@@ -265,7 +265,7 @@
for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x16, xnn_init_f32_default_avx_params);
}
}
@@ -274,7 +274,7 @@
for (size_t batch_size = 1; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x16, xnn_init_f32_default_avx_params);
}
}
@@ -283,7 +283,7 @@
for (size_t batch_size = 17; batch_size < 32; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x16, xnn_init_f32_default_avx_params);
}
}
@@ -293,7 +293,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx_x16, xnn_init_f32_default_avx_params);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -304,7 +304,7 @@
TEST_REQUIRES_X86_AVX512F;
VUnaryMicrokernelTester()
.batch_size(16)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x16);
}
TEST(F32_VSQR__AVX512F_X16, batch_div_16) {
@@ -312,7 +312,7 @@
for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x16);
}
}
@@ -321,7 +321,7 @@
for (size_t batch_size = 1; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x16);
}
}
@@ -330,7 +330,7 @@
for (size_t batch_size = 17; batch_size < 32; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x16);
}
}
@@ -340,7 +340,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x16);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -351,7 +351,7 @@
TEST_REQUIRES_X86_AVX512F;
VUnaryMicrokernelTester()
.batch_size(32)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x32);
}
TEST(F32_VSQR__AVX512F_X32, batch_div_32) {
@@ -359,7 +359,7 @@
for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x32);
}
}
@@ -368,7 +368,7 @@
for (size_t batch_size = 1; batch_size < 32; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x32);
}
}
@@ -377,7 +377,7 @@
for (size_t batch_size = 33; batch_size < 64; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x32);
}
}
@@ -387,7 +387,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__avx512f_x32);
}
}
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
@@ -397,14 +397,14 @@
TEST(F32_VSQR__WASMSIMD_X4, batch_eq_4) {
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4);
}
TEST(F32_VSQR__WASMSIMD_X4, batch_div_4) {
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4);
}
}
@@ -412,7 +412,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4);
}
}
@@ -420,7 +420,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4);
}
}
@@ -429,7 +429,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x4);
}
}
#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
@@ -439,14 +439,14 @@
TEST(F32_VSQR__WASMSIMD_X8, batch_eq_8) {
VUnaryMicrokernelTester()
.batch_size(8)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8);
}
TEST(F32_VSQR__WASMSIMD_X8, batch_div_8) {
for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8);
}
}
@@ -454,7 +454,7 @@
for (size_t batch_size = 1; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8);
}
}
@@ -462,7 +462,7 @@
for (size_t batch_size = 9; batch_size < 16; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8);
}
}
@@ -471,7 +471,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8, VUnaryMicrokernelTester::OpType::Square);
+ .Test(xnn_f32_vsqr_ukernel__wasmsimd_x8);
}
}
#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
@@ -480,14 +480,14 @@
TEST(F32_VSQR__SCALAR_X1, batch_eq_1) {
VUnaryMicrokernelTester()
.batch_size(1)
- .Test(xnn_f32_vsqr_ukernel__scalar_x1, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x1);
}
TEST(F32_VSQR__SCALAR_X1, batch_gt_1) {
for (size_t batch_size = 2; batch_size < 10; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__scalar_x1, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x1);
}
}
@@ -496,7 +496,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__scalar_x1, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x1);
}
}
@@ -504,14 +504,14 @@
TEST(F32_VSQR__SCALAR_X2, batch_eq_2) {
VUnaryMicrokernelTester()
.batch_size(2)
- .Test(xnn_f32_vsqr_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x2);
}
TEST(F32_VSQR__SCALAR_X2, batch_div_2) {
for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x2);
}
}
@@ -519,7 +519,7 @@
for (size_t batch_size = 1; batch_size < 2; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x2);
}
}
@@ -527,7 +527,7 @@
for (size_t batch_size = 3; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x2);
}
}
@@ -536,7 +536,7 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__scalar_x2, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x2);
}
}
@@ -544,14 +544,14 @@
TEST(F32_VSQR__SCALAR_X4, batch_eq_4) {
VUnaryMicrokernelTester()
.batch_size(4)
- .Test(xnn_f32_vsqr_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x4);
}
TEST(F32_VSQR__SCALAR_X4, batch_div_4) {
for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x4);
}
}
@@ -559,7 +559,7 @@
for (size_t batch_size = 1; batch_size < 4; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x4);
}
}
@@ -567,7 +567,7 @@
for (size_t batch_size = 5; batch_size < 8; batch_size++) {
VUnaryMicrokernelTester()
.batch_size(batch_size)
- .Test(xnn_f32_vsqr_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x4);
}
}
@@ -576,6 +576,6 @@
VUnaryMicrokernelTester()
.batch_size(batch_size)
.inplace(true)
- .Test(xnn_f32_vsqr_ukernel__scalar_x4, VUnaryMicrokernelTester::OpType::Square, VUnaryMicrokernelTester::Variant::Scalar);
+ .Test(xnn_f32_vsqr_ukernel__scalar_x4);
}
}
diff --git a/test/f32-vsqr.yaml b/test/f32-vsqr.yaml
index 2fb0eea..6a8a56b 100644
--- a/test/f32-vsqr.yaml
+++ b/test/f32-vsqr.yaml
@@ -7,7 +7,9 @@
- name: xnn_f32_vsqr_ukernel__sse_x4
- name: xnn_f32_vsqr_ukernel__sse_x8
- name: xnn_f32_vsqr_ukernel__avx_x8
+ init: xnn_init_f32_default_avx_params
- name: xnn_f32_vsqr_ukernel__avx_x16
+ init: xnn_init_f32_default_avx_params
- name: xnn_f32_vsqr_ukernel__avx512f_x16
- name: xnn_f32_vsqr_ukernel__avx512f_x32
- name: xnn_f32_vsqr_ukernel__wasmsimd_x4
diff --git a/test/vunary-microkernel-tester.h b/test/vunary-microkernel-tester.h
index 496a6b4..efe2424 100644
--- a/test/vunary-microkernel-tester.h
+++ b/test/vunary-microkernel-tester.h
@@ -25,9 +25,7 @@
class VUnaryMicrokernelTester {
public:
enum class OpType {
- Abs,
ELU,
- Negate,
ReLU,
RoundToNearestEven,
RoundTowardsZero,
@@ -152,17 +150,11 @@
// Compute reference results.
for (size_t i = 0; i < batch_size(); i++) {
switch (op_type) {
- case OpType::Abs:
- y_ref[i] = std::abs(x_data[i]);
- break;
case OpType::ELU:
{
y_ref[i] = std::signbit(x_data[i]) ? alpha() * std::expm1(double(x_data[i]) * prescale()) : double(x_data[i]) * beta();
break;
}
- case OpType::Negate:
- y_ref[i] = -x_data[i];
- break;
case OpType::ReLU:
y_ref[i] = std::max(x_data[i], 0.0f);
break;
@@ -192,26 +184,12 @@
// Prepare parameters.
union {
- union xnn_f32_abs_params abs;
union xnn_f32_elu_params elu;
- union xnn_f32_lrelu_params lrelu;
- union xnn_f32_minmax_params minmax;
union xnn_f32_neg_params neg;
union xnn_f32_relu_params relu;
union xnn_f32_rnd_params rnd;
- union xnn_f32_sqrt_params sqrt;
} params;
switch (op_type) {
- case OpType::Abs:
- switch (variant) {
- case Variant::Native:
- xnn_init_f32_abs_params(¶ms.abs);
- break;
- case Variant::Scalar:
- xnn_init_scalar_f32_abs_params(¶ms.abs);
- break;
- }
- break;
case OpType::ELU:
switch (variant) {
case Variant::Native:
@@ -222,16 +200,6 @@
break;
}
break;
- case OpType::Negate:
- switch (variant) {
- case Variant::Native:
- xnn_init_f32_neg_params(¶ms.neg);
- break;
- case Variant::Scalar:
- xnn_init_scalar_f32_neg_params(¶ms.neg);
- break;
- }
- break;
case OpType::RoundToNearestEven:
case OpType::RoundTowardsZero:
case OpType::RoundUp:
@@ -262,6 +230,45 @@
}
}
+ void Test(xnn_f32_vabs_ukernel_function vabs, xnn_init_f32_abs_params_fn init_params = nullptr) const {
+ std::random_device random_device;
+ auto rng = std::mt19937(random_device());
+ auto f32rng = std::bind(std::uniform_real_distribution<float>(-1.0f, 1.0f), std::ref(rng));
+
+ std::vector<float> x(batch_size() + XNN_EXTRA_BYTES / sizeof(float));
+ std::vector<float> y(batch_size() + (inplace() ? XNN_EXTRA_BYTES / sizeof(float) : 0));
+ std::vector<float> y_ref(batch_size());
+ for (size_t iteration = 0; iteration < iterations(); iteration++) {
+ if (inplace()) {
+ std::generate(y.begin(), y.end(), std::ref(f32rng));
+ } else {
+ std::generate(x.begin(), x.end(), std::ref(f32rng));
+ std::fill(y.begin(), y.end(), nanf(""));
+ }
+ const float* x_data = inplace() ? y.data() : x.data();
+
+ // Compute reference results.
+ for (size_t i = 0; i < batch_size(); i++) {
+ y_ref[i] = std::abs(x_data[i]);
+ }
+
+ // Prepare parameters.
+ union xnn_f32_abs_params params;
+ if (init_params != nullptr) {
+ init_params(¶ms);
+ }
+
+ // Call optimized micro-kernel.
+ vabs(batch_size() * sizeof(float), x_data, y.data(), ¶ms);
+
+ // Verify results.
+ for (size_t i = 0; i < batch_size(); i++) {
+ ASSERT_EQ(y[i], y_ref[i])
+ << "at " << i << " / " << batch_size() << ", x[" << i << "] = " << x[i];
+ }
+ }
+ }
+
void Test(xnn_f32_vclamp_ukernel_function vclamp, xnn_init_f32_minmax_params_fn init_params) const {
std::random_device random_device;
auto rng = std::mt19937(random_device());
@@ -373,6 +380,84 @@
}
}
+ void Test(xnn_f32_vneg_ukernel_function vneg, xnn_init_f32_neg_params_fn init_params = nullptr) const {
+ std::random_device random_device;
+ auto rng = std::mt19937(random_device());
+ auto f32rng = std::bind(std::uniform_real_distribution<float>(-1.0f, 1.0f), std::ref(rng));
+
+ std::vector<float> x(batch_size() + XNN_EXTRA_BYTES / sizeof(float));
+ std::vector<float> y(batch_size() + (inplace() ? XNN_EXTRA_BYTES / sizeof(float) : 0));
+ std::vector<float> y_ref(batch_size());
+ for (size_t iteration = 0; iteration < iterations(); iteration++) {
+ if (inplace()) {
+ std::generate(y.begin(), y.end(), std::ref(f32rng));
+ } else {
+ std::generate(x.begin(), x.end(), std::ref(f32rng));
+ std::fill(y.begin(), y.end(), nanf(""));
+ }
+ const float* x_data = inplace() ? y.data() : x.data();
+
+ // Compute reference results.
+ for (size_t i = 0; i < batch_size(); i++) {
+ y_ref[i] = -x_data[i];
+ }
+
+ // Prepare parameters.
+ union xnn_f32_neg_params params;
+ if (init_params != nullptr) {
+ init_params(¶ms);
+ }
+
+ // Call optimized micro-kernel.
+ vneg(batch_size() * sizeof(float), x_data, y.data(), ¶ms);
+
+ // Verify results.
+ for (size_t i = 0; i < batch_size(); i++) {
+ ASSERT_EQ(y[i], y_ref[i])
+ << "at " << i << " / " << batch_size() << ", x[" << i << "] = " << x[i];
+ }
+ }
+ }
+
+ void Test(xnn_f32_vsqr_ukernel_function vsqr, xnn_init_f32_default_params_fn init_params = nullptr) const {
+ std::random_device random_device;
+ auto rng = std::mt19937(random_device());
+ auto f32rng = std::bind(std::uniform_real_distribution<float>(-10.0f, 10.0f), std::ref(rng));
+
+ std::vector<float> x(batch_size() + XNN_EXTRA_BYTES / sizeof(float));
+ std::vector<float> y(batch_size() + (inplace() ? XNN_EXTRA_BYTES / sizeof(float) : 0));
+ std::vector<float> y_ref(batch_size());
+ for (size_t iteration = 0; iteration < iterations(); iteration++) {
+ if (inplace()) {
+ std::generate(y.begin(), y.end(), std::ref(f32rng));
+ } else {
+ std::generate(x.begin(), x.end(), std::ref(f32rng));
+ std::fill(y.begin(), y.end(), nanf(""));
+ }
+ const float* x_data = inplace() ? y.data() : x.data();
+
+ // Compute reference results.
+ for (size_t i = 0; i < batch_size(); i++) {
+ y_ref[i] = x_data[i] * x_data[i];
+ }
+
+ // Prepare parameters.
+ union xnn_f32_default_params params;
+ if (init_params != nullptr) {
+ init_params(¶ms);
+ }
+
+ // Call optimized micro-kernel.
+ vsqr(batch_size() * sizeof(float), x_data, y.data(), ¶ms);
+
+ // Verify results.
+ for (size_t i = 0; i < batch_size(); i++) {
+ ASSERT_EQ(y[i], y_ref[i])
+ << "at " << i << " / " << batch_size() << ", x[" << i << "] = " << x[i];
+ }
+ }
+ }
+
void Test(xnn_f32_vsqrt_ukernel_function vsqrt, xnn_init_f32_sqrt_params_fn init_params = nullptr) const {
std::random_device random_device;
auto rng = std::mt19937(random_device());