xref: /aosp_15_r20/external/arm-neon-tests/Android.bp (revision f37826520a923688f9e110915f3811e385d8b6d1)
1*f3782652STreehugger Robot//
2*f3782652STreehugger Robot// Copyright (C) 2016 The Android Open Source Project
3*f3782652STreehugger Robot//
4*f3782652STreehugger Robot// Licensed under the Apache License, Version 2.0 (the "License");
5*f3782652STreehugger Robot// you may not use this file except in compliance with the License.
6*f3782652STreehugger Robot// You may obtain a copy of the License at
7*f3782652STreehugger Robot//
8*f3782652STreehugger Robot//      http://www.apache.org/licenses/LICENSE-2.0
9*f3782652STreehugger Robot//
10*f3782652STreehugger Robot// Unless required by applicable law or agreed to in writing, software
11*f3782652STreehugger Robot// distributed under the License is distributed on an "AS IS" BASIS,
12*f3782652STreehugger Robot// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*f3782652STreehugger Robot// See the License for the specific language governing permissions and
14*f3782652STreehugger Robot// limitations under the License.
15*f3782652STreehugger Robot//
16*f3782652STreehugger Robot
17*f3782652STreehugger Robotpackage {
18*f3782652STreehugger Robot    default_applicable_licenses: ["external_arm-neon-tests_license"],
19*f3782652STreehugger Robot}
20*f3782652STreehugger Robot
21*f3782652STreehugger Robot// Added automatically by a large-scale-change that took the approach of
22*f3782652STreehugger Robot// 'apply every license found to every target'. While this makes sure we respect
23*f3782652STreehugger Robot// every license restriction, it may not be entirely correct.
24*f3782652STreehugger Robot//
25*f3782652STreehugger Robot// e.g. GPL in an MIT project might only apply to the contrib/ directory.
26*f3782652STreehugger Robot//
27*f3782652STreehugger Robot// Please consider splitting the single license below into multiple licenses,
28*f3782652STreehugger Robot// taking care not to lose any license_kind information, and overriding the
29*f3782652STreehugger Robot// default license using the 'licenses: [...]' property on targets as needed.
30*f3782652STreehugger Robot//
31*f3782652STreehugger Robot// For unused files, consider creating a 'fileGroup' with "//visibility:private"
32*f3782652STreehugger Robot// to attach the license to, and including a comment whether the files may be
33*f3782652STreehugger Robot// used in the current project.
34*f3782652STreehugger Robot//
35*f3782652STreehugger Robot// large-scale-change included anything that looked like it might be a license
36*f3782652STreehugger Robot// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
37*f3782652STreehugger Robot//
38*f3782652STreehugger Robot// Please consider removing redundant or irrelevant files from 'license_text:'.
39*f3782652STreehugger Robot// See: http://go/android-license-faq
40*f3782652STreehugger Robotlicense {
41*f3782652STreehugger Robot    name: "external_arm-neon-tests_license",
42*f3782652STreehugger Robot    visibility: [":__subpackages__"],
43*f3782652STreehugger Robot    license_kinds: [
44*f3782652STreehugger Robot        "SPDX-license-identifier-Apache-1.1",
45*f3782652STreehugger Robot        "SPDX-license-identifier-Apache-2.0",
46*f3782652STreehugger Robot        "SPDX-license-identifier-CPL-1.0",
47*f3782652STreehugger Robot        "SPDX-license-identifier-EPL",
48*f3782652STreehugger Robot        "SPDX-license-identifier-GPL-2.0",
49*f3782652STreehugger Robot        "SPDX-license-identifier-LGPL-2.1",
50*f3782652STreehugger Robot        "SPDX-license-identifier-MIT",
51*f3782652STreehugger Robot    ],
52*f3782652STreehugger Robot    license_text: [
53*f3782652STreehugger Robot        "LICENSE",
54*f3782652STreehugger Robot        "license.html",
55*f3782652STreehugger Robot    ],
56*f3782652STreehugger Robot}
57*f3782652STreehugger Robot
58*f3782652STreehugger Robotcc_defaults {
59*f3782652STreehugger Robot    name: "arm_neon_tests_defaults",
60*f3782652STreehugger Robot    cflags: [
61*f3782652STreehugger Robot        "-DREFFILE=\"stm-arm-neon.gccarm\"",
62*f3782652STreehugger Robot        "-DGCCTESTS_FILE=\"expected_input4gcc.txt\"",
63*f3782652STreehugger Robot
64*f3782652STreehugger Robot        "-Wall",
65*f3782652STreehugger Robot        "-Werror",
66*f3782652STreehugger Robot        "-Wno-format",
67*f3782652STreehugger Robot        "-Wno-ignored-qualifiers",
68*f3782652STreehugger Robot        "-Wno-uninitialized",
69*f3782652STreehugger Robot        "-Wno-unused-function",
70*f3782652STreehugger Robot        "-Wno-unused-variable",
71*f3782652STreehugger Robot    ],
72*f3782652STreehugger Robot
73*f3782652STreehugger Robot    srcs: [
74*f3782652STreehugger Robot        "compute_ref.c",
75*f3782652STreehugger Robot
76*f3782652STreehugger Robot        // List of validated intrinsics (copy-pasted from Makefile)
77*f3782652STreehugger Robot        "ref_vld1.c",
78*f3782652STreehugger Robot        "ref_vadd.c",
79*f3782652STreehugger Robot        "ref_vld1_lane.c",
80*f3782652STreehugger Robot        "ref_vld1_dup.c",
81*f3782652STreehugger Robot        "ref_vdup.c",
82*f3782652STreehugger Robot        "ref_vget_high.c",
83*f3782652STreehugger Robot        "ref_vget_low.c",
84*f3782652STreehugger Robot        "ref_vqdmlal_lane.c",
85*f3782652STreehugger Robot        "ref_vqdmlsl_lane.c",
86*f3782652STreehugger Robot        "ref_vext.c",
87*f3782652STreehugger Robot        "ref_vshrn_n.c",
88*f3782652STreehugger Robot        "ref_vset_lane.c",
89*f3782652STreehugger Robot        "ref_vget_lane.c",
90*f3782652STreehugger Robot        "ref_vqsub.c",
91*f3782652STreehugger Robot        "ref_vqdmulh_lane.c",
92*f3782652STreehugger Robot        "ref_vqdmull.c",
93*f3782652STreehugger Robot        "ref_vqdmlal.c",
94*f3782652STreehugger Robot        "ref_vqdmlsl.c",
95*f3782652STreehugger Robot        "ref_vceq.c",
96*f3782652STreehugger Robot        "ref_vcge.c",
97*f3782652STreehugger Robot        "ref_vcle.c",
98*f3782652STreehugger Robot        "ref_vcgt.c",
99*f3782652STreehugger Robot        "ref_vclt.c",
100*f3782652STreehugger Robot        "ref_vbsl.c",
101*f3782652STreehugger Robot        "ref_vshl.c",
102*f3782652STreehugger Robot        "ref_vdup_lane.c",
103*f3782652STreehugger Robot        "ref_vrshrn_n.c",
104*f3782652STreehugger Robot        "ref_vqdmull_lane.c",
105*f3782652STreehugger Robot        "ref_vst1_lane.c",
106*f3782652STreehugger Robot        "ref_vqshl.c",
107*f3782652STreehugger Robot        "ref_vqshl_n.c",
108*f3782652STreehugger Robot        "ref_vqrshrn_n.c",
109*f3782652STreehugger Robot        "ref_vsub.c",
110*f3782652STreehugger Robot        "ref_vqadd.c",
111*f3782652STreehugger Robot        "ref_vabs.c",
112*f3782652STreehugger Robot        "ref_vqabs.c",
113*f3782652STreehugger Robot        "ref_vcombine.c",
114*f3782652STreehugger Robot        "ref_vmax.c",
115*f3782652STreehugger Robot        "ref_vmin.c",
116*f3782652STreehugger Robot        "ref_vneg.c",
117*f3782652STreehugger Robot        "ref_vqneg.c",
118*f3782652STreehugger Robot        "ref_vmlal.c",
119*f3782652STreehugger Robot        "ref_vmlal_lane.c",
120*f3782652STreehugger Robot        "ref_vmlsl.c",
121*f3782652STreehugger Robot        "ref_vmlsl_lane.c",
122*f3782652STreehugger Robot        "ref_vmovl.c",
123*f3782652STreehugger Robot        "ref_vmovn.c",
124*f3782652STreehugger Robot        "ref_vmull.c",
125*f3782652STreehugger Robot        "ref_vmull_lane.c",
126*f3782652STreehugger Robot        "ref_vrev.c",
127*f3782652STreehugger Robot        "ref_vrshl.c",
128*f3782652STreehugger Robot        "ref_vshl_n.c",
129*f3782652STreehugger Robot        "ref_vshr_n.c",
130*f3782652STreehugger Robot        "ref_vsra_n.c",
131*f3782652STreehugger Robot        "ref_vtrn.c",
132*f3782652STreehugger Robot        "ref_vuzp.c",
133*f3782652STreehugger Robot        "ref_vzip.c",
134*f3782652STreehugger Robot        "ref_vreinterpret.c",
135*f3782652STreehugger Robot        "ref_vqdmulh.c",
136*f3782652STreehugger Robot        "ref_vqrdmulh.c",
137*f3782652STreehugger Robot        "ref_vqrdmulh_lane.c",
138*f3782652STreehugger Robot        "ref_vqrshl.c",
139*f3782652STreehugger Robot        "ref_vaba.c",
140*f3782652STreehugger Robot        "ref_vabal.c",
141*f3782652STreehugger Robot        "ref_vabd.c",
142*f3782652STreehugger Robot        "ref_vabdl.c",
143*f3782652STreehugger Robot        "ref_vand.c",
144*f3782652STreehugger Robot        "ref_vorr.c",
145*f3782652STreehugger Robot        "ref_vorn.c",
146*f3782652STreehugger Robot        "ref_veor.c",
147*f3782652STreehugger Robot        "ref_vbic.c",
148*f3782652STreehugger Robot        "ref_vcreate.c",
149*f3782652STreehugger Robot        "ref_vldX_lane.c",
150*f3782652STreehugger Robot        "ref_vmla.c",
151*f3782652STreehugger Robot        "ref_vmls.c",
152*f3782652STreehugger Robot        "ref_vmul.c",
153*f3782652STreehugger Robot        "ref_vmul_lane.c",
154*f3782652STreehugger Robot        "ref_vmul_n.c",
155*f3782652STreehugger Robot        "ref_vmull_n.c",
156*f3782652STreehugger Robot        "ref_vqdmulh_n.c",
157*f3782652STreehugger Robot        "ref_vqdmull_n.c",
158*f3782652STreehugger Robot        "ref_vqrdmulh_n.c",
159*f3782652STreehugger Robot        "ref_vmla_lane.c",
160*f3782652STreehugger Robot        "ref_vmls_lane.c",
161*f3782652STreehugger Robot        "ref_vmla_n.c",
162*f3782652STreehugger Robot        "ref_vmls_n.c",
163*f3782652STreehugger Robot        "ref_vmlal_n.c",
164*f3782652STreehugger Robot        "ref_vmlsl_n.c",
165*f3782652STreehugger Robot        "ref_vqdmlal_n.c",
166*f3782652STreehugger Robot        "ref_vqdmlsl_n.c",
167*f3782652STreehugger Robot        "ref_vsri_n.c",
168*f3782652STreehugger Robot        "ref_vsli_n.c",
169*f3782652STreehugger Robot        "ref_vtst.c",
170*f3782652STreehugger Robot        "ref_vaddhn.c",
171*f3782652STreehugger Robot        "ref_vraddhn.c",
172*f3782652STreehugger Robot        "ref_vaddl.c",
173*f3782652STreehugger Robot        "ref_vaddw.c",
174*f3782652STreehugger Robot        "ref_vhadd.c",
175*f3782652STreehugger Robot        "ref_vrhadd.c",
176*f3782652STreehugger Robot        "ref_vhsub.c",
177*f3782652STreehugger Robot        "ref_vsubl.c",
178*f3782652STreehugger Robot        "ref_vsubw.c",
179*f3782652STreehugger Robot        "ref_vsubhn.c",
180*f3782652STreehugger Robot        "ref_vrsubhn.c",
181*f3782652STreehugger Robot        "ref_vmvn.c",
182*f3782652STreehugger Robot        "ref_vqmovn.c",
183*f3782652STreehugger Robot        "ref_vqmovun.c",
184*f3782652STreehugger Robot        "ref_vrshr_n.c",
185*f3782652STreehugger Robot        "ref_vrsra_n.c",
186*f3782652STreehugger Robot        "ref_vshll_n.c",
187*f3782652STreehugger Robot        "ref_vpaddl.c",
188*f3782652STreehugger Robot        "ref_vpadd.c",
189*f3782652STreehugger Robot        "ref_vpadal.c",
190*f3782652STreehugger Robot        "ref_vqshlu_n.c",
191*f3782652STreehugger Robot        "ref_vclz.c",
192*f3782652STreehugger Robot        "ref_vcls.c",
193*f3782652STreehugger Robot        "ref_vcnt.c",
194*f3782652STreehugger Robot        "ref_vqshrn_n.c",
195*f3782652STreehugger Robot        "ref_vpmax.c",
196*f3782652STreehugger Robot        "ref_vpmin.c",
197*f3782652STreehugger Robot        "ref_vqshrun_n.c",
198*f3782652STreehugger Robot        "ref_vqrshrun_n.c",
199*f3782652STreehugger Robot        "ref_vstX_lane.c",
200*f3782652STreehugger Robot        "ref_vtbX.c",
201*f3782652STreehugger Robot        "ref_vrecpe.c",
202*f3782652STreehugger Robot        "ref_vrsqrte.c",
203*f3782652STreehugger Robot        "ref_vcage.c",
204*f3782652STreehugger Robot        "ref_vcagt.c",
205*f3782652STreehugger Robot        "ref_vcale.c",
206*f3782652STreehugger Robot        "ref_vcalt.c",
207*f3782652STreehugger Robot        "ref_vrecps.c",
208*f3782652STreehugger Robot        "ref_vrsqrts.c",
209*f3782652STreehugger Robot        "ref_vcvt.c",
210*f3782652STreehugger Robot    ],
211*f3782652STreehugger Robot    stl: "none",
212*f3782652STreehugger Robot
213*f3782652STreehugger Robot    enabled: false,
214*f3782652STreehugger Robot    arch: {
215*f3782652STreehugger Robot        arm: {
216*f3782652STreehugger Robot            enabled: true,
217*f3782652STreehugger Robot        },
218*f3782652STreehugger Robot    },
219*f3782652STreehugger Robot}
220*f3782652STreehugger Robot
221*f3782652STreehugger Robotcc_test {
222*f3782652STreehugger Robot    name: "arm_neon_tests_arm",
223*f3782652STreehugger Robot    defaults: ["arm_neon_tests_defaults"],
224*f3782652STreehugger Robot
225*f3782652STreehugger Robot    arch: {
226*f3782652STreehugger Robot        arm: {
227*f3782652STreehugger Robot            instruction_set: "arm",
228*f3782652STreehugger Robot        },
229*f3782652STreehugger Robot    },
230*f3782652STreehugger Robot}
231*f3782652STreehugger Robot
232*f3782652STreehugger Robotcc_test {
233*f3782652STreehugger Robot    name: "arm_neon_tests_thumb",
234*f3782652STreehugger Robot    arch: {
235*f3782652STreehugger Robot        arm: {
236*f3782652STreehugger Robot            instruction_set: "thumb",
237*f3782652STreehugger Robot        },
238*f3782652STreehugger Robot    },
239*f3782652STreehugger Robot}
240