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