blob: c023d83210989d31177389e3a74df308b3a307ae [file] [log] [blame]
Marat Dukhaneecf8fd2020-06-09 08:59:37 -07001// Copyright 2019 Google LLC
2//
3// This source code is licensed under the BSD-style license found in the
4// LICENSE file in the root directory of this source tree.
5//
6// Auto-generated file. Do not edit!
7// Specification: test/f32-vrndz.yaml
8// Generator: tools/generate-vunary-test.py
9
10
11#include <gtest/gtest.h>
12
13#include <xnnpack/common.h>
14#include <xnnpack/isa-checks.h>
15
16#include <xnnpack/vunary.h>
17#include "vunary-microkernel-tester.h"
18
19
20#if XNN_ARCH_ARM || XNN_ARCH_ARM64
21 TEST(F32_VRNDZ__NEON_X4, batch_eq_4) {
22 TEST_REQUIRES_ARM_NEON;
Marat Dukhan87ed45c2021-05-13 12:25:22 -070023 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070024 .batch_size(4)
Marat Dukhan6eaab712021-05-13 15:20:58 -070025 .Test(xnn_f32_vrndz_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070026 }
27
28 TEST(F32_VRNDZ__NEON_X4, batch_div_4) {
29 TEST_REQUIRES_ARM_NEON;
30 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070031 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070032 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -070033 .Test(xnn_f32_vrndz_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070034 }
35 }
36
37 TEST(F32_VRNDZ__NEON_X4, batch_lt_4) {
38 TEST_REQUIRES_ARM_NEON;
39 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070040 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070041 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -070042 .Test(xnn_f32_vrndz_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070043 }
44 }
45
46 TEST(F32_VRNDZ__NEON_X4, batch_gt_4) {
47 TEST_REQUIRES_ARM_NEON;
48 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070049 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070050 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -070051 .Test(xnn_f32_vrndz_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070052 }
53 }
54
55 TEST(F32_VRNDZ__NEON_X4, inplace) {
56 TEST_REQUIRES_ARM_NEON;
57 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070058 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070059 .batch_size(batch_size)
60 .inplace(true)
Marat Dukhan6eaab712021-05-13 15:20:58 -070061 .Test(xnn_f32_vrndz_ukernel__neon_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070062 }
63 }
64#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
65
66
67#if XNN_ARCH_ARM || XNN_ARCH_ARM64
68 TEST(F32_VRNDZ__NEON_X8, batch_eq_8) {
69 TEST_REQUIRES_ARM_NEON;
Marat Dukhan87ed45c2021-05-13 12:25:22 -070070 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070071 .batch_size(8)
Marat Dukhan6eaab712021-05-13 15:20:58 -070072 .Test(xnn_f32_vrndz_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070073 }
74
75 TEST(F32_VRNDZ__NEON_X8, batch_div_8) {
76 TEST_REQUIRES_ARM_NEON;
77 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070078 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070079 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -070080 .Test(xnn_f32_vrndz_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070081 }
82 }
83
84 TEST(F32_VRNDZ__NEON_X8, batch_lt_8) {
85 TEST_REQUIRES_ARM_NEON;
86 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070087 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070088 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -070089 .Test(xnn_f32_vrndz_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070090 }
91 }
92
93 TEST(F32_VRNDZ__NEON_X8, batch_gt_8) {
94 TEST_REQUIRES_ARM_NEON;
95 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -070096 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070097 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -070098 .Test(xnn_f32_vrndz_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -070099 }
100 }
101
102 TEST(F32_VRNDZ__NEON_X8, inplace) {
103 TEST_REQUIRES_ARM_NEON;
104 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700105 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700106 .batch_size(batch_size)
107 .inplace(true)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700108 .Test(xnn_f32_vrndz_ukernel__neon_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700109 }
110 }
111#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
112
113
114#if XNN_ARCH_ARM || XNN_ARCH_ARM64
115 TEST(F32_VRNDZ__NEONV8_X4, batch_eq_4) {
116 TEST_REQUIRES_ARM_NEON_V8;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700117 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700118 .batch_size(4)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700119 .Test(xnn_f32_vrndz_ukernel__neonv8_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700120 }
121
122 TEST(F32_VRNDZ__NEONV8_X4, batch_div_4) {
123 TEST_REQUIRES_ARM_NEON_V8;
124 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700125 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700126 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700127 .Test(xnn_f32_vrndz_ukernel__neonv8_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700128 }
129 }
130
131 TEST(F32_VRNDZ__NEONV8_X4, batch_lt_4) {
132 TEST_REQUIRES_ARM_NEON_V8;
133 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700134 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700135 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700136 .Test(xnn_f32_vrndz_ukernel__neonv8_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700137 }
138 }
139
140 TEST(F32_VRNDZ__NEONV8_X4, batch_gt_4) {
141 TEST_REQUIRES_ARM_NEON_V8;
142 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700143 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700144 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700145 .Test(xnn_f32_vrndz_ukernel__neonv8_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700146 }
147 }
148
149 TEST(F32_VRNDZ__NEONV8_X4, inplace) {
150 TEST_REQUIRES_ARM_NEON_V8;
151 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700152 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700153 .batch_size(batch_size)
154 .inplace(true)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700155 .Test(xnn_f32_vrndz_ukernel__neonv8_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700156 }
157 }
158#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
159
160
161#if XNN_ARCH_ARM || XNN_ARCH_ARM64
162 TEST(F32_VRNDZ__NEONV8_X8, batch_eq_8) {
163 TEST_REQUIRES_ARM_NEON_V8;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700164 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700165 .batch_size(8)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700166 .Test(xnn_f32_vrndz_ukernel__neonv8_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700167 }
168
169 TEST(F32_VRNDZ__NEONV8_X8, batch_div_8) {
170 TEST_REQUIRES_ARM_NEON_V8;
171 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700172 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700173 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700174 .Test(xnn_f32_vrndz_ukernel__neonv8_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700175 }
176 }
177
178 TEST(F32_VRNDZ__NEONV8_X8, batch_lt_8) {
179 TEST_REQUIRES_ARM_NEON_V8;
180 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700181 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700182 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700183 .Test(xnn_f32_vrndz_ukernel__neonv8_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700184 }
185 }
186
187 TEST(F32_VRNDZ__NEONV8_X8, batch_gt_8) {
188 TEST_REQUIRES_ARM_NEON_V8;
189 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700190 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700191 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700192 .Test(xnn_f32_vrndz_ukernel__neonv8_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700193 }
194 }
195
196 TEST(F32_VRNDZ__NEONV8_X8, inplace) {
197 TEST_REQUIRES_ARM_NEON_V8;
198 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700199 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700200 .batch_size(batch_size)
201 .inplace(true)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700202 .Test(xnn_f32_vrndz_ukernel__neonv8_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700203 }
204 }
205#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
206
207
208#if XNN_ARCH_X86 || XNN_ARCH_X86_64
209 TEST(F32_VRNDZ__SSE2_X4, batch_eq_4) {
210 TEST_REQUIRES_X86_SSE2;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700211 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700212 .batch_size(4)
Marat Dukhan0e801372022-01-04 00:10:41 -0800213 .Test(xnn_f32_vrndz_ukernel__sse2_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700214 }
215
216 TEST(F32_VRNDZ__SSE2_X4, batch_div_4) {
217 TEST_REQUIRES_X86_SSE2;
218 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700219 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700220 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800221 .Test(xnn_f32_vrndz_ukernel__sse2_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700222 }
223 }
224
225 TEST(F32_VRNDZ__SSE2_X4, batch_lt_4) {
226 TEST_REQUIRES_X86_SSE2;
227 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700228 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700229 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800230 .Test(xnn_f32_vrndz_ukernel__sse2_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700231 }
232 }
233
234 TEST(F32_VRNDZ__SSE2_X4, batch_gt_4) {
235 TEST_REQUIRES_X86_SSE2;
236 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700237 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700238 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800239 .Test(xnn_f32_vrndz_ukernel__sse2_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700240 }
241 }
242
243 TEST(F32_VRNDZ__SSE2_X4, inplace) {
244 TEST_REQUIRES_X86_SSE2;
245 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700246 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700247 .batch_size(batch_size)
248 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800249 .Test(xnn_f32_vrndz_ukernel__sse2_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700250 }
251 }
252#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
253
254
255#if XNN_ARCH_X86 || XNN_ARCH_X86_64
256 TEST(F32_VRNDZ__SSE2_X8, batch_eq_8) {
257 TEST_REQUIRES_X86_SSE2;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700258 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700259 .batch_size(8)
Marat Dukhan0e801372022-01-04 00:10:41 -0800260 .Test(xnn_f32_vrndz_ukernel__sse2_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700261 }
262
263 TEST(F32_VRNDZ__SSE2_X8, batch_div_8) {
264 TEST_REQUIRES_X86_SSE2;
265 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700266 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700267 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800268 .Test(xnn_f32_vrndz_ukernel__sse2_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700269 }
270 }
271
272 TEST(F32_VRNDZ__SSE2_X8, batch_lt_8) {
273 TEST_REQUIRES_X86_SSE2;
274 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700275 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700276 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800277 .Test(xnn_f32_vrndz_ukernel__sse2_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700278 }
279 }
280
281 TEST(F32_VRNDZ__SSE2_X8, batch_gt_8) {
282 TEST_REQUIRES_X86_SSE2;
283 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700284 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700285 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800286 .Test(xnn_f32_vrndz_ukernel__sse2_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700287 }
288 }
289
290 TEST(F32_VRNDZ__SSE2_X8, inplace) {
291 TEST_REQUIRES_X86_SSE2;
292 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700293 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700294 .batch_size(batch_size)
295 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800296 .Test(xnn_f32_vrndz_ukernel__sse2_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_sse2_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700297 }
298 }
299#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
300
301
302#if XNN_ARCH_X86 || XNN_ARCH_X86_64
303 TEST(F32_VRNDZ__SSE41_X4, batch_eq_4) {
304 TEST_REQUIRES_X86_SSE41;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700305 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700306 .batch_size(4)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700307 .Test(xnn_f32_vrndz_ukernel__sse41_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700308 }
309
310 TEST(F32_VRNDZ__SSE41_X4, batch_div_4) {
311 TEST_REQUIRES_X86_SSE41;
312 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700313 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700314 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700315 .Test(xnn_f32_vrndz_ukernel__sse41_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700316 }
317 }
318
319 TEST(F32_VRNDZ__SSE41_X4, batch_lt_4) {
320 TEST_REQUIRES_X86_SSE41;
321 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700322 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700323 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700324 .Test(xnn_f32_vrndz_ukernel__sse41_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700325 }
326 }
327
328 TEST(F32_VRNDZ__SSE41_X4, batch_gt_4) {
329 TEST_REQUIRES_X86_SSE41;
330 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700331 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700332 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700333 .Test(xnn_f32_vrndz_ukernel__sse41_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700334 }
335 }
336
337 TEST(F32_VRNDZ__SSE41_X4, inplace) {
338 TEST_REQUIRES_X86_SSE41;
339 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700340 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700341 .batch_size(batch_size)
342 .inplace(true)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700343 .Test(xnn_f32_vrndz_ukernel__sse41_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700344 }
345 }
346#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
347
348
349#if XNN_ARCH_X86 || XNN_ARCH_X86_64
350 TEST(F32_VRNDZ__SSE41_X8, batch_eq_8) {
351 TEST_REQUIRES_X86_SSE41;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700352 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700353 .batch_size(8)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700354 .Test(xnn_f32_vrndz_ukernel__sse41_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700355 }
356
357 TEST(F32_VRNDZ__SSE41_X8, batch_div_8) {
358 TEST_REQUIRES_X86_SSE41;
359 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700360 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700361 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700362 .Test(xnn_f32_vrndz_ukernel__sse41_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700363 }
364 }
365
366 TEST(F32_VRNDZ__SSE41_X8, batch_lt_8) {
367 TEST_REQUIRES_X86_SSE41;
368 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700369 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700370 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700371 .Test(xnn_f32_vrndz_ukernel__sse41_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700372 }
373 }
374
375 TEST(F32_VRNDZ__SSE41_X8, batch_gt_8) {
376 TEST_REQUIRES_X86_SSE41;
377 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700378 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700379 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700380 .Test(xnn_f32_vrndz_ukernel__sse41_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700381 }
382 }
383
384 TEST(F32_VRNDZ__SSE41_X8, inplace) {
385 TEST_REQUIRES_X86_SSE41;
386 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700387 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700388 .batch_size(batch_size)
389 .inplace(true)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700390 .Test(xnn_f32_vrndz_ukernel__sse41_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700391 }
392 }
393#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
394
395
396#if XNN_ARCH_X86 || XNN_ARCH_X86_64
397 TEST(F32_VRNDZ__AVX_X8, batch_eq_8) {
398 TEST_REQUIRES_X86_AVX;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700399 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700400 .batch_size(8)
Marat Dukhan0e801372022-01-04 00:10:41 -0800401 .Test(xnn_f32_vrndz_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700402 }
403
404 TEST(F32_VRNDZ__AVX_X8, batch_div_8) {
405 TEST_REQUIRES_X86_AVX;
406 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700407 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700408 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800409 .Test(xnn_f32_vrndz_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700410 }
411 }
412
413 TEST(F32_VRNDZ__AVX_X8, batch_lt_8) {
414 TEST_REQUIRES_X86_AVX;
415 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700416 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700417 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800418 .Test(xnn_f32_vrndz_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700419 }
420 }
421
422 TEST(F32_VRNDZ__AVX_X8, batch_gt_8) {
423 TEST_REQUIRES_X86_AVX;
424 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700425 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700426 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800427 .Test(xnn_f32_vrndz_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700428 }
429 }
430
431 TEST(F32_VRNDZ__AVX_X8, inplace) {
432 TEST_REQUIRES_X86_AVX;
433 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700434 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700435 .batch_size(batch_size)
436 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800437 .Test(xnn_f32_vrndz_ukernel__avx_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700438 }
439 }
440#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
441
442
443#if XNN_ARCH_X86 || XNN_ARCH_X86_64
444 TEST(F32_VRNDZ__AVX_X16, batch_eq_16) {
445 TEST_REQUIRES_X86_AVX;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700446 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700447 .batch_size(16)
Marat Dukhan0e801372022-01-04 00:10:41 -0800448 .Test(xnn_f32_vrndz_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700449 }
450
451 TEST(F32_VRNDZ__AVX_X16, batch_div_16) {
452 TEST_REQUIRES_X86_AVX;
453 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700454 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700455 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800456 .Test(xnn_f32_vrndz_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700457 }
458 }
459
460 TEST(F32_VRNDZ__AVX_X16, batch_lt_16) {
461 TEST_REQUIRES_X86_AVX;
462 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700463 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700464 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800465 .Test(xnn_f32_vrndz_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700466 }
467 }
468
469 TEST(F32_VRNDZ__AVX_X16, batch_gt_16) {
470 TEST_REQUIRES_X86_AVX;
471 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700472 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700473 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800474 .Test(xnn_f32_vrndz_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700475 }
476 }
477
478 TEST(F32_VRNDZ__AVX_X16, inplace) {
479 TEST_REQUIRES_X86_AVX;
480 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700481 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700482 .batch_size(batch_size)
483 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800484 .Test(xnn_f32_vrndz_ukernel__avx_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_avx_params);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700485 }
486 }
487#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
488
489
490#if XNN_ARCH_X86 || XNN_ARCH_X86_64
491 TEST(F32_VRNDZ__AVX512F_X16, batch_eq_16) {
492 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700493 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700494 .batch_size(16)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700495 .Test(xnn_f32_vrndz_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700496 }
497
498 TEST(F32_VRNDZ__AVX512F_X16, batch_div_16) {
499 TEST_REQUIRES_X86_AVX512F;
500 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700501 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700502 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700503 .Test(xnn_f32_vrndz_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700504 }
505 }
506
507 TEST(F32_VRNDZ__AVX512F_X16, batch_lt_16) {
508 TEST_REQUIRES_X86_AVX512F;
509 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700510 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700511 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700512 .Test(xnn_f32_vrndz_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700513 }
514 }
515
516 TEST(F32_VRNDZ__AVX512F_X16, batch_gt_16) {
517 TEST_REQUIRES_X86_AVX512F;
518 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700519 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700520 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700521 .Test(xnn_f32_vrndz_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700522 }
523 }
524
525 TEST(F32_VRNDZ__AVX512F_X16, inplace) {
526 TEST_REQUIRES_X86_AVX512F;
527 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700528 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700529 .batch_size(batch_size)
530 .inplace(true)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700531 .Test(xnn_f32_vrndz_ukernel__avx512f_x16, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700532 }
533 }
534#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
535
536
537#if XNN_ARCH_X86 || XNN_ARCH_X86_64
538 TEST(F32_VRNDZ__AVX512F_X32, batch_eq_32) {
539 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700540 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700541 .batch_size(32)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700542 .Test(xnn_f32_vrndz_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700543 }
544
545 TEST(F32_VRNDZ__AVX512F_X32, batch_div_32) {
546 TEST_REQUIRES_X86_AVX512F;
547 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700548 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700549 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700550 .Test(xnn_f32_vrndz_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700551 }
552 }
553
554 TEST(F32_VRNDZ__AVX512F_X32, batch_lt_32) {
555 TEST_REQUIRES_X86_AVX512F;
556 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700557 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700558 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700559 .Test(xnn_f32_vrndz_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700560 }
561 }
562
563 TEST(F32_VRNDZ__AVX512F_X32, batch_gt_32) {
564 TEST_REQUIRES_X86_AVX512F;
565 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700566 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700567 .batch_size(batch_size)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700568 .Test(xnn_f32_vrndz_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700569 }
570 }
571
572 TEST(F32_VRNDZ__AVX512F_X32, inplace) {
573 TEST_REQUIRES_X86_AVX512F;
574 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700575 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700576 .batch_size(batch_size)
577 .inplace(true)
Marat Dukhan6eaab712021-05-13 15:20:58 -0700578 .Test(xnn_f32_vrndz_ukernel__avx512f_x32, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700579 }
580 }
581#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
582
583
Marat Dukhan4c617792021-12-21 15:47:58 -0800584#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700585 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X4, batch_eq_4) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700586 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700587 .batch_size(4)
Marat Dukhan0e801372022-01-04 00:10:41 -0800588 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700589 }
590
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700591 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X4, batch_div_4) {
Marat Dukhan72b399a2020-06-28 22:41:38 -0700592 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700593 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700594 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800595 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700596 }
597 }
598
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700599 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X4, batch_lt_4) {
Marat Dukhan72b399a2020-06-28 22:41:38 -0700600 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700601 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700602 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800603 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700604 }
605 }
606
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700607 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X4, batch_gt_4) {
Marat Dukhan72b399a2020-06-28 22:41:38 -0700608 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700609 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700610 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800611 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700612 }
613 }
614
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700615 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X4, inplace) {
Marat Dukhan72b399a2020-06-28 22:41:38 -0700616 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700617 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700618 .batch_size(batch_size)
619 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800620 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700621 }
622 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800623#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan72b399a2020-06-28 22:41:38 -0700624
625
Marat Dukhan4c617792021-12-21 15:47:58 -0800626#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700627 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X8, batch_eq_8) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700628 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700629 .batch_size(8)
Marat Dukhan0e801372022-01-04 00:10:41 -0800630 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700631 }
632
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700633 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X8, batch_div_8) {
Marat Dukhan72b399a2020-06-28 22:41:38 -0700634 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700635 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700636 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800637 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700638 }
639 }
640
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700641 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X8, batch_lt_8) {
Marat Dukhan72b399a2020-06-28 22:41:38 -0700642 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700643 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700644 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800645 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700646 }
647 }
648
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700649 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X8, batch_gt_8) {
Marat Dukhan72b399a2020-06-28 22:41:38 -0700650 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700651 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700652 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800653 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700654 }
655 }
656
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700657 TEST(F32_VRNDZ__WASMSIMD_ADDSUB_X8, inplace) {
Marat Dukhan72b399a2020-06-28 22:41:38 -0700658 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700659 VUnaryMicrokernelTester()
Marat Dukhan72b399a2020-06-28 22:41:38 -0700660 .batch_size(batch_size)
661 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800662 .Test(xnn_f32_vrndz_ukernel__wasmsimd_addsub_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700663 }
664 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800665#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700666
667
Marat Dukhan4c617792021-12-21 15:47:58 -0800668#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700669 TEST(F32_VRNDZ__WASMSIMD_CVT_X4, batch_eq_4) {
670 VUnaryMicrokernelTester()
671 .batch_size(4)
Marat Dukhan0e801372022-01-04 00:10:41 -0800672 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700673 }
674
675 TEST(F32_VRNDZ__WASMSIMD_CVT_X4, batch_div_4) {
676 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
677 VUnaryMicrokernelTester()
678 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800679 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700680 }
681 }
682
683 TEST(F32_VRNDZ__WASMSIMD_CVT_X4, batch_lt_4) {
684 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
685 VUnaryMicrokernelTester()
686 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800687 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700688 }
689 }
690
691 TEST(F32_VRNDZ__WASMSIMD_CVT_X4, batch_gt_4) {
692 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
693 VUnaryMicrokernelTester()
694 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800695 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700696 }
697 }
698
699 TEST(F32_VRNDZ__WASMSIMD_CVT_X4, inplace) {
700 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
701 VUnaryMicrokernelTester()
702 .batch_size(batch_size)
703 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800704 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700705 }
706 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800707#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700708
709
Marat Dukhan4c617792021-12-21 15:47:58 -0800710#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700711 TEST(F32_VRNDZ__WASMSIMD_CVT_X8, batch_eq_8) {
712 VUnaryMicrokernelTester()
713 .batch_size(8)
Marat Dukhan0e801372022-01-04 00:10:41 -0800714 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700715 }
716
717 TEST(F32_VRNDZ__WASMSIMD_CVT_X8, batch_div_8) {
718 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
719 VUnaryMicrokernelTester()
720 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800721 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700722 }
723 }
724
725 TEST(F32_VRNDZ__WASMSIMD_CVT_X8, batch_lt_8) {
726 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
727 VUnaryMicrokernelTester()
728 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800729 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700730 }
731 }
732
733 TEST(F32_VRNDZ__WASMSIMD_CVT_X8, batch_gt_8) {
734 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
735 VUnaryMicrokernelTester()
736 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800737 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhanfeee77f2021-08-31 13:39:50 -0700738 }
739 }
740
741 TEST(F32_VRNDZ__WASMSIMD_CVT_X8, inplace) {
742 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
743 VUnaryMicrokernelTester()
744 .batch_size(batch_size)
745 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800746 .Test(xnn_f32_vrndz_ukernel__wasmsimd_cvt_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero, xnn_init_f32_rnd_wasmsimd_params);
Marat Dukhan72b399a2020-06-28 22:41:38 -0700747 }
748 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800749#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan72b399a2020-06-28 22:41:38 -0700750
751
Marat Dukhan4c617792021-12-21 15:47:58 -0800752#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan33b4f752021-09-03 10:53:53 -0700753 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X4, batch_eq_4) {
754 VUnaryMicrokernelTester()
755 .batch_size(4)
756 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
757 }
758
759 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X4, batch_div_4) {
760 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
761 VUnaryMicrokernelTester()
762 .batch_size(batch_size)
763 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
764 }
765 }
766
767 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X4, batch_lt_4) {
768 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
769 VUnaryMicrokernelTester()
770 .batch_size(batch_size)
771 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
772 }
773 }
774
775 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X4, batch_gt_4) {
776 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
777 VUnaryMicrokernelTester()
778 .batch_size(batch_size)
779 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
780 }
781 }
782
783 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X4, inplace) {
784 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
785 VUnaryMicrokernelTester()
786 .batch_size(batch_size)
787 .inplace(true)
788 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
789 }
790 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800791#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan33b4f752021-09-03 10:53:53 -0700792
793
Marat Dukhan4c617792021-12-21 15:47:58 -0800794#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan33b4f752021-09-03 10:53:53 -0700795 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X8, batch_eq_8) {
796 VUnaryMicrokernelTester()
797 .batch_size(8)
798 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
799 }
800
801 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X8, batch_div_8) {
802 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
803 VUnaryMicrokernelTester()
804 .batch_size(batch_size)
805 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
806 }
807 }
808
809 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X8, batch_lt_8) {
810 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
811 VUnaryMicrokernelTester()
812 .batch_size(batch_size)
813 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
814 }
815 }
816
817 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X8, batch_gt_8) {
818 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
819 VUnaryMicrokernelTester()
820 .batch_size(batch_size)
821 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
822 }
823 }
824
825 TEST(F32_VRNDZ__WASMSIMD_NATIVE_X8, inplace) {
826 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
827 VUnaryMicrokernelTester()
828 .batch_size(batch_size)
829 .inplace(true)
830 .Test(xnn_f32_vrndz_ukernel__wasmsimd_native_x8, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
831 }
832 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800833#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan33b4f752021-09-03 10:53:53 -0700834
835
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700836TEST(F32_VRNDZ__SCALAR_LIBM_X1, batch_eq_1) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700837 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700838 .batch_size(1)
Marat Dukhan0e801372022-01-04 00:10:41 -0800839 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x1, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700840}
841
842TEST(F32_VRNDZ__SCALAR_LIBM_X1, batch_gt_1) {
843 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700844 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700845 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800846 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x1, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700847 }
848}
849
850TEST(F32_VRNDZ__SCALAR_LIBM_X1, inplace) {
851 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700852 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700853 .batch_size(batch_size)
854 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800855 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x1, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700856 }
857}
858
Marat Dukhanaf452482020-06-10 22:17:00 -0700859
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700860TEST(F32_VRNDZ__SCALAR_LIBM_X2, batch_eq_2) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700861 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700862 .batch_size(2)
Marat Dukhan0e801372022-01-04 00:10:41 -0800863 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x2, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700864}
865
866TEST(F32_VRNDZ__SCALAR_LIBM_X2, batch_div_2) {
867 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700868 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700869 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800870 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x2, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700871 }
872}
873
874TEST(F32_VRNDZ__SCALAR_LIBM_X2, batch_lt_2) {
875 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700876 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700877 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800878 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x2, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700879 }
880}
881
882TEST(F32_VRNDZ__SCALAR_LIBM_X2, batch_gt_2) {
883 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700884 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700885 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800886 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x2, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700887 }
888}
889
890TEST(F32_VRNDZ__SCALAR_LIBM_X2, inplace) {
891 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700892 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700893 .batch_size(batch_size)
894 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800895 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x2, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700896 }
897}
898
Marat Dukhanaf452482020-06-10 22:17:00 -0700899
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700900TEST(F32_VRNDZ__SCALAR_LIBM_X4, batch_eq_4) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700901 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700902 .batch_size(4)
Marat Dukhan0e801372022-01-04 00:10:41 -0800903 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700904}
905
906TEST(F32_VRNDZ__SCALAR_LIBM_X4, batch_div_4) {
907 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700908 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700909 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800910 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700911 }
912}
913
914TEST(F32_VRNDZ__SCALAR_LIBM_X4, batch_lt_4) {
915 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700916 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700917 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800918 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700919 }
920}
921
922TEST(F32_VRNDZ__SCALAR_LIBM_X4, batch_gt_4) {
923 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700924 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700925 .batch_size(batch_size)
Marat Dukhan0e801372022-01-04 00:10:41 -0800926 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700927 }
928}
929
930TEST(F32_VRNDZ__SCALAR_LIBM_X4, inplace) {
931 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan87ed45c2021-05-13 12:25:22 -0700932 VUnaryMicrokernelTester()
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700933 .batch_size(batch_size)
934 .inplace(true)
Marat Dukhan0e801372022-01-04 00:10:41 -0800935 .Test(xnn_f32_vrndz_ukernel__scalar_libm_x4, VUnaryMicrokernelTester::OpType::RoundTowardsZero);
Marat Dukhaneecf8fd2020-06-09 08:59:37 -0700936 }
Marat Dukhanaf452482020-06-10 22:17:00 -0700937}