1 // Copyright 2022 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/s16-window.yaml
8 // Generator: tools/generate-window-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/window.h>
17 #include "window-microkernel-tester.h"
18
19
20 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW_SHIFT12__NEON_X8,batch_eq_8)21 TEST(S16_WINDOW_SHIFT12__NEON_X8, batch_eq_8) {
22 TEST_REQUIRES_ARM_NEON;
23 WindowMicrokernelTester()
24 .rows(1)
25 .batch(8)
26 .shift(12)
27 .Test(xnn_s16_window_shift12_ukernel__neon_x8);
28 }
29
TEST(S16_WINDOW_SHIFT12__NEON_X8,batch_div_8)30 TEST(S16_WINDOW_SHIFT12__NEON_X8, batch_div_8) {
31 TEST_REQUIRES_ARM_NEON;
32 for (size_t batch = 16; batch < 80; batch += 8) {
33 WindowMicrokernelTester()
34 .batch(batch)
35 .shift(12)
36 .Test(xnn_s16_window_shift12_ukernel__neon_x8);
37 }
38 }
39
TEST(S16_WINDOW_SHIFT12__NEON_X8,batch_lt_8)40 TEST(S16_WINDOW_SHIFT12__NEON_X8, batch_lt_8) {
41 TEST_REQUIRES_ARM_NEON;
42 for (size_t batch = 1; batch < 8; batch++) {
43 WindowMicrokernelTester()
44 .batch(batch)
45 .shift(12)
46 .Test(xnn_s16_window_shift12_ukernel__neon_x8);
47 }
48 }
49
TEST(S16_WINDOW_SHIFT12__NEON_X8,batch_gt_8)50 TEST(S16_WINDOW_SHIFT12__NEON_X8, batch_gt_8) {
51 TEST_REQUIRES_ARM_NEON;
52 for (size_t batch = 9; batch < 16; batch++) {
53 WindowMicrokernelTester()
54 .batch(batch)
55 .shift(12)
56 .Test(xnn_s16_window_shift12_ukernel__neon_x8);
57 }
58 }
59
TEST(S16_WINDOW_SHIFT12__NEON_X8,rows_gt_1)60 TEST(S16_WINDOW_SHIFT12__NEON_X8, rows_gt_1) {
61 TEST_REQUIRES_ARM_NEON;
62 for (size_t rows = 2; rows < 2; rows++) {
63 for (size_t batch = 1; batch <= 40; batch += 7) {
64 WindowMicrokernelTester()
65 .rows(rows)
66 .batch(batch)
67 .shift(12)
68 .Test(xnn_s16_window_shift12_ukernel__neon_x8);
69 }
70 }
71 }
72
TEST(S16_WINDOW_SHIFT12__NEON_X8,inplace)73 TEST(S16_WINDOW_SHIFT12__NEON_X8, inplace) {
74 TEST_REQUIRES_ARM_NEON;
75 for (size_t rows = 1; rows <= 3; rows += 1) {
76 for (size_t batch = 1; batch <= 40; batch += 7) {
77 WindowMicrokernelTester()
78 .rows(rows)
79 .batch(batch)
80 .shift(12)
81 .inplace(true)
82 .iterations(1)
83 .Test(xnn_s16_window_shift12_ukernel__neon_x8);
84 }
85 }
86 }
87 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
88
89
90 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW_SHIFT12__NEON_X16,batch_eq_16)91 TEST(S16_WINDOW_SHIFT12__NEON_X16, batch_eq_16) {
92 TEST_REQUIRES_ARM_NEON;
93 WindowMicrokernelTester()
94 .rows(1)
95 .batch(16)
96 .shift(12)
97 .Test(xnn_s16_window_shift12_ukernel__neon_x16);
98 }
99
TEST(S16_WINDOW_SHIFT12__NEON_X16,batch_div_16)100 TEST(S16_WINDOW_SHIFT12__NEON_X16, batch_div_16) {
101 TEST_REQUIRES_ARM_NEON;
102 for (size_t batch = 32; batch < 160; batch += 16) {
103 WindowMicrokernelTester()
104 .batch(batch)
105 .shift(12)
106 .Test(xnn_s16_window_shift12_ukernel__neon_x16);
107 }
108 }
109
TEST(S16_WINDOW_SHIFT12__NEON_X16,batch_lt_16)110 TEST(S16_WINDOW_SHIFT12__NEON_X16, batch_lt_16) {
111 TEST_REQUIRES_ARM_NEON;
112 for (size_t batch = 1; batch < 16; batch++) {
113 WindowMicrokernelTester()
114 .batch(batch)
115 .shift(12)
116 .Test(xnn_s16_window_shift12_ukernel__neon_x16);
117 }
118 }
119
TEST(S16_WINDOW_SHIFT12__NEON_X16,batch_gt_16)120 TEST(S16_WINDOW_SHIFT12__NEON_X16, batch_gt_16) {
121 TEST_REQUIRES_ARM_NEON;
122 for (size_t batch = 17; batch < 32; batch++) {
123 WindowMicrokernelTester()
124 .batch(batch)
125 .shift(12)
126 .Test(xnn_s16_window_shift12_ukernel__neon_x16);
127 }
128 }
129
TEST(S16_WINDOW_SHIFT12__NEON_X16,rows_gt_1)130 TEST(S16_WINDOW_SHIFT12__NEON_X16, rows_gt_1) {
131 TEST_REQUIRES_ARM_NEON;
132 for (size_t rows = 2; rows < 2; rows++) {
133 for (size_t batch = 1; batch <= 80; batch += 15) {
134 WindowMicrokernelTester()
135 .rows(rows)
136 .batch(batch)
137 .shift(12)
138 .Test(xnn_s16_window_shift12_ukernel__neon_x16);
139 }
140 }
141 }
142
TEST(S16_WINDOW_SHIFT12__NEON_X16,inplace)143 TEST(S16_WINDOW_SHIFT12__NEON_X16, inplace) {
144 TEST_REQUIRES_ARM_NEON;
145 for (size_t rows = 1; rows <= 3; rows += 1) {
146 for (size_t batch = 1; batch <= 80; batch += 15) {
147 WindowMicrokernelTester()
148 .rows(rows)
149 .batch(batch)
150 .shift(12)
151 .inplace(true)
152 .iterations(1)
153 .Test(xnn_s16_window_shift12_ukernel__neon_x16);
154 }
155 }
156 }
157 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
158
159
160 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW_SHIFT12__NEON_X24,batch_eq_24)161 TEST(S16_WINDOW_SHIFT12__NEON_X24, batch_eq_24) {
162 TEST_REQUIRES_ARM_NEON;
163 WindowMicrokernelTester()
164 .rows(1)
165 .batch(24)
166 .shift(12)
167 .Test(xnn_s16_window_shift12_ukernel__neon_x24);
168 }
169
TEST(S16_WINDOW_SHIFT12__NEON_X24,batch_div_24)170 TEST(S16_WINDOW_SHIFT12__NEON_X24, batch_div_24) {
171 TEST_REQUIRES_ARM_NEON;
172 for (size_t batch = 48; batch < 240; batch += 24) {
173 WindowMicrokernelTester()
174 .batch(batch)
175 .shift(12)
176 .Test(xnn_s16_window_shift12_ukernel__neon_x24);
177 }
178 }
179
TEST(S16_WINDOW_SHIFT12__NEON_X24,batch_lt_24)180 TEST(S16_WINDOW_SHIFT12__NEON_X24, batch_lt_24) {
181 TEST_REQUIRES_ARM_NEON;
182 for (size_t batch = 1; batch < 24; batch++) {
183 WindowMicrokernelTester()
184 .batch(batch)
185 .shift(12)
186 .Test(xnn_s16_window_shift12_ukernel__neon_x24);
187 }
188 }
189
TEST(S16_WINDOW_SHIFT12__NEON_X24,batch_gt_24)190 TEST(S16_WINDOW_SHIFT12__NEON_X24, batch_gt_24) {
191 TEST_REQUIRES_ARM_NEON;
192 for (size_t batch = 25; batch < 48; batch++) {
193 WindowMicrokernelTester()
194 .batch(batch)
195 .shift(12)
196 .Test(xnn_s16_window_shift12_ukernel__neon_x24);
197 }
198 }
199
TEST(S16_WINDOW_SHIFT12__NEON_X24,rows_gt_1)200 TEST(S16_WINDOW_SHIFT12__NEON_X24, rows_gt_1) {
201 TEST_REQUIRES_ARM_NEON;
202 for (size_t rows = 2; rows < 2; rows++) {
203 for (size_t batch = 1; batch <= 120; batch += 23) {
204 WindowMicrokernelTester()
205 .rows(rows)
206 .batch(batch)
207 .shift(12)
208 .Test(xnn_s16_window_shift12_ukernel__neon_x24);
209 }
210 }
211 }
212
TEST(S16_WINDOW_SHIFT12__NEON_X24,inplace)213 TEST(S16_WINDOW_SHIFT12__NEON_X24, inplace) {
214 TEST_REQUIRES_ARM_NEON;
215 for (size_t rows = 1; rows <= 3; rows += 1) {
216 for (size_t batch = 1; batch <= 120; batch += 23) {
217 WindowMicrokernelTester()
218 .rows(rows)
219 .batch(batch)
220 .shift(12)
221 .inplace(true)
222 .iterations(1)
223 .Test(xnn_s16_window_shift12_ukernel__neon_x24);
224 }
225 }
226 }
227 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
228
229
230 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW_SHIFT12__NEON_X32,batch_eq_32)231 TEST(S16_WINDOW_SHIFT12__NEON_X32, batch_eq_32) {
232 TEST_REQUIRES_ARM_NEON;
233 WindowMicrokernelTester()
234 .rows(1)
235 .batch(32)
236 .shift(12)
237 .Test(xnn_s16_window_shift12_ukernel__neon_x32);
238 }
239
TEST(S16_WINDOW_SHIFT12__NEON_X32,batch_div_32)240 TEST(S16_WINDOW_SHIFT12__NEON_X32, batch_div_32) {
241 TEST_REQUIRES_ARM_NEON;
242 for (size_t batch = 64; batch < 320; batch += 32) {
243 WindowMicrokernelTester()
244 .batch(batch)
245 .shift(12)
246 .Test(xnn_s16_window_shift12_ukernel__neon_x32);
247 }
248 }
249
TEST(S16_WINDOW_SHIFT12__NEON_X32,batch_lt_32)250 TEST(S16_WINDOW_SHIFT12__NEON_X32, batch_lt_32) {
251 TEST_REQUIRES_ARM_NEON;
252 for (size_t batch = 1; batch < 32; batch++) {
253 WindowMicrokernelTester()
254 .batch(batch)
255 .shift(12)
256 .Test(xnn_s16_window_shift12_ukernel__neon_x32);
257 }
258 }
259
TEST(S16_WINDOW_SHIFT12__NEON_X32,batch_gt_32)260 TEST(S16_WINDOW_SHIFT12__NEON_X32, batch_gt_32) {
261 TEST_REQUIRES_ARM_NEON;
262 for (size_t batch = 33; batch < 64; batch++) {
263 WindowMicrokernelTester()
264 .batch(batch)
265 .shift(12)
266 .Test(xnn_s16_window_shift12_ukernel__neon_x32);
267 }
268 }
269
TEST(S16_WINDOW_SHIFT12__NEON_X32,rows_gt_1)270 TEST(S16_WINDOW_SHIFT12__NEON_X32, rows_gt_1) {
271 TEST_REQUIRES_ARM_NEON;
272 for (size_t rows = 2; rows < 2; rows++) {
273 for (size_t batch = 1; batch <= 160; batch += 31) {
274 WindowMicrokernelTester()
275 .rows(rows)
276 .batch(batch)
277 .shift(12)
278 .Test(xnn_s16_window_shift12_ukernel__neon_x32);
279 }
280 }
281 }
282
TEST(S16_WINDOW_SHIFT12__NEON_X32,inplace)283 TEST(S16_WINDOW_SHIFT12__NEON_X32, inplace) {
284 TEST_REQUIRES_ARM_NEON;
285 for (size_t rows = 1; rows <= 3; rows += 1) {
286 for (size_t batch = 1; batch <= 160; batch += 31) {
287 WindowMicrokernelTester()
288 .rows(rows)
289 .batch(batch)
290 .shift(12)
291 .inplace(true)
292 .iterations(1)
293 .Test(xnn_s16_window_shift12_ukernel__neon_x32);
294 }
295 }
296 }
297 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
298
299
300 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW_SHIFT15__NEON_X8,batch_eq_8)301 TEST(S16_WINDOW_SHIFT15__NEON_X8, batch_eq_8) {
302 TEST_REQUIRES_ARM_NEON;
303 WindowMicrokernelTester()
304 .rows(1)
305 .batch(8)
306 .shift(15)
307 .Test(xnn_s16_window_shift15_ukernel__neon_x8);
308 }
309
TEST(S16_WINDOW_SHIFT15__NEON_X8,batch_div_8)310 TEST(S16_WINDOW_SHIFT15__NEON_X8, batch_div_8) {
311 TEST_REQUIRES_ARM_NEON;
312 for (size_t batch = 16; batch < 80; batch += 8) {
313 WindowMicrokernelTester()
314 .batch(batch)
315 .shift(15)
316 .Test(xnn_s16_window_shift15_ukernel__neon_x8);
317 }
318 }
319
TEST(S16_WINDOW_SHIFT15__NEON_X8,batch_lt_8)320 TEST(S16_WINDOW_SHIFT15__NEON_X8, batch_lt_8) {
321 TEST_REQUIRES_ARM_NEON;
322 for (size_t batch = 1; batch < 8; batch++) {
323 WindowMicrokernelTester()
324 .batch(batch)
325 .shift(15)
326 .Test(xnn_s16_window_shift15_ukernel__neon_x8);
327 }
328 }
329
TEST(S16_WINDOW_SHIFT15__NEON_X8,batch_gt_8)330 TEST(S16_WINDOW_SHIFT15__NEON_X8, batch_gt_8) {
331 TEST_REQUIRES_ARM_NEON;
332 for (size_t batch = 9; batch < 16; batch++) {
333 WindowMicrokernelTester()
334 .batch(batch)
335 .shift(15)
336 .Test(xnn_s16_window_shift15_ukernel__neon_x8);
337 }
338 }
339
TEST(S16_WINDOW_SHIFT15__NEON_X8,rows_gt_1)340 TEST(S16_WINDOW_SHIFT15__NEON_X8, rows_gt_1) {
341 TEST_REQUIRES_ARM_NEON;
342 for (size_t rows = 2; rows < 2; rows++) {
343 for (size_t batch = 1; batch <= 40; batch += 7) {
344 WindowMicrokernelTester()
345 .rows(rows)
346 .batch(batch)
347 .shift(15)
348 .Test(xnn_s16_window_shift15_ukernel__neon_x8);
349 }
350 }
351 }
352
TEST(S16_WINDOW_SHIFT15__NEON_X8,inplace)353 TEST(S16_WINDOW_SHIFT15__NEON_X8, inplace) {
354 TEST_REQUIRES_ARM_NEON;
355 for (size_t rows = 1; rows <= 3; rows += 1) {
356 for (size_t batch = 1; batch <= 40; batch += 7) {
357 WindowMicrokernelTester()
358 .rows(rows)
359 .batch(batch)
360 .shift(15)
361 .inplace(true)
362 .iterations(1)
363 .Test(xnn_s16_window_shift15_ukernel__neon_x8);
364 }
365 }
366 }
367 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
368
369
370 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW_SHIFT15__NEON_X16,batch_eq_16)371 TEST(S16_WINDOW_SHIFT15__NEON_X16, batch_eq_16) {
372 TEST_REQUIRES_ARM_NEON;
373 WindowMicrokernelTester()
374 .rows(1)
375 .batch(16)
376 .shift(15)
377 .Test(xnn_s16_window_shift15_ukernel__neon_x16);
378 }
379
TEST(S16_WINDOW_SHIFT15__NEON_X16,batch_div_16)380 TEST(S16_WINDOW_SHIFT15__NEON_X16, batch_div_16) {
381 TEST_REQUIRES_ARM_NEON;
382 for (size_t batch = 32; batch < 160; batch += 16) {
383 WindowMicrokernelTester()
384 .batch(batch)
385 .shift(15)
386 .Test(xnn_s16_window_shift15_ukernel__neon_x16);
387 }
388 }
389
TEST(S16_WINDOW_SHIFT15__NEON_X16,batch_lt_16)390 TEST(S16_WINDOW_SHIFT15__NEON_X16, batch_lt_16) {
391 TEST_REQUIRES_ARM_NEON;
392 for (size_t batch = 1; batch < 16; batch++) {
393 WindowMicrokernelTester()
394 .batch(batch)
395 .shift(15)
396 .Test(xnn_s16_window_shift15_ukernel__neon_x16);
397 }
398 }
399
TEST(S16_WINDOW_SHIFT15__NEON_X16,batch_gt_16)400 TEST(S16_WINDOW_SHIFT15__NEON_X16, batch_gt_16) {
401 TEST_REQUIRES_ARM_NEON;
402 for (size_t batch = 17; batch < 32; batch++) {
403 WindowMicrokernelTester()
404 .batch(batch)
405 .shift(15)
406 .Test(xnn_s16_window_shift15_ukernel__neon_x16);
407 }
408 }
409
TEST(S16_WINDOW_SHIFT15__NEON_X16,rows_gt_1)410 TEST(S16_WINDOW_SHIFT15__NEON_X16, rows_gt_1) {
411 TEST_REQUIRES_ARM_NEON;
412 for (size_t rows = 2; rows < 2; rows++) {
413 for (size_t batch = 1; batch <= 80; batch += 15) {
414 WindowMicrokernelTester()
415 .rows(rows)
416 .batch(batch)
417 .shift(15)
418 .Test(xnn_s16_window_shift15_ukernel__neon_x16);
419 }
420 }
421 }
422
TEST(S16_WINDOW_SHIFT15__NEON_X16,inplace)423 TEST(S16_WINDOW_SHIFT15__NEON_X16, inplace) {
424 TEST_REQUIRES_ARM_NEON;
425 for (size_t rows = 1; rows <= 3; rows += 1) {
426 for (size_t batch = 1; batch <= 80; batch += 15) {
427 WindowMicrokernelTester()
428 .rows(rows)
429 .batch(batch)
430 .shift(15)
431 .inplace(true)
432 .iterations(1)
433 .Test(xnn_s16_window_shift15_ukernel__neon_x16);
434 }
435 }
436 }
437 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
438
439
440 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW_SHIFT15__NEON_X24,batch_eq_24)441 TEST(S16_WINDOW_SHIFT15__NEON_X24, batch_eq_24) {
442 TEST_REQUIRES_ARM_NEON;
443 WindowMicrokernelTester()
444 .rows(1)
445 .batch(24)
446 .shift(15)
447 .Test(xnn_s16_window_shift15_ukernel__neon_x24);
448 }
449
TEST(S16_WINDOW_SHIFT15__NEON_X24,batch_div_24)450 TEST(S16_WINDOW_SHIFT15__NEON_X24, batch_div_24) {
451 TEST_REQUIRES_ARM_NEON;
452 for (size_t batch = 48; batch < 240; batch += 24) {
453 WindowMicrokernelTester()
454 .batch(batch)
455 .shift(15)
456 .Test(xnn_s16_window_shift15_ukernel__neon_x24);
457 }
458 }
459
TEST(S16_WINDOW_SHIFT15__NEON_X24,batch_lt_24)460 TEST(S16_WINDOW_SHIFT15__NEON_X24, batch_lt_24) {
461 TEST_REQUIRES_ARM_NEON;
462 for (size_t batch = 1; batch < 24; batch++) {
463 WindowMicrokernelTester()
464 .batch(batch)
465 .shift(15)
466 .Test(xnn_s16_window_shift15_ukernel__neon_x24);
467 }
468 }
469
TEST(S16_WINDOW_SHIFT15__NEON_X24,batch_gt_24)470 TEST(S16_WINDOW_SHIFT15__NEON_X24, batch_gt_24) {
471 TEST_REQUIRES_ARM_NEON;
472 for (size_t batch = 25; batch < 48; batch++) {
473 WindowMicrokernelTester()
474 .batch(batch)
475 .shift(15)
476 .Test(xnn_s16_window_shift15_ukernel__neon_x24);
477 }
478 }
479
TEST(S16_WINDOW_SHIFT15__NEON_X24,rows_gt_1)480 TEST(S16_WINDOW_SHIFT15__NEON_X24, rows_gt_1) {
481 TEST_REQUIRES_ARM_NEON;
482 for (size_t rows = 2; rows < 2; rows++) {
483 for (size_t batch = 1; batch <= 120; batch += 23) {
484 WindowMicrokernelTester()
485 .rows(rows)
486 .batch(batch)
487 .shift(15)
488 .Test(xnn_s16_window_shift15_ukernel__neon_x24);
489 }
490 }
491 }
492
TEST(S16_WINDOW_SHIFT15__NEON_X24,inplace)493 TEST(S16_WINDOW_SHIFT15__NEON_X24, inplace) {
494 TEST_REQUIRES_ARM_NEON;
495 for (size_t rows = 1; rows <= 3; rows += 1) {
496 for (size_t batch = 1; batch <= 120; batch += 23) {
497 WindowMicrokernelTester()
498 .rows(rows)
499 .batch(batch)
500 .shift(15)
501 .inplace(true)
502 .iterations(1)
503 .Test(xnn_s16_window_shift15_ukernel__neon_x24);
504 }
505 }
506 }
507 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
508
509
510 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW_SHIFT15__NEON_X32,batch_eq_32)511 TEST(S16_WINDOW_SHIFT15__NEON_X32, batch_eq_32) {
512 TEST_REQUIRES_ARM_NEON;
513 WindowMicrokernelTester()
514 .rows(1)
515 .batch(32)
516 .shift(15)
517 .Test(xnn_s16_window_shift15_ukernel__neon_x32);
518 }
519
TEST(S16_WINDOW_SHIFT15__NEON_X32,batch_div_32)520 TEST(S16_WINDOW_SHIFT15__NEON_X32, batch_div_32) {
521 TEST_REQUIRES_ARM_NEON;
522 for (size_t batch = 64; batch < 320; batch += 32) {
523 WindowMicrokernelTester()
524 .batch(batch)
525 .shift(15)
526 .Test(xnn_s16_window_shift15_ukernel__neon_x32);
527 }
528 }
529
TEST(S16_WINDOW_SHIFT15__NEON_X32,batch_lt_32)530 TEST(S16_WINDOW_SHIFT15__NEON_X32, batch_lt_32) {
531 TEST_REQUIRES_ARM_NEON;
532 for (size_t batch = 1; batch < 32; batch++) {
533 WindowMicrokernelTester()
534 .batch(batch)
535 .shift(15)
536 .Test(xnn_s16_window_shift15_ukernel__neon_x32);
537 }
538 }
539
TEST(S16_WINDOW_SHIFT15__NEON_X32,batch_gt_32)540 TEST(S16_WINDOW_SHIFT15__NEON_X32, batch_gt_32) {
541 TEST_REQUIRES_ARM_NEON;
542 for (size_t batch = 33; batch < 64; batch++) {
543 WindowMicrokernelTester()
544 .batch(batch)
545 .shift(15)
546 .Test(xnn_s16_window_shift15_ukernel__neon_x32);
547 }
548 }
549
TEST(S16_WINDOW_SHIFT15__NEON_X32,rows_gt_1)550 TEST(S16_WINDOW_SHIFT15__NEON_X32, rows_gt_1) {
551 TEST_REQUIRES_ARM_NEON;
552 for (size_t rows = 2; rows < 2; rows++) {
553 for (size_t batch = 1; batch <= 160; batch += 31) {
554 WindowMicrokernelTester()
555 .rows(rows)
556 .batch(batch)
557 .shift(15)
558 .Test(xnn_s16_window_shift15_ukernel__neon_x32);
559 }
560 }
561 }
562
TEST(S16_WINDOW_SHIFT15__NEON_X32,inplace)563 TEST(S16_WINDOW_SHIFT15__NEON_X32, inplace) {
564 TEST_REQUIRES_ARM_NEON;
565 for (size_t rows = 1; rows <= 3; rows += 1) {
566 for (size_t batch = 1; batch <= 160; batch += 31) {
567 WindowMicrokernelTester()
568 .rows(rows)
569 .batch(batch)
570 .shift(15)
571 .inplace(true)
572 .iterations(1)
573 .Test(xnn_s16_window_shift15_ukernel__neon_x32);
574 }
575 }
576 }
577 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
578
579
580 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW__NEON_X8,batch_eq_8)581 TEST(S16_WINDOW__NEON_X8, batch_eq_8) {
582 TEST_REQUIRES_ARM_NEON;
583 WindowMicrokernelTester()
584 .rows(1)
585 .batch(8)
586 .shift(0)
587 .Test(xnn_s16_window_ukernel__neon_x8);
588 }
589
TEST(S16_WINDOW__NEON_X8,batch_div_8)590 TEST(S16_WINDOW__NEON_X8, batch_div_8) {
591 TEST_REQUIRES_ARM_NEON;
592 for (size_t batch = 16; batch < 80; batch += 8) {
593 WindowMicrokernelTester()
594 .batch(batch)
595 .shift(0)
596 .Test(xnn_s16_window_ukernel__neon_x8);
597 }
598 }
599
TEST(S16_WINDOW__NEON_X8,batch_lt_8)600 TEST(S16_WINDOW__NEON_X8, batch_lt_8) {
601 TEST_REQUIRES_ARM_NEON;
602 for (size_t batch = 1; batch < 8; batch++) {
603 WindowMicrokernelTester()
604 .batch(batch)
605 .shift(0)
606 .Test(xnn_s16_window_ukernel__neon_x8);
607 }
608 }
609
TEST(S16_WINDOW__NEON_X8,batch_gt_8)610 TEST(S16_WINDOW__NEON_X8, batch_gt_8) {
611 TEST_REQUIRES_ARM_NEON;
612 for (size_t batch = 9; batch < 16; batch++) {
613 WindowMicrokernelTester()
614 .batch(batch)
615 .shift(0)
616 .Test(xnn_s16_window_ukernel__neon_x8);
617 }
618 }
619
TEST(S16_WINDOW__NEON_X8,rows_gt_1)620 TEST(S16_WINDOW__NEON_X8, rows_gt_1) {
621 TEST_REQUIRES_ARM_NEON;
622 for (size_t rows = 2; rows < 2; rows++) {
623 for (size_t batch = 1; batch <= 40; batch += 7) {
624 WindowMicrokernelTester()
625 .rows(rows)
626 .batch(batch)
627 .shift(0)
628 .Test(xnn_s16_window_ukernel__neon_x8);
629 }
630 }
631 }
632
TEST(S16_WINDOW__NEON_X8,inplace)633 TEST(S16_WINDOW__NEON_X8, inplace) {
634 TEST_REQUIRES_ARM_NEON;
635 for (size_t rows = 1; rows <= 3; rows += 1) {
636 for (size_t batch = 1; batch <= 40; batch += 7) {
637 WindowMicrokernelTester()
638 .rows(rows)
639 .batch(batch)
640 .shift(0)
641 .inplace(true)
642 .iterations(1)
643 .Test(xnn_s16_window_ukernel__neon_x8);
644 }
645 }
646 }
647
TEST(S16_WINDOW__NEON_X8,shift)648 TEST(S16_WINDOW__NEON_X8, shift) {
649 TEST_REQUIRES_ARM_NEON;
650 for (uint32_t shift = 0; shift < 32; shift++) {
651 WindowMicrokernelTester()
652 .rows(1)
653 .batch(8)
654 .shift(shift)
655 .Test(xnn_s16_window_ukernel__neon_x8);
656 }
657 }
658 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
659
660
661 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW__NEON_X16,batch_eq_16)662 TEST(S16_WINDOW__NEON_X16, batch_eq_16) {
663 TEST_REQUIRES_ARM_NEON;
664 WindowMicrokernelTester()
665 .rows(1)
666 .batch(16)
667 .shift(0)
668 .Test(xnn_s16_window_ukernel__neon_x16);
669 }
670
TEST(S16_WINDOW__NEON_X16,batch_div_16)671 TEST(S16_WINDOW__NEON_X16, batch_div_16) {
672 TEST_REQUIRES_ARM_NEON;
673 for (size_t batch = 32; batch < 160; batch += 16) {
674 WindowMicrokernelTester()
675 .batch(batch)
676 .shift(0)
677 .Test(xnn_s16_window_ukernel__neon_x16);
678 }
679 }
680
TEST(S16_WINDOW__NEON_X16,batch_lt_16)681 TEST(S16_WINDOW__NEON_X16, batch_lt_16) {
682 TEST_REQUIRES_ARM_NEON;
683 for (size_t batch = 1; batch < 16; batch++) {
684 WindowMicrokernelTester()
685 .batch(batch)
686 .shift(0)
687 .Test(xnn_s16_window_ukernel__neon_x16);
688 }
689 }
690
TEST(S16_WINDOW__NEON_X16,batch_gt_16)691 TEST(S16_WINDOW__NEON_X16, batch_gt_16) {
692 TEST_REQUIRES_ARM_NEON;
693 for (size_t batch = 17; batch < 32; batch++) {
694 WindowMicrokernelTester()
695 .batch(batch)
696 .shift(0)
697 .Test(xnn_s16_window_ukernel__neon_x16);
698 }
699 }
700
TEST(S16_WINDOW__NEON_X16,rows_gt_1)701 TEST(S16_WINDOW__NEON_X16, rows_gt_1) {
702 TEST_REQUIRES_ARM_NEON;
703 for (size_t rows = 2; rows < 2; rows++) {
704 for (size_t batch = 1; batch <= 80; batch += 15) {
705 WindowMicrokernelTester()
706 .rows(rows)
707 .batch(batch)
708 .shift(0)
709 .Test(xnn_s16_window_ukernel__neon_x16);
710 }
711 }
712 }
713
TEST(S16_WINDOW__NEON_X16,inplace)714 TEST(S16_WINDOW__NEON_X16, inplace) {
715 TEST_REQUIRES_ARM_NEON;
716 for (size_t rows = 1; rows <= 3; rows += 1) {
717 for (size_t batch = 1; batch <= 80; batch += 15) {
718 WindowMicrokernelTester()
719 .rows(rows)
720 .batch(batch)
721 .shift(0)
722 .inplace(true)
723 .iterations(1)
724 .Test(xnn_s16_window_ukernel__neon_x16);
725 }
726 }
727 }
728
TEST(S16_WINDOW__NEON_X16,shift)729 TEST(S16_WINDOW__NEON_X16, shift) {
730 TEST_REQUIRES_ARM_NEON;
731 for (uint32_t shift = 0; shift < 32; shift++) {
732 WindowMicrokernelTester()
733 .rows(1)
734 .batch(16)
735 .shift(shift)
736 .Test(xnn_s16_window_ukernel__neon_x16);
737 }
738 }
739 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
740
741
742 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW__NEON_X24,batch_eq_24)743 TEST(S16_WINDOW__NEON_X24, batch_eq_24) {
744 TEST_REQUIRES_ARM_NEON;
745 WindowMicrokernelTester()
746 .rows(1)
747 .batch(24)
748 .shift(0)
749 .Test(xnn_s16_window_ukernel__neon_x24);
750 }
751
TEST(S16_WINDOW__NEON_X24,batch_div_24)752 TEST(S16_WINDOW__NEON_X24, batch_div_24) {
753 TEST_REQUIRES_ARM_NEON;
754 for (size_t batch = 48; batch < 240; batch += 24) {
755 WindowMicrokernelTester()
756 .batch(batch)
757 .shift(0)
758 .Test(xnn_s16_window_ukernel__neon_x24);
759 }
760 }
761
TEST(S16_WINDOW__NEON_X24,batch_lt_24)762 TEST(S16_WINDOW__NEON_X24, batch_lt_24) {
763 TEST_REQUIRES_ARM_NEON;
764 for (size_t batch = 1; batch < 24; batch++) {
765 WindowMicrokernelTester()
766 .batch(batch)
767 .shift(0)
768 .Test(xnn_s16_window_ukernel__neon_x24);
769 }
770 }
771
TEST(S16_WINDOW__NEON_X24,batch_gt_24)772 TEST(S16_WINDOW__NEON_X24, batch_gt_24) {
773 TEST_REQUIRES_ARM_NEON;
774 for (size_t batch = 25; batch < 48; batch++) {
775 WindowMicrokernelTester()
776 .batch(batch)
777 .shift(0)
778 .Test(xnn_s16_window_ukernel__neon_x24);
779 }
780 }
781
TEST(S16_WINDOW__NEON_X24,rows_gt_1)782 TEST(S16_WINDOW__NEON_X24, rows_gt_1) {
783 TEST_REQUIRES_ARM_NEON;
784 for (size_t rows = 2; rows < 2; rows++) {
785 for (size_t batch = 1; batch <= 120; batch += 23) {
786 WindowMicrokernelTester()
787 .rows(rows)
788 .batch(batch)
789 .shift(0)
790 .Test(xnn_s16_window_ukernel__neon_x24);
791 }
792 }
793 }
794
TEST(S16_WINDOW__NEON_X24,inplace)795 TEST(S16_WINDOW__NEON_X24, inplace) {
796 TEST_REQUIRES_ARM_NEON;
797 for (size_t rows = 1; rows <= 3; rows += 1) {
798 for (size_t batch = 1; batch <= 120; batch += 23) {
799 WindowMicrokernelTester()
800 .rows(rows)
801 .batch(batch)
802 .shift(0)
803 .inplace(true)
804 .iterations(1)
805 .Test(xnn_s16_window_ukernel__neon_x24);
806 }
807 }
808 }
809
TEST(S16_WINDOW__NEON_X24,shift)810 TEST(S16_WINDOW__NEON_X24, shift) {
811 TEST_REQUIRES_ARM_NEON;
812 for (uint32_t shift = 0; shift < 32; shift++) {
813 WindowMicrokernelTester()
814 .rows(1)
815 .batch(24)
816 .shift(shift)
817 .Test(xnn_s16_window_ukernel__neon_x24);
818 }
819 }
820 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
821
822
823 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(S16_WINDOW__NEON_X32,batch_eq_32)824 TEST(S16_WINDOW__NEON_X32, batch_eq_32) {
825 TEST_REQUIRES_ARM_NEON;
826 WindowMicrokernelTester()
827 .rows(1)
828 .batch(32)
829 .shift(0)
830 .Test(xnn_s16_window_ukernel__neon_x32);
831 }
832
TEST(S16_WINDOW__NEON_X32,batch_div_32)833 TEST(S16_WINDOW__NEON_X32, batch_div_32) {
834 TEST_REQUIRES_ARM_NEON;
835 for (size_t batch = 64; batch < 320; batch += 32) {
836 WindowMicrokernelTester()
837 .batch(batch)
838 .shift(0)
839 .Test(xnn_s16_window_ukernel__neon_x32);
840 }
841 }
842
TEST(S16_WINDOW__NEON_X32,batch_lt_32)843 TEST(S16_WINDOW__NEON_X32, batch_lt_32) {
844 TEST_REQUIRES_ARM_NEON;
845 for (size_t batch = 1; batch < 32; batch++) {
846 WindowMicrokernelTester()
847 .batch(batch)
848 .shift(0)
849 .Test(xnn_s16_window_ukernel__neon_x32);
850 }
851 }
852
TEST(S16_WINDOW__NEON_X32,batch_gt_32)853 TEST(S16_WINDOW__NEON_X32, batch_gt_32) {
854 TEST_REQUIRES_ARM_NEON;
855 for (size_t batch = 33; batch < 64; batch++) {
856 WindowMicrokernelTester()
857 .batch(batch)
858 .shift(0)
859 .Test(xnn_s16_window_ukernel__neon_x32);
860 }
861 }
862
TEST(S16_WINDOW__NEON_X32,rows_gt_1)863 TEST(S16_WINDOW__NEON_X32, rows_gt_1) {
864 TEST_REQUIRES_ARM_NEON;
865 for (size_t rows = 2; rows < 2; rows++) {
866 for (size_t batch = 1; batch <= 160; batch += 31) {
867 WindowMicrokernelTester()
868 .rows(rows)
869 .batch(batch)
870 .shift(0)
871 .Test(xnn_s16_window_ukernel__neon_x32);
872 }
873 }
874 }
875
TEST(S16_WINDOW__NEON_X32,inplace)876 TEST(S16_WINDOW__NEON_X32, inplace) {
877 TEST_REQUIRES_ARM_NEON;
878 for (size_t rows = 1; rows <= 3; rows += 1) {
879 for (size_t batch = 1; batch <= 160; batch += 31) {
880 WindowMicrokernelTester()
881 .rows(rows)
882 .batch(batch)
883 .shift(0)
884 .inplace(true)
885 .iterations(1)
886 .Test(xnn_s16_window_ukernel__neon_x32);
887 }
888 }
889 }
890
TEST(S16_WINDOW__NEON_X32,shift)891 TEST(S16_WINDOW__NEON_X32, shift) {
892 TEST_REQUIRES_ARM_NEON;
893 for (uint32_t shift = 0; shift < 32; shift++) {
894 WindowMicrokernelTester()
895 .rows(1)
896 .batch(32)
897 .shift(shift)
898 .Test(xnn_s16_window_ukernel__neon_x32);
899 }
900 }
901 #endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
902
903
TEST(S16_WINDOW__SCALAR_X1,batch_eq_1)904 TEST(S16_WINDOW__SCALAR_X1, batch_eq_1) {
905 WindowMicrokernelTester()
906 .rows(1)
907 .batch(1)
908 .shift(0)
909 .Test(xnn_s16_window_ukernel__scalar_x1);
910 }
911
TEST(S16_WINDOW__SCALAR_X1,batch_gt_1)912 TEST(S16_WINDOW__SCALAR_X1, batch_gt_1) {
913 for (size_t batch = 2; batch < 10; batch++) {
914 WindowMicrokernelTester()
915 .batch(batch)
916 .shift(0)
917 .Test(xnn_s16_window_ukernel__scalar_x1);
918 }
919 }
920
TEST(S16_WINDOW__SCALAR_X1,rows_gt_1)921 TEST(S16_WINDOW__SCALAR_X1, rows_gt_1) {
922 for (size_t rows = 2; rows < 2; rows++) {
923 for (size_t batch = 1; batch <= 5; batch += 1) {
924 WindowMicrokernelTester()
925 .rows(rows)
926 .batch(batch)
927 .shift(0)
928 .Test(xnn_s16_window_ukernel__scalar_x1);
929 }
930 }
931 }
932
TEST(S16_WINDOW__SCALAR_X1,inplace)933 TEST(S16_WINDOW__SCALAR_X1, inplace) {
934 for (size_t rows = 1; rows <= 3; rows += 1) {
935 for (size_t batch = 1; batch <= 5; batch += 1) {
936 WindowMicrokernelTester()
937 .rows(rows)
938 .batch(batch)
939 .shift(0)
940 .inplace(true)
941 .iterations(1)
942 .Test(xnn_s16_window_ukernel__scalar_x1);
943 }
944 }
945 }
946
TEST(S16_WINDOW__SCALAR_X1,shift)947 TEST(S16_WINDOW__SCALAR_X1, shift) {
948 for (uint32_t shift = 0; shift < 32; shift++) {
949 WindowMicrokernelTester()
950 .rows(1)
951 .batch(1)
952 .shift(shift)
953 .Test(xnn_s16_window_ukernel__scalar_x1);
954 }
955 }
956
957
TEST(S16_WINDOW__SCALAR_X2,batch_eq_2)958 TEST(S16_WINDOW__SCALAR_X2, batch_eq_2) {
959 WindowMicrokernelTester()
960 .rows(1)
961 .batch(2)
962 .shift(0)
963 .Test(xnn_s16_window_ukernel__scalar_x2);
964 }
965
TEST(S16_WINDOW__SCALAR_X2,batch_div_2)966 TEST(S16_WINDOW__SCALAR_X2, batch_div_2) {
967 for (size_t batch = 4; batch < 20; batch += 2) {
968 WindowMicrokernelTester()
969 .batch(batch)
970 .shift(0)
971 .Test(xnn_s16_window_ukernel__scalar_x2);
972 }
973 }
974
TEST(S16_WINDOW__SCALAR_X2,batch_lt_2)975 TEST(S16_WINDOW__SCALAR_X2, batch_lt_2) {
976 for (size_t batch = 1; batch < 2; batch++) {
977 WindowMicrokernelTester()
978 .batch(batch)
979 .shift(0)
980 .Test(xnn_s16_window_ukernel__scalar_x2);
981 }
982 }
983
TEST(S16_WINDOW__SCALAR_X2,batch_gt_2)984 TEST(S16_WINDOW__SCALAR_X2, batch_gt_2) {
985 for (size_t batch = 3; batch < 4; batch++) {
986 WindowMicrokernelTester()
987 .batch(batch)
988 .shift(0)
989 .Test(xnn_s16_window_ukernel__scalar_x2);
990 }
991 }
992
TEST(S16_WINDOW__SCALAR_X2,rows_gt_1)993 TEST(S16_WINDOW__SCALAR_X2, rows_gt_1) {
994 for (size_t rows = 2; rows < 2; rows++) {
995 for (size_t batch = 1; batch <= 10; batch += 1) {
996 WindowMicrokernelTester()
997 .rows(rows)
998 .batch(batch)
999 .shift(0)
1000 .Test(xnn_s16_window_ukernel__scalar_x2);
1001 }
1002 }
1003 }
1004
TEST(S16_WINDOW__SCALAR_X2,inplace)1005 TEST(S16_WINDOW__SCALAR_X2, inplace) {
1006 for (size_t rows = 1; rows <= 3; rows += 1) {
1007 for (size_t batch = 1; batch <= 10; batch += 1) {
1008 WindowMicrokernelTester()
1009 .rows(rows)
1010 .batch(batch)
1011 .shift(0)
1012 .inplace(true)
1013 .iterations(1)
1014 .Test(xnn_s16_window_ukernel__scalar_x2);
1015 }
1016 }
1017 }
1018
TEST(S16_WINDOW__SCALAR_X2,shift)1019 TEST(S16_WINDOW__SCALAR_X2, shift) {
1020 for (uint32_t shift = 0; shift < 32; shift++) {
1021 WindowMicrokernelTester()
1022 .rows(1)
1023 .batch(2)
1024 .shift(shift)
1025 .Test(xnn_s16_window_ukernel__scalar_x2);
1026 }
1027 }
1028
1029
TEST(S16_WINDOW__SCALAR_X3,batch_eq_3)1030 TEST(S16_WINDOW__SCALAR_X3, batch_eq_3) {
1031 WindowMicrokernelTester()
1032 .rows(1)
1033 .batch(3)
1034 .shift(0)
1035 .Test(xnn_s16_window_ukernel__scalar_x3);
1036 }
1037
TEST(S16_WINDOW__SCALAR_X3,batch_div_3)1038 TEST(S16_WINDOW__SCALAR_X3, batch_div_3) {
1039 for (size_t batch = 6; batch < 30; batch += 3) {
1040 WindowMicrokernelTester()
1041 .batch(batch)
1042 .shift(0)
1043 .Test(xnn_s16_window_ukernel__scalar_x3);
1044 }
1045 }
1046
TEST(S16_WINDOW__SCALAR_X3,batch_lt_3)1047 TEST(S16_WINDOW__SCALAR_X3, batch_lt_3) {
1048 for (size_t batch = 1; batch < 3; batch++) {
1049 WindowMicrokernelTester()
1050 .batch(batch)
1051 .shift(0)
1052 .Test(xnn_s16_window_ukernel__scalar_x3);
1053 }
1054 }
1055
TEST(S16_WINDOW__SCALAR_X3,batch_gt_3)1056 TEST(S16_WINDOW__SCALAR_X3, batch_gt_3) {
1057 for (size_t batch = 4; batch < 6; batch++) {
1058 WindowMicrokernelTester()
1059 .batch(batch)
1060 .shift(0)
1061 .Test(xnn_s16_window_ukernel__scalar_x3);
1062 }
1063 }
1064
TEST(S16_WINDOW__SCALAR_X3,rows_gt_1)1065 TEST(S16_WINDOW__SCALAR_X3, rows_gt_1) {
1066 for (size_t rows = 2; rows < 2; rows++) {
1067 for (size_t batch = 1; batch <= 15; batch += 2) {
1068 WindowMicrokernelTester()
1069 .rows(rows)
1070 .batch(batch)
1071 .shift(0)
1072 .Test(xnn_s16_window_ukernel__scalar_x3);
1073 }
1074 }
1075 }
1076
TEST(S16_WINDOW__SCALAR_X3,inplace)1077 TEST(S16_WINDOW__SCALAR_X3, inplace) {
1078 for (size_t rows = 1; rows <= 3; rows += 1) {
1079 for (size_t batch = 1; batch <= 15; batch += 2) {
1080 WindowMicrokernelTester()
1081 .rows(rows)
1082 .batch(batch)
1083 .shift(0)
1084 .inplace(true)
1085 .iterations(1)
1086 .Test(xnn_s16_window_ukernel__scalar_x3);
1087 }
1088 }
1089 }
1090
TEST(S16_WINDOW__SCALAR_X3,shift)1091 TEST(S16_WINDOW__SCALAR_X3, shift) {
1092 for (uint32_t shift = 0; shift < 32; shift++) {
1093 WindowMicrokernelTester()
1094 .rows(1)
1095 .batch(3)
1096 .shift(shift)
1097 .Test(xnn_s16_window_ukernel__scalar_x3);
1098 }
1099 }
1100
1101
TEST(S16_WINDOW__SCALAR_X4,batch_eq_4)1102 TEST(S16_WINDOW__SCALAR_X4, batch_eq_4) {
1103 WindowMicrokernelTester()
1104 .rows(1)
1105 .batch(4)
1106 .shift(0)
1107 .Test(xnn_s16_window_ukernel__scalar_x4);
1108 }
1109
TEST(S16_WINDOW__SCALAR_X4,batch_div_4)1110 TEST(S16_WINDOW__SCALAR_X4, batch_div_4) {
1111 for (size_t batch = 8; batch < 40; batch += 4) {
1112 WindowMicrokernelTester()
1113 .batch(batch)
1114 .shift(0)
1115 .Test(xnn_s16_window_ukernel__scalar_x4);
1116 }
1117 }
1118
TEST(S16_WINDOW__SCALAR_X4,batch_lt_4)1119 TEST(S16_WINDOW__SCALAR_X4, batch_lt_4) {
1120 for (size_t batch = 1; batch < 4; batch++) {
1121 WindowMicrokernelTester()
1122 .batch(batch)
1123 .shift(0)
1124 .Test(xnn_s16_window_ukernel__scalar_x4);
1125 }
1126 }
1127
TEST(S16_WINDOW__SCALAR_X4,batch_gt_4)1128 TEST(S16_WINDOW__SCALAR_X4, batch_gt_4) {
1129 for (size_t batch = 5; batch < 8; batch++) {
1130 WindowMicrokernelTester()
1131 .batch(batch)
1132 .shift(0)
1133 .Test(xnn_s16_window_ukernel__scalar_x4);
1134 }
1135 }
1136
TEST(S16_WINDOW__SCALAR_X4,rows_gt_1)1137 TEST(S16_WINDOW__SCALAR_X4, rows_gt_1) {
1138 for (size_t rows = 2; rows < 2; rows++) {
1139 for (size_t batch = 1; batch <= 20; batch += 3) {
1140 WindowMicrokernelTester()
1141 .rows(rows)
1142 .batch(batch)
1143 .shift(0)
1144 .Test(xnn_s16_window_ukernel__scalar_x4);
1145 }
1146 }
1147 }
1148
TEST(S16_WINDOW__SCALAR_X4,inplace)1149 TEST(S16_WINDOW__SCALAR_X4, inplace) {
1150 for (size_t rows = 1; rows <= 3; rows += 1) {
1151 for (size_t batch = 1; batch <= 20; batch += 3) {
1152 WindowMicrokernelTester()
1153 .rows(rows)
1154 .batch(batch)
1155 .shift(0)
1156 .inplace(true)
1157 .iterations(1)
1158 .Test(xnn_s16_window_ukernel__scalar_x4);
1159 }
1160 }
1161 }
1162
TEST(S16_WINDOW__SCALAR_X4,shift)1163 TEST(S16_WINDOW__SCALAR_X4, shift) {
1164 for (uint32_t shift = 0; shift < 32; shift++) {
1165 WindowMicrokernelTester()
1166 .rows(1)
1167 .batch(4)
1168 .shift(shift)
1169 .Test(xnn_s16_window_ukernel__scalar_x4);
1170 }
1171 }
1172