blob: 7700e470070cad213d09fda321a7818f3b83866c [file] [log] [blame]
Marat Dukhan403b7d42019-12-05 12:49:11 -08001// Copyright 2019 Google LLC
2//
3// This source code is licensed under the BSD-style license found in the
4// LICENSE file in the root directory of this source tree.
5//
6// Auto-generated file. Do not edit!
7// Specification: test/f32-vmaxc.yaml
8// Generator: tools/generate-vbinary-test.py
9
10
11#include <gtest/gtest.h>
12
13#include <xnnpack/common.h>
14#include <xnnpack/isa-checks.h>
15
Marat Dukhan87bd5112021-08-02 11:43:53 -070016#include <xnnpack/params-init.h>
Marat Dukhan403b7d42019-12-05 12:49:11 -080017#include <xnnpack/vbinary.h>
18#include "vbinaryc-microkernel-tester.h"
19
20
21#if XNN_ARCH_ARM || XNN_ARCH_ARM64
22 TEST(F32_VMAXC__NEON_X4, batch_eq_4) {
23 TEST_REQUIRES_ARM_NEON;
Marat Dukhan10f1fe02021-05-13 12:51:12 -070024 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080025 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070026 .Test(xnn_f32_vmaxc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -080027 }
28
29 TEST(F32_VMAXC__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 Dukhan403b7d42019-12-05 12:49:11 -080033 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070034 .Test(xnn_f32_vmaxc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -080035 }
36 }
37
38 TEST(F32_VMAXC__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 Dukhan403b7d42019-12-05 12:49:11 -080042 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070043 .Test(xnn_f32_vmaxc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -080044 }
45 }
46
47 TEST(F32_VMAXC__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 Dukhan403b7d42019-12-05 12:49:11 -080051 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070052 .Test(xnn_f32_vmaxc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -080053 }
54 }
55
56 TEST(F32_VMAXC__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 Dukhan403b7d42019-12-05 12:49:11 -080060 .batch_size(batch_size)
61 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070062 .Test(xnn_f32_vmaxc_ukernel__neon_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -080063 }
64 }
Marat Dukhan403b7d42019-12-05 12:49:11 -080065#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
66
67
68#if XNN_ARCH_ARM || XNN_ARCH_ARM64
69 TEST(F32_VMAXC__NEON_X8, batch_eq_8) {
70 TEST_REQUIRES_ARM_NEON;
Marat Dukhan10f1fe02021-05-13 12:51:12 -070071 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080072 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070073 .Test(xnn_f32_vmaxc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -080074 }
75
76 TEST(F32_VMAXC__NEON_X8, batch_div_8) {
77 TEST_REQUIRES_ARM_NEON;
78 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070079 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080080 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070081 .Test(xnn_f32_vmaxc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -080082 }
83 }
84
85 TEST(F32_VMAXC__NEON_X8, batch_lt_8) {
86 TEST_REQUIRES_ARM_NEON;
87 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070088 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080089 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070090 .Test(xnn_f32_vmaxc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -080091 }
92 }
93
94 TEST(F32_VMAXC__NEON_X8, batch_gt_8) {
95 TEST_REQUIRES_ARM_NEON;
96 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -070097 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -080098 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -070099 .Test(xnn_f32_vmaxc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800100 }
101 }
102
103 TEST(F32_VMAXC__NEON_X8, inplace) {
104 TEST_REQUIRES_ARM_NEON;
105 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700106 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800107 .batch_size(batch_size)
108 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700109 .Test(xnn_f32_vmaxc_ukernel__neon_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800110 }
111 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800112#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
113
114
115#if XNN_ARCH_X86 || XNN_ARCH_X86_64
116 TEST(F32_VMAXC__SSE_X4, batch_eq_4) {
117 TEST_REQUIRES_X86_SSE;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700118 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800119 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700120 .Test(xnn_f32_vmaxc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800121 }
122
123 TEST(F32_VMAXC__SSE_X4, batch_div_4) {
124 TEST_REQUIRES_X86_SSE;
125 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700126 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800127 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700128 .Test(xnn_f32_vmaxc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800129 }
130 }
131
132 TEST(F32_VMAXC__SSE_X4, batch_lt_4) {
133 TEST_REQUIRES_X86_SSE;
134 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700135 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800136 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700137 .Test(xnn_f32_vmaxc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800138 }
139 }
140
141 TEST(F32_VMAXC__SSE_X4, batch_gt_4) {
142 TEST_REQUIRES_X86_SSE;
143 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700144 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800145 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700146 .Test(xnn_f32_vmaxc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800147 }
148 }
149
150 TEST(F32_VMAXC__SSE_X4, inplace) {
151 TEST_REQUIRES_X86_SSE;
152 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700153 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800154 .batch_size(batch_size)
155 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700156 .Test(xnn_f32_vmaxc_ukernel__sse_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800157 }
158 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800159#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
160
161
162#if XNN_ARCH_X86 || XNN_ARCH_X86_64
163 TEST(F32_VMAXC__SSE_X8, batch_eq_8) {
164 TEST_REQUIRES_X86_SSE;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700165 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800166 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700167 .Test(xnn_f32_vmaxc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800168 }
169
170 TEST(F32_VMAXC__SSE_X8, batch_div_8) {
171 TEST_REQUIRES_X86_SSE;
172 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700173 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800174 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700175 .Test(xnn_f32_vmaxc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800176 }
177 }
178
179 TEST(F32_VMAXC__SSE_X8, batch_lt_8) {
180 TEST_REQUIRES_X86_SSE;
181 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700182 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800183 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700184 .Test(xnn_f32_vmaxc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800185 }
186 }
187
188 TEST(F32_VMAXC__SSE_X8, batch_gt_8) {
189 TEST_REQUIRES_X86_SSE;
190 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700191 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800192 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700193 .Test(xnn_f32_vmaxc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800194 }
195 }
196
197 TEST(F32_VMAXC__SSE_X8, inplace) {
198 TEST_REQUIRES_X86_SSE;
199 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700200 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800201 .batch_size(batch_size)
202 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700203 .Test(xnn_f32_vmaxc_ukernel__sse_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800204 }
205 }
Marat Dukhan403b7d42019-12-05 12:49:11 -0800206#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
207
208
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800209#if XNN_ARCH_X86 || XNN_ARCH_X86_64
210 TEST(F32_VMAXC__AVX_X8, batch_eq_8) {
211 TEST_REQUIRES_X86_AVX;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700212 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800213 .batch_size(8)
Marat Dukhan98c52152021-12-30 13:31:00 -0800214 .Test(xnn_f32_vmaxc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800215 }
216
217 TEST(F32_VMAXC__AVX_X8, batch_div_8) {
218 TEST_REQUIRES_X86_AVX;
219 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700220 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800221 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800222 .Test(xnn_f32_vmaxc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800223 }
224 }
225
226 TEST(F32_VMAXC__AVX_X8, batch_lt_8) {
227 TEST_REQUIRES_X86_AVX;
228 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700229 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800230 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800231 .Test(xnn_f32_vmaxc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800232 }
233 }
234
235 TEST(F32_VMAXC__AVX_X8, batch_gt_8) {
236 TEST_REQUIRES_X86_AVX;
237 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700238 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800239 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800240 .Test(xnn_f32_vmaxc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800241 }
242 }
243
244 TEST(F32_VMAXC__AVX_X8, inplace) {
245 TEST_REQUIRES_X86_AVX;
246 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700247 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800248 .batch_size(batch_size)
249 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800250 .Test(xnn_f32_vmaxc_ukernel__avx_x8, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800251 }
252 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800253#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
254
255
256#if XNN_ARCH_X86 || XNN_ARCH_X86_64
257 TEST(F32_VMAXC__AVX_X16, batch_eq_16) {
258 TEST_REQUIRES_X86_AVX;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700259 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800260 .batch_size(16)
Marat Dukhan98c52152021-12-30 13:31:00 -0800261 .Test(xnn_f32_vmaxc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800262 }
263
264 TEST(F32_VMAXC__AVX_X16, batch_div_16) {
265 TEST_REQUIRES_X86_AVX;
266 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700267 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800268 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800269 .Test(xnn_f32_vmaxc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800270 }
271 }
272
273 TEST(F32_VMAXC__AVX_X16, batch_lt_16) {
274 TEST_REQUIRES_X86_AVX;
275 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700276 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800277 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800278 .Test(xnn_f32_vmaxc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800279 }
280 }
281
282 TEST(F32_VMAXC__AVX_X16, batch_gt_16) {
283 TEST_REQUIRES_X86_AVX;
284 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700285 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800286 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800287 .Test(xnn_f32_vmaxc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800288 }
289 }
290
291 TEST(F32_VMAXC__AVX_X16, inplace) {
292 TEST_REQUIRES_X86_AVX;
293 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700294 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800295 .batch_size(batch_size)
296 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800297 .Test(xnn_f32_vmaxc_ukernel__avx_x16, VBinaryCMicrokernelTester::OpType::MaxC, xnn_init_f32_default_avx_params);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800298 }
299 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800300#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
301
302
303#if XNN_ARCH_X86 || XNN_ARCH_X86_64
304 TEST(F32_VMAXC__AVX512F_X16, batch_eq_16) {
305 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700306 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800307 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700308 .Test(xnn_f32_vmaxc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800309 }
310
311 TEST(F32_VMAXC__AVX512F_X16, batch_div_16) {
312 TEST_REQUIRES_X86_AVX512F;
313 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700314 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800315 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700316 .Test(xnn_f32_vmaxc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800317 }
318 }
319
320 TEST(F32_VMAXC__AVX512F_X16, batch_lt_16) {
321 TEST_REQUIRES_X86_AVX512F;
322 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700323 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800324 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700325 .Test(xnn_f32_vmaxc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800326 }
327 }
328
329 TEST(F32_VMAXC__AVX512F_X16, batch_gt_16) {
330 TEST_REQUIRES_X86_AVX512F;
331 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700332 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800333 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700334 .Test(xnn_f32_vmaxc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800335 }
336 }
337
338 TEST(F32_VMAXC__AVX512F_X16, inplace) {
339 TEST_REQUIRES_X86_AVX512F;
340 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700341 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800342 .batch_size(batch_size)
343 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700344 .Test(xnn_f32_vmaxc_ukernel__avx512f_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800345 }
346 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800347#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
348
349
350#if XNN_ARCH_X86 || XNN_ARCH_X86_64
351 TEST(F32_VMAXC__AVX512F_X32, batch_eq_32) {
352 TEST_REQUIRES_X86_AVX512F;
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700353 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800354 .batch_size(32)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700355 .Test(xnn_f32_vmaxc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800356 }
357
358 TEST(F32_VMAXC__AVX512F_X32, batch_div_32) {
359 TEST_REQUIRES_X86_AVX512F;
360 for (size_t batch_size = 64; batch_size < 320; batch_size += 32) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700361 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800362 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700363 .Test(xnn_f32_vmaxc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800364 }
365 }
366
367 TEST(F32_VMAXC__AVX512F_X32, batch_lt_32) {
368 TEST_REQUIRES_X86_AVX512F;
369 for (size_t batch_size = 1; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700370 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800371 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700372 .Test(xnn_f32_vmaxc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800373 }
374 }
375
376 TEST(F32_VMAXC__AVX512F_X32, batch_gt_32) {
377 TEST_REQUIRES_X86_AVX512F;
378 for (size_t batch_size = 33; batch_size < 64; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700379 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800380 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700381 .Test(xnn_f32_vmaxc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800382 }
383 }
384
385 TEST(F32_VMAXC__AVX512F_X32, inplace) {
386 TEST_REQUIRES_X86_AVX512F;
387 for (size_t batch_size = 1; batch_size <= 160; batch_size += 31) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700388 VBinaryCMicrokernelTester()
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800389 .batch_size(batch_size)
390 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700391 .Test(xnn_f32_vmaxc_ukernel__avx512f_x32, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800392 }
393 }
Marat Dukhan9a88efe2019-12-10 15:54:24 -0800394#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
395
396
Marat Dukhan4c617792021-12-21 15:47:58 -0800397#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700398 TEST(F32_VMAXC__WASMSIMD_ARM_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700399 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700400 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700401 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700402 }
403
404 TEST(F32_VMAXC__WASMSIMD_ARM_X4, batch_div_4) {
405 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700406 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700407 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700408 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700409 }
410 }
411
412 TEST(F32_VMAXC__WASMSIMD_ARM_X4, batch_lt_4) {
413 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700414 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700415 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700416 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700417 }
418 }
419
420 TEST(F32_VMAXC__WASMSIMD_ARM_X4, batch_gt_4) {
421 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700422 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700423 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700424 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700425 }
426 }
427
428 TEST(F32_VMAXC__WASMSIMD_ARM_X4, inplace) {
429 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700430 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700431 .batch_size(batch_size)
432 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700433 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700434 }
435 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800436#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700437
438
Marat Dukhan4c617792021-12-21 15:47:58 -0800439#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700440 TEST(F32_VMAXC__WASMSIMD_ARM_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700441 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700442 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700443 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700444 }
445
446 TEST(F32_VMAXC__WASMSIMD_ARM_X8, batch_div_8) {
447 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700448 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700449 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700450 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700451 }
452 }
453
454 TEST(F32_VMAXC__WASMSIMD_ARM_X8, batch_lt_8) {
455 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700456 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700457 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700458 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700459 }
460 }
461
462 TEST(F32_VMAXC__WASMSIMD_ARM_X8, batch_gt_8) {
463 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700464 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700465 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700466 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700467 }
468 }
469
470 TEST(F32_VMAXC__WASMSIMD_ARM_X8, inplace) {
471 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700472 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700473 .batch_size(batch_size)
474 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700475 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700476 }
477 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800478#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700479
480
Marat Dukhan4c617792021-12-21 15:47:58 -0800481#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700482 TEST(F32_VMAXC__WASMSIMD_ARM_X16, batch_eq_16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700483 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700484 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700485 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700486 }
487
488 TEST(F32_VMAXC__WASMSIMD_ARM_X16, batch_div_16) {
489 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700490 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700491 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700492 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700493 }
494 }
495
496 TEST(F32_VMAXC__WASMSIMD_ARM_X16, batch_lt_16) {
497 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700498 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700499 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700500 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700501 }
502 }
503
504 TEST(F32_VMAXC__WASMSIMD_ARM_X16, batch_gt_16) {
505 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700506 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700507 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700508 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700509 }
510 }
511
512 TEST(F32_VMAXC__WASMSIMD_ARM_X16, inplace) {
513 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700514 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700515 .batch_size(batch_size)
516 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700517 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_arm_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700518 }
519 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800520#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700521
522
Marat Dukhan4c617792021-12-21 15:47:58 -0800523#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700524 TEST(F32_VMAXC__WASMSIMD_X86_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700525 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700526 .batch_size(4)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700527 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700528 }
529
530 TEST(F32_VMAXC__WASMSIMD_X86_X4, batch_div_4) {
531 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700532 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700533 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700534 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700535 }
536 }
537
538 TEST(F32_VMAXC__WASMSIMD_X86_X4, batch_lt_4) {
539 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700540 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700541 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700542 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700543 }
544 }
545
546 TEST(F32_VMAXC__WASMSIMD_X86_X4, batch_gt_4) {
547 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700548 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700549 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700550 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700551 }
552 }
553
554 TEST(F32_VMAXC__WASMSIMD_X86_X4, inplace) {
555 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700556 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700557 .batch_size(batch_size)
558 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700559 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700560 }
561 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800562#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700563
564
Marat Dukhan4c617792021-12-21 15:47:58 -0800565#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700566 TEST(F32_VMAXC__WASMSIMD_X86_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700567 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700568 .batch_size(8)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700569 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700570 }
571
572 TEST(F32_VMAXC__WASMSIMD_X86_X8, batch_div_8) {
573 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700574 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700575 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700576 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700577 }
578 }
579
580 TEST(F32_VMAXC__WASMSIMD_X86_X8, batch_lt_8) {
581 for (size_t batch_size = 1; 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 Dukhan10f1fe02021-05-13 12:51:12 -0700584 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700585 }
586 }
587
588 TEST(F32_VMAXC__WASMSIMD_X86_X8, batch_gt_8) {
589 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700590 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700591 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700592 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700593 }
594 }
595
596 TEST(F32_VMAXC__WASMSIMD_X86_X8, inplace) {
597 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700598 VBinaryCMicrokernelTester()
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700599 .batch_size(batch_size)
600 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700601 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700602 }
603 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800604#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan0e97d6f2020-06-26 19:35:09 -0700605
606
Marat Dukhan4c617792021-12-21 15:47:58 -0800607#if XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700608 TEST(F32_VMAXC__WASMSIMD_X86_X16, batch_eq_16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700609 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700610 .batch_size(16)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700611 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700612 }
613
614 TEST(F32_VMAXC__WASMSIMD_X86_X16, batch_div_16) {
615 for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700616 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700617 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700618 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700619 }
620 }
621
622 TEST(F32_VMAXC__WASMSIMD_X86_X16, batch_lt_16) {
623 for (size_t batch_size = 1; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700624 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700625 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700626 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700627 }
628 }
629
630 TEST(F32_VMAXC__WASMSIMD_X86_X16, batch_gt_16) {
631 for (size_t batch_size = 17; batch_size < 32; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700632 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700633 .batch_size(batch_size)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700634 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700635 }
636 }
637
638 TEST(F32_VMAXC__WASMSIMD_X86_X16, inplace) {
639 for (size_t batch_size = 1; batch_size <= 80; batch_size += 15) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700640 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700641 .batch_size(batch_size)
642 .inplace(true)
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700643 .Test(xnn_f32_vmaxc_ukernel__wasmsimd_x86_x16, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700644 }
645 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800646#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700647
648
Marat Dukhan4c617792021-12-21 15:47:58 -0800649#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800650 TEST(F32_VMAXC__WASM_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700651 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800652 .batch_size(1)
Marat Dukhan98c52152021-12-30 13:31:00 -0800653 .Test(xnn_f32_vmaxc_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800654 }
655
656 TEST(F32_VMAXC__WASM_X1, batch_gt_1) {
657 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700658 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800659 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800660 .Test(xnn_f32_vmaxc_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800661 }
662 }
663
664 TEST(F32_VMAXC__WASM_X1, inplace) {
665 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700666 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800667 .batch_size(batch_size)
668 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800669 .Test(xnn_f32_vmaxc_ukernel__wasm_x1, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800670 }
671 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800672#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800673
674
Marat Dukhan4c617792021-12-21 15:47:58 -0800675#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800676 TEST(F32_VMAXC__WASM_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700677 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800678 .batch_size(2)
Marat Dukhan98c52152021-12-30 13:31:00 -0800679 .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800680 }
681
682 TEST(F32_VMAXC__WASM_X2, batch_div_2) {
683 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700684 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800685 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800686 .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800687 }
688 }
689
690 TEST(F32_VMAXC__WASM_X2, batch_lt_2) {
691 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700692 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800693 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800694 .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800695 }
696 }
697
698 TEST(F32_VMAXC__WASM_X2, batch_gt_2) {
699 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700700 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800701 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800702 .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800703 }
704 }
705
706 TEST(F32_VMAXC__WASM_X2, inplace) {
707 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700708 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800709 .batch_size(batch_size)
710 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800711 .Test(xnn_f32_vmaxc_ukernel__wasm_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800712 }
713 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800714#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800715
716
Marat Dukhan4c617792021-12-21 15:47:58 -0800717#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800718 TEST(F32_VMAXC__WASM_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700719 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800720 .batch_size(4)
Marat Dukhan98c52152021-12-30 13:31:00 -0800721 .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800722 }
723
724 TEST(F32_VMAXC__WASM_X4, batch_div_4) {
725 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700726 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800727 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800728 .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800729 }
730 }
731
732 TEST(F32_VMAXC__WASM_X4, batch_lt_4) {
733 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700734 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800735 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800736 .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800737 }
738 }
739
740 TEST(F32_VMAXC__WASM_X4, batch_gt_4) {
741 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700742 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800743 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800744 .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800745 }
746 }
747
748 TEST(F32_VMAXC__WASM_X4, inplace) {
749 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700750 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800751 .batch_size(batch_size)
752 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800753 .Test(xnn_f32_vmaxc_ukernel__wasm_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800754 }
755 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800756#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Marat Dukhan403b7d42019-12-05 12:49:11 -0800757
758
Marat Dukhan4c617792021-12-21 15:47:58 -0800759#if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700760 TEST(F32_VMAXC__WASM_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700761 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700762 .batch_size(8)
Marat Dukhan98c52152021-12-30 13:31:00 -0800763 .Test(xnn_f32_vmaxc_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700764 }
765
766 TEST(F32_VMAXC__WASM_X8, batch_div_8) {
767 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700768 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700769 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800770 .Test(xnn_f32_vmaxc_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700771 }
772 }
773
774 TEST(F32_VMAXC__WASM_X8, batch_lt_8) {
775 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700776 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700777 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800778 .Test(xnn_f32_vmaxc_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700779 }
780 }
781
782 TEST(F32_VMAXC__WASM_X8, batch_gt_8) {
783 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700784 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700785 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800786 .Test(xnn_f32_vmaxc_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700787 }
788 }
789
790 TEST(F32_VMAXC__WASM_X8, inplace) {
791 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700792 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700793 .batch_size(batch_size)
794 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800795 .Test(xnn_f32_vmaxc_ukernel__wasm_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700796 }
797 }
Marat Dukhan4c617792021-12-21 15:47:58 -0800798#endif // XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
Frank Barchard9c7308f2020-08-31 17:03:01 -0700799
800
Marat Dukhan403b7d42019-12-05 12:49:11 -0800801TEST(F32_VMAXC__SCALAR_X1, batch_eq_1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700802 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800803 .batch_size(1)
Marat Dukhan98c52152021-12-30 13:31:00 -0800804 .Test(xnn_f32_vmaxc_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800805}
806
807TEST(F32_VMAXC__SCALAR_X1, batch_gt_1) {
808 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700809 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800810 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800811 .Test(xnn_f32_vmaxc_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800812 }
813}
814
815TEST(F32_VMAXC__SCALAR_X1, inplace) {
816 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700817 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800818 .batch_size(batch_size)
819 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800820 .Test(xnn_f32_vmaxc_ukernel__scalar_x1, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800821 }
822}
823
Marat Dukhan403b7d42019-12-05 12:49:11 -0800824
825TEST(F32_VMAXC__SCALAR_X2, batch_eq_2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700826 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800827 .batch_size(2)
Marat Dukhan98c52152021-12-30 13:31:00 -0800828 .Test(xnn_f32_vmaxc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800829}
830
831TEST(F32_VMAXC__SCALAR_X2, batch_div_2) {
832 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700833 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800834 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800835 .Test(xnn_f32_vmaxc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800836 }
837}
838
839TEST(F32_VMAXC__SCALAR_X2, batch_lt_2) {
840 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700841 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800842 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800843 .Test(xnn_f32_vmaxc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800844 }
845}
846
847TEST(F32_VMAXC__SCALAR_X2, batch_gt_2) {
848 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700849 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800850 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800851 .Test(xnn_f32_vmaxc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800852 }
853}
854
855TEST(F32_VMAXC__SCALAR_X2, inplace) {
856 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700857 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800858 .batch_size(batch_size)
859 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800860 .Test(xnn_f32_vmaxc_ukernel__scalar_x2, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800861 }
862}
863
Marat Dukhan403b7d42019-12-05 12:49:11 -0800864
865TEST(F32_VMAXC__SCALAR_X4, batch_eq_4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700866 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800867 .batch_size(4)
Marat Dukhan98c52152021-12-30 13:31:00 -0800868 .Test(xnn_f32_vmaxc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800869}
870
871TEST(F32_VMAXC__SCALAR_X4, batch_div_4) {
872 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700873 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800874 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800875 .Test(xnn_f32_vmaxc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800876 }
877}
878
879TEST(F32_VMAXC__SCALAR_X4, batch_lt_4) {
880 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700881 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800882 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800883 .Test(xnn_f32_vmaxc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800884 }
885}
886
887TEST(F32_VMAXC__SCALAR_X4, batch_gt_4) {
888 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700889 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800890 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800891 .Test(xnn_f32_vmaxc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800892 }
893}
894
895TEST(F32_VMAXC__SCALAR_X4, inplace) {
896 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700897 VBinaryCMicrokernelTester()
Marat Dukhan403b7d42019-12-05 12:49:11 -0800898 .batch_size(batch_size)
899 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800900 .Test(xnn_f32_vmaxc_ukernel__scalar_x4, VBinaryCMicrokernelTester::OpType::MaxC);
Marat Dukhan403b7d42019-12-05 12:49:11 -0800901 }
902}
Frank Barchard9c7308f2020-08-31 17:03:01 -0700903
904
905TEST(F32_VMAXC__SCALAR_X8, batch_eq_8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700906 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700907 .batch_size(8)
Marat Dukhan98c52152021-12-30 13:31:00 -0800908 .Test(xnn_f32_vmaxc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700909}
910
911TEST(F32_VMAXC__SCALAR_X8, batch_div_8) {
912 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700913 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700914 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800915 .Test(xnn_f32_vmaxc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700916 }
917}
918
919TEST(F32_VMAXC__SCALAR_X8, batch_lt_8) {
920 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700921 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700922 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800923 .Test(xnn_f32_vmaxc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700924 }
925}
926
927TEST(F32_VMAXC__SCALAR_X8, batch_gt_8) {
928 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700929 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700930 .batch_size(batch_size)
Marat Dukhan98c52152021-12-30 13:31:00 -0800931 .Test(xnn_f32_vmaxc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700932 }
933}
934
935TEST(F32_VMAXC__SCALAR_X8, inplace) {
936 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
Marat Dukhan10f1fe02021-05-13 12:51:12 -0700937 VBinaryCMicrokernelTester()
Frank Barchard9c7308f2020-08-31 17:03:01 -0700938 .batch_size(batch_size)
939 .inplace(true)
Marat Dukhan98c52152021-12-30 13:31:00 -0800940 .Test(xnn_f32_vmaxc_ukernel__scalar_x8, VBinaryCMicrokernelTester::OpType::MaxC);
Frank Barchard9c7308f2020-08-31 17:03:01 -0700941 }
942}