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