blob: 53a0896e8b35b5c64b88dc08f9af1becdf089f8f [file] [log] [blame]
Marat Dukhan403b7d42019-12-05 12:49:11 -08001// 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-vmin.yaml
8// Generator: tools/generate-vbinary-test.py
9
10
11#include <gtest/gtest.h>
12
13#include <xnnpack/common.h>
14#include <xnnpack/isa-checks.h>
15
Marat Dukhan87bd5112021-08-02 11:43:53 -070016#include <xnnpack/params-init.h>
Marat Dukhan403b7d42019-12-05 12:49:11 -080017#include <xnnpack/vbinary.h>
18#include "vbinary-microkernel-tester.h"
19
20
21#if XNN_ARCH_ARM || XNN_ARCH_ARM64
22 TEST(F32_VMIN__NEON_X4, batch_eq_4) {
23 TEST_REQUIRES_ARM_NEON;
Marat Dukhan10f1fe02021-05-13 12:51:12 -070024 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080025 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070026 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -080027 }
28
29 TEST(F32_VMIN__NEON_X4, batch_div_4) {
30 TEST_REQUIRES_ARM_NEON;
31 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070032 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080033 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070034 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -080035 }
36 }
37
38 TEST(F32_VMIN__NEON_X4, batch_lt_4) {
39 TEST_REQUIRES_ARM_NEON;
40 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070041 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080042 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070043 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -080044 }
45 }
46
47 TEST(F32_VMIN__NEON_X4, batch_gt_4) {
48 TEST_REQUIRES_ARM_NEON;
49 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070050 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080051 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070052 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -080053 }
54 }
55
56 TEST(F32_VMIN__NEON_X4, inplace_a) {
57 TEST_REQUIRES_ARM_NEON;
58 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070059 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080060 .batch_size(batch_size)
61 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070062 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -080063 }
64 }
65
66 TEST(F32_VMIN__NEON_X4, inplace_b) {
67 TEST_REQUIRES_ARM_NEON;
68 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070069 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080070 .batch_size(batch_size)
71 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070072 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -080073 }
74 }
75
76 TEST(F32_VMIN__NEON_X4, inplace_a_and_b) {
77 TEST_REQUIRES_ARM_NEON;
78 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070079 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080080 .batch_size(batch_size)
81 .inplace_a(true)
82 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070083 .Test(xnn_f32_vmin_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -080084 }
85 }
Marat Dukhan403b7d42019-12-05 12:49:11 -080086#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
87
88
89#if XNN_ARCH_ARM || XNN_ARCH_ARM64
90 TEST(F32_VMIN__NEON_X8, batch_eq_8) {
91 TEST_REQUIRES_ARM_NEON;
Marat Dukhan10f1fe02021-05-13 12:51:12 -070092 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080093 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070094 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -080095 }
96
97 TEST(F32_VMIN__NEON_X8, batch_div_8) {
98 TEST_REQUIRES_ARM_NEON;
99 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700100 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800101 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700102 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800103 }
104 }
105
106 TEST(F32_VMIN__NEON_X8, batch_lt_8) {
107 TEST_REQUIRES_ARM_NEON;
108 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700109 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800110 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700111 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800112 }
113 }
114
115 TEST(F32_VMIN__NEON_X8, batch_gt_8) {
116 TEST_REQUIRES_ARM_NEON;
117 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700118 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800119 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700120 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800121 }
122 }
123
124 TEST(F32_VMIN__NEON_X8, inplace_a) {
125 TEST_REQUIRES_ARM_NEON;
126 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700127 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800128 .batch_size(batch_size)
129 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700130 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800131 }
132 }
133
134 TEST(F32_VMIN__NEON_X8, inplace_b) {
135 TEST_REQUIRES_ARM_NEON;
136 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700137 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800138 .batch_size(batch_size)
139 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700140 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800141 }
142 }
143
144 TEST(F32_VMIN__NEON_X8, inplace_a_and_b) {
145 TEST_REQUIRES_ARM_NEON;
146 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700147 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800148 .batch_size(batch_size)
149 .inplace_a(true)
150 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700151 .Test(xnn_f32_vmin_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800152 }
153 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800154#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
155
156
157#if XNN_ARCH_X86 || XNN_ARCH_X86_64
158 TEST(F32_VMIN__SSE_X4, batch_eq_4) {
159 TEST_REQUIRES_X86_SSE;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700160 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800161 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700162 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800163 }
164
165 TEST(F32_VMIN__SSE_X4, batch_div_4) {
166 TEST_REQUIRES_X86_SSE;
167 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700168 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800169 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700170 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800171 }
172 }
173
174 TEST(F32_VMIN__SSE_X4, batch_lt_4) {
175 TEST_REQUIRES_X86_SSE;
176 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700177 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800178 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700179 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800180 }
181 }
182
183 TEST(F32_VMIN__SSE_X4, batch_gt_4) {
184 TEST_REQUIRES_X86_SSE;
185 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700186 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800187 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700188 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800189 }
190 }
191
192 TEST(F32_VMIN__SSE_X4, inplace_a) {
193 TEST_REQUIRES_X86_SSE;
194 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700195 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800196 .batch_size(batch_size)
197 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700198 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800199 }
200 }
201
202 TEST(F32_VMIN__SSE_X4, inplace_b) {
203 TEST_REQUIRES_X86_SSE;
204 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700205 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800206 .batch_size(batch_size)
207 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700208 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800209 }
210 }
211
212 TEST(F32_VMIN__SSE_X4, inplace_a_and_b) {
213 TEST_REQUIRES_X86_SSE;
214 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700215 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800216 .batch_size(batch_size)
217 .inplace_a(true)
218 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700219 .Test(xnn_f32_vmin_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800220 }
221 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800222#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
223
224
225#if XNN_ARCH_X86 || XNN_ARCH_X86_64
226 TEST(F32_VMIN__SSE_X8, batch_eq_8) {
227 TEST_REQUIRES_X86_SSE;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700228 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800229 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700230 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800231 }
232
233 TEST(F32_VMIN__SSE_X8, batch_div_8) {
234 TEST_REQUIRES_X86_SSE;
235 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700236 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800237 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700238 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800239 }
240 }
241
242 TEST(F32_VMIN__SSE_X8, batch_lt_8) {
243 TEST_REQUIRES_X86_SSE;
244 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700245 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800246 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700247 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800248 }
249 }
250
251 TEST(F32_VMIN__SSE_X8, batch_gt_8) {
252 TEST_REQUIRES_X86_SSE;
253 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700254 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800255 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700256 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800257 }
258 }
259
260 TEST(F32_VMIN__SSE_X8, inplace_a) {
261 TEST_REQUIRES_X86_SSE;
262 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700263 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800264 .batch_size(batch_size)
265 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700266 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800267 }
268 }
269
270 TEST(F32_VMIN__SSE_X8, inplace_b) {
271 TEST_REQUIRES_X86_SSE;
272 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700273 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800274 .batch_size(batch_size)
275 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700276 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800277 }
278 }
279
280 TEST(F32_VMIN__SSE_X8, inplace_a_and_b) {
281 TEST_REQUIRES_X86_SSE;
282 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700283 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800284 .batch_size(batch_size)
285 .inplace_a(true)
286 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700287 .Test(xnn_f32_vmin_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800288 }
289 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800290#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
291
292
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800293#if XNN_ARCH_X86 || XNN_ARCH_X86_64
294 TEST(F32_VMIN__AVX_X8, batch_eq_8) {
295 TEST_REQUIRES_X86_AVX;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700296 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800297 .batch_size(8)
Marat Dukhan98c52152021-12-30 13:31:00 -0800298 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800299 }
300
301 TEST(F32_VMIN__AVX_X8, batch_div_8) {
302 TEST_REQUIRES_X86_AVX;
303 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700304 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800305 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800306 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800307 }
308 }
309
310 TEST(F32_VMIN__AVX_X8, batch_lt_8) {
311 TEST_REQUIRES_X86_AVX;
312 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700313 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800314 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800315 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800316 }
317 }
318
319 TEST(F32_VMIN__AVX_X8, batch_gt_8) {
320 TEST_REQUIRES_X86_AVX;
321 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700322 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800323 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800324 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800325 }
326 }
327
328 TEST(F32_VMIN__AVX_X8, inplace_a) {
329 TEST_REQUIRES_X86_AVX;
330 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700331 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800332 .batch_size(batch_size)
333 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800334 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800335 }
336 }
337
338 TEST(F32_VMIN__AVX_X8, inplace_b) {
339 TEST_REQUIRES_X86_AVX;
340 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700341 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800342 .batch_size(batch_size)
343 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800344 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800345 }
346 }
347
348 TEST(F32_VMIN__AVX_X8, inplace_a_and_b) {
349 TEST_REQUIRES_X86_AVX;
350 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700351 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800352 .batch_size(batch_size)
353 .inplace_a(true)
354 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800355 .Test(xnn_f32_vmin_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800356 }
357 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800358#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
359
360
361#if XNN_ARCH_X86 || XNN_ARCH_X86_64
362 TEST(F32_VMIN__AVX_X16, batch_eq_16) {
363 TEST_REQUIRES_X86_AVX;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700364 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800365 .batch_size(16)
Marat Dukhan98c52152021-12-30 13:31:00 -0800366 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800367 }
368
369 TEST(F32_VMIN__AVX_X16, batch_div_16) {
370 TEST_REQUIRES_X86_AVX;
371 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700372 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800373 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800374 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800375 }
376 }
377
378 TEST(F32_VMIN__AVX_X16, batch_lt_16) {
379 TEST_REQUIRES_X86_AVX;
380 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700381 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800382 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800383 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800384 }
385 }
386
387 TEST(F32_VMIN__AVX_X16, batch_gt_16) {
388 TEST_REQUIRES_X86_AVX;
389 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700390 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800391 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800392 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800393 }
394 }
395
396 TEST(F32_VMIN__AVX_X16, inplace_a) {
397 TEST_REQUIRES_X86_AVX;
398 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700399 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800400 .batch_size(batch_size)
401 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800402 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800403 }
404 }
405
406 TEST(F32_VMIN__AVX_X16, inplace_b) {
407 TEST_REQUIRES_X86_AVX;
408 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700409 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800410 .batch_size(batch_size)
411 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800412 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800413 }
414 }
415
416 TEST(F32_VMIN__AVX_X16, inplace_a_and_b) {
417 TEST_REQUIRES_X86_AVX;
418 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700419 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800420 .batch_size(batch_size)
421 .inplace_a(true)
422 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800423 .Test(xnn_f32_vmin_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Min, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800424 }
425 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800426#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
427
428
429#if XNN_ARCH_X86 || XNN_ARCH_X86_64
430 TEST(F32_VMIN__AVX512F_X16, batch_eq_16) {
431 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700432 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800433 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700434 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800435 }
436
437 TEST(F32_VMIN__AVX512F_X16, batch_div_16) {
438 TEST_REQUIRES_X86_AVX512F;
439 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700440 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800441 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700442 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800443 }
444 }
445
446 TEST(F32_VMIN__AVX512F_X16, batch_lt_16) {
447 TEST_REQUIRES_X86_AVX512F;
448 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700449 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800450 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700451 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800452 }
453 }
454
455 TEST(F32_VMIN__AVX512F_X16, batch_gt_16) {
456 TEST_REQUIRES_X86_AVX512F;
457 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700458 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800459 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700460 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800461 }
462 }
463
464 TEST(F32_VMIN__AVX512F_X16, inplace_a) {
465 TEST_REQUIRES_X86_AVX512F;
466 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700467 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800468 .batch_size(batch_size)
469 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700470 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800471 }
472 }
473
474 TEST(F32_VMIN__AVX512F_X16, inplace_b) {
475 TEST_REQUIRES_X86_AVX512F;
476 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700477 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800478 .batch_size(batch_size)
479 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700480 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800481 }
482 }
483
484 TEST(F32_VMIN__AVX512F_X16, inplace_a_and_b) {
485 TEST_REQUIRES_X86_AVX512F;
486 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700487 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800488 .batch_size(batch_size)
489 .inplace_a(true)
490 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700491 .Test(xnn_f32_vmin_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800492 }
493 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800494#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
495
496
497#if XNN_ARCH_X86 || XNN_ARCH_X86_64
498 TEST(F32_VMIN__AVX512F_X32, batch_eq_32) {
499 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700500 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800501 .batch_size(32)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700502 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800503 }
504
505 TEST(F32_VMIN__AVX512F_X32, batch_div_32) {
506 TEST_REQUIRES_X86_AVX512F;
507 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700508 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800509 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700510 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800511 }
512 }
513
514 TEST(F32_VMIN__AVX512F_X32, batch_lt_32) {
515 TEST_REQUIRES_X86_AVX512F;
516 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700517 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800518 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700519 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800520 }
521 }
522
523 TEST(F32_VMIN__AVX512F_X32, batch_gt_32) {
524 TEST_REQUIRES_X86_AVX512F;
525 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700526 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800527 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700528 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800529 }
530 }
531
532 TEST(F32_VMIN__AVX512F_X32, inplace_a) {
533 TEST_REQUIRES_X86_AVX512F;
534 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700535 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800536 .batch_size(batch_size)
537 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700538 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800539 }
540 }
541
542 TEST(F32_VMIN__AVX512F_X32, inplace_b) {
543 TEST_REQUIRES_X86_AVX512F;
544 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700545 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800546 .batch_size(batch_size)
547 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700548 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800549 }
550 }
551
552 TEST(F32_VMIN__AVX512F_X32, inplace_a_and_b) {
553 TEST_REQUIRES_X86_AVX512F;
554 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700555 VBinaryMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800556 .batch_size(batch_size)
557 .inplace_a(true)
558 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700559 .Test(xnn_f32_vmin_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800560 }
561 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800562#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
563
564
Marat Dukhan4c617792021-12-21 15:47:58 -0800565#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700566 TEST(F32_VMIN__WASMSIMD_ARM_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700567 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700568 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700569 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700570 }
571
572 TEST(F32_VMIN__WASMSIMD_ARM_X4, batch_div_4) {
573 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700574 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700575 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700576 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700577 }
578 }
579
580 TEST(F32_VMIN__WASMSIMD_ARM_X4, batch_lt_4) {
581 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700582 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700583 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700584 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700585 }
586 }
587
588 TEST(F32_VMIN__WASMSIMD_ARM_X4, batch_gt_4) {
589 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700590 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700591 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700592 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700593 }
594 }
595
596 TEST(F32_VMIN__WASMSIMD_ARM_X4, inplace_a) {
597 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700598 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700599 .batch_size(batch_size)
600 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700601 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700602 }
603 }
604
605 TEST(F32_VMIN__WASMSIMD_ARM_X4, inplace_b) {
606 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700607 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700608 .batch_size(batch_size)
609 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700610 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700611 }
612 }
613
614 TEST(F32_VMIN__WASMSIMD_ARM_X4, inplace_a_and_b) {
615 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700616 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700617 .batch_size(batch_size)
618 .inplace_a(true)
619 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700620 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700621 }
622 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800623#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700624
625
Marat Dukhan4c617792021-12-21 15:47:58 -0800626#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700627 TEST(F32_VMIN__WASMSIMD_ARM_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700628 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700629 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700630 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700631 }
632
633 TEST(F32_VMIN__WASMSIMD_ARM_X8, batch_div_8) {
634 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700635 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700636 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700637 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700638 }
639 }
640
641 TEST(F32_VMIN__WASMSIMD_ARM_X8, batch_lt_8) {
642 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700643 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700644 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700645 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700646 }
647 }
648
649 TEST(F32_VMIN__WASMSIMD_ARM_X8, batch_gt_8) {
650 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700651 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700652 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700653 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700654 }
655 }
656
657 TEST(F32_VMIN__WASMSIMD_ARM_X8, inplace_a) {
658 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700659 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700660 .batch_size(batch_size)
661 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700662 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700663 }
664 }
665
666 TEST(F32_VMIN__WASMSIMD_ARM_X8, inplace_b) {
667 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700668 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700669 .batch_size(batch_size)
670 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700671 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700672 }
673 }
674
675 TEST(F32_VMIN__WASMSIMD_ARM_X8, inplace_a_and_b) {
676 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700677 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700678 .batch_size(batch_size)
679 .inplace_a(true)
680 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700681 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700682 }
683 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800684#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700685
686
Marat Dukhan4c617792021-12-21 15:47:58 -0800687#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700688 TEST(F32_VMIN__WASMSIMD_ARM_X16, batch_eq_16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700689 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700690 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700691 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700692 }
693
694 TEST(F32_VMIN__WASMSIMD_ARM_X16, batch_div_16) {
695 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700696 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700697 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700698 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700699 }
700 }
701
702 TEST(F32_VMIN__WASMSIMD_ARM_X16, batch_lt_16) {
703 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700704 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700705 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700706 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700707 }
708 }
709
710 TEST(F32_VMIN__WASMSIMD_ARM_X16, batch_gt_16) {
711 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700712 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700713 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700714 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700715 }
716 }
717
718 TEST(F32_VMIN__WASMSIMD_ARM_X16, inplace_a) {
719 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700720 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700721 .batch_size(batch_size)
722 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700723 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700724 }
725 }
726
727 TEST(F32_VMIN__WASMSIMD_ARM_X16, inplace_b) {
728 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700729 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700730 .batch_size(batch_size)
731 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700732 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700733 }
734 }
735
736 TEST(F32_VMIN__WASMSIMD_ARM_X16, inplace_a_and_b) {
737 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700738 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700739 .batch_size(batch_size)
740 .inplace_a(true)
741 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700742 .Test(xnn_f32_vmin_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700743 }
744 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800745#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700746
747
Marat Dukhan4c617792021-12-21 15:47:58 -0800748#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700749 TEST(F32_VMIN__WASMSIMD_X86_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700750 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700751 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700752 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700753 }
754
755 TEST(F32_VMIN__WASMSIMD_X86_X4, batch_div_4) {
756 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700757 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700758 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700759 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700760 }
761 }
762
763 TEST(F32_VMIN__WASMSIMD_X86_X4, batch_lt_4) {
764 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700765 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700766 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700767 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700768 }
769 }
770
771 TEST(F32_VMIN__WASMSIMD_X86_X4, batch_gt_4) {
772 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700773 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700774 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700775 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700776 }
777 }
778
779 TEST(F32_VMIN__WASMSIMD_X86_X4, inplace_a) {
780 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700781 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700782 .batch_size(batch_size)
783 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700784 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700785 }
786 }
787
788 TEST(F32_VMIN__WASMSIMD_X86_X4, inplace_b) {
789 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700790 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700791 .batch_size(batch_size)
792 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700793 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700794 }
795 }
796
797 TEST(F32_VMIN__WASMSIMD_X86_X4, inplace_a_and_b) {
798 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700799 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700800 .batch_size(batch_size)
801 .inplace_a(true)
802 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700803 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700804 }
805 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800806#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700807
808
Marat Dukhan4c617792021-12-21 15:47:58 -0800809#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700810 TEST(F32_VMIN__WASMSIMD_X86_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700811 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700812 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700813 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700814 }
815
816 TEST(F32_VMIN__WASMSIMD_X86_X8, batch_div_8) {
817 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700818 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700819 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700820 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700821 }
822 }
823
824 TEST(F32_VMIN__WASMSIMD_X86_X8, batch_lt_8) {
825 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700826 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700827 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700828 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700829 }
830 }
831
832 TEST(F32_VMIN__WASMSIMD_X86_X8, batch_gt_8) {
833 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700834 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700835 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700836 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700837 }
838 }
839
840 TEST(F32_VMIN__WASMSIMD_X86_X8, inplace_a) {
841 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700842 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700843 .batch_size(batch_size)
844 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700845 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700846 }
847 }
848
849 TEST(F32_VMIN__WASMSIMD_X86_X8, inplace_b) {
850 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700851 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700852 .batch_size(batch_size)
853 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700854 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700855 }
856 }
857
858 TEST(F32_VMIN__WASMSIMD_X86_X8, inplace_a_and_b) {
859 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700860 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700861 .batch_size(batch_size)
862 .inplace_a(true)
863 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700864 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700865 }
866 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800867#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700868
869
Marat Dukhan4c617792021-12-21 15:47:58 -0800870#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700871 TEST(F32_VMIN__WASMSIMD_X86_X16, batch_eq_16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700872 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700873 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700874 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700875 }
876
877 TEST(F32_VMIN__WASMSIMD_X86_X16, batch_div_16) {
878 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700879 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700880 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700881 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700882 }
883 }
884
885 TEST(F32_VMIN__WASMSIMD_X86_X16, batch_lt_16) {
886 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700887 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700888 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700889 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700890 }
891 }
892
893 TEST(F32_VMIN__WASMSIMD_X86_X16, batch_gt_16) {
894 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700895 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700896 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700897 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700898 }
899 }
900
901 TEST(F32_VMIN__WASMSIMD_X86_X16, inplace_a) {
902 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700903 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700904 .batch_size(batch_size)
905 .inplace_a(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700906 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700907 }
908 }
909
910 TEST(F32_VMIN__WASMSIMD_X86_X16, inplace_b) {
911 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700912 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700913 .batch_size(batch_size)
914 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700915 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700916 }
917 }
918
919 TEST(F32_VMIN__WASMSIMD_X86_X16, inplace_a_and_b) {
920 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700921 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700922 .batch_size(batch_size)
923 .inplace_a(true)
924 .inplace_b(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700925 .Test(xnn_f32_vmin_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700926 }
927 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800928#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700929
930
Marat Dukhan4c617792021-12-21 15:47:58 -0800931#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800932 TEST(F32_VMIN__WASM_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700933 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800934 .batch_size(1)
Marat Dukhan98c52152021-12-30 13:31:00 -0800935 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800936 }
937
938 TEST(F32_VMIN__WASM_X1, batch_gt_1) {
939 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700940 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800941 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800942 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800943 }
944 }
945
946 TEST(F32_VMIN__WASM_X1, inplace_a) {
947 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700948 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800949 .batch_size(batch_size)
950 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800951 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800952 }
953 }
954
955 TEST(F32_VMIN__WASM_X1, inplace_b) {
956 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700957 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800958 .batch_size(batch_size)
959 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800960 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800961 }
962 }
963
964 TEST(F32_VMIN__WASM_X1, inplace_a_and_b) {
965 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700966 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800967 .batch_size(batch_size)
968 .inplace_a(true)
969 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800970 .Test(xnn_f32_vmin_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800971 }
972 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800973#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800974
975
Marat Dukhan4c617792021-12-21 15:47:58 -0800976#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800977 TEST(F32_VMIN__WASM_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700978 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800979 .batch_size(2)
Marat Dukhan98c52152021-12-30 13:31:00 -0800980 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800981 }
982
983 TEST(F32_VMIN__WASM_X2, batch_div_2) {
984 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700985 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800986 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800987 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800988 }
989 }
990
991 TEST(F32_VMIN__WASM_X2, batch_lt_2) {
992 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700993 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800994 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800995 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800996 }
997 }
998
999 TEST(F32_VMIN__WASM_X2, batch_gt_2) {
1000 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001001 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001002 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001003 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001004 }
1005 }
1006
1007 TEST(F32_VMIN__WASM_X2, inplace_a) {
1008 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001009 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001010 .batch_size(batch_size)
1011 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001012 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001013 }
1014 }
1015
1016 TEST(F32_VMIN__WASM_X2, inplace_b) {
1017 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001018 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001019 .batch_size(batch_size)
1020 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001021 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001022 }
1023 }
1024
1025 TEST(F32_VMIN__WASM_X2, inplace_a_and_b) {
1026 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001027 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001028 .batch_size(batch_size)
1029 .inplace_a(true)
1030 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001031 .Test(xnn_f32_vmin_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001032 }
1033 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001034#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -08001035
1036
Marat Dukhan4c617792021-12-21 15:47:58 -08001037#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -08001038 TEST(F32_VMIN__WASM_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001039 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001040 .batch_size(4)
Marat Dukhan98c52152021-12-30 13:31:00 -08001041 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001042 }
1043
1044 TEST(F32_VMIN__WASM_X4, batch_div_4) {
1045 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001046 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001047 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001048 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001049 }
1050 }
1051
1052 TEST(F32_VMIN__WASM_X4, batch_lt_4) {
1053 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001054 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001055 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001056 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001057 }
1058 }
1059
1060 TEST(F32_VMIN__WASM_X4, batch_gt_4) {
1061 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001062 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001063 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001064 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001065 }
1066 }
1067
1068 TEST(F32_VMIN__WASM_X4, inplace_a) {
1069 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001070 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001071 .batch_size(batch_size)
1072 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001073 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001074 }
1075 }
1076
1077 TEST(F32_VMIN__WASM_X4, inplace_b) {
1078 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001079 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001080 .batch_size(batch_size)
1081 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001082 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001083 }
1084 }
1085
1086 TEST(F32_VMIN__WASM_X4, inplace_a_and_b) {
1087 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001088 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001089 .batch_size(batch_size)
1090 .inplace_a(true)
1091 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001092 .Test(xnn_f32_vmin_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001093 }
1094 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001095#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -08001096
1097
Marat Dukhan4c617792021-12-21 15:47:58 -08001098#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -07001099 TEST(F32_VMIN__WASM_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001100 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001101 .batch_size(8)
Marat Dukhan98c52152021-12-30 13:31:00 -08001102 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001103 }
1104
1105 TEST(F32_VMIN__WASM_X8, batch_div_8) {
1106 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001107 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001108 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001109 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001110 }
1111 }
1112
1113 TEST(F32_VMIN__WASM_X8, batch_lt_8) {
1114 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001115 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001116 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001117 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001118 }
1119 }
1120
1121 TEST(F32_VMIN__WASM_X8, batch_gt_8) {
1122 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001123 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001124 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001125 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001126 }
1127 }
1128
1129 TEST(F32_VMIN__WASM_X8, inplace_a) {
1130 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001131 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001132 .batch_size(batch_size)
1133 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001134 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001135 }
1136 }
1137
1138 TEST(F32_VMIN__WASM_X8, inplace_b) {
1139 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001140 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001141 .batch_size(batch_size)
1142 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001143 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001144 }
1145 }
1146
1147 TEST(F32_VMIN__WASM_X8, inplace_a_and_b) {
1148 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001149 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001150 .batch_size(batch_size)
1151 .inplace_a(true)
1152 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001153 .Test(xnn_f32_vmin_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001154 }
1155 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001156#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -07001157
1158
Marat Dukhan403b7d42019-12-05 12:49:11 -08001159TEST(F32_VMIN__SCALAR_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001160 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001161 .batch_size(1)
Marat Dukhan98c52152021-12-30 13:31:00 -08001162 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001163}
1164
1165TEST(F32_VMIN__SCALAR_X1, batch_gt_1) {
1166 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001167 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001168 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001169 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001170 }
1171}
1172
1173TEST(F32_VMIN__SCALAR_X1, inplace_a) {
1174 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001175 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001176 .batch_size(batch_size)
1177 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001178 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001179 }
1180}
1181
1182TEST(F32_VMIN__SCALAR_X1, inplace_b) {
1183 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001184 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001185 .batch_size(batch_size)
1186 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001187 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001188 }
1189}
1190
1191TEST(F32_VMIN__SCALAR_X1, inplace_a_and_b) {
1192 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001193 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001194 .batch_size(batch_size)
1195 .inplace_a(true)
1196 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001197 .Test(xnn_f32_vmin_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001198 }
1199}
1200
Marat Dukhan403b7d42019-12-05 12:49:11 -08001201
1202TEST(F32_VMIN__SCALAR_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001203 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001204 .batch_size(2)
Marat Dukhan98c52152021-12-30 13:31:00 -08001205 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001206}
1207
1208TEST(F32_VMIN__SCALAR_X2, batch_div_2) {
1209 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001210 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001211 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001212 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001213 }
1214}
1215
1216TEST(F32_VMIN__SCALAR_X2, batch_lt_2) {
1217 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001218 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001219 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001220 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001221 }
1222}
1223
1224TEST(F32_VMIN__SCALAR_X2, batch_gt_2) {
1225 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001226 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001227 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001228 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001229 }
1230}
1231
1232TEST(F32_VMIN__SCALAR_X2, inplace_a) {
1233 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001234 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001235 .batch_size(batch_size)
1236 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001237 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001238 }
1239}
1240
1241TEST(F32_VMIN__SCALAR_X2, inplace_b) {
1242 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001243 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001244 .batch_size(batch_size)
1245 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001246 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001247 }
1248}
1249
1250TEST(F32_VMIN__SCALAR_X2, inplace_a_and_b) {
1251 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001252 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001253 .batch_size(batch_size)
1254 .inplace_a(true)
1255 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001256 .Test(xnn_f32_vmin_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001257 }
1258}
1259
Marat Dukhan403b7d42019-12-05 12:49:11 -08001260
1261TEST(F32_VMIN__SCALAR_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001262 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001263 .batch_size(4)
Marat Dukhan98c52152021-12-30 13:31:00 -08001264 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001265}
1266
1267TEST(F32_VMIN__SCALAR_X4, batch_div_4) {
1268 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001269 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001270 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001271 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001272 }
1273}
1274
1275TEST(F32_VMIN__SCALAR_X4, batch_lt_4) {
1276 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001277 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001278 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001279 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001280 }
1281}
1282
1283TEST(F32_VMIN__SCALAR_X4, batch_gt_4) {
1284 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001285 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001286 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001287 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001288 }
1289}
1290
1291TEST(F32_VMIN__SCALAR_X4, inplace_a) {
1292 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001293 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001294 .batch_size(batch_size)
1295 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001296 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001297 }
1298}
1299
1300TEST(F32_VMIN__SCALAR_X4, inplace_b) {
1301 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001302 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001303 .batch_size(batch_size)
1304 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001305 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001306 }
1307}
1308
1309TEST(F32_VMIN__SCALAR_X4, inplace_a_and_b) {
1310 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001311 VBinaryMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -08001312 .batch_size(batch_size)
1313 .inplace_a(true)
1314 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001315 .Test(xnn_f32_vmin_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Min);
Marat Dukhan403b7d42019-12-05 12:49:11 -08001316 }
1317}
Frank Barchard9c7308f2020-08-31 17:03:01 -07001318
1319
1320TEST(F32_VMIN__SCALAR_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001321 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001322 .batch_size(8)
Marat Dukhan98c52152021-12-30 13:31:00 -08001323 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001324}
1325
1326TEST(F32_VMIN__SCALAR_X8, batch_div_8) {
1327 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001328 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001329 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001330 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001331 }
1332}
1333
1334TEST(F32_VMIN__SCALAR_X8, batch_lt_8) {
1335 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001336 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001337 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001338 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001339 }
1340}
1341
1342TEST(F32_VMIN__SCALAR_X8, batch_gt_8) {
1343 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001344 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001345 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -08001346 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001347 }
1348}
1349
1350TEST(F32_VMIN__SCALAR_X8, inplace_a) {
1351 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001352 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001353 .batch_size(batch_size)
1354 .inplace_a(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001355 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001356 }
1357}
1358
1359TEST(F32_VMIN__SCALAR_X8, inplace_b) {
1360 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001361 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001362 .batch_size(batch_size)
1363 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001364 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001365 }
1366}
1367
1368TEST(F32_VMIN__SCALAR_X8, inplace_a_and_b) {
1369 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001370 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001371 .batch_size(batch_size)
1372 .inplace_a(true)
1373 .inplace_b(true)
Marat Dukhan98c52152021-12-30 13:31:00 -08001374 .Test(xnn_f32_vmin_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Min);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001375 }
1376}