xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/config/aarch64/aarch64-sve-builtins-sve2.h (revision 3f351f34c6d827cf017cdcff3543f6ec0c88b420)
1 /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
2    Copyright (C) 2020 Free Software Foundation, Inc.
3 
4    This file is part of GCC.
5 
6    GCC is free software; you can redistribute it and/or modify it
7    under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3, or (at your option)
9    any later version.
10 
11    GCC is distributed in the hope that it will be useful, but
12    WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    General Public License for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with GCC; see the file COPYING3.  If not see
18    <http://www.gnu.org/licenses/>.  */
19 
20 #ifndef GCC_AARCH64_SVE_BUILTINS_SVE2_H
21 #define GCC_AARCH64_SVE_BUILTINS_SVE2_H
22 
23 namespace aarch64_sve
24 {
25   namespace functions
26   {
27     extern const function_base *const svaba;
28     extern const function_base *const svabalb;
29     extern const function_base *const svabalt;
30     extern const function_base *const svabdlb;
31     extern const function_base *const svabdlt;
32     extern const function_base *const svadalp;
33     extern const function_base *const svadclb;
34     extern const function_base *const svadclt;
35     extern const function_base *const svaddhnb;
36     extern const function_base *const svaddhnt;
37     extern const function_base *const svaddlb;
38     extern const function_base *const svaddlbt;
39     extern const function_base *const svaddlt;
40     extern const function_base *const svaddp;
41     extern const function_base *const svaddwb;
42     extern const function_base *const svaddwt;
43     extern const function_base *const svaesd;
44     extern const function_base *const svaese;
45     extern const function_base *const svaesimc;
46     extern const function_base *const svaesmc;
47     extern const function_base *const svbcax;
48     extern const function_base *const svbdep;
49     extern const function_base *const svbext;
50     extern const function_base *const svbgrp;
51     extern const function_base *const svbsl;
52     extern const function_base *const svbsl1n;
53     extern const function_base *const svbsl2n;
54     extern const function_base *const svcdot;
55     extern const function_base *const svcdot_lane;
56     extern const function_base *const svcvtlt;
57     extern const function_base *const svcvtx;
58     extern const function_base *const svcvtxnt;
59     extern const function_base *const sveor3;
60     extern const function_base *const sveorbt;
61     extern const function_base *const sveortb;
62     extern const function_base *const svhadd;
63     extern const function_base *const svhistcnt;
64     extern const function_base *const svhistseg;
65     extern const function_base *const svhsub;
66     extern const function_base *const svhsubr;
67     extern const function_base *const svldnt1_gather;
68     extern const function_base *const svldnt1sb_gather;
69     extern const function_base *const svldnt1sh_gather;
70     extern const function_base *const svldnt1sw_gather;
71     extern const function_base *const svldnt1ub_gather;
72     extern const function_base *const svldnt1uh_gather;
73     extern const function_base *const svldnt1uw_gather;
74     extern const function_base *const svlogb;
75     extern const function_base *const svmatch;
76     extern const function_base *const svmaxp;
77     extern const function_base *const svmaxnmp;
78     extern const function_base *const svmlalb;
79     extern const function_base *const svmlalb_lane;
80     extern const function_base *const svmlalt;
81     extern const function_base *const svmlalt_lane;
82     extern const function_base *const svmlslb;
83     extern const function_base *const svmlslb_lane;
84     extern const function_base *const svmlslt;
85     extern const function_base *const svmlslt_lane;
86     extern const function_base *const svminp;
87     extern const function_base *const svminnmp;
88     extern const function_base *const svmovlb;
89     extern const function_base *const svmovlt;
90     extern const function_base *const svmullb;
91     extern const function_base *const svmullb_lane;
92     extern const function_base *const svmullt;
93     extern const function_base *const svmullt_lane;
94     extern const function_base *const svnbsl;
95     extern const function_base *const svnmatch;
96     extern const function_base *const svpmul;
97     extern const function_base *const svpmullb;
98     extern const function_base *const svpmullb_pair;
99     extern const function_base *const svpmullt;
100     extern const function_base *const svpmullt_pair;
101     extern const function_base *const svqabs;
102     extern const function_base *const svqcadd;
103     extern const function_base *const svqdmlalb;
104     extern const function_base *const svqdmlalb_lane;
105     extern const function_base *const svqdmlalbt;
106     extern const function_base *const svqdmlalt;
107     extern const function_base *const svqdmlalt_lane;
108     extern const function_base *const svqdmlslb;
109     extern const function_base *const svqdmlslb_lane;
110     extern const function_base *const svqdmlslbt;
111     extern const function_base *const svqdmlslt;
112     extern const function_base *const svqdmlslt_lane;
113     extern const function_base *const svqdmulh;
114     extern const function_base *const svqdmulh_lane;
115     extern const function_base *const svqdmullb;
116     extern const function_base *const svqdmullb_lane;
117     extern const function_base *const svqdmullt;
118     extern const function_base *const svqdmullt_lane;
119     extern const function_base *const svqneg;
120     extern const function_base *const svqrdcmlah;
121     extern const function_base *const svqrdcmlah_lane;
122     extern const function_base *const svqrdmulh;
123     extern const function_base *const svqrdmulh_lane;
124     extern const function_base *const svqrdmlah;
125     extern const function_base *const svqrdmlah_lane;
126     extern const function_base *const svqrdmlsh;
127     extern const function_base *const svqrdmlsh_lane;
128     extern const function_base *const svqrshl;
129     extern const function_base *const svqrshrnb;
130     extern const function_base *const svqrshrnt;
131     extern const function_base *const svqrshrunb;
132     extern const function_base *const svqrshrunt;
133     extern const function_base *const svqshl;
134     extern const function_base *const svqshlu;
135     extern const function_base *const svqshrnb;
136     extern const function_base *const svqshrnt;
137     extern const function_base *const svqshrunb;
138     extern const function_base *const svqshrunt;
139     extern const function_base *const svqsubr;
140     extern const function_base *const svqxtnb;
141     extern const function_base *const svqxtnt;
142     extern const function_base *const svqxtunb;
143     extern const function_base *const svqxtunt;
144     extern const function_base *const svraddhnb;
145     extern const function_base *const svraddhnt;
146     extern const function_base *const svrax1;
147     extern const function_base *const svrhadd;
148     extern const function_base *const svrshl;
149     extern const function_base *const svrshr;
150     extern const function_base *const svrshrnb;
151     extern const function_base *const svrshrnt;
152     extern const function_base *const svrsra;
153     extern const function_base *const svrsubhnb;
154     extern const function_base *const svrsubhnt;
155     extern const function_base *const svsbclb;
156     extern const function_base *const svsbclt;
157     extern const function_base *const svshllb;
158     extern const function_base *const svshllt;
159     extern const function_base *const svshrnb;
160     extern const function_base *const svshrnt;
161     extern const function_base *const svsli;
162     extern const function_base *const svsm4e;
163     extern const function_base *const svsm4ekey;
164     extern const function_base *const svsqadd;
165     extern const function_base *const svsra;
166     extern const function_base *const svsri;
167     extern const function_base *const svstnt1_scatter;
168     extern const function_base *const svstnt1b_scatter;
169     extern const function_base *const svstnt1h_scatter;
170     extern const function_base *const svstnt1w_scatter;
171     extern const function_base *const svsubhnb;
172     extern const function_base *const svsubhnt;
173     extern const function_base *const svsublb;
174     extern const function_base *const svsublbt;
175     extern const function_base *const svsublt;
176     extern const function_base *const svsubltb;
177     extern const function_base *const svsubwb;
178     extern const function_base *const svsubwt;
179     extern const function_base *const svtbl2;
180     extern const function_base *const svtbx;
181     extern const function_base *const svuqadd;
182     extern const function_base *const svwhilege;
183     extern const function_base *const svwhilegt;
184     extern const function_base *const svwhilerw;
185     extern const function_base *const svwhilewr;
186     extern const function_base *const svxar;
187   }
188 }
189 
190 #endif
191