xref: /aosp_15_r20/external/XNNPACK/test/cs16-vsquareabs.cc (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
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/cs16-vsquareabs.yaml
8 //   Generator: tools/generate-vsquareabs-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/vsquareabs.h>
17 #include "vsquareabs-microkernel-tester.h"
18 
19 
TEST(CS16_VSQUAREABS__SCALAR_X1,batch_eq_1)20 TEST(CS16_VSQUAREABS__SCALAR_X1, batch_eq_1) {
21   VSquareAbsMicrokernelTester()
22     .batch_size(1)
23     .Test(xnn_cs16_vsquareabs_ukernel__scalar_x1);
24 }
25 
TEST(CS16_VSQUAREABS__SCALAR_X1,batch_gt_1)26 TEST(CS16_VSQUAREABS__SCALAR_X1, batch_gt_1) {
27   for (size_t batch_size = 2; batch_size < 10; batch_size++) {
28     VSquareAbsMicrokernelTester()
29       .batch_size(batch_size)
30       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x1);
31   }
32 }
33 
34 
TEST(CS16_VSQUAREABS__SCALAR_X2,batch_eq_2)35 TEST(CS16_VSQUAREABS__SCALAR_X2, batch_eq_2) {
36   VSquareAbsMicrokernelTester()
37     .batch_size(2)
38     .Test(xnn_cs16_vsquareabs_ukernel__scalar_x2);
39 }
40 
TEST(CS16_VSQUAREABS__SCALAR_X2,batch_div_2)41 TEST(CS16_VSQUAREABS__SCALAR_X2, batch_div_2) {
42   for (size_t batch_size = 4; batch_size < 20; batch_size += 2) {
43     VSquareAbsMicrokernelTester()
44       .batch_size(batch_size)
45       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x2);
46   }
47 }
48 
TEST(CS16_VSQUAREABS__SCALAR_X2,batch_lt_2)49 TEST(CS16_VSQUAREABS__SCALAR_X2, batch_lt_2) {
50   for (size_t batch_size = 1; batch_size < 2; batch_size++) {
51     VSquareAbsMicrokernelTester()
52       .batch_size(batch_size)
53       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x2);
54   }
55 }
56 
TEST(CS16_VSQUAREABS__SCALAR_X2,batch_gt_2)57 TEST(CS16_VSQUAREABS__SCALAR_X2, batch_gt_2) {
58   for (size_t batch_size = 3; batch_size < 4; batch_size++) {
59     VSquareAbsMicrokernelTester()
60       .batch_size(batch_size)
61       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x2);
62   }
63 }
64 
65 
TEST(CS16_VSQUAREABS__SCALAR_X3,batch_eq_3)66 TEST(CS16_VSQUAREABS__SCALAR_X3, batch_eq_3) {
67   VSquareAbsMicrokernelTester()
68     .batch_size(3)
69     .Test(xnn_cs16_vsquareabs_ukernel__scalar_x3);
70 }
71 
TEST(CS16_VSQUAREABS__SCALAR_X3,batch_div_3)72 TEST(CS16_VSQUAREABS__SCALAR_X3, batch_div_3) {
73   for (size_t batch_size = 6; batch_size < 30; batch_size += 3) {
74     VSquareAbsMicrokernelTester()
75       .batch_size(batch_size)
76       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x3);
77   }
78 }
79 
TEST(CS16_VSQUAREABS__SCALAR_X3,batch_lt_3)80 TEST(CS16_VSQUAREABS__SCALAR_X3, batch_lt_3) {
81   for (size_t batch_size = 1; batch_size < 3; batch_size++) {
82     VSquareAbsMicrokernelTester()
83       .batch_size(batch_size)
84       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x3);
85   }
86 }
87 
TEST(CS16_VSQUAREABS__SCALAR_X3,batch_gt_3)88 TEST(CS16_VSQUAREABS__SCALAR_X3, batch_gt_3) {
89   for (size_t batch_size = 4; batch_size < 6; batch_size++) {
90     VSquareAbsMicrokernelTester()
91       .batch_size(batch_size)
92       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x3);
93   }
94 }
95 
96 
TEST(CS16_VSQUAREABS__SCALAR_X4,batch_eq_4)97 TEST(CS16_VSQUAREABS__SCALAR_X4, batch_eq_4) {
98   VSquareAbsMicrokernelTester()
99     .batch_size(4)
100     .Test(xnn_cs16_vsquareabs_ukernel__scalar_x4);
101 }
102 
TEST(CS16_VSQUAREABS__SCALAR_X4,batch_div_4)103 TEST(CS16_VSQUAREABS__SCALAR_X4, batch_div_4) {
104   for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
105     VSquareAbsMicrokernelTester()
106       .batch_size(batch_size)
107       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x4);
108   }
109 }
110 
TEST(CS16_VSQUAREABS__SCALAR_X4,batch_lt_4)111 TEST(CS16_VSQUAREABS__SCALAR_X4, batch_lt_4) {
112   for (size_t batch_size = 1; batch_size < 4; batch_size++) {
113     VSquareAbsMicrokernelTester()
114       .batch_size(batch_size)
115       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x4);
116   }
117 }
118 
TEST(CS16_VSQUAREABS__SCALAR_X4,batch_gt_4)119 TEST(CS16_VSQUAREABS__SCALAR_X4, batch_gt_4) {
120   for (size_t batch_size = 5; batch_size < 8; batch_size++) {
121     VSquareAbsMicrokernelTester()
122       .batch_size(batch_size)
123       .Test(xnn_cs16_vsquareabs_ukernel__scalar_x4);
124   }
125 }
126 
127 
128 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X4,batch_eq_4)129   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X4, batch_eq_4) {
130     TEST_REQUIRES_ARM_NEON;
131     VSquareAbsMicrokernelTester()
132       .batch_size(4)
133       .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x4);
134   }
135 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X4,batch_div_4)136   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X4, batch_div_4) {
137     TEST_REQUIRES_ARM_NEON;
138     for (size_t batch_size = 8; batch_size < 40; batch_size += 4) {
139       VSquareAbsMicrokernelTester()
140         .batch_size(batch_size)
141         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x4);
142     }
143   }
144 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X4,batch_lt_4)145   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X4, batch_lt_4) {
146     TEST_REQUIRES_ARM_NEON;
147     for (size_t batch_size = 1; batch_size < 4; batch_size++) {
148       VSquareAbsMicrokernelTester()
149         .batch_size(batch_size)
150         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x4);
151     }
152   }
153 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X4,batch_gt_4)154   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X4, batch_gt_4) {
155     TEST_REQUIRES_ARM_NEON;
156     for (size_t batch_size = 5; batch_size < 8; batch_size++) {
157       VSquareAbsMicrokernelTester()
158         .batch_size(batch_size)
159         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x4);
160     }
161   }
162 #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
163 
164 
165 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X8,batch_eq_8)166   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X8, batch_eq_8) {
167     TEST_REQUIRES_ARM_NEON;
168     VSquareAbsMicrokernelTester()
169       .batch_size(8)
170       .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x8);
171   }
172 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X8,batch_div_8)173   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X8, batch_div_8) {
174     TEST_REQUIRES_ARM_NEON;
175     for (size_t batch_size = 16; batch_size < 80; batch_size += 8) {
176       VSquareAbsMicrokernelTester()
177         .batch_size(batch_size)
178         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x8);
179     }
180   }
181 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X8,batch_lt_8)182   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X8, batch_lt_8) {
183     TEST_REQUIRES_ARM_NEON;
184     for (size_t batch_size = 1; batch_size < 8; batch_size++) {
185       VSquareAbsMicrokernelTester()
186         .batch_size(batch_size)
187         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x8);
188     }
189   }
190 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X8,batch_gt_8)191   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X8, batch_gt_8) {
192     TEST_REQUIRES_ARM_NEON;
193     for (size_t batch_size = 9; batch_size < 16; batch_size++) {
194       VSquareAbsMicrokernelTester()
195         .batch_size(batch_size)
196         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x8);
197     }
198   }
199 #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
200 
201 
202 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X12,batch_eq_12)203   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X12, batch_eq_12) {
204     TEST_REQUIRES_ARM_NEON;
205     VSquareAbsMicrokernelTester()
206       .batch_size(12)
207       .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x12);
208   }
209 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X12,batch_div_12)210   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X12, batch_div_12) {
211     TEST_REQUIRES_ARM_NEON;
212     for (size_t batch_size = 24; batch_size < 120; batch_size += 12) {
213       VSquareAbsMicrokernelTester()
214         .batch_size(batch_size)
215         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x12);
216     }
217   }
218 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X12,batch_lt_12)219   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X12, batch_lt_12) {
220     TEST_REQUIRES_ARM_NEON;
221     for (size_t batch_size = 1; batch_size < 12; batch_size++) {
222       VSquareAbsMicrokernelTester()
223         .batch_size(batch_size)
224         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x12);
225     }
226   }
227 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X12,batch_gt_12)228   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X12, batch_gt_12) {
229     TEST_REQUIRES_ARM_NEON;
230     for (size_t batch_size = 13; batch_size < 24; batch_size++) {
231       VSquareAbsMicrokernelTester()
232         .batch_size(batch_size)
233         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x12);
234     }
235   }
236 #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
237 
238 
239 #if XNN_ARCH_ARM || XNN_ARCH_ARM64
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X16,batch_eq_16)240   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X16, batch_eq_16) {
241     TEST_REQUIRES_ARM_NEON;
242     VSquareAbsMicrokernelTester()
243       .batch_size(16)
244       .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x16);
245   }
246 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X16,batch_div_16)247   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X16, batch_div_16) {
248     TEST_REQUIRES_ARM_NEON;
249     for (size_t batch_size = 32; batch_size < 160; batch_size += 16) {
250       VSquareAbsMicrokernelTester()
251         .batch_size(batch_size)
252         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x16);
253     }
254   }
255 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X16,batch_lt_16)256   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X16, batch_lt_16) {
257     TEST_REQUIRES_ARM_NEON;
258     for (size_t batch_size = 1; batch_size < 16; batch_size++) {
259       VSquareAbsMicrokernelTester()
260         .batch_size(batch_size)
261         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x16);
262     }
263   }
264 
TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X16,batch_gt_16)265   TEST(CS16_VSQUAREABS__NEON_MLAL_LD128_X16, batch_gt_16) {
266     TEST_REQUIRES_ARM_NEON;
267     for (size_t batch_size = 17; batch_size < 32; batch_size++) {
268       VSquareAbsMicrokernelTester()
269         .batch_size(batch_size)
270         .Test(xnn_cs16_vsquareabs_ukernel__neon_mlal_ld128_x16);
271     }
272   }
273 #endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64
274