blob: 63d199fa6431b05acbb697850b1ad42b6ca6e160 [file] [log] [blame]
Marat Dukhan91cd2b72020-04-09 23:57:31 -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-vdiv-minmax.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 Dukhan91cd2b72020-04-09 23:57:31 -070017#include <xnnpack/vbinary.h>
18#include "vbinary-microkernel-tester.h"
19
20
21#if XNN_ARCH_ARM64
22 TEST(F32_VDIV_MINMAX__NEON_X4, batch_eq_4) {
23 TEST_REQUIRES_ARM_NEON;
Marat Dukhan10f1fe02021-05-13 12:51:12 -070024 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070025 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -080026 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070027 }
28
29 TEST(F32_VDIV_MINMAX__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 Dukhan91cd2b72020-04-09 23:57:31 -070033 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -080034 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070035 }
36 }
37
38 TEST(F32_VDIV_MINMAX__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 Dukhan91cd2b72020-04-09 23:57:31 -070042 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -080043 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070044 }
45 }
46
47 TEST(F32_VDIV_MINMAX__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 Dukhan91cd2b72020-04-09 23:57:31 -070051 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -080052 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070053 }
54 }
55
56 TEST(F32_VDIV_MINMAX__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 Dukhan91cd2b72020-04-09 23:57:31 -070060 .batch_size(batch_size)
61 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -080062 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070063 }
64 }
65
66 TEST(F32_VDIV_MINMAX__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 Dukhan91cd2b72020-04-09 23:57:31 -070070 .batch_size(batch_size)
71 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -080072 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070073 }
74 }
75
76 TEST(F32_VDIV_MINMAX__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 Dukhan91cd2b72020-04-09 23:57:31 -070080 .batch_size(batch_size)
81 .inplace_a(true)
82 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -080083 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070084 }
85 }
86
87 TEST(F32_VDIV_MINMAX__NEON_X4, qmin) {
88 TEST_REQUIRES_ARM_NEON;
89 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070090 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070091 .batch_size(batch_size)
92 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -080093 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070094 }
95 }
96
97 TEST(F32_VDIV_MINMAX__NEON_X4, qmax) {
98 TEST_REQUIRES_ARM_NEON;
99 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700100 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700101 .batch_size(batch_size)
102 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800103 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700104 }
105 }
106#endif // XNN_ARCH_ARM64
107
108
109#if XNN_ARCH_ARM64
110 TEST(F32_VDIV_MINMAX__NEON_X8, batch_eq_8) {
111 TEST_REQUIRES_ARM_NEON;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700112 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700113 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -0800114 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700115 }
116
117 TEST(F32_VDIV_MINMAX__NEON_X8, batch_div_8) {
118 TEST_REQUIRES_ARM_NEON;
119 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700120 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700121 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800122 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700123 }
124 }
125
126 TEST(F32_VDIV_MINMAX__NEON_X8, batch_lt_8) {
127 TEST_REQUIRES_ARM_NEON;
128 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700129 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700130 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800131 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700132 }
133 }
134
135 TEST(F32_VDIV_MINMAX__NEON_X8, batch_gt_8) {
136 TEST_REQUIRES_ARM_NEON;
137 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700138 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700139 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800140 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700141 }
142 }
143
144 TEST(F32_VDIV_MINMAX__NEON_X8, inplace_a) {
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 Dukhan91cd2b72020-04-09 23:57:31 -0700148 .batch_size(batch_size)
149 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800150 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700151 }
152 }
153
154 TEST(F32_VDIV_MINMAX__NEON_X8, inplace_b) {
155 TEST_REQUIRES_ARM_NEON;
156 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700157 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700158 .batch_size(batch_size)
159 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800160 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700161 }
162 }
163
164 TEST(F32_VDIV_MINMAX__NEON_X8, inplace_a_and_b) {
165 TEST_REQUIRES_ARM_NEON;
166 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700167 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700168 .batch_size(batch_size)
169 .inplace_a(true)
170 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800171 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700172 }
173 }
174
175 TEST(F32_VDIV_MINMAX__NEON_X8, qmin) {
176 TEST_REQUIRES_ARM_NEON;
177 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700178 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700179 .batch_size(batch_size)
180 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800181 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700182 }
183 }
184
185 TEST(F32_VDIV_MINMAX__NEON_X8, qmax) {
186 TEST_REQUIRES_ARM_NEON;
187 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700188 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700189 .batch_size(batch_size)
190 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800191 .Test(xnn_f32_vdiv_minmax_ukernel__neon_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700192 }
193 }
194#endif // XNN_ARCH_ARM64
195
196
197#if XNN_ARCH_X86 || XNN_ARCH_X86_64
198 TEST(F32_VDIV_MINMAX__SSE_X4, batch_eq_4) {
199 TEST_REQUIRES_X86_SSE;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700200 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700201 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -0800202 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700203 }
204
205 TEST(F32_VDIV_MINMAX__SSE_X4, batch_div_4) {
206 TEST_REQUIRES_X86_SSE;
207 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700208 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700209 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800210 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700211 }
212 }
213
214 TEST(F32_VDIV_MINMAX__SSE_X4, batch_lt_4) {
215 TEST_REQUIRES_X86_SSE;
216 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700217 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700218 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800219 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700220 }
221 }
222
223 TEST(F32_VDIV_MINMAX__SSE_X4, batch_gt_4) {
224 TEST_REQUIRES_X86_SSE;
225 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700226 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700227 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800228 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700229 }
230 }
231
232 TEST(F32_VDIV_MINMAX__SSE_X4, inplace_a) {
233 TEST_REQUIRES_X86_SSE;
234 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700235 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700236 .batch_size(batch_size)
237 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800238 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700239 }
240 }
241
242 TEST(F32_VDIV_MINMAX__SSE_X4, inplace_b) {
243 TEST_REQUIRES_X86_SSE;
244 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700245 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700246 .batch_size(batch_size)
247 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800248 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700249 }
250 }
251
252 TEST(F32_VDIV_MINMAX__SSE_X4, inplace_a_and_b) {
253 TEST_REQUIRES_X86_SSE;
254 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700255 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700256 .batch_size(batch_size)
257 .inplace_a(true)
258 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800259 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700260 }
261 }
262
263 TEST(F32_VDIV_MINMAX__SSE_X4, qmin) {
264 TEST_REQUIRES_X86_SSE;
265 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700266 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700267 .batch_size(batch_size)
268 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800269 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700270 }
271 }
272
273 TEST(F32_VDIV_MINMAX__SSE_X4, qmax) {
274 TEST_REQUIRES_X86_SSE;
275 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700276 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700277 .batch_size(batch_size)
278 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800279 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700280 }
281 }
282#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
283
284
285#if XNN_ARCH_X86 || XNN_ARCH_X86_64
286 TEST(F32_VDIV_MINMAX__SSE_X8, batch_eq_8) {
287 TEST_REQUIRES_X86_SSE;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700288 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700289 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -0800290 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700291 }
292
293 TEST(F32_VDIV_MINMAX__SSE_X8, batch_div_8) {
294 TEST_REQUIRES_X86_SSE;
295 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700296 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700297 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800298 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700299 }
300 }
301
302 TEST(F32_VDIV_MINMAX__SSE_X8, batch_lt_8) {
303 TEST_REQUIRES_X86_SSE;
304 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700305 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700306 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800307 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700308 }
309 }
310
311 TEST(F32_VDIV_MINMAX__SSE_X8, batch_gt_8) {
312 TEST_REQUIRES_X86_SSE;
313 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700314 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700315 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800316 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700317 }
318 }
319
320 TEST(F32_VDIV_MINMAX__SSE_X8, inplace_a) {
321 TEST_REQUIRES_X86_SSE;
322 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700323 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700324 .batch_size(batch_size)
325 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800326 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700327 }
328 }
329
330 TEST(F32_VDIV_MINMAX__SSE_X8, inplace_b) {
331 TEST_REQUIRES_X86_SSE;
332 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700333 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700334 .batch_size(batch_size)
335 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800336 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700337 }
338 }
339
340 TEST(F32_VDIV_MINMAX__SSE_X8, inplace_a_and_b) {
341 TEST_REQUIRES_X86_SSE;
342 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700343 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700344 .batch_size(batch_size)
345 .inplace_a(true)
346 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800347 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700348 }
349 }
350
351 TEST(F32_VDIV_MINMAX__SSE_X8, qmin) {
352 TEST_REQUIRES_X86_SSE;
353 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700354 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700355 .batch_size(batch_size)
356 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800357 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700358 }
359 }
360
361 TEST(F32_VDIV_MINMAX__SSE_X8, qmax) {
362 TEST_REQUIRES_X86_SSE;
363 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700364 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700365 .batch_size(batch_size)
366 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800367 .Test(xnn_f32_vdiv_minmax_ukernel__sse_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700368 }
369 }
370#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
371
372
373#if XNN_ARCH_X86 || XNN_ARCH_X86_64
374 TEST(F32_VDIV_MINMAX__AVX_X8, batch_eq_8) {
375 TEST_REQUIRES_X86_AVX;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700376 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700377 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -0800378 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700379 }
380
381 TEST(F32_VDIV_MINMAX__AVX_X8, batch_div_8) {
382 TEST_REQUIRES_X86_AVX;
383 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700384 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700385 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800386 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700387 }
388 }
389
390 TEST(F32_VDIV_MINMAX__AVX_X8, batch_lt_8) {
391 TEST_REQUIRES_X86_AVX;
392 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700393 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700394 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800395 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700396 }
397 }
398
399 TEST(F32_VDIV_MINMAX__AVX_X8, batch_gt_8) {
400 TEST_REQUIRES_X86_AVX;
401 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700402 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700403 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800404 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700405 }
406 }
407
408 TEST(F32_VDIV_MINMAX__AVX_X8, inplace_a) {
409 TEST_REQUIRES_X86_AVX;
410 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700411 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700412 .batch_size(batch_size)
413 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800414 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700415 }
416 }
417
418 TEST(F32_VDIV_MINMAX__AVX_X8, inplace_b) {
419 TEST_REQUIRES_X86_AVX;
420 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700421 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700422 .batch_size(batch_size)
423 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800424 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700425 }
426 }
427
428 TEST(F32_VDIV_MINMAX__AVX_X8, inplace_a_and_b) {
429 TEST_REQUIRES_X86_AVX;
430 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700431 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700432 .batch_size(batch_size)
433 .inplace_a(true)
434 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800435 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700436 }
437 }
438
439 TEST(F32_VDIV_MINMAX__AVX_X8, qmin) {
440 TEST_REQUIRES_X86_AVX;
441 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700442 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700443 .batch_size(batch_size)
444 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800445 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700446 }
447 }
448
449 TEST(F32_VDIV_MINMAX__AVX_X8, qmax) {
450 TEST_REQUIRES_X86_AVX;
451 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700452 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700453 .batch_size(batch_size)
454 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800455 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700456 }
457 }
458#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
459
460
461#if XNN_ARCH_X86 || XNN_ARCH_X86_64
462 TEST(F32_VDIV_MINMAX__AVX_X16, batch_eq_16) {
463 TEST_REQUIRES_X86_AVX;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700464 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700465 .batch_size(16)
Marat Dukhanf6004972021-12-30 11:23:02 -0800466 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700467 }
468
469 TEST(F32_VDIV_MINMAX__AVX_X16, batch_div_16) {
470 TEST_REQUIRES_X86_AVX;
471 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700472 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700473 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800474 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700475 }
476 }
477
478 TEST(F32_VDIV_MINMAX__AVX_X16, batch_lt_16) {
479 TEST_REQUIRES_X86_AVX;
480 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700481 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700482 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800483 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700484 }
485 }
486
487 TEST(F32_VDIV_MINMAX__AVX_X16, batch_gt_16) {
488 TEST_REQUIRES_X86_AVX;
489 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700490 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700491 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800492 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700493 }
494 }
495
496 TEST(F32_VDIV_MINMAX__AVX_X16, inplace_a) {
497 TEST_REQUIRES_X86_AVX;
498 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700499 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700500 .batch_size(batch_size)
501 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800502 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700503 }
504 }
505
506 TEST(F32_VDIV_MINMAX__AVX_X16, inplace_b) {
507 TEST_REQUIRES_X86_AVX;
508 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700509 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700510 .batch_size(batch_size)
511 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800512 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700513 }
514 }
515
516 TEST(F32_VDIV_MINMAX__AVX_X16, inplace_a_and_b) {
517 TEST_REQUIRES_X86_AVX;
518 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700519 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700520 .batch_size(batch_size)
521 .inplace_a(true)
522 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800523 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700524 }
525 }
526
527 TEST(F32_VDIV_MINMAX__AVX_X16, qmin) {
528 TEST_REQUIRES_X86_AVX;
529 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700530 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700531 .batch_size(batch_size)
532 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800533 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700534 }
535 }
536
537 TEST(F32_VDIV_MINMAX__AVX_X16, qmax) {
538 TEST_REQUIRES_X86_AVX;
539 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700540 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700541 .batch_size(batch_size)
542 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800543 .Test(xnn_f32_vdiv_minmax_ukernel__avx_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700544 }
545 }
546#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
547
548
549#if XNN_ARCH_X86 || XNN_ARCH_X86_64
550 TEST(F32_VDIV_MINMAX__AVX512F_X16, batch_eq_16) {
551 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700552 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700553 .batch_size(16)
Marat Dukhanf6004972021-12-30 11:23:02 -0800554 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700555 }
556
557 TEST(F32_VDIV_MINMAX__AVX512F_X16, batch_div_16) {
558 TEST_REQUIRES_X86_AVX512F;
559 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700560 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700561 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800562 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700563 }
564 }
565
566 TEST(F32_VDIV_MINMAX__AVX512F_X16, batch_lt_16) {
567 TEST_REQUIRES_X86_AVX512F;
568 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700569 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700570 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800571 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700572 }
573 }
574
575 TEST(F32_VDIV_MINMAX__AVX512F_X16, batch_gt_16) {
576 TEST_REQUIRES_X86_AVX512F;
577 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700578 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700579 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800580 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700581 }
582 }
583
584 TEST(F32_VDIV_MINMAX__AVX512F_X16, inplace_a) {
585 TEST_REQUIRES_X86_AVX512F;
586 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700587 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700588 .batch_size(batch_size)
589 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800590 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700591 }
592 }
593
594 TEST(F32_VDIV_MINMAX__AVX512F_X16, inplace_b) {
595 TEST_REQUIRES_X86_AVX512F;
596 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700597 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700598 .batch_size(batch_size)
599 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800600 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700601 }
602 }
603
604 TEST(F32_VDIV_MINMAX__AVX512F_X16, inplace_a_and_b) {
605 TEST_REQUIRES_X86_AVX512F;
606 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700607 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700608 .batch_size(batch_size)
609 .inplace_a(true)
610 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800611 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700612 }
613 }
614
615 TEST(F32_VDIV_MINMAX__AVX512F_X16, qmin) {
616 TEST_REQUIRES_X86_AVX512F;
617 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700618 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700619 .batch_size(batch_size)
620 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800621 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700622 }
623 }
624
625 TEST(F32_VDIV_MINMAX__AVX512F_X16, qmax) {
626 TEST_REQUIRES_X86_AVX512F;
627 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700628 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700629 .batch_size(batch_size)
630 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800631 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700632 }
633 }
634#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
635
636
637#if XNN_ARCH_X86 || XNN_ARCH_X86_64
638 TEST(F32_VDIV_MINMAX__AVX512F_X32, batch_eq_32) {
639 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700640 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700641 .batch_size(32)
Marat Dukhanf6004972021-12-30 11:23:02 -0800642 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700643 }
644
645 TEST(F32_VDIV_MINMAX__AVX512F_X32, batch_div_32) {
646 TEST_REQUIRES_X86_AVX512F;
647 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700648 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700649 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800650 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700651 }
652 }
653
654 TEST(F32_VDIV_MINMAX__AVX512F_X32, batch_lt_32) {
655 TEST_REQUIRES_X86_AVX512F;
656 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700657 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700658 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800659 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700660 }
661 }
662
663 TEST(F32_VDIV_MINMAX__AVX512F_X32, batch_gt_32) {
664 TEST_REQUIRES_X86_AVX512F;
665 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700666 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700667 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800668 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700669 }
670 }
671
672 TEST(F32_VDIV_MINMAX__AVX512F_X32, inplace_a) {
673 TEST_REQUIRES_X86_AVX512F;
674 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700675 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700676 .batch_size(batch_size)
677 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800678 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700679 }
680 }
681
682 TEST(F32_VDIV_MINMAX__AVX512F_X32, inplace_b) {
683 TEST_REQUIRES_X86_AVX512F;
684 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700685 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700686 .batch_size(batch_size)
687 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800688 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700689 }
690 }
691
692 TEST(F32_VDIV_MINMAX__AVX512F_X32, inplace_a_and_b) {
693 TEST_REQUIRES_X86_AVX512F;
694 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700695 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700696 .batch_size(batch_size)
697 .inplace_a(true)
698 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800699 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700700 }
701 }
702
703 TEST(F32_VDIV_MINMAX__AVX512F_X32, qmin) {
704 TEST_REQUIRES_X86_AVX512F;
705 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700706 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700707 .batch_size(batch_size)
708 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800709 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700710 }
711 }
712
713 TEST(F32_VDIV_MINMAX__AVX512F_X32, qmax) {
714 TEST_REQUIRES_X86_AVX512F;
715 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700716 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700717 .batch_size(batch_size)
718 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800719 .Test(xnn_f32_vdiv_minmax_ukernel__avx512f_x32, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700720 }
721 }
722#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
723
724
Marat Dukhan4c617792021-12-21 15:47:58 -0800725#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700726 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700727 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700728 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -0800729 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700730 }
731
732 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X4, batch_div_4) {
733 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700734 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700735 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800736 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700737 }
738 }
739
740 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X4, batch_lt_4) {
741 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700742 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700743 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800744 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700745 }
746 }
747
748 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X4, batch_gt_4) {
749 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700750 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700751 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800752 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700753 }
754 }
755
756 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X4, inplace_a) {
757 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700758 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700759 .batch_size(batch_size)
760 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800761 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700762 }
763 }
764
765 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X4, inplace_b) {
766 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700767 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700768 .batch_size(batch_size)
769 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800770 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700771 }
772 }
773
774 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X4, inplace_a_and_b) {
775 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700776 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700777 .batch_size(batch_size)
778 .inplace_a(true)
779 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800780 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700781 }
782 }
783
784 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X4, qmin) {
785 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700786 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700787 .batch_size(batch_size)
788 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800789 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700790 }
791 }
792
793 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X4, qmax) {
794 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700795 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700796 .batch_size(batch_size)
797 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800798 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700799 }
800 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800801#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700802
803
Marat Dukhan4c617792021-12-21 15:47:58 -0800804#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700805 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700806 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700807 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -0800808 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700809 }
810
811 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X8, batch_div_8) {
812 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700813 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700814 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800815 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700816 }
817 }
818
819 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X8, batch_lt_8) {
820 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700821 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700822 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800823 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700824 }
825 }
826
827 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X8, batch_gt_8) {
828 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700829 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700830 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800831 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700832 }
833 }
834
835 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X8, inplace_a) {
836 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700837 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700838 .batch_size(batch_size)
839 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800840 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700841 }
842 }
843
844 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X8, inplace_b) {
845 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700846 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700847 .batch_size(batch_size)
848 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800849 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700850 }
851 }
852
853 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X8, inplace_a_and_b) {
854 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700855 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700856 .batch_size(batch_size)
857 .inplace_a(true)
858 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800859 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700860 }
861 }
862
863 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X8, qmin) {
864 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700865 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700866 .batch_size(batch_size)
867 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800868 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700869 }
870 }
871
872 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X8, qmax) {
873 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700874 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700875 .batch_size(batch_size)
876 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800877 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700878 }
879 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800880#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700881
882
Marat Dukhan4c617792021-12-21 15:47:58 -0800883#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700884 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X16, batch_eq_16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700885 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700886 .batch_size(16)
Marat Dukhanf6004972021-12-30 11:23:02 -0800887 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700888 }
889
890 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X16, batch_div_16) {
891 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700892 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700893 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800894 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700895 }
896 }
897
898 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X16, batch_lt_16) {
899 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700900 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700901 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800902 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700903 }
904 }
905
906 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X16, batch_gt_16) {
907 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700908 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700909 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800910 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700911 }
912 }
913
914 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X16, inplace_a) {
915 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700916 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700917 .batch_size(batch_size)
918 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800919 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700920 }
921 }
922
923 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X16, inplace_b) {
924 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700925 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700926 .batch_size(batch_size)
927 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800928 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700929 }
930 }
931
932 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X16, inplace_a_and_b) {
933 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700934 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700935 .batch_size(batch_size)
936 .inplace_a(true)
937 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800938 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700939 }
940 }
941
942 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X16, qmin) {
943 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700944 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700945 .batch_size(batch_size)
946 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800947 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700948 }
949 }
950
951 TEST(F32_VDIV_MINMAX__WASMSIMD_ARM_X16, qmax) {
952 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700953 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700954 .batch_size(batch_size)
955 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800956 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_arm_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700957 }
958 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800959#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700960
961
Marat Dukhan4c617792021-12-21 15:47:58 -0800962#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700963 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700964 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700965 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -0800966 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700967 }
968
969 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X4, batch_div_4) {
970 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700971 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700972 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800973 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700974 }
975 }
976
977 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X4, batch_lt_4) {
978 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700979 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700980 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800981 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700982 }
983 }
984
985 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X4, batch_gt_4) {
986 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700987 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700988 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800989 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700990 }
991 }
992
993 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X4, inplace_a) {
994 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700995 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700996 .batch_size(batch_size)
997 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800998 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -0700999 }
1000 }
1001
1002 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X4, inplace_b) {
1003 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001004 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001005 .batch_size(batch_size)
1006 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001007 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001008 }
1009 }
1010
1011 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X4, inplace_a_and_b) {
1012 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001013 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001014 .batch_size(batch_size)
1015 .inplace_a(true)
1016 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001017 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001018 }
1019 }
1020
1021 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X4, qmin) {
1022 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001023 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001024 .batch_size(batch_size)
1025 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001026 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001027 }
1028 }
1029
1030 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X4, qmax) {
1031 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001032 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001033 .batch_size(batch_size)
1034 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001035 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001036 }
1037 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001038#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001039
1040
Marat Dukhan4c617792021-12-21 15:47:58 -08001041#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001042 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001043 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001044 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -08001045 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001046 }
1047
1048 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X8, batch_div_8) {
1049 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001050 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001051 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001052 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001053 }
1054 }
1055
1056 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X8, batch_lt_8) {
1057 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001058 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001059 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001060 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001061 }
1062 }
1063
1064 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X8, batch_gt_8) {
1065 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001066 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001067 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001068 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001069 }
1070 }
1071
1072 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X8, inplace_a) {
1073 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001074 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001075 .batch_size(batch_size)
1076 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001077 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001078 }
1079 }
1080
1081 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X8, inplace_b) {
1082 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001083 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001084 .batch_size(batch_size)
1085 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001086 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001087 }
1088 }
1089
1090 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X8, inplace_a_and_b) {
1091 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001092 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001093 .batch_size(batch_size)
1094 .inplace_a(true)
1095 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001096 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001097 }
1098 }
1099
1100 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X8, qmin) {
1101 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001102 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001103 .batch_size(batch_size)
1104 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001105 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001106 }
1107 }
1108
1109 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X8, qmax) {
1110 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001111 VBinaryMicrokernelTester()
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001112 .batch_size(batch_size)
1113 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001114 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001115 }
1116 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001117#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan93d1ba12020-06-26 12:33:35 -07001118
1119
Marat Dukhan4c617792021-12-21 15:47:58 -08001120#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -07001121 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X16, batch_eq_16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001122 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001123 .batch_size(16)
Marat Dukhanf6004972021-12-30 11:23:02 -08001124 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001125 }
1126
1127 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X16, batch_div_16) {
1128 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001129 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001130 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001131 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001132 }
1133 }
1134
1135 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X16, batch_lt_16) {
1136 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001137 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001138 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001139 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001140 }
1141 }
1142
1143 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X16, batch_gt_16) {
1144 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001145 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001146 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001147 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001148 }
1149 }
1150
1151 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X16, inplace_a) {
1152 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001153 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001154 .batch_size(batch_size)
1155 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001156 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001157 }
1158 }
1159
1160 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X16, inplace_b) {
1161 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001162 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001163 .batch_size(batch_size)
1164 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001165 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001166 }
1167 }
1168
1169 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X16, inplace_a_and_b) {
1170 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001171 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001172 .batch_size(batch_size)
1173 .inplace_a(true)
1174 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001175 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001176 }
1177 }
1178
1179 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X16, qmin) {
1180 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001181 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001182 .batch_size(batch_size)
1183 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001184 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001185 }
1186 }
1187
1188 TEST(F32_VDIV_MINMAX__WASMSIMD_X86_X16, qmax) {
1189 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001190 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001191 .batch_size(batch_size)
1192 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001193 .Test(xnn_f32_vdiv_minmax_ukernel__wasmsimd_x86_x16, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001194 }
1195 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001196#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -07001197
1198
Marat Dukhan4c617792021-12-21 15:47:58 -08001199#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001200 TEST(F32_VDIV_MINMAX__WASM_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001201 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001202 .batch_size(1)
Marat Dukhanf6004972021-12-30 11:23:02 -08001203 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001204 }
1205
1206 TEST(F32_VDIV_MINMAX__WASM_X1, batch_gt_1) {
1207 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001208 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001209 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001210 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001211 }
1212 }
1213
1214 TEST(F32_VDIV_MINMAX__WASM_X1, inplace_a) {
1215 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001216 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001217 .batch_size(batch_size)
1218 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001219 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001220 }
1221 }
1222
1223 TEST(F32_VDIV_MINMAX__WASM_X1, inplace_b) {
1224 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001225 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001226 .batch_size(batch_size)
1227 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001228 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001229 }
1230 }
1231
1232 TEST(F32_VDIV_MINMAX__WASM_X1, inplace_a_and_b) {
1233 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001234 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001235 .batch_size(batch_size)
1236 .inplace_a(true)
1237 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001238 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001239 }
1240 }
1241
1242 TEST(F32_VDIV_MINMAX__WASM_X1, qmin) {
1243 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001244 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001245 .batch_size(batch_size)
1246 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001247 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001248 }
1249 }
1250
1251 TEST(F32_VDIV_MINMAX__WASM_X1, qmax) {
1252 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001253 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001254 .batch_size(batch_size)
1255 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001256 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001257 }
1258 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001259#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001260
1261
Marat Dukhan4c617792021-12-21 15:47:58 -08001262#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001263 TEST(F32_VDIV_MINMAX__WASM_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001264 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001265 .batch_size(2)
Marat Dukhanf6004972021-12-30 11:23:02 -08001266 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001267 }
1268
1269 TEST(F32_VDIV_MINMAX__WASM_X2, batch_div_2) {
1270 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001271 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001272 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001273 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001274 }
1275 }
1276
1277 TEST(F32_VDIV_MINMAX__WASM_X2, batch_lt_2) {
1278 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001279 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001280 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001281 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001282 }
1283 }
1284
1285 TEST(F32_VDIV_MINMAX__WASM_X2, batch_gt_2) {
1286 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001287 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001288 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001289 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001290 }
1291 }
1292
1293 TEST(F32_VDIV_MINMAX__WASM_X2, inplace_a) {
1294 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001295 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001296 .batch_size(batch_size)
1297 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001298 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001299 }
1300 }
1301
1302 TEST(F32_VDIV_MINMAX__WASM_X2, inplace_b) {
1303 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001304 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001305 .batch_size(batch_size)
1306 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001307 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001308 }
1309 }
1310
1311 TEST(F32_VDIV_MINMAX__WASM_X2, inplace_a_and_b) {
1312 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001313 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001314 .batch_size(batch_size)
1315 .inplace_a(true)
1316 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001317 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001318 }
1319 }
1320
1321 TEST(F32_VDIV_MINMAX__WASM_X2, qmin) {
1322 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001323 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001324 .batch_size(batch_size)
1325 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001326 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001327 }
1328 }
1329
1330 TEST(F32_VDIV_MINMAX__WASM_X2, qmax) {
1331 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001332 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001333 .batch_size(batch_size)
1334 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001335 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001336 }
1337 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001338#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001339
1340
Marat Dukhan4c617792021-12-21 15:47:58 -08001341#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001342 TEST(F32_VDIV_MINMAX__WASM_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001343 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001344 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -08001345 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001346 }
1347
1348 TEST(F32_VDIV_MINMAX__WASM_X4, batch_div_4) {
1349 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001350 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001351 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001352 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001353 }
1354 }
1355
1356 TEST(F32_VDIV_MINMAX__WASM_X4, batch_lt_4) {
1357 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001358 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001359 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001360 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001361 }
1362 }
1363
1364 TEST(F32_VDIV_MINMAX__WASM_X4, batch_gt_4) {
1365 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001366 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001367 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001368 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001369 }
1370 }
1371
1372 TEST(F32_VDIV_MINMAX__WASM_X4, inplace_a) {
1373 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001374 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001375 .batch_size(batch_size)
1376 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001377 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001378 }
1379 }
1380
1381 TEST(F32_VDIV_MINMAX__WASM_X4, inplace_b) {
1382 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001383 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001384 .batch_size(batch_size)
1385 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001386 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001387 }
1388 }
1389
1390 TEST(F32_VDIV_MINMAX__WASM_X4, inplace_a_and_b) {
1391 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001392 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001393 .batch_size(batch_size)
1394 .inplace_a(true)
1395 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001396 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001397 }
1398 }
1399
1400 TEST(F32_VDIV_MINMAX__WASM_X4, qmin) {
1401 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001402 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001403 .batch_size(batch_size)
1404 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001405 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001406 }
1407 }
1408
1409 TEST(F32_VDIV_MINMAX__WASM_X4, qmax) {
1410 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001411 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001412 .batch_size(batch_size)
1413 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001414 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001415 }
1416 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001417#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001418
1419
Marat Dukhan4c617792021-12-21 15:47:58 -08001420#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -07001421 TEST(F32_VDIV_MINMAX__WASM_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001422 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001423 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -08001424 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001425 }
1426
1427 TEST(F32_VDIV_MINMAX__WASM_X8, batch_div_8) {
1428 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001429 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001430 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001431 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001432 }
1433 }
1434
1435 TEST(F32_VDIV_MINMAX__WASM_X8, batch_lt_8) {
1436 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001437 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001438 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001439 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001440 }
1441 }
1442
1443 TEST(F32_VDIV_MINMAX__WASM_X8, batch_gt_8) {
1444 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001445 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001446 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001447 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001448 }
1449 }
1450
1451 TEST(F32_VDIV_MINMAX__WASM_X8, inplace_a) {
1452 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001453 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001454 .batch_size(batch_size)
1455 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001456 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001457 }
1458 }
1459
1460 TEST(F32_VDIV_MINMAX__WASM_X8, inplace_b) {
1461 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001462 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001463 .batch_size(batch_size)
1464 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001465 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001466 }
1467 }
1468
1469 TEST(F32_VDIV_MINMAX__WASM_X8, inplace_a_and_b) {
1470 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001471 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001472 .batch_size(batch_size)
1473 .inplace_a(true)
1474 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001475 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001476 }
1477 }
1478
1479 TEST(F32_VDIV_MINMAX__WASM_X8, qmin) {
1480 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001481 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001482 .batch_size(batch_size)
1483 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001484 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001485 }
1486 }
1487
1488 TEST(F32_VDIV_MINMAX__WASM_X8, qmax) {
1489 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001490 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001491 .batch_size(batch_size)
1492 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001493 .Test(xnn_f32_vdiv_minmax_ukernel__wasm_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001494 }
1495 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001496#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -07001497
1498
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001499TEST(F32_VDIV_MINMAX__SCALAR_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001500 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001501 .batch_size(1)
Marat Dukhanf6004972021-12-30 11:23:02 -08001502 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001503}
1504
1505TEST(F32_VDIV_MINMAX__SCALAR_X1, batch_gt_1) {
1506 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001507 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001508 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001509 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001510 }
1511}
1512
1513TEST(F32_VDIV_MINMAX__SCALAR_X1, inplace_a) {
1514 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001515 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001516 .batch_size(batch_size)
1517 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001518 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001519 }
1520}
1521
1522TEST(F32_VDIV_MINMAX__SCALAR_X1, inplace_b) {
1523 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001524 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001525 .batch_size(batch_size)
1526 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001527 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001528 }
1529}
1530
1531TEST(F32_VDIV_MINMAX__SCALAR_X1, inplace_a_and_b) {
1532 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001533 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001534 .batch_size(batch_size)
1535 .inplace_a(true)
1536 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001537 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001538 }
1539}
1540
1541TEST(F32_VDIV_MINMAX__SCALAR_X1, qmin) {
1542 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001543 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001544 .batch_size(batch_size)
1545 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001546 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001547 }
1548}
1549
1550TEST(F32_VDIV_MINMAX__SCALAR_X1, qmax) {
1551 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001552 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001553 .batch_size(batch_size)
1554 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001555 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x1, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001556 }
1557}
1558
1559TEST(F32_VDIV_MINMAX__SCALAR_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001560 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001561 .batch_size(2)
Marat Dukhanf6004972021-12-30 11:23:02 -08001562 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001563}
1564
1565TEST(F32_VDIV_MINMAX__SCALAR_X2, batch_div_2) {
1566 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001567 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001568 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001569 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001570 }
1571}
1572
1573TEST(F32_VDIV_MINMAX__SCALAR_X2, batch_lt_2) {
1574 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001575 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001576 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001577 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001578 }
1579}
1580
1581TEST(F32_VDIV_MINMAX__SCALAR_X2, batch_gt_2) {
1582 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001583 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001584 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001585 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001586 }
1587}
1588
1589TEST(F32_VDIV_MINMAX__SCALAR_X2, inplace_a) {
1590 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001591 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001592 .batch_size(batch_size)
1593 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001594 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001595 }
1596}
1597
1598TEST(F32_VDIV_MINMAX__SCALAR_X2, inplace_b) {
1599 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001600 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001601 .batch_size(batch_size)
1602 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001603 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001604 }
1605}
1606
1607TEST(F32_VDIV_MINMAX__SCALAR_X2, inplace_a_and_b) {
1608 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001609 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001610 .batch_size(batch_size)
1611 .inplace_a(true)
1612 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001613 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001614 }
1615}
1616
1617TEST(F32_VDIV_MINMAX__SCALAR_X2, qmin) {
1618 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001619 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001620 .batch_size(batch_size)
1621 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001622 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001623 }
1624}
1625
1626TEST(F32_VDIV_MINMAX__SCALAR_X2, qmax) {
1627 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001628 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001629 .batch_size(batch_size)
1630 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001631 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x2, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001632 }
1633}
1634
1635TEST(F32_VDIV_MINMAX__SCALAR_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001636 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001637 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -08001638 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001639}
1640
1641TEST(F32_VDIV_MINMAX__SCALAR_X4, batch_div_4) {
1642 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001643 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001644 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001645 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001646 }
1647}
1648
1649TEST(F32_VDIV_MINMAX__SCALAR_X4, batch_lt_4) {
1650 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001651 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001652 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001653 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001654 }
1655}
1656
1657TEST(F32_VDIV_MINMAX__SCALAR_X4, batch_gt_4) {
1658 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001659 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001660 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001661 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001662 }
1663}
1664
1665TEST(F32_VDIV_MINMAX__SCALAR_X4, inplace_a) {
1666 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001667 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001668 .batch_size(batch_size)
1669 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001670 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001671 }
1672}
1673
1674TEST(F32_VDIV_MINMAX__SCALAR_X4, inplace_b) {
1675 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001676 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001677 .batch_size(batch_size)
1678 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001679 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001680 }
1681}
1682
1683TEST(F32_VDIV_MINMAX__SCALAR_X4, inplace_a_and_b) {
1684 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001685 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001686 .batch_size(batch_size)
1687 .inplace_a(true)
1688 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001689 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001690 }
1691}
1692
1693TEST(F32_VDIV_MINMAX__SCALAR_X4, qmin) {
1694 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001695 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001696 .batch_size(batch_size)
1697 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001698 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001699 }
1700}
1701
1702TEST(F32_VDIV_MINMAX__SCALAR_X4, qmax) {
1703 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001704 VBinaryMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001705 .batch_size(batch_size)
1706 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001707 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x4, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001708 }
Frank Barchard9c7308f2020-08-31 17:03:01 -07001709}
1710
1711TEST(F32_VDIV_MINMAX__SCALAR_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001712 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001713 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -08001714 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001715}
1716
1717TEST(F32_VDIV_MINMAX__SCALAR_X8, batch_div_8) {
1718 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001719 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001720 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001721 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001722 }
1723}
1724
1725TEST(F32_VDIV_MINMAX__SCALAR_X8, batch_lt_8) {
1726 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001727 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001728 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001729 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001730 }
1731}
1732
1733TEST(F32_VDIV_MINMAX__SCALAR_X8, batch_gt_8) {
1734 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001735 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001736 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001737 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001738 }
1739}
1740
1741TEST(F32_VDIV_MINMAX__SCALAR_X8, inplace_a) {
1742 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001743 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001744 .batch_size(batch_size)
1745 .inplace_a(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001746 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001747 }
1748}
1749
1750TEST(F32_VDIV_MINMAX__SCALAR_X8, inplace_b) {
1751 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001752 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001753 .batch_size(batch_size)
1754 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001755 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001756 }
1757}
1758
1759TEST(F32_VDIV_MINMAX__SCALAR_X8, inplace_a_and_b) {
1760 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001761 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001762 .batch_size(batch_size)
1763 .inplace_a(true)
1764 .inplace_b(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001765 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001766 }
1767}
1768
1769TEST(F32_VDIV_MINMAX__SCALAR_X8, qmin) {
1770 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001771 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001772 .batch_size(batch_size)
1773 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001774 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001775 }
1776}
1777
1778TEST(F32_VDIV_MINMAX__SCALAR_X8, qmax) {
1779 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001780 VBinaryMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001781 .batch_size(batch_size)
1782 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001783 .Test(xnn_f32_vdiv_minmax_ukernel__scalar_x8, VBinaryMicrokernelTester::OpType::Div, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001784 }
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001785}