blob: ef7502973c59379274e15be6aeade599c712497e [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-vrdivc-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 "vbinaryc-microkernel-tester.h"
19
20
21#if XNN_ARCH_ARM64
22 TEST(F32_VRDIVC_MINMAX__NEON_X4, batch_eq_4) {
23 TEST_REQUIRES_ARM_NEON;
Marat Dukhan10f1fe02021-05-13 12:51:12 -070024 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070025 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -080026 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070027 }
28
29 TEST(F32_VRDIVC_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 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070033 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -080034 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070035 }
36 }
37
38 TEST(F32_VRDIVC_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 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070042 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -080043 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070044 }
45 }
46
47 TEST(F32_VRDIVC_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 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070051 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -080052 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070053 }
54 }
55
56 TEST(F32_VRDIVC_MINMAX__NEON_X4, inplace) {
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 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070060 .batch_size(batch_size)
61 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -080062 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070063 }
64 }
65
66 TEST(F32_VRDIVC_MINMAX__NEON_X4, qmin) {
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 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070070 .batch_size(batch_size)
71 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -080072 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070073 }
74 }
75
76 TEST(F32_VRDIVC_MINMAX__NEON_X4, qmax) {
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 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070080 .batch_size(batch_size)
81 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -080082 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070083 }
84 }
85#endif // XNN_ARCH_ARM64
86
87
88#if XNN_ARCH_ARM64
89 TEST(F32_VRDIVC_MINMAX__NEON_X8, batch_eq_8) {
90 TEST_REQUIRES_ARM_NEON;
Marat Dukhan10f1fe02021-05-13 12:51:12 -070091 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -070092 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -080093 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -070094 }
95
96 TEST(F32_VRDIVC_MINMAX__NEON_X8, batch_div_8) {
97 TEST_REQUIRES_ARM_NEON;
98 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070099 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700100 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800101 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700102 }
103 }
104
105 TEST(F32_VRDIVC_MINMAX__NEON_X8, batch_lt_8) {
106 TEST_REQUIRES_ARM_NEON;
107 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700108 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700109 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800110 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700111 }
112 }
113
114 TEST(F32_VRDIVC_MINMAX__NEON_X8, batch_gt_8) {
115 TEST_REQUIRES_ARM_NEON;
116 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700117 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700118 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800119 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700120 }
121 }
122
123 TEST(F32_VRDIVC_MINMAX__NEON_X8, inplace) {
124 TEST_REQUIRES_ARM_NEON;
125 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700126 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700127 .batch_size(batch_size)
128 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800129 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700130 }
131 }
132
133 TEST(F32_VRDIVC_MINMAX__NEON_X8, qmin) {
134 TEST_REQUIRES_ARM_NEON;
135 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700136 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700137 .batch_size(batch_size)
138 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800139 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700140 }
141 }
142
143 TEST(F32_VRDIVC_MINMAX__NEON_X8, qmax) {
144 TEST_REQUIRES_ARM_NEON;
145 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700146 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700147 .batch_size(batch_size)
148 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800149 .Test(xnn_f32_vrdivc_minmax_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700150 }
151 }
152#endif // XNN_ARCH_ARM64
153
154
155#if XNN_ARCH_X86 || XNN_ARCH_X86_64
156 TEST(F32_VRDIVC_MINMAX__SSE_X4, batch_eq_4) {
157 TEST_REQUIRES_X86_SSE;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700158 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700159 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -0800160 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700161 }
162
163 TEST(F32_VRDIVC_MINMAX__SSE_X4, batch_div_4) {
164 TEST_REQUIRES_X86_SSE;
165 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700166 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700167 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800168 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700169 }
170 }
171
172 TEST(F32_VRDIVC_MINMAX__SSE_X4, batch_lt_4) {
173 TEST_REQUIRES_X86_SSE;
174 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700175 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700176 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800177 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700178 }
179 }
180
181 TEST(F32_VRDIVC_MINMAX__SSE_X4, batch_gt_4) {
182 TEST_REQUIRES_X86_SSE;
183 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700184 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700185 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800186 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700187 }
188 }
189
190 TEST(F32_VRDIVC_MINMAX__SSE_X4, inplace) {
191 TEST_REQUIRES_X86_SSE;
192 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700193 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700194 .batch_size(batch_size)
195 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800196 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700197 }
198 }
199
200 TEST(F32_VRDIVC_MINMAX__SSE_X4, qmin) {
201 TEST_REQUIRES_X86_SSE;
202 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700203 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700204 .batch_size(batch_size)
205 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800206 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700207 }
208 }
209
210 TEST(F32_VRDIVC_MINMAX__SSE_X4, qmax) {
211 TEST_REQUIRES_X86_SSE;
212 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700213 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700214 .batch_size(batch_size)
215 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800216 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700217 }
218 }
219#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
220
221
222#if XNN_ARCH_X86 || XNN_ARCH_X86_64
223 TEST(F32_VRDIVC_MINMAX__SSE_X8, batch_eq_8) {
224 TEST_REQUIRES_X86_SSE;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700225 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700226 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -0800227 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700228 }
229
230 TEST(F32_VRDIVC_MINMAX__SSE_X8, batch_div_8) {
231 TEST_REQUIRES_X86_SSE;
232 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700233 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700234 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800235 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700236 }
237 }
238
239 TEST(F32_VRDIVC_MINMAX__SSE_X8, batch_lt_8) {
240 TEST_REQUIRES_X86_SSE;
241 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700242 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700243 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800244 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700245 }
246 }
247
248 TEST(F32_VRDIVC_MINMAX__SSE_X8, batch_gt_8) {
249 TEST_REQUIRES_X86_SSE;
250 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700251 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700252 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800253 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700254 }
255 }
256
257 TEST(F32_VRDIVC_MINMAX__SSE_X8, inplace) {
258 TEST_REQUIRES_X86_SSE;
259 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700260 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700261 .batch_size(batch_size)
262 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800263 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700264 }
265 }
266
267 TEST(F32_VRDIVC_MINMAX__SSE_X8, qmin) {
268 TEST_REQUIRES_X86_SSE;
269 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700270 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700271 .batch_size(batch_size)
272 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800273 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700274 }
275 }
276
277 TEST(F32_VRDIVC_MINMAX__SSE_X8, qmax) {
278 TEST_REQUIRES_X86_SSE;
279 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700280 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700281 .batch_size(batch_size)
282 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800283 .Test(xnn_f32_vrdivc_minmax_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_sse_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700284 }
285 }
286#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
287
288
289#if XNN_ARCH_X86 || XNN_ARCH_X86_64
290 TEST(F32_VRDIVC_MINMAX__AVX_X8, batch_eq_8) {
291 TEST_REQUIRES_X86_AVX;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700292 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700293 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -0800294 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700295 }
296
297 TEST(F32_VRDIVC_MINMAX__AVX_X8, batch_div_8) {
298 TEST_REQUIRES_X86_AVX;
299 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700300 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700301 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800302 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700303 }
304 }
305
306 TEST(F32_VRDIVC_MINMAX__AVX_X8, batch_lt_8) {
307 TEST_REQUIRES_X86_AVX;
308 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700309 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700310 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800311 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700312 }
313 }
314
315 TEST(F32_VRDIVC_MINMAX__AVX_X8, batch_gt_8) {
316 TEST_REQUIRES_X86_AVX;
317 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700318 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700319 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800320 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700321 }
322 }
323
324 TEST(F32_VRDIVC_MINMAX__AVX_X8, inplace) {
325 TEST_REQUIRES_X86_AVX;
326 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700327 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700328 .batch_size(batch_size)
329 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800330 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700331 }
332 }
333
334 TEST(F32_VRDIVC_MINMAX__AVX_X8, qmin) {
335 TEST_REQUIRES_X86_AVX;
336 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700337 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700338 .batch_size(batch_size)
339 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800340 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700341 }
342 }
343
344 TEST(F32_VRDIVC_MINMAX__AVX_X8, qmax) {
345 TEST_REQUIRES_X86_AVX;
346 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700347 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700348 .batch_size(batch_size)
349 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800350 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700351 }
352 }
353#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
354
355
356#if XNN_ARCH_X86 || XNN_ARCH_X86_64
357 TEST(F32_VRDIVC_MINMAX__AVX_X16, batch_eq_16) {
358 TEST_REQUIRES_X86_AVX;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700359 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700360 .batch_size(16)
Marat Dukhanf6004972021-12-30 11:23:02 -0800361 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700362 }
363
364 TEST(F32_VRDIVC_MINMAX__AVX_X16, batch_div_16) {
365 TEST_REQUIRES_X86_AVX;
366 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700367 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700368 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800369 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700370 }
371 }
372
373 TEST(F32_VRDIVC_MINMAX__AVX_X16, batch_lt_16) {
374 TEST_REQUIRES_X86_AVX;
375 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700376 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700377 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800378 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700379 }
380 }
381
382 TEST(F32_VRDIVC_MINMAX__AVX_X16, batch_gt_16) {
383 TEST_REQUIRES_X86_AVX;
384 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700385 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700386 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800387 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700388 }
389 }
390
391 TEST(F32_VRDIVC_MINMAX__AVX_X16, inplace) {
392 TEST_REQUIRES_X86_AVX;
393 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700394 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700395 .batch_size(batch_size)
396 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800397 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700398 }
399 }
400
401 TEST(F32_VRDIVC_MINMAX__AVX_X16, qmin) {
402 TEST_REQUIRES_X86_AVX;
403 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700404 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700405 .batch_size(batch_size)
406 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800407 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700408 }
409 }
410
411 TEST(F32_VRDIVC_MINMAX__AVX_X16, qmax) {
412 TEST_REQUIRES_X86_AVX;
413 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700414 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700415 .batch_size(batch_size)
416 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800417 .Test(xnn_f32_vrdivc_minmax_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_avx_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700418 }
419 }
420#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
421
422
423#if XNN_ARCH_X86 || XNN_ARCH_X86_64
424 TEST(F32_VRDIVC_MINMAX__AVX512F_X16, batch_eq_16) {
425 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700426 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700427 .batch_size(16)
Marat Dukhanf6004972021-12-30 11:23:02 -0800428 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700429 }
430
431 TEST(F32_VRDIVC_MINMAX__AVX512F_X16, batch_div_16) {
432 TEST_REQUIRES_X86_AVX512F;
433 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700434 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700435 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800436 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700437 }
438 }
439
440 TEST(F32_VRDIVC_MINMAX__AVX512F_X16, batch_lt_16) {
441 TEST_REQUIRES_X86_AVX512F;
442 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700443 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700444 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800445 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700446 }
447 }
448
449 TEST(F32_VRDIVC_MINMAX__AVX512F_X16, batch_gt_16) {
450 TEST_REQUIRES_X86_AVX512F;
451 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700452 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700453 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800454 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700455 }
456 }
457
458 TEST(F32_VRDIVC_MINMAX__AVX512F_X16, inplace) {
459 TEST_REQUIRES_X86_AVX512F;
460 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700461 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700462 .batch_size(batch_size)
463 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800464 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700465 }
466 }
467
468 TEST(F32_VRDIVC_MINMAX__AVX512F_X16, qmin) {
469 TEST_REQUIRES_X86_AVX512F;
470 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700471 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700472 .batch_size(batch_size)
473 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800474 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700475 }
476 }
477
478 TEST(F32_VRDIVC_MINMAX__AVX512F_X16, qmax) {
479 TEST_REQUIRES_X86_AVX512F;
480 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700481 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700482 .batch_size(batch_size)
483 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800484 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700485 }
486 }
487#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
488
489
490#if XNN_ARCH_X86 || XNN_ARCH_X86_64
491 TEST(F32_VRDIVC_MINMAX__AVX512F_X32, batch_eq_32) {
492 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700493 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700494 .batch_size(32)
Marat Dukhanf6004972021-12-30 11:23:02 -0800495 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700496 }
497
498 TEST(F32_VRDIVC_MINMAX__AVX512F_X32, batch_div_32) {
499 TEST_REQUIRES_X86_AVX512F;
500 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700501 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700502 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800503 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700504 }
505 }
506
507 TEST(F32_VRDIVC_MINMAX__AVX512F_X32, batch_lt_32) {
508 TEST_REQUIRES_X86_AVX512F;
509 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700510 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700511 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800512 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700513 }
514 }
515
516 TEST(F32_VRDIVC_MINMAX__AVX512F_X32, batch_gt_32) {
517 TEST_REQUIRES_X86_AVX512F;
518 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700519 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700520 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800521 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700522 }
523 }
524
525 TEST(F32_VRDIVC_MINMAX__AVX512F_X32, inplace) {
526 TEST_REQUIRES_X86_AVX512F;
527 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700528 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700529 .batch_size(batch_size)
530 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800531 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700532 }
533 }
534
535 TEST(F32_VRDIVC_MINMAX__AVX512F_X32, qmin) {
536 TEST_REQUIRES_X86_AVX512F;
537 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700538 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700539 .batch_size(batch_size)
540 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800541 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700542 }
543 }
544
545 TEST(F32_VRDIVC_MINMAX__AVX512F_X32, qmax) {
546 TEST_REQUIRES_X86_AVX512F;
547 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700548 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700549 .batch_size(batch_size)
550 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800551 .Test(xnn_f32_vrdivc_minmax_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700552 }
553 }
554#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
555
556
Marat Dukhan4c617792021-12-21 15:47:58 -0800557#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700558 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700559 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700560 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -0800561 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700562 }
563
564 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, batch_div_4) {
565 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700566 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700567 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800568 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700569 }
570 }
571
572 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, batch_lt_4) {
573 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700574 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700575 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800576 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700577 }
578 }
579
580 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, batch_gt_4) {
581 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700582 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700583 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800584 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700585 }
586 }
587
588 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, inplace) {
589 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700590 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700591 .batch_size(batch_size)
592 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800593 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700594 }
595 }
596
597 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, qmin) {
598 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700599 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700600 .batch_size(batch_size)
601 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800602 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700603 }
604 }
605
606 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X4, qmax) {
607 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700608 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700609 .batch_size(batch_size)
610 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800611 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700612 }
613 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800614#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700615
616
Marat Dukhan4c617792021-12-21 15:47:58 -0800617#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700618 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700619 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700620 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -0800621 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700622 }
623
624 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, batch_div_8) {
625 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700626 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700627 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800628 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700629 }
630 }
631
632 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, batch_lt_8) {
633 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700634 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700635 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800636 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700637 }
638 }
639
640 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, batch_gt_8) {
641 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700642 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700643 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800644 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700645 }
646 }
647
648 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, inplace) {
649 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700650 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700651 .batch_size(batch_size)
652 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800653 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700654 }
655 }
656
657 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, qmin) {
658 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700659 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700660 .batch_size(batch_size)
661 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800662 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700663 }
664 }
665
666 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X8, qmax) {
667 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700668 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700669 .batch_size(batch_size)
670 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800671 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700672 }
673 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800674#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700675
676
Marat Dukhan4c617792021-12-21 15:47:58 -0800677#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700678 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, batch_eq_16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700679 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700680 .batch_size(16)
Marat Dukhanf6004972021-12-30 11:23:02 -0800681 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700682 }
683
684 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, batch_div_16) {
685 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700686 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700687 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800688 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700689 }
690 }
691
692 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, batch_lt_16) {
693 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700694 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700695 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800696 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700697 }
698 }
699
700 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, batch_gt_16) {
701 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700702 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700703 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800704 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700705 }
706 }
707
708 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, inplace) {
709 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700710 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700711 .batch_size(batch_size)
712 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800713 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700714 }
715 }
716
717 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, qmin) {
718 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700719 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700720 .batch_size(batch_size)
721 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800722 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700723 }
724 }
725
726 TEST(F32_VRDIVC_MINMAX__WASMSIMD_ARM_X16, qmax) {
727 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700728 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700729 .batch_size(batch_size)
730 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800731 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700732 }
733 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800734#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700735
736
Marat Dukhan4c617792021-12-21 15:47:58 -0800737#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700738 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700739 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700740 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -0800741 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700742 }
743
744 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, batch_div_4) {
745 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700746 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700747 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800748 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700749 }
750 }
751
752 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, batch_lt_4) {
753 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700754 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700755 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800756 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700757 }
758 }
759
760 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, batch_gt_4) {
761 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700762 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700763 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800764 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700765 }
766 }
767
768 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, inplace) {
769 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700770 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700771 .batch_size(batch_size)
772 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800773 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700774 }
775 }
776
777 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, qmin) {
778 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700779 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700780 .batch_size(batch_size)
781 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800782 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700783 }
784 }
785
786 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X4, qmax) {
787 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700788 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700789 .batch_size(batch_size)
790 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800791 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700792 }
793 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800794#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700795
796
Marat Dukhan4c617792021-12-21 15:47:58 -0800797#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700798 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700799 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700800 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -0800801 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700802 }
803
804 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, batch_div_8) {
805 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700806 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700807 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800808 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700809 }
810 }
811
812 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, batch_lt_8) {
813 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700814 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700815 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800816 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700817 }
818 }
819
820 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, batch_gt_8) {
821 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700822 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700823 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800824 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700825 }
826 }
827
828 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, inplace) {
829 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700830 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700831 .batch_size(batch_size)
832 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800833 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700834 }
835 }
836
837 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, qmin) {
838 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700839 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700840 .batch_size(batch_size)
841 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800842 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700843 }
844 }
845
846 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X8, qmax) {
847 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700848 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700849 .batch_size(batch_size)
850 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800851 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700852 }
853 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800854#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700855
856
Marat Dukhan4c617792021-12-21 15:47:58 -0800857#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700858 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, batch_eq_16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700859 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700860 .batch_size(16)
Marat Dukhanf6004972021-12-30 11:23:02 -0800861 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700862 }
863
864 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, batch_div_16) {
865 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700866 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700867 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800868 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700869 }
870 }
871
872 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, batch_lt_16) {
873 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700874 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700875 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800876 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700877 }
878 }
879
880 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, batch_gt_16) {
881 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700882 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700883 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800884 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700885 }
886 }
887
888 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, inplace) {
889 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700890 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700891 .batch_size(batch_size)
892 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800893 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700894 }
895 }
896
897 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, qmin) {
898 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700899 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700900 .batch_size(batch_size)
901 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800902 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700903 }
904 }
905
906 TEST(F32_VRDIVC_MINMAX__WASMSIMD_X86_X16, qmax) {
907 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700908 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700909 .batch_size(batch_size)
910 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800911 .Test(xnn_f32_vrdivc_minmax_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_wasmsimd_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700912 }
913 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800914#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700915
916
Marat Dukhan4c617792021-12-21 15:47:58 -0800917#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700918 TEST(F32_VRDIVC_MINMAX__WASM_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700919 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700920 .batch_size(1)
Marat Dukhanf6004972021-12-30 11:23:02 -0800921 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700922 }
923
924 TEST(F32_VRDIVC_MINMAX__WASM_X1, batch_gt_1) {
925 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700926 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700927 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800928 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700929 }
930 }
931
932 TEST(F32_VRDIVC_MINMAX__WASM_X1, inplace) {
933 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700934 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700935 .batch_size(batch_size)
936 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800937 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700938 }
939 }
940
941 TEST(F32_VRDIVC_MINMAX__WASM_X1, qmin) {
942 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700943 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700944 .batch_size(batch_size)
945 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800946 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700947 }
948 }
949
950 TEST(F32_VRDIVC_MINMAX__WASM_X1, qmax) {
951 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700952 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700953 .batch_size(batch_size)
954 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -0800955 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700956 }
957 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800958#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700959
960
Marat Dukhan4c617792021-12-21 15:47:58 -0800961#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700962 TEST(F32_VRDIVC_MINMAX__WASM_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700963 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700964 .batch_size(2)
Marat Dukhanf6004972021-12-30 11:23:02 -0800965 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700966 }
967
968 TEST(F32_VRDIVC_MINMAX__WASM_X2, batch_div_2) {
969 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700970 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700971 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800972 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700973 }
974 }
975
976 TEST(F32_VRDIVC_MINMAX__WASM_X2, batch_lt_2) {
977 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700978 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700979 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800980 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700981 }
982 }
983
984 TEST(F32_VRDIVC_MINMAX__WASM_X2, batch_gt_2) {
985 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700986 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700987 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -0800988 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700989 }
990 }
991
992 TEST(F32_VRDIVC_MINMAX__WASM_X2, inplace) {
993 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700994 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700995 .batch_size(batch_size)
996 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -0800997 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -0700998 }
999 }
1000
1001 TEST(F32_VRDIVC_MINMAX__WASM_X2, qmin) {
1002 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001003 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001004 .batch_size(batch_size)
1005 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001006 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001007 }
1008 }
1009
1010 TEST(F32_VRDIVC_MINMAX__WASM_X2, qmax) {
1011 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001012 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001013 .batch_size(batch_size)
1014 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001015 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001016 }
1017 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001018#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001019
1020
Marat Dukhan4c617792021-12-21 15:47:58 -08001021#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001022 TEST(F32_VRDIVC_MINMAX__WASM_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001023 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001024 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -08001025 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001026 }
1027
1028 TEST(F32_VRDIVC_MINMAX__WASM_X4, batch_div_4) {
1029 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001030 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001031 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001032 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001033 }
1034 }
1035
1036 TEST(F32_VRDIVC_MINMAX__WASM_X4, batch_lt_4) {
1037 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001038 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001039 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001040 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001041 }
1042 }
1043
1044 TEST(F32_VRDIVC_MINMAX__WASM_X4, batch_gt_4) {
1045 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001046 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001047 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001048 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001049 }
1050 }
1051
1052 TEST(F32_VRDIVC_MINMAX__WASM_X4, inplace) {
1053 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001054 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001055 .batch_size(batch_size)
1056 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001057 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001058 }
1059 }
1060
1061 TEST(F32_VRDIVC_MINMAX__WASM_X4, qmin) {
1062 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001063 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001064 .batch_size(batch_size)
1065 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001066 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001067 }
1068 }
1069
1070 TEST(F32_VRDIVC_MINMAX__WASM_X4, qmax) {
1071 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001072 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001073 .batch_size(batch_size)
1074 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001075 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001076 }
1077 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001078#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001079
1080
Marat Dukhan4c617792021-12-21 15:47:58 -08001081#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -07001082 TEST(F32_VRDIVC_MINMAX__WASM_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001083 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001084 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -08001085 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001086 }
1087
1088 TEST(F32_VRDIVC_MINMAX__WASM_X8, batch_div_8) {
1089 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001090 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001091 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001092 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001093 }
1094 }
1095
1096 TEST(F32_VRDIVC_MINMAX__WASM_X8, batch_lt_8) {
1097 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001098 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001099 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001100 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001101 }
1102 }
1103
1104 TEST(F32_VRDIVC_MINMAX__WASM_X8, batch_gt_8) {
1105 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001106 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001107 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001108 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001109 }
1110 }
1111
1112 TEST(F32_VRDIVC_MINMAX__WASM_X8, inplace) {
1113 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001114 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001115 .batch_size(batch_size)
1116 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001117 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001118 }
1119 }
1120
1121 TEST(F32_VRDIVC_MINMAX__WASM_X8, qmin) {
1122 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001123 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001124 .batch_size(batch_size)
1125 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001126 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001127 }
1128 }
1129
1130 TEST(F32_VRDIVC_MINMAX__WASM_X8, qmax) {
1131 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001132 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001133 .batch_size(batch_size)
1134 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001135 .Test(xnn_f32_vrdivc_minmax_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001136 }
1137 }
Marat Dukhan4c617792021-12-21 15:47:58 -08001138#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -07001139
1140
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001141TEST(F32_VRDIVC_MINMAX__SCALAR_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001142 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001143 .batch_size(1)
Marat Dukhanf6004972021-12-30 11:23:02 -08001144 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001145}
1146
1147TEST(F32_VRDIVC_MINMAX__SCALAR_X1, batch_gt_1) {
1148 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001149 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001150 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001151 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001152 }
1153}
1154
1155TEST(F32_VRDIVC_MINMAX__SCALAR_X1, inplace) {
1156 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001157 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001158 .batch_size(batch_size)
1159 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001160 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001161 }
1162}
1163
1164TEST(F32_VRDIVC_MINMAX__SCALAR_X1, qmin) {
1165 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001166 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001167 .batch_size(batch_size)
1168 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001169 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001170 }
1171}
1172
1173TEST(F32_VRDIVC_MINMAX__SCALAR_X1, qmax) {
1174 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001175 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001176 .batch_size(batch_size)
1177 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001178 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001179 }
1180}
1181
1182TEST(F32_VRDIVC_MINMAX__SCALAR_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001183 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001184 .batch_size(2)
Marat Dukhanf6004972021-12-30 11:23:02 -08001185 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001186}
1187
1188TEST(F32_VRDIVC_MINMAX__SCALAR_X2, batch_div_2) {
1189 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001190 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001191 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001192 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001193 }
1194}
1195
1196TEST(F32_VRDIVC_MINMAX__SCALAR_X2, batch_lt_2) {
1197 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001198 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001199 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001200 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001201 }
1202}
1203
1204TEST(F32_VRDIVC_MINMAX__SCALAR_X2, batch_gt_2) {
1205 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001206 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001207 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001208 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001209 }
1210}
1211
1212TEST(F32_VRDIVC_MINMAX__SCALAR_X2, inplace) {
1213 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001214 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001215 .batch_size(batch_size)
1216 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001217 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001218 }
1219}
1220
1221TEST(F32_VRDIVC_MINMAX__SCALAR_X2, qmin) {
1222 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001223 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001224 .batch_size(batch_size)
1225 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001226 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001227 }
1228}
1229
1230TEST(F32_VRDIVC_MINMAX__SCALAR_X2, qmax) {
1231 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001232 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001233 .batch_size(batch_size)
1234 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001235 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001236 }
1237}
1238
1239TEST(F32_VRDIVC_MINMAX__SCALAR_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001240 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001241 .batch_size(4)
Marat Dukhanf6004972021-12-30 11:23:02 -08001242 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001243}
1244
1245TEST(F32_VRDIVC_MINMAX__SCALAR_X4, batch_div_4) {
1246 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001247 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001248 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001249 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001250 }
1251}
1252
1253TEST(F32_VRDIVC_MINMAX__SCALAR_X4, batch_lt_4) {
1254 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001255 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001256 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001257 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001258 }
1259}
1260
1261TEST(F32_VRDIVC_MINMAX__SCALAR_X4, batch_gt_4) {
1262 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001263 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001264 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001265 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001266 }
1267}
1268
1269TEST(F32_VRDIVC_MINMAX__SCALAR_X4, inplace) {
1270 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001271 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001272 .batch_size(batch_size)
1273 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001274 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001275 }
1276}
1277
1278TEST(F32_VRDIVC_MINMAX__SCALAR_X4, qmin) {
1279 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001280 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001281 .batch_size(batch_size)
1282 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001283 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001284 }
1285}
1286
1287TEST(F32_VRDIVC_MINMAX__SCALAR_X4, qmax) {
1288 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001289 VBinaryCMicrokernelTester()
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001290 .batch_size(batch_size)
1291 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001292 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001293 }
Frank Barchard9c7308f2020-08-31 17:03:01 -07001294}
1295
1296TEST(F32_VRDIVC_MINMAX__SCALAR_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001297 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001298 .batch_size(8)
Marat Dukhanf6004972021-12-30 11:23:02 -08001299 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001300}
1301
1302TEST(F32_VRDIVC_MINMAX__SCALAR_X8, batch_div_8) {
1303 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001304 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001305 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001306 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001307 }
1308}
1309
1310TEST(F32_VRDIVC_MINMAX__SCALAR_X8, batch_lt_8) {
1311 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001312 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001313 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001314 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001315 }
1316}
1317
1318TEST(F32_VRDIVC_MINMAX__SCALAR_X8, batch_gt_8) {
1319 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001320 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001321 .batch_size(batch_size)
Marat Dukhanf6004972021-12-30 11:23:02 -08001322 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001323 }
1324}
1325
1326TEST(F32_VRDIVC_MINMAX__SCALAR_X8, inplace) {
1327 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001328 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001329 .batch_size(batch_size)
1330 .inplace(true)
Marat Dukhanf6004972021-12-30 11:23:02 -08001331 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001332 }
1333}
1334
1335TEST(F32_VRDIVC_MINMAX__SCALAR_X8, qmin) {
1336 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001337 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001338 .batch_size(batch_size)
1339 .qmin(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001340 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001341 }
1342}
1343
1344TEST(F32_VRDIVC_MINMAX__SCALAR_X8, qmax) {
1345 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -07001346 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -07001347 .batch_size(batch_size)
1348 .qmax(128)
Marat Dukhanf6004972021-12-30 11:23:02 -08001349 .Test(xnn_f32_vrdivc_minmax_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::RDivC, xnn_init_f32_minmax_scalar_params);
Frank Barchard9c7308f2020-08-31 17:03:01 -07001350 }
Marat Dukhan91cd2b72020-04-09 23:57:31 -07001351}