blob: 99fdc10982349f6f3dd6bc415313f76123dd4edb [file] [log] [blame]
Frank Barchardd5b9f1c2020-07-01 15:00:19 -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-vmul.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
16#include <xnnpack/vbinary.h>
17#include "vbinary-microkernel-tester.h"
18
19
20#if XNN_ARCH_WASMSIMD
21 TEST(F32_VMUL__WASMSIMD_X4, batch_eq_4) {
22 VBinOpMicrokernelTester()
23 .batch_size(4)
24 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
25 }
26
27 TEST(F32_VMUL__WASMSIMD_X4, batch_div_4) {
28 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
29 VBinOpMicrokernelTester()
30 .batch_size(batch_size)
31 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
32 }
33 }
34
35 TEST(F32_VMUL__WASMSIMD_X4, batch_lt_4) {
36 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
37 VBinOpMicrokernelTester()
38 .batch_size(batch_size)
39 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
40 }
41 }
42
43 TEST(F32_VMUL__WASMSIMD_X4, batch_gt_4) {
44 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
45 VBinOpMicrokernelTester()
46 .batch_size(batch_size)
47 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
48 }
49 }
50
51 TEST(F32_VMUL__WASMSIMD_X4, inplace_a) {
52 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
53 VBinOpMicrokernelTester()
54 .batch_size(batch_size)
55 .inplace_a(true)
56 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
57 }
58 }
59
60 TEST(F32_VMUL__WASMSIMD_X4, inplace_b) {
61 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
62 VBinOpMicrokernelTester()
63 .batch_size(batch_size)
64 .inplace_b(true)
65 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
66 }
67 }
68
69 TEST(F32_VMUL__WASMSIMD_X4, inplace_a_and_b) {
70 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
71 VBinOpMicrokernelTester()
72 .batch_size(batch_size)
73 .inplace_a(true)
74 .inplace_b(true)
75 .Test(xnn_f32_vmul_ukernel__wasmsimd_x4, VBinOpMicrokernelTester::OpType::Mul);
76 }
77 }
78#endif // XNN_ARCH_WASMSIMD
79
80
81#if XNN_ARCH_WASMSIMD
82 TEST(F32_VMUL__WASMSIMD_X8, batch_eq_8) {
83 VBinOpMicrokernelTester()
84 .batch_size(8)
85 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
86 }
87
88 TEST(F32_VMUL__WASMSIMD_X8, batch_div_8) {
89 for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
90 VBinOpMicrokernelTester()
91 .batch_size(batch_size)
92 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
93 }
94 }
95
96 TEST(F32_VMUL__WASMSIMD_X8, batch_lt_8) {
97 for (size_t batch_size = 1; batch_size < 8; batch_size++) {
98 VBinOpMicrokernelTester()
99 .batch_size(batch_size)
100 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
101 }
102 }
103
104 TEST(F32_VMUL__WASMSIMD_X8, batch_gt_8) {
105 for (size_t batch_size = 9; batch_size < 16; batch_size++) {
106 VBinOpMicrokernelTester()
107 .batch_size(batch_size)
108 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
109 }
110 }
111
112 TEST(F32_VMUL__WASMSIMD_X8, inplace_a) {
113 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
114 VBinOpMicrokernelTester()
115 .batch_size(batch_size)
116 .inplace_a(true)
117 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
118 }
119 }
120
121 TEST(F32_VMUL__WASMSIMD_X8, inplace_b) {
122 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
123 VBinOpMicrokernelTester()
124 .batch_size(batch_size)
125 .inplace_b(true)
126 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
127 }
128 }
129
130 TEST(F32_VMUL__WASMSIMD_X8, inplace_a_and_b) {
131 for (size_t batch_size = 1; batch_size <= 40; batch_size += 7) {
132 VBinOpMicrokernelTester()
133 .batch_size(batch_size)
134 .inplace_a(true)
135 .inplace_b(true)
136 .Test(xnn_f32_vmul_ukernel__wasmsimd_x8, VBinOpMicrokernelTester::OpType::Mul);
137 }
138 }
139#endif // XNN_ARCH_WASMSIMD
Frank Barchard8e229db2020-07-06 23:31:35 -0700140
141
142TEST(F32_VMUL__SCALAR_X1, batch_eq_1) {
143 VBinOpMicrokernelTester()
144 .batch_size(1)
145 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
146}
147
148TEST(F32_VMUL__SCALAR_X1, batch_gt_1) {
149 for (size_t batch_size = 2; batch_size < 10; batch_size++) {
150 VBinOpMicrokernelTester()
151 .batch_size(batch_size)
152 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
153 }
154}
155
156TEST(F32_VMUL__SCALAR_X1, inplace_a) {
157 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
158 VBinOpMicrokernelTester()
159 .batch_size(batch_size)
160 .inplace_a(true)
161 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
162 }
163}
164
165TEST(F32_VMUL__SCALAR_X1, inplace_b) {
166 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
167 VBinOpMicrokernelTester()
168 .batch_size(batch_size)
169 .inplace_b(true)
170 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
171 }
172}
173
174TEST(F32_VMUL__SCALAR_X1, inplace_a_and_b) {
175 for (size_t batch_size = 1; batch_size <= 5; batch_size += 1) {
176 VBinOpMicrokernelTester()
177 .batch_size(batch_size)
178 .inplace_a(true)
179 .inplace_b(true)
180 .Test(xnn_f32_vmul_ukernel__scalar_x1, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
181 }
182}
183
184
185TEST(F32_VMUL__SCALAR_X2, batch_eq_2) {
186 VBinOpMicrokernelTester()
187 .batch_size(2)
188 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
189}
190
191TEST(F32_VMUL__SCALAR_X2, batch_div_2) {
192 for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
193 VBinOpMicrokernelTester()
194 .batch_size(batch_size)
195 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
196 }
197}
198
199TEST(F32_VMUL__SCALAR_X2, batch_lt_2) {
200 for (size_t batch_size = 1; batch_size < 2; batch_size++) {
201 VBinOpMicrokernelTester()
202 .batch_size(batch_size)
203 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
204 }
205}
206
207TEST(F32_VMUL__SCALAR_X2, batch_gt_2) {
208 for (size_t batch_size = 3; batch_size < 4; batch_size++) {
209 VBinOpMicrokernelTester()
210 .batch_size(batch_size)
211 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
212 }
213}
214
215TEST(F32_VMUL__SCALAR_X2, inplace_a) {
216 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
217 VBinOpMicrokernelTester()
218 .batch_size(batch_size)
219 .inplace_a(true)
220 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
221 }
222}
223
224TEST(F32_VMUL__SCALAR_X2, inplace_b) {
225 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
226 VBinOpMicrokernelTester()
227 .batch_size(batch_size)
228 .inplace_b(true)
229 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
230 }
231}
232
233TEST(F32_VMUL__SCALAR_X2, inplace_a_and_b) {
234 for (size_t batch_size = 1; batch_size <= 10; batch_size += 1) {
235 VBinOpMicrokernelTester()
236 .batch_size(batch_size)
237 .inplace_a(true)
238 .inplace_b(true)
239 .Test(xnn_f32_vmul_ukernel__scalar_x2, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
240 }
241}
242
243
244TEST(F32_VMUL__SCALAR_X4, batch_eq_4) {
245 VBinOpMicrokernelTester()
246 .batch_size(4)
247 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
248}
249
250TEST(F32_VMUL__SCALAR_X4, batch_div_4) {
251 for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
252 VBinOpMicrokernelTester()
253 .batch_size(batch_size)
254 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
255 }
256}
257
258TEST(F32_VMUL__SCALAR_X4, batch_lt_4) {
259 for (size_t batch_size = 1; batch_size < 4; batch_size++) {
260 VBinOpMicrokernelTester()
261 .batch_size(batch_size)
262 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
263 }
264}
265
266TEST(F32_VMUL__SCALAR_X4, batch_gt_4) {
267 for (size_t batch_size = 5; batch_size < 8; batch_size++) {
268 VBinOpMicrokernelTester()
269 .batch_size(batch_size)
270 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
271 }
272}
273
274TEST(F32_VMUL__SCALAR_X4, inplace_a) {
275 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
276 VBinOpMicrokernelTester()
277 .batch_size(batch_size)
278 .inplace_a(true)
279 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
280 }
281}
282
283TEST(F32_VMUL__SCALAR_X4, inplace_b) {
284 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
285 VBinOpMicrokernelTester()
286 .batch_size(batch_size)
287 .inplace_b(true)
288 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
289 }
290}
291
292TEST(F32_VMUL__SCALAR_X4, inplace_a_and_b) {
293 for (size_t batch_size = 1; batch_size <= 20; batch_size += 3) {
294 VBinOpMicrokernelTester()
295 .batch_size(batch_size)
296 .inplace_a(true)
297 .inplace_b(true)
298 .Test(xnn_f32_vmul_ukernel__scalar_x4, VBinOpMicrokernelTester::OpType::Mul, VBinOpMicrokernelTester::Variant::Scalar);
299 }
300}