]>
Commit | Line | Data |
---|---|---|
4a720a95 | 1 | ; Built-in functions for PowerPC. |
83ffe9cd | 2 | ; Copyright (C) 2020-2023 Free Software Foundation, Inc. |
4a720a95 BS |
3 | ; Contributed by Bill Schmidt, IBM <wschmidt@linux.ibm.com> |
4 | ; | |
5 | ; This file is part of GCC. | |
6 | ; | |
7 | ; GCC is free software; you can redistribute it and/or modify it under | |
8 | ; the terms of the GNU General Public License as published by the Free | |
9 | ; Software Foundation; either version 3, or (at your option) any later | |
10 | ; version. | |
11 | ; | |
12 | ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
13 | ; WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 | ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 | ; for more details. | |
16 | ; | |
17 | ; You should have received a copy of the GNU General Public License | |
18 | ; along with GCC; see the file COPYING3. If not see | |
19 | ; <http://www.gnu.org/licenses/>. | |
20 | ||
21 | ||
22 | ; Built-in functions in this file are organized into "stanzas", where | |
23 | ; all built-ins in a given stanza are enabled together. Each stanza | |
24 | ; starts with a line identifying the circumstances in which the group of | |
25 | ; functions is permitted, with the gating predicate in square brackets. | |
26 | ; For example, this could be | |
27 | ; | |
28 | ; [altivec] | |
29 | ; | |
30 | ; or it could be | |
31 | ; | |
32 | ; [power9] | |
33 | ; | |
34 | ; The bracketed gating predicate is the only information allowed on | |
35 | ; the stanza header line, other than whitespace. | |
36 | ; | |
37 | ; Following the stanza header are two lines for each function: the | |
38 | ; prototype line and the attributes line. The prototype line has | |
39 | ; this format, where the square brackets indicate optional | |
40 | ; information and angle brackets indicate required information: | |
41 | ; | |
42 | ; [kind] <return-type> <bif-name> (<argument-list>); | |
43 | ; | |
44 | ; Here [kind] can be one of "const", "pure", or "fpmath"; | |
45 | ; <return-type> is a legal type for a built-in function result; | |
46 | ; <bif-name> is the name by which the function can be called; | |
47 | ; and <argument-list> is a comma-separated list of legal types | |
48 | ; for built-in function arguments. The argument list may be | |
49 | ; empty, but the parentheses and semicolon are required. | |
50 | ; | |
51 | ; A legal type is of the form: | |
52 | ; | |
53 | ; [const] [[signed|unsigned] <basetype> | <vectype>] [*] | |
54 | ; | |
55 | ; where "const" applies only to a <basetype> of "int". Legal values | |
56 | ; of <basetype> are (for now): | |
57 | ; | |
58 | ; char | |
59 | ; short | |
60 | ; int | |
61 | ; long | |
62 | ; long double | |
63 | ; long long | |
64 | ; float | |
65 | ; double | |
66 | ; __int128 | |
67 | ; _Float128 | |
68 | ; bool | |
69 | ; string | |
70 | ; _Decimal32 | |
71 | ; _Decimal64 | |
72 | ; _Decimal128 | |
73 | ; __ibm128 | |
74 | ; | |
75 | ; Legal values of <vectype> are as follows, and are shorthand for | |
76 | ; the associated meaning: | |
77 | ; | |
78 | ; vsc vector signed char | |
79 | ; vuc vector unsigned char | |
80 | ; vbc vector bool char | |
81 | ; vss vector signed short | |
82 | ; vus vector unsigned short | |
83 | ; vbs vector bool short | |
84 | ; vsi vector signed int | |
85 | ; vui vector unsigned int | |
86 | ; vbi vector bool int | |
87 | ; vsll vector signed long long | |
88 | ; vull vector unsigned long long | |
89 | ; vbll vector bool long long | |
90 | ; vsq vector signed __int128 | |
91 | ; vuq vector unsigned __int128 | |
92 | ; vbq vector bool __int128 | |
93 | ; vp vector pixel | |
94 | ; vf vector float | |
95 | ; vd vector double | |
96 | ; v256 __vector_pair | |
97 | ; v512 __vector_quad | |
98 | ; | |
99 | ; For simplicity, We don't support "short int" and "long long int". | |
100 | ; We don't currently support a <basetype> of "_Float16". "signed" | |
101 | ; and "unsigned" only apply to integral base types. The optional * | |
102 | ; indicates a pointer type. | |
103 | ; | |
104 | ; The attributes line looks like this: | |
105 | ; | |
106 | ; <bif-id> <bif-pattern> {<attribute-list>} | |
107 | ; | |
108 | ; Here <bif-id> is a unique internal identifier for the built-in | |
109 | ; function that will be used as part of an enumeration of all | |
110 | ; built-in functions; <bif-pattern> is the define_expand or | |
111 | ; define_insn that will be invoked when the call is expanded; | |
112 | ; and <attribute-list> is a comma-separated list of special | |
113 | ; conditions that apply to the built-in function. The attribute | |
114 | ; list may be empty, but the braces are required. | |
115 | ; | |
116 | ; Attributes are strings, and the allowed ones are listed below. | |
117 | ; | |
118 | ; init Process as a vec_init function | |
119 | ; set Process as a vec_set function | |
120 | ; extract Process as a vec_extract function | |
121 | ; nosoft Not valid with -msoft-float | |
122 | ; ldvec Needs special handling for vec_ld semantics | |
123 | ; stvec Needs special handling for vec_st semantics | |
124 | ; reve Needs special handling for element reversal | |
125 | ; pred Needs special handling for comparison predicates | |
126 | ; htm Needs special handling for transactional memory | |
127 | ; htmspr HTM function using an SPR | |
128 | ; htmcr HTM function using a CR | |
129 | ; mma Needs special handling for MMA | |
130 | ; quad MMA instruction using a register quad as an input operand | |
131 | ; pair MMA instruction using a register pair as an input operand | |
6cba7d1d | 132 | ; mmaint MMA instruction expanding to internal call at GIMPLE time |
4a720a95 BS |
133 | ; no32bit Not valid for TARGET_32BIT |
134 | ; 32bit Requires different handling for TARGET_32BIT | |
135 | ; cpu This is a "cpu_is" or "cpu_supports" builtin | |
136 | ; ldstmask Altivec mask for load or store | |
137 | ; lxvrse Needs special handling for load-rightmost, sign-extended | |
138 | ; lxvrze Needs special handling for load-rightmost, zero-extended | |
139 | ; endian Needs special handling for endianness | |
74aeb972 | 140 | ; ibmld Restrict usage to the case when TFmode is IBM-128 |
6f8abf2b | 141 | ; ibm128 Restrict usage to the case where __ibm128 is supported or if ibmld |
4a720a95 BS |
142 | ; |
143 | ; Each attribute corresponds to extra processing required when | |
144 | ; the built-in is expanded. All such special processing should | |
145 | ; be controlled by an attribute from now on. | |
146 | ; | |
147 | ; It is important to note that each entry's <bif-name> must be | |
148 | ; unique. The code generated from this file will call def_builtin | |
149 | ; for each entry, and this can only happen once per name. | |
150 | ; | |
151 | ; The type signature for the builtin must match the modes of the RTL | |
152 | ; pattern <bif-pattern>. When a builtin is used only as a basis for | |
153 | ; overloading, you can use an arbitrary type for each mode (for example, | |
154 | ; for V8HImode, you could use vp, vss, vus, or vbs). The overloading | |
155 | ; machinery takes care of adding appropriate casts between vectors to | |
156 | ; satisfy impedance matching. The overloaded prototypes are the ones | |
157 | ; that must match what users expect. Thus you will often have a small | |
158 | ; number of entries in this file that correspond to a much greater | |
159 | ; number of entries in rs6000-overload.def. | |
160 | ; | |
161 | ; However, builtins in this file that are expected to be directly called | |
162 | ; by users must have one version for each expected type combination. | |
163 | ; | |
164 | ; Eventually we want to automatically generate built-in documentation | |
165 | ; from the entries in this file. Documenting of built-ins with more | |
166 | ; than one acceptable prototype can be done by cross-referencing | |
167 | ; against rs6000-overload.def and picking up the allowable prototypes | |
168 | ; from there. | |
169 | ; | |
170 | ; Blank lines may be used as desired in this file between the lines as | |
171 | ; defined above; that is, you can introduce as many extra newlines as you | |
172 | ; like after a required newline, but nowhere else. Lines beginning with | |
173 | ; a semicolon are also treated as blank lines. | |
174 | ; | |
175 | ; A const int argument may be restricted to certain values. This is | |
176 | ; indicated by one of the following occurring after the "int" token: | |
177 | ; | |
178 | ; <x> restricts the constant to x bits, interpreted as unsigned | |
179 | ; <x,y> restricts the constant to the inclusive range [x,y] | |
180 | ; [x,y] restricts the constant to the inclusive range [x,y], | |
181 | ; but only applies if the argument is constant. | |
182 | ; {x,y} restricts the constant to one of two values, x or y. | |
183 | ; | |
184 | ; Here x and y are integer tokens. Note that the "const" token is a | |
185 | ; lie when the restriction is [x,y], but this simplifies the parsing | |
186 | ; significantly and is hopefully forgivable. | |
187 | ||
188 | ||
189 | ||
87327344 BS |
190 | ; Builtins that have been around since time immemorial or are just |
191 | ; considered available everywhere. | |
192 | [always] | |
b5bc3931 BS |
193 | ; __builtin_cfstring is for Darwin, which will replace the decl we |
194 | ; create here with another one during subtarget processing. We just | |
195 | ; need to ensure it has a slot in the builtin enumeration. | |
196 | void __builtin_cfstring (); | |
197 | CFSTRING nothing {} | |
198 | ||
87327344 BS |
199 | void __builtin_cpu_init (); |
200 | CPU_INIT nothing {cpu} | |
201 | ||
202 | bool __builtin_cpu_is (string); | |
203 | CPU_IS nothing {cpu} | |
204 | ||
205 | bool __builtin_cpu_supports (string); | |
206 | CPU_SUPPORTS nothing {cpu} | |
207 | ||
208 | unsigned long long __builtin_ppc_get_timebase (); | |
209 | GET_TB rs6000_get_timebase {} | |
210 | ||
211 | double __builtin_mffs (); | |
212 | MFFS rs6000_mffs {} | |
213 | ||
0a60524d BS |
214 | ; Although the mffsl instruction is only available on POWER9 and later |
215 | ; processors, this builtin automatically falls back to mffs on older | |
216 | ; platforms. Thus it appears here in the [always] stanza. | |
217 | double __builtin_mffsl (); | |
aaf3a599 | 218 | MFFSL rs6000_mffsl {nosoft} |
0a60524d | 219 | |
74aeb972 BS |
220 | ; This is redundant with __builtin_pack_ibm128, as it requires long |
221 | ; double to be __ibm128. Should probably be deprecated. | |
87327344 | 222 | const long double __builtin_pack_longdouble (double, double); |
74aeb972 | 223 | PACK_TF packtf {ibmld} |
87327344 BS |
224 | |
225 | unsigned long __builtin_ppc_mftb (); | |
226 | MFTB rs6000_mftb_di {32bit} | |
227 | ||
228 | void __builtin_mtfsb0 (const int<5>); | |
aaf3a599 | 229 | MTFSB0 rs6000_mtfsb0 {nosoft} |
87327344 BS |
230 | |
231 | void __builtin_mtfsb1 (const int<5>); | |
aaf3a599 | 232 | MTFSB1 rs6000_mtfsb1 {nosoft} |
87327344 BS |
233 | |
234 | void __builtin_mtfsf (const int<8>, double); | |
235 | MTFSF rs6000_mtfsf {} | |
236 | ||
237 | const __ibm128 __builtin_pack_ibm128 (double, double); | |
6f8abf2b | 238 | PACK_IF packif {ibm128} |
87327344 BS |
239 | |
240 | void __builtin_set_fpscr_rn (const int[0,3]); | |
aaf3a599 | 241 | SET_FPSCR_RN rs6000_set_fpscr_rn {nosoft} |
87327344 BS |
242 | |
243 | const double __builtin_unpack_ibm128 (__ibm128, const int<1>); | |
6f8abf2b | 244 | UNPACK_IF unpackif {ibm128} |
87327344 | 245 | |
74aeb972 BS |
246 | ; This is redundant with __builtin_unpack_ibm128, as it requires long |
247 | ; double to be __ibm128. Should probably be deprecated. | |
87327344 | 248 | const double __builtin_unpack_longdouble (long double, const int<1>); |
74aeb972 | 249 | UNPACK_TF unpacktf {ibmld} |
87327344 BS |
250 | |
251 | ||
252 | ; Builtins that have been around just about forever, but not quite. | |
253 | [power5] | |
254 | fpmath double __builtin_recipdiv (double, double); | |
255 | RECIP recipdf3 {} | |
256 | ||
257 | fpmath float __builtin_recipdivf (float, float); | |
258 | RECIPF recipsf3 {} | |
259 | ||
260 | fpmath double __builtin_rsqrt (double); | |
261 | RSQRT rsqrtdf2 {} | |
262 | ||
263 | fpmath float __builtin_rsqrtf (float); | |
264 | RSQRTF rsqrtsf2 {} | |
265 | ||
266 | ||
267 | ; Power6 builtins (ISA 2.05). | |
268 | [power6] | |
87327344 BS |
269 | const signed int __builtin_p6_cmpb_32 (signed int, signed int); |
270 | CMPB_32 cmpbsi3 {} | |
271 | ||
272 | ||
c2c534f6 BS |
273 | ; Power6 builtins requiring 64-bit GPRs (even with 32-bit addressing). |
274 | [power6-64] | |
275 | const signed long __builtin_p6_cmpb (signed long, signed long); | |
d0823635 | 276 | CMPB cmpbdi3 {no32bit} |
c2c534f6 BS |
277 | |
278 | ||
4a720a95 BS |
279 | ; AltiVec builtins. |
280 | [altivec] | |
281 | const vsc __builtin_altivec_abs_v16qi (vsc); | |
282 | ABS_V16QI absv16qi2 {} | |
283 | ||
284 | const vf __builtin_altivec_abs_v4sf (vf); | |
285 | ABS_V4SF absv4sf2 {} | |
286 | ||
287 | const vsi __builtin_altivec_abs_v4si (vsi); | |
288 | ABS_V4SI absv4si2 {} | |
289 | ||
290 | const vss __builtin_altivec_abs_v8hi (vss); | |
291 | ABS_V8HI absv8hi2 {} | |
6cc92e94 BS |
292 | |
293 | const vsc __builtin_altivec_abss_v16qi (vsc); | |
294 | ABSS_V16QI altivec_abss_v16qi {} | |
295 | ||
296 | const vsi __builtin_altivec_abss_v4si (vsi); | |
297 | ABSS_V4SI altivec_abss_v4si {} | |
298 | ||
299 | const vss __builtin_altivec_abss_v8hi (vss); | |
300 | ABSS_V8HI altivec_abss_v8hi {} | |
301 | ||
302 | const vf __builtin_altivec_copysignfp (vf, vf); | |
303 | COPYSIGN_V4SF vector_copysignv4sf3 {} | |
304 | ||
305 | void __builtin_altivec_dss (const int<2>); | |
306 | DSS altivec_dss {} | |
307 | ||
308 | void __builtin_altivec_dssall (); | |
309 | DSSALL altivec_dssall {} | |
310 | ||
311 | void __builtin_altivec_dst (void *, const int, const int<2>); | |
312 | DST altivec_dst {} | |
313 | ||
314 | void __builtin_altivec_dstst (void *, const int, const int<2>); | |
315 | DSTST altivec_dstst {} | |
316 | ||
317 | void __builtin_altivec_dststt (void *, const int, const int<2>); | |
318 | DSTSTT altivec_dststt {} | |
319 | ||
320 | void __builtin_altivec_dstt (void *, const int, const int<2>); | |
321 | DSTT altivec_dstt {} | |
322 | ||
323 | fpmath vsi __builtin_altivec_fix_sfsi (vf); | |
324 | FIX_V4SF_V4SI fix_truncv4sfv4si2 {} | |
325 | ||
326 | fpmath vui __builtin_altivec_fixuns_sfsi (vf); | |
327 | FIXUNS_V4SF_V4SI fixuns_truncv4sfv4si2 {} | |
328 | ||
329 | fpmath vf __builtin_altivec_float_sisf (vsi); | |
330 | FLOAT_V4SI_V4SF floatv4siv4sf2 {} | |
331 | ||
332 | pure vsc __builtin_altivec_lvebx (signed long, const void *); | |
333 | LVEBX altivec_lvebx {ldvec} | |
334 | ||
335 | pure vss __builtin_altivec_lvehx (signed long, const void *); | |
336 | LVEHX altivec_lvehx {ldvec} | |
337 | ||
338 | pure vsi __builtin_altivec_lvewx (signed long, const void *); | |
339 | LVEWX altivec_lvewx {ldvec} | |
340 | ||
341 | pure vuc __builtin_altivec_lvsl (signed long, const void *); | |
342 | LVSL altivec_lvsl {ldvec} | |
343 | ||
344 | pure vuc __builtin_altivec_lvsr (signed long, const void *); | |
345 | LVSR altivec_lvsr {ldvec} | |
346 | ||
347 | pure vsi __builtin_altivec_lvx (signed long, const void *); | |
348 | LVX altivec_lvx_v4si {ldvec} | |
349 | ||
350 | pure vsq __builtin_altivec_lvx_v1ti (signed long, const void *); | |
351 | LVX_V1TI altivec_lvx_v1ti {ldvec} | |
352 | ||
353 | pure vsc __builtin_altivec_lvx_v16qi (signed long, const void *); | |
354 | LVX_V16QI altivec_lvx_v16qi {ldvec} | |
355 | ||
356 | pure vf __builtin_altivec_lvx_v4sf (signed long, const void *); | |
357 | LVX_V4SF altivec_lvx_v4sf {ldvec} | |
358 | ||
359 | pure vsi __builtin_altivec_lvx_v4si (signed long, const void *); | |
360 | LVX_V4SI altivec_lvx_v4si {ldvec} | |
361 | ||
362 | pure vss __builtin_altivec_lvx_v8hi (signed long, const void *); | |
363 | LVX_V8HI altivec_lvx_v8hi {ldvec} | |
364 | ||
365 | pure vsi __builtin_altivec_lvxl (signed long, const void *); | |
366 | LVXL altivec_lvxl_v4si {ldvec} | |
367 | ||
368 | pure vsc __builtin_altivec_lvxl_v16qi (signed long, const void *); | |
369 | LVXL_V16QI altivec_lvxl_v16qi {ldvec} | |
370 | ||
371 | pure vf __builtin_altivec_lvxl_v4sf (signed long, const void *); | |
372 | LVXL_V4SF altivec_lvxl_v4sf {ldvec} | |
373 | ||
374 | pure vsi __builtin_altivec_lvxl_v4si (signed long, const void *); | |
375 | LVXL_V4SI altivec_lvxl_v4si {ldvec} | |
376 | ||
377 | pure vss __builtin_altivec_lvxl_v8hi (signed long, const void *); | |
378 | LVXL_V8HI altivec_lvxl_v8hi {ldvec} | |
379 | ||
380 | const vsc __builtin_altivec_mask_for_load (const void *); | |
381 | MASK_FOR_LOAD altivec_lvsr_direct {ldstmask} | |
382 | ||
383 | vss __builtin_altivec_mfvscr (); | |
384 | MFVSCR altivec_mfvscr {} | |
385 | ||
386 | void __builtin_altivec_mtvscr (vsi); | |
387 | MTVSCR altivec_mtvscr {} | |
388 | ||
389 | const vsll __builtin_altivec_vmulesw (vsi, vsi); | |
390 | VMULESW vec_widen_smult_even_v4si {} | |
391 | ||
392 | const vull __builtin_altivec_vmuleuw (vui, vui); | |
393 | VMULEUW vec_widen_umult_even_v4si {} | |
394 | ||
395 | const vsll __builtin_altivec_vmulosw (vsi, vsi); | |
396 | VMULOSW vec_widen_smult_odd_v4si {} | |
397 | ||
398 | const vull __builtin_altivec_vmulouw (vui, vui); | |
399 | VMULOUW vec_widen_umult_odd_v4si {} | |
400 | ||
401 | const vsc __builtin_altivec_nabs_v16qi (vsc); | |
402 | NABS_V16QI nabsv16qi2 {} | |
403 | ||
404 | const vf __builtin_altivec_nabs_v4sf (vf); | |
405 | NABS_V4SF vsx_nabsv4sf2 {} | |
406 | ||
407 | const vsi __builtin_altivec_nabs_v4si (vsi); | |
408 | NABS_V4SI nabsv4si2 {} | |
409 | ||
410 | const vss __builtin_altivec_nabs_v8hi (vss); | |
411 | NABS_V8HI nabsv8hi2 {} | |
412 | ||
d32a5f4b BS |
413 | const vsc __builtin_altivec_neg_v16qi (vsc); |
414 | NEG_V16QI negv16qi2 {} | |
415 | ||
416 | const vf __builtin_altivec_neg_v4sf (vf); | |
417 | NEG_V4SF negv4sf2 {} | |
418 | ||
419 | const vsi __builtin_altivec_neg_v4si (vsi); | |
420 | NEG_V4SI negv4si2 {} | |
421 | ||
422 | const vss __builtin_altivec_neg_v8hi (vss); | |
423 | NEG_V8HI negv8hi2 {} | |
424 | ||
6cc92e94 BS |
425 | void __builtin_altivec_stvebx (vsc, signed long, void *); |
426 | STVEBX altivec_stvebx {stvec} | |
427 | ||
428 | void __builtin_altivec_stvehx (vss, signed long, void *); | |
429 | STVEHX altivec_stvehx {stvec} | |
430 | ||
431 | void __builtin_altivec_stvewx (vsi, signed long, void *); | |
432 | STVEWX altivec_stvewx {stvec} | |
433 | ||
434 | void __builtin_altivec_stvx (vsi, signed long, void *); | |
435 | STVX altivec_stvx_v4si {stvec} | |
436 | ||
437 | void __builtin_altivec_stvx_v16qi (vsc, signed long, void *); | |
438 | STVX_V16QI altivec_stvx_v16qi {stvec} | |
439 | ||
440 | void __builtin_altivec_stvx_v4sf (vf, signed long, void *); | |
441 | STVX_V4SF altivec_stvx_v4sf {stvec} | |
442 | ||
443 | void __builtin_altivec_stvx_v4si (vsi, signed long, void *); | |
444 | STVX_V4SI altivec_stvx_v4si {stvec} | |
445 | ||
446 | void __builtin_altivec_stvx_v8hi (vss, signed long, void *); | |
447 | STVX_V8HI altivec_stvx_v8hi {stvec} | |
448 | ||
449 | void __builtin_altivec_stvxl (vsi, signed long, void *); | |
450 | STVXL altivec_stvxl_v4si {stvec} | |
451 | ||
452 | void __builtin_altivec_stvxl_v16qi (vsc, signed long, void *); | |
453 | STVXL_V16QI altivec_stvxl_v16qi {stvec} | |
454 | ||
455 | void __builtin_altivec_stvxl_v4sf (vf, signed long, void *); | |
456 | STVXL_V4SF altivec_stvxl_v4sf {stvec} | |
457 | ||
458 | void __builtin_altivec_stvxl_v4si (vsi, signed long, void *); | |
459 | STVXL_V4SI altivec_stvxl_v4si {stvec} | |
460 | ||
461 | void __builtin_altivec_stvxl_v8hi (vss, signed long, void *); | |
462 | STVXL_V8HI altivec_stvxl_v8hi {stvec} | |
463 | ||
464 | fpmath vf __builtin_altivec_uns_float_sisf (vui); | |
465 | UNSFLOAT_V4SI_V4SF floatunsv4siv4sf2 {} | |
466 | ||
467 | const vui __builtin_altivec_vaddcuw (vui, vui); | |
468 | VADDCUW altivec_vaddcuw {} | |
469 | ||
470 | const vf __builtin_altivec_vaddfp (vf, vf); | |
471 | VADDFP addv4sf3 {} | |
472 | ||
473 | const vsc __builtin_altivec_vaddsbs (vsc, vsc); | |
474 | VADDSBS altivec_vaddsbs {} | |
475 | ||
476 | const vss __builtin_altivec_vaddshs (vss, vss); | |
477 | VADDSHS altivec_vaddshs {} | |
478 | ||
479 | const vsi __builtin_altivec_vaddsws (vsi, vsi); | |
480 | VADDSWS altivec_vaddsws {} | |
481 | ||
482 | const vuc __builtin_altivec_vaddubm (vuc, vuc); | |
483 | VADDUBM addv16qi3 {} | |
484 | ||
485 | const vuc __builtin_altivec_vaddubs (vuc, vuc); | |
486 | VADDUBS altivec_vaddubs {} | |
487 | ||
488 | const vus __builtin_altivec_vadduhm (vus, vus); | |
489 | VADDUHM addv8hi3 {} | |
490 | ||
491 | const vus __builtin_altivec_vadduhs (vus, vus); | |
492 | VADDUHS altivec_vadduhs {} | |
493 | ||
494 | const vsi __builtin_altivec_vadduwm (vsi, vsi); | |
495 | VADDUWM addv4si3 {} | |
496 | ||
497 | const vui __builtin_altivec_vadduws (vui, vui); | |
498 | VADDUWS altivec_vadduws {} | |
499 | ||
500 | const vsc __builtin_altivec_vand_v16qi (vsc, vsc); | |
501 | VAND_V16QI andv16qi3 {} | |
502 | ||
503 | const vuc __builtin_altivec_vand_v16qi_uns (vuc, vuc); | |
504 | VAND_V16QI_UNS andv16qi3 {} | |
505 | ||
506 | const vf __builtin_altivec_vand_v4sf (vf, vf); | |
507 | VAND_V4SF andv4sf3 {} | |
508 | ||
509 | const vsi __builtin_altivec_vand_v4si (vsi, vsi); | |
510 | VAND_V4SI andv4si3 {} | |
511 | ||
512 | const vui __builtin_altivec_vand_v4si_uns (vui, vui); | |
513 | VAND_V4SI_UNS andv4si3 {} | |
514 | ||
515 | const vss __builtin_altivec_vand_v8hi (vss, vss); | |
516 | VAND_V8HI andv8hi3 {} | |
517 | ||
518 | const vus __builtin_altivec_vand_v8hi_uns (vus, vus); | |
519 | VAND_V8HI_UNS andv8hi3 {} | |
520 | ||
521 | const vsc __builtin_altivec_vandc_v16qi (vsc, vsc); | |
522 | VANDC_V16QI andcv16qi3 {} | |
523 | ||
524 | const vuc __builtin_altivec_vandc_v16qi_uns (vuc, vuc); | |
525 | VANDC_V16QI_UNS andcv16qi3 {} | |
526 | ||
527 | const vf __builtin_altivec_vandc_v4sf (vf, vf); | |
528 | VANDC_V4SF andcv4sf3 {} | |
529 | ||
530 | const vsi __builtin_altivec_vandc_v4si (vsi, vsi); | |
531 | VANDC_V4SI andcv4si3 {} | |
532 | ||
533 | const vui __builtin_altivec_vandc_v4si_uns (vui, vui); | |
534 | VANDC_V4SI_UNS andcv4si3 {} | |
535 | ||
536 | const vss __builtin_altivec_vandc_v8hi (vss, vss); | |
537 | VANDC_V8HI andcv8hi3 {} | |
538 | ||
539 | const vus __builtin_altivec_vandc_v8hi_uns (vus, vus); | |
540 | VANDC_V8HI_UNS andcv8hi3 {} | |
541 | ||
542 | const vsc __builtin_altivec_vavgsb (vsc, vsc); | |
543 | VAVGSB avgv16qi3_ceil {} | |
544 | ||
545 | const vss __builtin_altivec_vavgsh (vss, vss); | |
546 | VAVGSH avgv8hi3_ceil {} | |
547 | ||
548 | const vsi __builtin_altivec_vavgsw (vsi, vsi); | |
549 | VAVGSW avgv4si3_ceil {} | |
550 | ||
551 | const vuc __builtin_altivec_vavgub (vuc, vuc); | |
552 | VAVGUB uavgv16qi3_ceil {} | |
553 | ||
554 | const vus __builtin_altivec_vavguh (vus, vus); | |
555 | VAVGUH uavgv8hi3_ceil {} | |
556 | ||
557 | const vui __builtin_altivec_vavguw (vui, vui); | |
558 | VAVGUW uavgv4si3_ceil {} | |
559 | ||
560 | const vf __builtin_altivec_vcfsx (vsi, const int<5>); | |
561 | VCFSX altivec_vcfsx {} | |
562 | ||
563 | const vf __builtin_altivec_vcfux (vui, const int<5>); | |
564 | VCFUX altivec_vcfux {} | |
565 | ||
566 | const vsi __builtin_altivec_vcmpbfp (vf, vf); | |
567 | VCMPBFP altivec_vcmpbfp {} | |
568 | ||
569 | const int __builtin_altivec_vcmpbfp_p (int, vf, vf); | |
570 | VCMPBFP_P altivec_vcmpbfp_p {pred} | |
571 | ||
572 | const vf __builtin_altivec_vcmpeqfp (vf, vf); | |
573 | VCMPEQFP vector_eqv4sf {} | |
574 | ||
575 | const int __builtin_altivec_vcmpeqfp_p (int, vf, vf); | |
576 | VCMPEQFP_P vector_eq_v4sf_p {pred} | |
577 | ||
578 | const vsc __builtin_altivec_vcmpequb (vuc, vuc); | |
579 | VCMPEQUB vector_eqv16qi {} | |
580 | ||
581 | const int __builtin_altivec_vcmpequb_p (int, vsc, vsc); | |
582 | VCMPEQUB_P vector_eq_v16qi_p {pred} | |
583 | ||
584 | const vss __builtin_altivec_vcmpequh (vus, vus); | |
585 | VCMPEQUH vector_eqv8hi {} | |
586 | ||
587 | const int __builtin_altivec_vcmpequh_p (int, vss, vss); | |
588 | VCMPEQUH_P vector_eq_v8hi_p {pred} | |
589 | ||
590 | const vsi __builtin_altivec_vcmpequw (vui, vui); | |
591 | VCMPEQUW vector_eqv4si {} | |
592 | ||
593 | const int __builtin_altivec_vcmpequw_p (int, vsi, vsi); | |
594 | VCMPEQUW_P vector_eq_v4si_p {pred} | |
595 | ||
596 | const vf __builtin_altivec_vcmpgefp (vf, vf); | |
597 | VCMPGEFP vector_gev4sf {} | |
598 | ||
599 | const int __builtin_altivec_vcmpgefp_p (int, vf, vf); | |
600 | VCMPGEFP_P vector_ge_v4sf_p {pred} | |
601 | ||
602 | const vf __builtin_altivec_vcmpgtfp (vf, vf); | |
603 | VCMPGTFP vector_gtv4sf {} | |
604 | ||
605 | const int __builtin_altivec_vcmpgtfp_p (int, vf, vf); | |
606 | VCMPGTFP_P vector_gt_v4sf_p {pred} | |
607 | ||
608 | const vsc __builtin_altivec_vcmpgtsb (vsc, vsc); | |
609 | VCMPGTSB vector_gtv16qi {} | |
610 | ||
611 | const int __builtin_altivec_vcmpgtsb_p (int, vsc, vsc); | |
612 | VCMPGTSB_P vector_gt_v16qi_p {pred} | |
613 | ||
614 | const vss __builtin_altivec_vcmpgtsh (vss, vss); | |
615 | VCMPGTSH vector_gtv8hi {} | |
616 | ||
617 | const int __builtin_altivec_vcmpgtsh_p (int, vss, vss); | |
618 | VCMPGTSH_P vector_gt_v8hi_p {pred} | |
619 | ||
620 | const vsi __builtin_altivec_vcmpgtsw (vsi, vsi); | |
621 | VCMPGTSW vector_gtv4si {} | |
622 | ||
623 | const int __builtin_altivec_vcmpgtsw_p (int, vsi, vsi); | |
624 | VCMPGTSW_P vector_gt_v4si_p {pred} | |
625 | ||
626 | const vsc __builtin_altivec_vcmpgtub (vuc, vuc); | |
627 | VCMPGTUB vector_gtuv16qi {} | |
628 | ||
629 | const int __builtin_altivec_vcmpgtub_p (int, vsc, vsc); | |
630 | VCMPGTUB_P vector_gtu_v16qi_p {pred} | |
631 | ||
632 | const vss __builtin_altivec_vcmpgtuh (vus, vus); | |
633 | VCMPGTUH vector_gtuv8hi {} | |
634 | ||
635 | const int __builtin_altivec_vcmpgtuh_p (int, vss, vss); | |
636 | VCMPGTUH_P vector_gtu_v8hi_p {pred} | |
637 | ||
638 | const vsi __builtin_altivec_vcmpgtuw (vui, vui); | |
639 | VCMPGTUW vector_gtuv4si {} | |
640 | ||
641 | const int __builtin_altivec_vcmpgtuw_p (int, vsi, vsi); | |
642 | VCMPGTUW_P vector_gtu_v4si_p {pred} | |
643 | ||
644 | const vsi __builtin_altivec_vctsxs (vf, const int<5>); | |
645 | VCTSXS altivec_vctsxs {} | |
646 | ||
647 | const vui __builtin_altivec_vctuxs (vf, const int<5>); | |
648 | VCTUXS altivec_vctuxs {} | |
649 | ||
650 | fpmath vf __builtin_altivec_vexptefp (vf); | |
651 | VEXPTEFP altivec_vexptefp {} | |
652 | ||
653 | fpmath vf __builtin_altivec_vlogefp (vf); | |
654 | VLOGEFP altivec_vlogefp {} | |
655 | ||
656 | fpmath vf __builtin_altivec_vmaddfp (vf, vf, vf); | |
657 | VMADDFP fmav4sf4 {} | |
658 | ||
659 | const vf __builtin_altivec_vmaxfp (vf, vf); | |
660 | VMAXFP smaxv4sf3 {} | |
661 | ||
662 | const vsc __builtin_altivec_vmaxsb (vsc, vsc); | |
663 | VMAXSB smaxv16qi3 {} | |
664 | ||
665 | const vuc __builtin_altivec_vmaxub (vuc, vuc); | |
666 | VMAXUB umaxv16qi3 {} | |
667 | ||
668 | const vss __builtin_altivec_vmaxsh (vss, vss); | |
669 | VMAXSH smaxv8hi3 {} | |
670 | ||
671 | const vsi __builtin_altivec_vmaxsw (vsi, vsi); | |
672 | VMAXSW smaxv4si3 {} | |
673 | ||
674 | const vus __builtin_altivec_vmaxuh (vus, vus); | |
675 | VMAXUH umaxv8hi3 {} | |
676 | ||
677 | const vui __builtin_altivec_vmaxuw (vui, vui); | |
678 | VMAXUW umaxv4si3 {} | |
679 | ||
680 | vss __builtin_altivec_vmhaddshs (vss, vss, vss); | |
681 | VMHADDSHS altivec_vmhaddshs {} | |
682 | ||
683 | vss __builtin_altivec_vmhraddshs (vss, vss, vss); | |
684 | VMHRADDSHS altivec_vmhraddshs {} | |
685 | ||
686 | const vf __builtin_altivec_vminfp (vf, vf); | |
687 | VMINFP sminv4sf3 {} | |
688 | ||
689 | const vsc __builtin_altivec_vminsb (vsc, vsc); | |
690 | VMINSB sminv16qi3 {} | |
691 | ||
692 | const vss __builtin_altivec_vminsh (vss, vss); | |
693 | VMINSH sminv8hi3 {} | |
694 | ||
695 | const vsi __builtin_altivec_vminsw (vsi, vsi); | |
696 | VMINSW sminv4si3 {} | |
697 | ||
698 | const vuc __builtin_altivec_vminub (vuc, vuc); | |
699 | VMINUB uminv16qi3 {} | |
700 | ||
701 | const vus __builtin_altivec_vminuh (vus, vus); | |
702 | VMINUH uminv8hi3 {} | |
703 | ||
704 | const vui __builtin_altivec_vminuw (vui, vui); | |
705 | VMINUW uminv4si3 {} | |
706 | ||
707 | const vss __builtin_altivec_vmladduhm (vss, vss, vss); | |
708 | VMLADDUHM fmav8hi4 {} | |
709 | ||
710 | const vsc __builtin_altivec_vmrghb (vsc, vsc); | |
711 | VMRGHB altivec_vmrghb {} | |
712 | ||
713 | const vss __builtin_altivec_vmrghh (vss, vss); | |
714 | VMRGHH altivec_vmrghh {} | |
715 | ||
716 | const vsi __builtin_altivec_vmrghw (vsi, vsi); | |
717 | VMRGHW altivec_vmrghw {} | |
718 | ||
719 | const vsc __builtin_altivec_vmrglb (vsc, vsc); | |
720 | VMRGLB altivec_vmrglb {} | |
721 | ||
722 | const vss __builtin_altivec_vmrglh (vss, vss); | |
723 | VMRGLH altivec_vmrglh {} | |
724 | ||
725 | const vsi __builtin_altivec_vmrglw (vsi, vsi); | |
726 | VMRGLW altivec_vmrglw {} | |
727 | ||
728 | const vsi __builtin_altivec_vmsummbm (vsc, vuc, vsi); | |
729 | VMSUMMBM altivec_vmsummbm {} | |
730 | ||
731 | const vsi __builtin_altivec_vmsumshm (vss, vss, vsi); | |
732 | VMSUMSHM altivec_vmsumshm {} | |
733 | ||
734 | vsi __builtin_altivec_vmsumshs (vss, vss, vsi); | |
735 | VMSUMSHS altivec_vmsumshs {} | |
736 | ||
737 | const vui __builtin_altivec_vmsumubm (vuc, vuc, vui); | |
738 | VMSUMUBM altivec_vmsumubm {} | |
739 | ||
740 | const vui __builtin_altivec_vmsumuhm (vus, vus, vui); | |
741 | VMSUMUHM altivec_vmsumuhm {} | |
742 | ||
743 | vui __builtin_altivec_vmsumuhs (vus, vus, vui); | |
744 | VMSUMUHS altivec_vmsumuhs {} | |
745 | ||
746 | const vss __builtin_altivec_vmulesb (vsc, vsc); | |
747 | VMULESB vec_widen_smult_even_v16qi {} | |
748 | ||
749 | const vsi __builtin_altivec_vmulesh (vss, vss); | |
750 | VMULESH vec_widen_smult_even_v8hi {} | |
751 | ||
752 | const vus __builtin_altivec_vmuleub (vuc, vuc); | |
753 | VMULEUB vec_widen_umult_even_v16qi {} | |
754 | ||
755 | const vui __builtin_altivec_vmuleuh (vus, vus); | |
756 | VMULEUH vec_widen_umult_even_v8hi {} | |
757 | ||
758 | const vss __builtin_altivec_vmulosb (vsc, vsc); | |
759 | VMULOSB vec_widen_smult_odd_v16qi {} | |
760 | ||
761 | const vus __builtin_altivec_vmuloub (vuc, vuc); | |
762 | VMULOUB vec_widen_umult_odd_v16qi {} | |
763 | ||
764 | const vsi __builtin_altivec_vmulosh (vss, vss); | |
765 | VMULOSH vec_widen_smult_odd_v8hi {} | |
766 | ||
767 | const vui __builtin_altivec_vmulouh (vus, vus); | |
768 | VMULOUH vec_widen_umult_odd_v8hi {} | |
769 | ||
770 | fpmath vf __builtin_altivec_vnmsubfp (vf, vf, vf); | |
771 | VNMSUBFP nfmsv4sf4 {} | |
772 | ||
773 | const vsc __builtin_altivec_vnor_v16qi (vsc, vsc); | |
774 | VNOR_V16QI norv16qi3 {} | |
775 | ||
776 | const vuc __builtin_altivec_vnor_v16qi_uns (vuc, vuc); | |
777 | VNOR_V16QI_UNS norv16qi3 {} | |
778 | ||
779 | const vf __builtin_altivec_vnor_v4sf (vf, vf); | |
780 | VNOR_V4SF norv4sf3 {} | |
781 | ||
782 | const vsi __builtin_altivec_vnor_v4si (vsi, vsi); | |
783 | VNOR_V4SI norv4si3 {} | |
784 | ||
785 | const vui __builtin_altivec_vnor_v4si_uns (vui, vui); | |
786 | VNOR_V4SI_UNS norv4si3 {} | |
787 | ||
788 | const vss __builtin_altivec_vnor_v8hi (vss, vss); | |
789 | VNOR_V8HI norv8hi3 {} | |
790 | ||
791 | const vus __builtin_altivec_vnor_v8hi_uns (vus, vus); | |
792 | VNOR_V8HI_UNS norv8hi3 {} | |
793 | ||
794 | const vsc __builtin_altivec_vor_v16qi (vsc, vsc); | |
795 | VOR_V16QI iorv16qi3 {} | |
796 | ||
797 | const vuc __builtin_altivec_vor_v16qi_uns (vuc, vuc); | |
798 | VOR_V16QI_UNS iorv16qi3 {} | |
799 | ||
800 | const vf __builtin_altivec_vor_v4sf (vf, vf); | |
801 | VOR_V4SF iorv4sf3 {} | |
802 | ||
803 | const vsi __builtin_altivec_vor_v4si (vsi, vsi); | |
804 | VOR_V4SI iorv4si3 {} | |
805 | ||
806 | const vui __builtin_altivec_vor_v4si_uns (vui, vui); | |
807 | VOR_V4SI_UNS iorv4si3 {} | |
808 | ||
809 | const vss __builtin_altivec_vor_v8hi (vss, vss); | |
810 | VOR_V8HI iorv8hi3 {} | |
811 | ||
812 | const vus __builtin_altivec_vor_v8hi_uns (vus, vus); | |
813 | VOR_V8HI_UNS iorv8hi3 {} | |
814 | ||
815 | const vsc __builtin_altivec_vperm_16qi (vsc, vsc, vuc); | |
816 | VPERM_16QI altivec_vperm_v16qi {} | |
817 | ||
818 | const vuc __builtin_altivec_vperm_16qi_uns (vuc, vuc, vuc); | |
819 | VPERM_16QI_UNS altivec_vperm_v16qi_uns {} | |
820 | ||
821 | const vsq __builtin_altivec_vperm_1ti (vsq, vsq, vuc); | |
822 | VPERM_1TI altivec_vperm_v1ti {} | |
823 | ||
824 | const vuq __builtin_altivec_vperm_1ti_uns (vuq, vuq, vuc); | |
825 | VPERM_1TI_UNS altivec_vperm_v1ti_uns {} | |
826 | ||
827 | const vf __builtin_altivec_vperm_4sf (vf, vf, vuc); | |
828 | VPERM_4SF altivec_vperm_v4sf {} | |
829 | ||
830 | const vsi __builtin_altivec_vperm_4si (vsi, vsi, vuc); | |
831 | VPERM_4SI altivec_vperm_v4si {} | |
832 | ||
833 | const vui __builtin_altivec_vperm_4si_uns (vui, vui, vuc); | |
834 | VPERM_4SI_UNS altivec_vperm_v4si_uns {} | |
835 | ||
836 | const vss __builtin_altivec_vperm_8hi (vss, vss, vuc); | |
837 | VPERM_8HI altivec_vperm_v8hi {} | |
838 | ||
839 | const vus __builtin_altivec_vperm_8hi_uns (vus, vus, vuc); | |
840 | VPERM_8HI_UNS altivec_vperm_v8hi_uns {} | |
841 | ||
842 | const vp __builtin_altivec_vpkpx (vui, vui); | |
843 | VPKPX altivec_vpkpx {} | |
844 | ||
845 | const vsc __builtin_altivec_vpkshss (vss, vss); | |
846 | VPKSHSS altivec_vpkshss {} | |
847 | ||
848 | const vuc __builtin_altivec_vpkshus (vss, vss); | |
849 | VPKSHUS altivec_vpkshus {} | |
850 | ||
851 | const vss __builtin_altivec_vpkswss (vsi, vsi); | |
852 | VPKSWSS altivec_vpkswss {} | |
853 | ||
854 | const vus __builtin_altivec_vpkswus (vsi, vsi); | |
855 | VPKSWUS altivec_vpkswus {} | |
856 | ||
857 | const vsc __builtin_altivec_vpkuhum (vss, vss); | |
858 | VPKUHUM altivec_vpkuhum {} | |
859 | ||
860 | const vuc __builtin_altivec_vpkuhus (vus, vus); | |
861 | VPKUHUS altivec_vpkuhus {} | |
862 | ||
863 | const vss __builtin_altivec_vpkuwum (vsi, vsi); | |
864 | VPKUWUM altivec_vpkuwum {} | |
865 | ||
866 | const vus __builtin_altivec_vpkuwus (vui, vui); | |
867 | VPKUWUS altivec_vpkuwus {} | |
868 | ||
869 | const vf __builtin_altivec_vrecipdivfp (vf, vf); | |
870 | VRECIPFP recipv4sf3 {} | |
871 | ||
872 | fpmath vf __builtin_altivec_vrefp (vf); | |
873 | VREFP rev4sf2 {} | |
874 | ||
875 | const vsc __builtin_altivec_vreve_v16qi (vsc); | |
876 | VREVE_V16QI altivec_vrevev16qi2 {} | |
877 | ||
878 | const vf __builtin_altivec_vreve_v4sf (vf); | |
879 | VREVE_V4SF altivec_vrevev4sf2 {} | |
880 | ||
881 | const vsi __builtin_altivec_vreve_v4si (vsi); | |
882 | VREVE_V4SI altivec_vrevev4si2 {} | |
883 | ||
884 | const vss __builtin_altivec_vreve_v8hi (vss); | |
885 | VREVE_V8HI altivec_vrevev8hi2 {} | |
886 | ||
887 | fpmath vf __builtin_altivec_vrfim (vf); | |
888 | VRFIM vector_floorv4sf2 {} | |
889 | ||
890 | fpmath vf __builtin_altivec_vrfin (vf); | |
891 | VRFIN altivec_vrfin {} | |
892 | ||
893 | fpmath vf __builtin_altivec_vrfip (vf); | |
894 | VRFIP vector_ceilv4sf2 {} | |
895 | ||
896 | fpmath vf __builtin_altivec_vrfiz (vf); | |
897 | VRFIZ vector_btruncv4sf2 {} | |
898 | ||
899 | const vsc __builtin_altivec_vrlb (vsc, vsc); | |
900 | VRLB vrotlv16qi3 {} | |
901 | ||
902 | const vss __builtin_altivec_vrlh (vss, vss); | |
903 | VRLH vrotlv8hi3 {} | |
904 | ||
905 | const vsi __builtin_altivec_vrlw (vsi, vsi); | |
906 | VRLW vrotlv4si3 {} | |
907 | ||
908 | fpmath vf __builtin_altivec_vrsqrtefp (vf); | |
909 | VRSQRTEFP rsqrtev4sf2 {} | |
910 | ||
911 | fpmath vf __builtin_altivec_vrsqrtfp (vf); | |
912 | VRSQRTFP rsqrtv4sf2 {} | |
913 | ||
914 | const vsc __builtin_altivec_vsel_16qi (vsc, vsc, vuc); | |
915 | VSEL_16QI vector_select_v16qi {} | |
916 | ||
917 | const vuc __builtin_altivec_vsel_16qi_uns (vuc, vuc, vuc); | |
918 | VSEL_16QI_UNS vector_select_v16qi_uns {} | |
919 | ||
920 | const vsq __builtin_altivec_vsel_1ti (vsq, vsq, vuq); | |
921 | VSEL_1TI vector_select_v1ti {} | |
922 | ||
923 | const vuq __builtin_altivec_vsel_1ti_uns (vuq, vuq, vuq); | |
924 | VSEL_1TI_UNS vector_select_v1ti_uns {} | |
925 | ||
926 | const vf __builtin_altivec_vsel_4sf (vf, vf, vf); | |
927 | VSEL_4SF vector_select_v4sf {} | |
928 | ||
929 | const vsi __builtin_altivec_vsel_4si (vsi, vsi, vui); | |
930 | VSEL_4SI vector_select_v4si {} | |
931 | ||
932 | const vui __builtin_altivec_vsel_4si_uns (vui, vui, vui); | |
933 | VSEL_4SI_UNS vector_select_v4si_uns {} | |
934 | ||
935 | const vss __builtin_altivec_vsel_8hi (vss, vss, vus); | |
936 | VSEL_8HI vector_select_v8hi {} | |
937 | ||
938 | const vus __builtin_altivec_vsel_8hi_uns (vus, vus, vus); | |
939 | VSEL_8HI_UNS vector_select_v8hi_uns {} | |
940 | ||
941 | const vsi __builtin_altivec_vsl (vsi, vsi); | |
942 | VSL altivec_vsl {} | |
943 | ||
944 | const vsc __builtin_altivec_vslb (vsc, vuc); | |
945 | VSLB vashlv16qi3 {} | |
946 | ||
947 | const vsc __builtin_altivec_vsldoi_16qi (vsc, vsc, const int<4>); | |
948 | VSLDOI_16QI altivec_vsldoi_v16qi {} | |
949 | ||
950 | const vf __builtin_altivec_vsldoi_4sf (vf, vf, const int<4>); | |
951 | VSLDOI_4SF altivec_vsldoi_v4sf {} | |
952 | ||
953 | const vsi __builtin_altivec_vsldoi_4si (vsi, vsi, const int<4>); | |
954 | VSLDOI_4SI altivec_vsldoi_v4si {} | |
955 | ||
956 | const vss __builtin_altivec_vsldoi_8hi (vss, vss, const int<4>); | |
957 | VSLDOI_8HI altivec_vsldoi_v8hi {} | |
958 | ||
959 | const vss __builtin_altivec_vslh (vss, vus); | |
960 | VSLH vashlv8hi3 {} | |
961 | ||
962 | const vsi __builtin_altivec_vslo (vsi, vsi); | |
963 | VSLO altivec_vslo {} | |
964 | ||
965 | const vsi __builtin_altivec_vslw (vsi, vui); | |
966 | VSLW vashlv4si3 {} | |
967 | ||
968 | const vsc __builtin_altivec_vspltb (vsc, const int<4>); | |
969 | VSPLTB altivec_vspltb {} | |
970 | ||
971 | const vss __builtin_altivec_vsplth (vss, const int<3>); | |
972 | VSPLTH altivec_vsplth {} | |
973 | ||
974 | const vsc __builtin_altivec_vspltisb (const int<-16,15>); | |
975 | VSPLTISB altivec_vspltisb {} | |
976 | ||
977 | const vss __builtin_altivec_vspltish (const int<-16,15>); | |
978 | VSPLTISH altivec_vspltish {} | |
979 | ||
980 | const vsi __builtin_altivec_vspltisw (const int<-16,15>); | |
981 | VSPLTISW altivec_vspltisw {} | |
982 | ||
983 | const vsi __builtin_altivec_vspltw (vsi, const int<2>); | |
984 | VSPLTW altivec_vspltw {} | |
985 | ||
986 | const vsi __builtin_altivec_vsr (vsi, vsi); | |
987 | VSR altivec_vsr {} | |
988 | ||
989 | const vsc __builtin_altivec_vsrab (vsc, vuc); | |
990 | VSRAB vashrv16qi3 {} | |
991 | ||
992 | const vss __builtin_altivec_vsrah (vss, vus); | |
993 | VSRAH vashrv8hi3 {} | |
994 | ||
995 | const vsi __builtin_altivec_vsraw (vsi, vui); | |
996 | VSRAW vashrv4si3 {} | |
997 | ||
998 | const vsc __builtin_altivec_vsrb (vsc, vuc); | |
999 | VSRB vlshrv16qi3 {} | |
1000 | ||
1001 | const vss __builtin_altivec_vsrh (vss, vus); | |
1002 | VSRH vlshrv8hi3 {} | |
1003 | ||
1004 | const vsi __builtin_altivec_vsro (vsi, vsi); | |
1005 | VSRO altivec_vsro {} | |
1006 | ||
1007 | const vsi __builtin_altivec_vsrw (vsi, vui); | |
1008 | VSRW vlshrv4si3 {} | |
1009 | ||
1010 | const vsi __builtin_altivec_vsubcuw (vsi, vsi); | |
1011 | VSUBCUW altivec_vsubcuw {} | |
1012 | ||
1013 | const vf __builtin_altivec_vsubfp (vf, vf); | |
1014 | VSUBFP subv4sf3 {} | |
1015 | ||
1016 | const vsc __builtin_altivec_vsubsbs (vsc, vsc); | |
1017 | VSUBSBS altivec_vsubsbs {} | |
1018 | ||
1019 | const vss __builtin_altivec_vsubshs (vss, vss); | |
1020 | VSUBSHS altivec_vsubshs {} | |
1021 | ||
1022 | const vsi __builtin_altivec_vsubsws (vsi, vsi); | |
1023 | VSUBSWS altivec_vsubsws {} | |
1024 | ||
1025 | const vuc __builtin_altivec_vsububm (vuc, vuc); | |
1026 | VSUBUBM subv16qi3 {} | |
1027 | ||
1028 | const vuc __builtin_altivec_vsububs (vuc, vuc); | |
1029 | VSUBUBS altivec_vsububs {} | |
1030 | ||
1031 | const vus __builtin_altivec_vsubuhm (vus, vus); | |
1032 | VSUBUHM subv8hi3 {} | |
1033 | ||
1034 | const vus __builtin_altivec_vsubuhs (vus, vus); | |
1035 | VSUBUHS altivec_vsubuhs {} | |
1036 | ||
1037 | const vui __builtin_altivec_vsubuwm (vui, vui); | |
1038 | VSUBUWM subv4si3 {} | |
1039 | ||
1040 | const vui __builtin_altivec_vsubuws (vui, vui); | |
1041 | VSUBUWS altivec_vsubuws {} | |
1042 | ||
1043 | const vsi __builtin_altivec_vsum2sws (vsi, vsi); | |
1044 | VSUM2SWS altivec_vsum2sws {} | |
1045 | ||
1046 | const vsi __builtin_altivec_vsum4sbs (vsc, vsi); | |
1047 | VSUM4SBS altivec_vsum4sbs {} | |
1048 | ||
1049 | const vsi __builtin_altivec_vsum4shs (vss, vsi); | |
1050 | VSUM4SHS altivec_vsum4shs {} | |
1051 | ||
1052 | const vui __builtin_altivec_vsum4ubs (vuc, vui); | |
1053 | VSUM4UBS altivec_vsum4ubs {} | |
1054 | ||
1055 | const vsi __builtin_altivec_vsumsws (vsi, vsi); | |
1056 | VSUMSWS altivec_vsumsws {} | |
1057 | ||
1058 | const vsi __builtin_altivec_vsumsws_be (vsi, vsi); | |
1059 | VSUMSWS_BE altivec_vsumsws_direct {} | |
1060 | ||
1061 | const vui __builtin_altivec_vupkhpx (vp); | |
1062 | VUPKHPX altivec_vupkhpx {} | |
1063 | ||
1064 | const vss __builtin_altivec_vupkhsb (vsc); | |
1065 | VUPKHSB altivec_vupkhsb {} | |
1066 | ||
1067 | const vsi __builtin_altivec_vupkhsh (vss); | |
1068 | VUPKHSH altivec_vupkhsh {} | |
1069 | ||
1070 | const vui __builtin_altivec_vupklpx (vp); | |
1071 | VUPKLPX altivec_vupklpx {} | |
1072 | ||
1073 | const vss __builtin_altivec_vupklsb (vsc); | |
1074 | VUPKLSB altivec_vupklsb {} | |
1075 | ||
1076 | const vsi __builtin_altivec_vupklsh (vss); | |
1077 | VUPKLSH altivec_vupklsh {} | |
1078 | ||
1079 | const vsc __builtin_altivec_vxor_v16qi (vsc, vsc); | |
1080 | VXOR_V16QI xorv16qi3 {} | |
1081 | ||
1082 | const vuc __builtin_altivec_vxor_v16qi_uns (vuc, vuc); | |
1083 | VXOR_V16QI_UNS xorv16qi3 {} | |
1084 | ||
1085 | const vf __builtin_altivec_vxor_v4sf (vf, vf); | |
1086 | VXOR_V4SF xorv4sf3 {} | |
1087 | ||
1088 | const vsi __builtin_altivec_vxor_v4si (vsi, vsi); | |
1089 | VXOR_V4SI xorv4si3 {} | |
1090 | ||
1091 | const vui __builtin_altivec_vxor_v4si_uns (vui, vui); | |
1092 | VXOR_V4SI_UNS xorv4si3 {} | |
1093 | ||
1094 | const vss __builtin_altivec_vxor_v8hi (vss, vss); | |
1095 | VXOR_V8HI xorv8hi3 {} | |
1096 | ||
1097 | const vus __builtin_altivec_vxor_v8hi_uns (vus, vus); | |
1098 | VXOR_V8HI_UNS xorv8hi3 {} | |
1099 | ||
1100 | const signed char __builtin_vec_ext_v16qi (vsc, signed int); | |
1101 | VEC_EXT_V16QI nothing {extract} | |
1102 | ||
1103 | const float __builtin_vec_ext_v4sf (vf, signed int); | |
1104 | VEC_EXT_V4SF nothing {extract} | |
1105 | ||
1106 | const signed int __builtin_vec_ext_v4si (vsi, signed int); | |
1107 | VEC_EXT_V4SI nothing {extract} | |
1108 | ||
1109 | const signed short __builtin_vec_ext_v8hi (vss, signed int); | |
1110 | VEC_EXT_V8HI nothing {extract} | |
1111 | ||
206c08ce BS |
1112 | const vsc __builtin_vec_init_v16qi (signed char, signed char, signed char, \ |
1113 | signed char, signed char, signed char, signed char, signed char, \ | |
1114 | signed char, signed char, signed char, signed char, signed char, \ | |
1115 | signed char, signed char, signed char); | |
6cc92e94 BS |
1116 | VEC_INIT_V16QI nothing {init} |
1117 | ||
1118 | const vf __builtin_vec_init_v4sf (float, float, float, float); | |
1119 | VEC_INIT_V4SF nothing {init} | |
1120 | ||
206c08ce BS |
1121 | const vsi __builtin_vec_init_v4si (signed int, signed int, signed int, \ |
1122 | signed int); | |
6cc92e94 BS |
1123 | VEC_INIT_V4SI nothing {init} |
1124 | ||
206c08ce BS |
1125 | const vss __builtin_vec_init_v8hi (signed short, signed short, signed short,\ |
1126 | signed short, signed short, signed short, signed short, \ | |
1127 | signed short); | |
6cc92e94 BS |
1128 | VEC_INIT_V8HI nothing {init} |
1129 | ||
1130 | const vsc __builtin_vec_set_v16qi (vsc, signed char, const int<4>); | |
1131 | VEC_SET_V16QI nothing {set} | |
1132 | ||
1133 | const vf __builtin_vec_set_v4sf (vf, float, const int<2>); | |
1134 | VEC_SET_V4SF nothing {set} | |
1135 | ||
1136 | const vsi __builtin_vec_set_v4si (vsi, signed int, const int<2>); | |
1137 | VEC_SET_V4SI nothing {set} | |
1138 | ||
1139 | const vss __builtin_vec_set_v8hi (vss, signed short, const int<3>); | |
1140 | VEC_SET_V8HI nothing {set} | |
ba6aa474 BS |
1141 | |
1142 | ||
a7f13a51 BS |
1143 | ; Cell builtins. |
1144 | [cell] | |
1145 | pure vsc __builtin_altivec_lvlx (signed long, const void *); | |
1146 | LVLX altivec_lvlx {ldvec} | |
1147 | ||
1148 | pure vsc __builtin_altivec_lvlxl (signed long, const void *); | |
1149 | LVLXL altivec_lvlxl {ldvec} | |
1150 | ||
1151 | pure vsc __builtin_altivec_lvrx (signed long, const void *); | |
1152 | LVRX altivec_lvrx {ldvec} | |
1153 | ||
1154 | pure vsc __builtin_altivec_lvrxl (signed long, const void *); | |
1155 | LVRXL altivec_lvrxl {ldvec} | |
1156 | ||
1157 | void __builtin_altivec_stvlx (vsc, signed long, void *); | |
1158 | STVLX altivec_stvlx {stvec} | |
1159 | ||
1160 | void __builtin_altivec_stvlxl (vsc, signed long, void *); | |
1161 | STVLXL altivec_stvlxl {stvec} | |
1162 | ||
1163 | void __builtin_altivec_stvrx (vsc, signed long, void *); | |
1164 | STVRX altivec_stvrx {stvec} | |
1165 | ||
1166 | void __builtin_altivec_stvrxl (vsc, signed long, void *); | |
1167 | STVRXL altivec_stvrxl {stvec} | |
1168 | ||
1169 | ||
ba6aa474 BS |
1170 | ; VSX builtins. |
1171 | [vsx] | |
1172 | pure vd __builtin_altivec_lvx_v2df (signed long, const void *); | |
1173 | LVX_V2DF altivec_lvx_v2df {ldvec} | |
1174 | ||
1175 | pure vsll __builtin_altivec_lvx_v2di (signed long, const void *); | |
1176 | LVX_V2DI altivec_lvx_v2di {ldvec} | |
1177 | ||
1178 | pure vd __builtin_altivec_lvxl_v2df (signed long, const void *); | |
1179 | LVXL_V2DF altivec_lvxl_v2df {ldvec} | |
1180 | ||
1181 | pure vsll __builtin_altivec_lvxl_v2di (signed long, const void *); | |
1182 | LVXL_V2DI altivec_lvxl_v2di {ldvec} | |
1183 | ||
1184 | const vd __builtin_altivec_nabs_v2df (vd); | |
1185 | NABS_V2DF vsx_nabsv2df2 {} | |
1186 | ||
1187 | const vsll __builtin_altivec_nabs_v2di (vsll); | |
1188 | NABS_V2DI nabsv2di2 {} | |
1189 | ||
d32a5f4b BS |
1190 | const vd __builtin_altivec_neg_v2df (vd); |
1191 | NEG_V2DF negv2df2 {} | |
1192 | ||
ba6aa474 BS |
1193 | void __builtin_altivec_stvx_v2df (vd, signed long, void *); |
1194 | STVX_V2DF altivec_stvx_v2df {stvec} | |
1195 | ||
1196 | void __builtin_altivec_stvx_v2di (vsll, signed long, void *); | |
1197 | STVX_V2DI altivec_stvx_v2di {stvec} | |
1198 | ||
1199 | void __builtin_altivec_stvxl_v2df (vd, signed long, void *); | |
1200 | STVXL_V2DF altivec_stvxl_v2df {stvec} | |
1201 | ||
1202 | void __builtin_altivec_stvxl_v2di (vsll, signed long, void *); | |
1203 | STVXL_V2DI altivec_stvxl_v2di {stvec} | |
1204 | ||
1205 | const vd __builtin_altivec_vand_v2df (vd, vd); | |
1206 | VAND_V2DF andv2df3 {} | |
1207 | ||
1208 | const vsll __builtin_altivec_vand_v2di (vsll, vsll); | |
1209 | VAND_V2DI andv2di3 {} | |
1210 | ||
1211 | const vull __builtin_altivec_vand_v2di_uns (vull, vull); | |
1212 | VAND_V2DI_UNS andv2di3 {} | |
1213 | ||
1214 | const vd __builtin_altivec_vandc_v2df (vd, vd); | |
1215 | VANDC_V2DF andcv2df3 {} | |
1216 | ||
1217 | const vsll __builtin_altivec_vandc_v2di (vsll, vsll); | |
1218 | VANDC_V2DI andcv2di3 {} | |
1219 | ||
1220 | const vull __builtin_altivec_vandc_v2di_uns (vull, vull); | |
1221 | VANDC_V2DI_UNS andcv2di3 {} | |
1222 | ||
ba6aa474 BS |
1223 | const vd __builtin_altivec_vnor_v2df (vd, vd); |
1224 | VNOR_V2DF norv2df3 {} | |
1225 | ||
1226 | const vsll __builtin_altivec_vnor_v2di (vsll, vsll); | |
1227 | VNOR_V2DI norv2di3 {} | |
1228 | ||
1229 | const vull __builtin_altivec_vnor_v2di_uns (vull, vull); | |
1230 | VNOR_V2DI_UNS norv2di3 {} | |
1231 | ||
1232 | const vd __builtin_altivec_vor_v2df (vd, vd); | |
1233 | VOR_V2DF iorv2df3 {} | |
1234 | ||
1235 | const vsll __builtin_altivec_vor_v2di (vsll, vsll); | |
1236 | VOR_V2DI iorv2di3 {} | |
1237 | ||
1238 | const vull __builtin_altivec_vor_v2di_uns (vull, vull); | |
1239 | VOR_V2DI_UNS iorv2di3 {} | |
1240 | ||
1241 | const vd __builtin_altivec_vperm_2df (vd, vd, vuc); | |
1242 | VPERM_2DF altivec_vperm_v2df {} | |
1243 | ||
1244 | const vsll __builtin_altivec_vperm_2di (vsll, vsll, vuc); | |
1245 | VPERM_2DI altivec_vperm_v2di {} | |
1246 | ||
1247 | const vull __builtin_altivec_vperm_2di_uns (vull, vull, vuc); | |
1248 | VPERM_2DI_UNS altivec_vperm_v2di_uns {} | |
1249 | ||
1250 | const vd __builtin_altivec_vreve_v2df (vd); | |
1251 | VREVE_V2DF altivec_vrevev2df2 {} | |
1252 | ||
1253 | const vsll __builtin_altivec_vreve_v2di (vsll); | |
1254 | VREVE_V2DI altivec_vrevev2di2 {} | |
1255 | ||
1256 | const vd __builtin_altivec_vsel_2df (vd, vd, vd); | |
1257 | VSEL_2DF vector_select_v2df {} | |
1258 | ||
1259 | const vsll __builtin_altivec_vsel_2di (vsll, vsll, vsll); | |
1260 | VSEL_2DI_B vector_select_v2di {} | |
1261 | ||
1262 | const vull __builtin_altivec_vsel_2di_uns (vull, vull, vull); | |
1263 | VSEL_2DI_UNS vector_select_v2di_uns {} | |
1264 | ||
1265 | const vd __builtin_altivec_vsldoi_2df (vd, vd, const int<4>); | |
1266 | VSLDOI_2DF altivec_vsldoi_v2df {} | |
1267 | ||
1268 | const vsll __builtin_altivec_vsldoi_2di (vsll, vsll, const int<4>); | |
1269 | VSLDOI_2DI altivec_vsldoi_v2di {} | |
1270 | ||
1271 | const vd __builtin_altivec_vxor_v2df (vd, vd); | |
1272 | VXOR_V2DF xorv2df3 {} | |
1273 | ||
1274 | const vsll __builtin_altivec_vxor_v2di (vsll, vsll); | |
1275 | VXOR_V2DI xorv2di3 {} | |
1276 | ||
1277 | const vull __builtin_altivec_vxor_v2di_uns (vull, vull); | |
1278 | VXOR_V2DI_UNS xorv2di3 {} | |
1279 | ||
1280 | const signed __int128 __builtin_vec_ext_v1ti (vsq, signed int); | |
1281 | VEC_EXT_V1TI nothing {extract} | |
1282 | ||
1283 | const double __builtin_vec_ext_v2df (vd, signed int); | |
1284 | VEC_EXT_V2DF nothing {extract} | |
1285 | ||
1286 | const signed long long __builtin_vec_ext_v2di (vsll, signed int); | |
1287 | VEC_EXT_V2DI nothing {extract} | |
1288 | ||
1289 | const vsq __builtin_vec_init_v1ti (signed __int128); | |
1290 | VEC_INIT_V1TI nothing {init} | |
1291 | ||
1292 | const vd __builtin_vec_init_v2df (double, double); | |
1293 | VEC_INIT_V2DF nothing {init} | |
1294 | ||
1295 | const vsll __builtin_vec_init_v2di (signed long long, signed long long); | |
1296 | VEC_INIT_V2DI nothing {init} | |
1297 | ||
1298 | const vsq __builtin_vec_set_v1ti (vsq, signed __int128, const int<0,0>); | |
1299 | VEC_SET_V1TI nothing {set} | |
1300 | ||
1301 | const vd __builtin_vec_set_v2df (vd, double, const int<1>); | |
1302 | VEC_SET_V2DF nothing {set} | |
1303 | ||
1304 | const vsll __builtin_vec_set_v2di (vsll, signed long long, const int<1>); | |
1305 | VEC_SET_V2DI nothing {set} | |
1306 | ||
1307 | const vsc __builtin_vsx_cmpge_16qi (vsc, vsc); | |
1308 | CMPGE_16QI vector_nltv16qi {} | |
1309 | ||
1310 | const vsll __builtin_vsx_cmpge_2di (vsll, vsll); | |
1311 | CMPGE_2DI vector_nltv2di {} | |
1312 | ||
1313 | const vsi __builtin_vsx_cmpge_4si (vsi, vsi); | |
1314 | CMPGE_4SI vector_nltv4si {} | |
1315 | ||
1316 | const vss __builtin_vsx_cmpge_8hi (vss, vss); | |
1317 | CMPGE_8HI vector_nltv8hi {} | |
1318 | ||
1319 | const vsc __builtin_vsx_cmpge_u16qi (vuc, vuc); | |
1320 | CMPGE_U16QI vector_nltuv16qi {} | |
1321 | ||
1322 | const vsll __builtin_vsx_cmpge_u2di (vull, vull); | |
1323 | CMPGE_U2DI vector_nltuv2di {} | |
1324 | ||
1325 | const vsi __builtin_vsx_cmpge_u4si (vui, vui); | |
1326 | CMPGE_U4SI vector_nltuv4si {} | |
1327 | ||
1328 | const vss __builtin_vsx_cmpge_u8hi (vus, vus); | |
1329 | CMPGE_U8HI vector_nltuv8hi {} | |
1330 | ||
1331 | const vsc __builtin_vsx_cmple_16qi (vsc, vsc); | |
1332 | CMPLE_16QI vector_ngtv16qi {} | |
1333 | ||
1334 | const vsll __builtin_vsx_cmple_2di (vsll, vsll); | |
1335 | CMPLE_2DI vector_ngtv2di {} | |
1336 | ||
1337 | const vsi __builtin_vsx_cmple_4si (vsi, vsi); | |
1338 | CMPLE_4SI vector_ngtv4si {} | |
1339 | ||
1340 | const vss __builtin_vsx_cmple_8hi (vss, vss); | |
1341 | CMPLE_8HI vector_ngtv8hi {} | |
1342 | ||
1343 | const vsc __builtin_vsx_cmple_u16qi (vsc, vsc); | |
1344 | CMPLE_U16QI vector_ngtuv16qi {} | |
1345 | ||
1346 | const vsll __builtin_vsx_cmple_u2di (vsll, vsll); | |
1347 | CMPLE_U2DI vector_ngtuv2di {} | |
1348 | ||
1349 | const vsi __builtin_vsx_cmple_u4si (vsi, vsi); | |
1350 | CMPLE_U4SI vector_ngtuv4si {} | |
1351 | ||
1352 | const vss __builtin_vsx_cmple_u8hi (vss, vss); | |
1353 | CMPLE_U8HI vector_ngtuv8hi {} | |
1354 | ||
1355 | const vd __builtin_vsx_concat_2df (double, double); | |
1356 | CONCAT_2DF vsx_concat_v2df {} | |
1357 | ||
1358 | const vsll __builtin_vsx_concat_2di (signed long long, signed long long); | |
1359 | CONCAT_2DI vsx_concat_v2di {} | |
1360 | ||
1361 | const vd __builtin_vsx_cpsgndp (vd, vd); | |
1362 | CPSGNDP vector_copysignv2df3 {} | |
1363 | ||
1364 | const vf __builtin_vsx_cpsgnsp (vf, vf); | |
1365 | CPSGNSP vector_copysignv4sf3 {} | |
1366 | ||
1367 | const vsll __builtin_vsx_div_2di (vsll, vsll); | |
1368 | DIV_V2DI vsx_div_v2di {} | |
1369 | ||
1370 | const vd __builtin_vsx_doublee_v4sf (vf); | |
1371 | DOUBLEE_V4SF doubleev4sf2 {} | |
1372 | ||
1373 | const vd __builtin_vsx_doublee_v4si (vsi); | |
1374 | DOUBLEE_V4SI doubleev4si2 {} | |
1375 | ||
1376 | const vd __builtin_vsx_doubleh_v4sf (vf); | |
1377 | DOUBLEH_V4SF doublehv4sf2 {} | |
1378 | ||
1379 | const vd __builtin_vsx_doubleh_v4si (vsi); | |
1380 | DOUBLEH_V4SI doublehv4si2 {} | |
1381 | ||
1382 | const vd __builtin_vsx_doublel_v4sf (vf); | |
1383 | DOUBLEL_V4SF doublelv4sf2 {} | |
1384 | ||
1385 | const vd __builtin_vsx_doublel_v4si (vsi); | |
1386 | DOUBLEL_V4SI doublelv4si2 {} | |
1387 | ||
1388 | const vd __builtin_vsx_doubleo_v4sf (vf); | |
1389 | DOUBLEO_V4SF doubleov4sf2 {} | |
1390 | ||
1391 | const vd __builtin_vsx_doubleo_v4si (vsi); | |
1392 | DOUBLEO_V4SI doubleov4si2 {} | |
1393 | ||
1394 | const vf __builtin_vsx_floate_v2df (vd); | |
1395 | FLOATE_V2DF floatev2df {} | |
1396 | ||
1397 | const vf __builtin_vsx_floate_v2di (vsll); | |
1398 | FLOATE_V2DI floatev2di {} | |
1399 | ||
1400 | const vf __builtin_vsx_floato_v2df (vd); | |
1401 | FLOATO_V2DF floatov2df {} | |
1402 | ||
1403 | const vf __builtin_vsx_floato_v2di (vsll); | |
1404 | FLOATO_V2DI floatov2di {} | |
1405 | ||
1406 | pure vsq __builtin_vsx_ld_elemrev_v1ti (signed long, const void *); | |
1407 | LD_ELEMREV_V1TI vsx_ld_elemrev_v1ti {ldvec,endian} | |
1408 | ||
1409 | pure vd __builtin_vsx_ld_elemrev_v2df (signed long, const void *); | |
1410 | LD_ELEMREV_V2DF vsx_ld_elemrev_v2df {ldvec,endian} | |
1411 | ||
1412 | pure vsll __builtin_vsx_ld_elemrev_v2di (signed long, const void *); | |
1413 | LD_ELEMREV_V2DI vsx_ld_elemrev_v2di {ldvec,endian} | |
1414 | ||
1415 | pure vf __builtin_vsx_ld_elemrev_v4sf (signed long, const void *); | |
1416 | LD_ELEMREV_V4SF vsx_ld_elemrev_v4sf {ldvec,endian} | |
1417 | ||
1418 | pure vsi __builtin_vsx_ld_elemrev_v4si (signed long, const void *); | |
1419 | LD_ELEMREV_V4SI vsx_ld_elemrev_v4si {ldvec,endian} | |
1420 | ||
1421 | pure vss __builtin_vsx_ld_elemrev_v8hi (signed long, const void *); | |
1422 | LD_ELEMREV_V8HI vsx_ld_elemrev_v8hi {ldvec,endian} | |
1423 | ||
1424 | pure vsc __builtin_vsx_ld_elemrev_v16qi (signed long, const void *); | |
1425 | LD_ELEMREV_V16QI vsx_ld_elemrev_v16qi {ldvec,endian} | |
1426 | ||
cd427e17 WS |
1427 | ; TODO: There was apparent intent in the rs6000-builtin.def to |
1428 | ; have SPECIAL processing for LXSDX, LXVDSX, and STXSDX, but there are | |
1429 | ; no def_builtin calls for any of them. That file was removed as part | |
1430 | ; of the BIF rewrite, but at some point, we may want to add a | |
ba6aa474 BS |
1431 | ; set of built-ins for whichever vector types make sense for these. |
1432 | ||
1433 | pure vsq __builtin_vsx_lxvd2x_v1ti (signed long, const void *); | |
1434 | LXVD2X_V1TI vsx_load_v1ti {ldvec} | |
1435 | ||
1436 | pure vd __builtin_vsx_lxvd2x_v2df (signed long, const void *); | |
1437 | LXVD2X_V2DF vsx_load_v2df {ldvec} | |
1438 | ||
1439 | pure vsll __builtin_vsx_lxvd2x_v2di (signed long, const void *); | |
1440 | LXVD2X_V2DI vsx_load_v2di {ldvec} | |
1441 | ||
1442 | pure vsc __builtin_vsx_lxvw4x_v16qi (signed long, const void *); | |
1443 | LXVW4X_V16QI vsx_load_v16qi {ldvec} | |
1444 | ||
1445 | pure vf __builtin_vsx_lxvw4x_v4sf (signed long, const void *); | |
1446 | LXVW4X_V4SF vsx_load_v4sf {ldvec} | |
1447 | ||
1448 | pure vsi __builtin_vsx_lxvw4x_v4si (signed long, const void *); | |
1449 | LXVW4X_V4SI vsx_load_v4si {ldvec} | |
1450 | ||
1451 | pure vss __builtin_vsx_lxvw4x_v8hi (signed long, const void *); | |
1452 | LXVW4X_V8HI vsx_load_v8hi {ldvec} | |
1453 | ||
1454 | const vd __builtin_vsx_mergeh_2df (vd, vd); | |
1455 | VEC_MERGEH_V2DF vsx_mergeh_v2df {} | |
1456 | ||
1457 | const vsll __builtin_vsx_mergeh_2di (vsll, vsll); | |
1458 | VEC_MERGEH_V2DI vsx_mergeh_v2di {} | |
1459 | ||
1460 | const vd __builtin_vsx_mergel_2df (vd, vd); | |
1461 | VEC_MERGEL_V2DF vsx_mergel_v2df {} | |
1462 | ||
1463 | const vsll __builtin_vsx_mergel_2di (vsll, vsll); | |
1464 | VEC_MERGEL_V2DI vsx_mergel_v2di {} | |
1465 | ||
1466 | const vsll __builtin_vsx_mul_2di (vsll, vsll); | |
1467 | MUL_V2DI vsx_mul_v2di {} | |
1468 | ||
1469 | const vsq __builtin_vsx_set_1ti (vsq, signed __int128, const int<0,0>); | |
1470 | SET_1TI vsx_set_v1ti {set} | |
1471 | ||
1472 | const vd __builtin_vsx_set_2df (vd, double, const int<0,1>); | |
1473 | SET_2DF vsx_set_v2df {set} | |
1474 | ||
1475 | const vsll __builtin_vsx_set_2di (vsll, signed long long, const int<0,1>); | |
1476 | SET_2DI vsx_set_v2di {set} | |
1477 | ||
1478 | const vd __builtin_vsx_splat_2df (double); | |
1479 | SPLAT_2DF vsx_splat_v2df {} | |
1480 | ||
1481 | const vsll __builtin_vsx_splat_2di (signed long long); | |
1482 | SPLAT_2DI vsx_splat_v2di {} | |
1483 | ||
1484 | void __builtin_vsx_st_elemrev_v1ti (vsq, signed long, void *); | |
1485 | ST_ELEMREV_V1TI vsx_st_elemrev_v1ti {stvec,endian} | |
1486 | ||
1487 | void __builtin_vsx_st_elemrev_v2df (vd, signed long, void *); | |
1488 | ST_ELEMREV_V2DF vsx_st_elemrev_v2df {stvec,endian} | |
1489 | ||
1490 | void __builtin_vsx_st_elemrev_v2di (vsll, signed long, void *); | |
1491 | ST_ELEMREV_V2DI vsx_st_elemrev_v2di {stvec,endian} | |
1492 | ||
1493 | void __builtin_vsx_st_elemrev_v4sf (vf, signed long, void *); | |
1494 | ST_ELEMREV_V4SF vsx_st_elemrev_v4sf {stvec,endian} | |
1495 | ||
1496 | void __builtin_vsx_st_elemrev_v4si (vsi, signed long, void *); | |
1497 | ST_ELEMREV_V4SI vsx_st_elemrev_v4si {stvec,endian} | |
1498 | ||
1499 | void __builtin_vsx_st_elemrev_v8hi (vss, signed long, void *); | |
1500 | ST_ELEMREV_V8HI vsx_st_elemrev_v8hi {stvec,endian} | |
1501 | ||
1502 | void __builtin_vsx_st_elemrev_v16qi (vsc, signed long, void *); | |
1503 | ST_ELEMREV_V16QI vsx_st_elemrev_v16qi {stvec,endian} | |
1504 | ||
1505 | void __builtin_vsx_stxvd2x_v1ti (vsq, signed long, void *); | |
1506 | STXVD2X_V1TI vsx_store_v1ti {stvec} | |
1507 | ||
1508 | void __builtin_vsx_stxvd2x_v2df (vd, signed long, void *); | |
1509 | STXVD2X_V2DF vsx_store_v2df {stvec} | |
1510 | ||
1511 | void __builtin_vsx_stxvd2x_v2di (vsll, signed long, void *); | |
1512 | STXVD2X_V2DI vsx_store_v2di {stvec} | |
1513 | ||
1514 | void __builtin_vsx_stxvw4x_v4sf (vf, signed long, void *); | |
1515 | STXVW4X_V4SF vsx_store_v4sf {stvec} | |
1516 | ||
1517 | void __builtin_vsx_stxvw4x_v4si (vsi, signed long, void *); | |
1518 | STXVW4X_V4SI vsx_store_v4si {stvec} | |
1519 | ||
1520 | void __builtin_vsx_stxvw4x_v8hi (vss, signed long, void *); | |
1521 | STXVW4X_V8HI vsx_store_v8hi {stvec} | |
1522 | ||
1523 | void __builtin_vsx_stxvw4x_v16qi (vsc, signed long, void *); | |
1524 | STXVW4X_V16QI vsx_store_v16qi {stvec} | |
1525 | ||
1526 | const vull __builtin_vsx_udiv_2di (vull, vull); | |
1527 | UDIV_V2DI vsx_udiv_v2di {} | |
1528 | ||
1529 | const vd __builtin_vsx_uns_doublee_v4si (vsi); | |
1530 | UNS_DOUBLEE_V4SI unsdoubleev4si2 {} | |
1531 | ||
1532 | const vd __builtin_vsx_uns_doubleh_v4si (vsi); | |
1533 | UNS_DOUBLEH_V4SI unsdoublehv4si2 {} | |
1534 | ||
1535 | const vd __builtin_vsx_uns_doublel_v4si (vsi); | |
1536 | UNS_DOUBLEL_V4SI unsdoublelv4si2 {} | |
1537 | ||
1538 | const vd __builtin_vsx_uns_doubleo_v4si (vsi); | |
1539 | UNS_DOUBLEO_V4SI unsdoubleov4si2 {} | |
1540 | ||
1541 | const vf __builtin_vsx_uns_floate_v2di (vsll); | |
1542 | UNS_FLOATE_V2DI unsfloatev2di {} | |
1543 | ||
1544 | const vf __builtin_vsx_uns_floato_v2di (vsll); | |
1545 | UNS_FLOATO_V2DI unsfloatov2di {} | |
1546 | ||
1547 | ; These are duplicates of __builtin_altivec_* counterparts, and are being | |
1548 | ; kept for backwards compatibility. The reason for their existence is | |
1549 | ; unclear. TODO: Consider deprecation/removal at some point. | |
1550 | const vsc __builtin_vsx_vperm_16qi (vsc, vsc, vuc); | |
1551 | VPERM_16QI_X altivec_vperm_v16qi {} | |
1552 | ||
1553 | const vuc __builtin_vsx_vperm_16qi_uns (vuc, vuc, vuc); | |
1554 | VPERM_16QI_UNS_X altivec_vperm_v16qi_uns {} | |
1555 | ||
1556 | const vsq __builtin_vsx_vperm_1ti (vsq, vsq, vsc); | |
1557 | VPERM_1TI_X altivec_vperm_v1ti {} | |
1558 | ||
1559 | const vsq __builtin_vsx_vperm_1ti_uns (vsq, vsq, vsc); | |
1560 | VPERM_1TI_UNS_X altivec_vperm_v1ti_uns {} | |
1561 | ||
1562 | const vd __builtin_vsx_vperm_2df (vd, vd, vuc); | |
1563 | VPERM_2DF_X altivec_vperm_v2df {} | |
1564 | ||
1565 | const vsll __builtin_vsx_vperm_2di (vsll, vsll, vuc); | |
1566 | VPERM_2DI_X altivec_vperm_v2di {} | |
1567 | ||
1568 | const vull __builtin_vsx_vperm_2di_uns (vull, vull, vuc); | |
1569 | VPERM_2DI_UNS_X altivec_vperm_v2di_uns {} | |
1570 | ||
1571 | const vf __builtin_vsx_vperm_4sf (vf, vf, vuc); | |
1572 | VPERM_4SF_X altivec_vperm_v4sf {} | |
1573 | ||
1574 | const vsi __builtin_vsx_vperm_4si (vsi, vsi, vuc); | |
1575 | VPERM_4SI_X altivec_vperm_v4si {} | |
1576 | ||
1577 | const vui __builtin_vsx_vperm_4si_uns (vui, vui, vuc); | |
1578 | VPERM_4SI_UNS_X altivec_vperm_v4si_uns {} | |
1579 | ||
1580 | const vss __builtin_vsx_vperm_8hi (vss, vss, vuc); | |
1581 | VPERM_8HI_X altivec_vperm_v8hi {} | |
1582 | ||
1583 | const vus __builtin_vsx_vperm_8hi_uns (vus, vus, vuc); | |
1584 | VPERM_8HI_UNS_X altivec_vperm_v8hi_uns {} | |
1585 | ||
1586 | const vsll __builtin_vsx_vsigned_v2df (vd); | |
1587 | VEC_VSIGNED_V2DF vsx_xvcvdpsxds {} | |
1588 | ||
1589 | const vsi __builtin_vsx_vsigned_v4sf (vf); | |
1590 | VEC_VSIGNED_V4SF vsx_xvcvspsxws {} | |
1591 | ||
1592 | const vsi __builtin_vsx_vsignede_v2df (vd); | |
1593 | VEC_VSIGNEDE_V2DF vsignede_v2df {} | |
1594 | ||
1595 | const vsi __builtin_vsx_vsignedo_v2df (vd); | |
1596 | VEC_VSIGNEDO_V2DF vsignedo_v2df {} | |
1597 | ||
1598 | const vsll __builtin_vsx_vunsigned_v2df (vd); | |
1599 | VEC_VUNSIGNED_V2DF vsx_xvcvdpsxds {} | |
1600 | ||
1601 | const vsi __builtin_vsx_vunsigned_v4sf (vf); | |
1602 | VEC_VUNSIGNED_V4SF vsx_xvcvspsxws {} | |
1603 | ||
1604 | const vsi __builtin_vsx_vunsignede_v2df (vd); | |
1605 | VEC_VUNSIGNEDE_V2DF vunsignede_v2df {} | |
1606 | ||
1607 | const vsi __builtin_vsx_vunsignedo_v2df (vd); | |
1608 | VEC_VUNSIGNEDO_V2DF vunsignedo_v2df {} | |
1609 | ||
1610 | const vf __builtin_vsx_xscvdpsp (double); | |
1611 | XSCVDPSP vsx_xscvdpsp {} | |
1612 | ||
1613 | const double __builtin_vsx_xscvspdp (vf); | |
1614 | XSCVSPDP vsx_xscvspdp {} | |
1615 | ||
1616 | const double __builtin_vsx_xsmaxdp (double, double); | |
1617 | XSMAXDP smaxdf3 {} | |
1618 | ||
1619 | const double __builtin_vsx_xsmindp (double, double); | |
1620 | XSMINDP smindf3 {} | |
1621 | ||
1622 | const double __builtin_vsx_xsrdpi (double); | |
1623 | XSRDPI vsx_xsrdpi {} | |
1624 | ||
1625 | const double __builtin_vsx_xsrdpic (double); | |
1626 | XSRDPIC vsx_xsrdpic {} | |
1627 | ||
1628 | const double __builtin_vsx_xsrdpim (double); | |
1629 | XSRDPIM floordf2 {} | |
1630 | ||
1631 | const double __builtin_vsx_xsrdpip (double); | |
1632 | XSRDPIP ceildf2 {} | |
1633 | ||
1634 | const double __builtin_vsx_xsrdpiz (double); | |
1635 | XSRDPIZ btruncdf2 {} | |
1636 | ||
1637 | const signed int __builtin_vsx_xstdivdp_fe (double, double); | |
1638 | XSTDIVDP_FE vsx_tdivdf3_fe {} | |
1639 | ||
1640 | const signed int __builtin_vsx_xstdivdp_fg (double, double); | |
1641 | XSTDIVDP_FG vsx_tdivdf3_fg {} | |
1642 | ||
1643 | const signed int __builtin_vsx_xstsqrtdp_fe (double); | |
1644 | XSTSQRTDP_FE vsx_tsqrtdf2_fe {} | |
1645 | ||
1646 | const signed int __builtin_vsx_xstsqrtdp_fg (double); | |
1647 | XSTSQRTDP_FG vsx_tsqrtdf2_fg {} | |
1648 | ||
1649 | const vd __builtin_vsx_xvabsdp (vd); | |
1650 | XVABSDP absv2df2 {} | |
1651 | ||
1652 | const vf __builtin_vsx_xvabssp (vf); | |
1653 | XVABSSP absv4sf2 {} | |
1654 | ||
1655 | fpmath vd __builtin_vsx_xvadddp (vd, vd); | |
1656 | XVADDDP addv2df3 {} | |
1657 | ||
1658 | fpmath vf __builtin_vsx_xvaddsp (vf, vf); | |
1659 | XVADDSP addv4sf3 {} | |
1660 | ||
1661 | const vd __builtin_vsx_xvcmpeqdp (vd, vd); | |
1662 | XVCMPEQDP vector_eqv2df {} | |
1663 | ||
1664 | const signed int __builtin_vsx_xvcmpeqdp_p (signed int, vd, vd); | |
1665 | XVCMPEQDP_P vector_eq_v2df_p {pred} | |
1666 | ||
1667 | const vf __builtin_vsx_xvcmpeqsp (vf, vf); | |
1668 | XVCMPEQSP vector_eqv4sf {} | |
1669 | ||
1670 | const signed int __builtin_vsx_xvcmpeqsp_p (signed int, vf, vf); | |
1671 | XVCMPEQSP_P vector_eq_v4sf_p {pred} | |
1672 | ||
1673 | const vd __builtin_vsx_xvcmpgedp (vd, vd); | |
1674 | XVCMPGEDP vector_gev2df {} | |
1675 | ||
1676 | const signed int __builtin_vsx_xvcmpgedp_p (signed int, vd, vd); | |
1677 | XVCMPGEDP_P vector_ge_v2df_p {pred} | |
1678 | ||
1679 | const vf __builtin_vsx_xvcmpgesp (vf, vf); | |
1680 | XVCMPGESP vector_gev4sf {} | |
1681 | ||
1682 | const signed int __builtin_vsx_xvcmpgesp_p (signed int, vf, vf); | |
1683 | XVCMPGESP_P vector_ge_v4sf_p {pred} | |
1684 | ||
1685 | const vd __builtin_vsx_xvcmpgtdp (vd, vd); | |
1686 | XVCMPGTDP vector_gtv2df {} | |
1687 | ||
1688 | const signed int __builtin_vsx_xvcmpgtdp_p (signed int, vd, vd); | |
1689 | XVCMPGTDP_P vector_gt_v2df_p {pred} | |
1690 | ||
1691 | const vf __builtin_vsx_xvcmpgtsp (vf, vf); | |
1692 | XVCMPGTSP vector_gtv4sf {} | |
1693 | ||
1694 | const signed int __builtin_vsx_xvcmpgtsp_p (signed int, vf, vf); | |
1695 | XVCMPGTSP_P vector_gt_v4sf_p {pred} | |
1696 | ||
1697 | const vf __builtin_vsx_xvcvdpsp (vd); | |
1698 | XVCVDPSP vsx_xvcvdpsp {} | |
1699 | ||
1700 | const vsll __builtin_vsx_xvcvdpsxds (vd); | |
1701 | XVCVDPSXDS vsx_fix_truncv2dfv2di2 {} | |
1702 | ||
1703 | const vsll __builtin_vsx_xvcvdpsxds_scale (vd, const int); | |
1704 | XVCVDPSXDS_SCALE vsx_xvcvdpsxds_scale {} | |
1705 | ||
1706 | const vsi __builtin_vsx_xvcvdpsxws (vd); | |
1707 | XVCVDPSXWS vsx_xvcvdpsxws {} | |
1708 | ||
1709 | const vsll __builtin_vsx_xvcvdpuxds (vd); | |
1710 | XVCVDPUXDS vsx_fixuns_truncv2dfv2di2 {} | |
1711 | ||
1712 | const vsll __builtin_vsx_xvcvdpuxds_scale (vd, const int); | |
1713 | XVCVDPUXDS_SCALE vsx_xvcvdpuxds_scale {} | |
1714 | ||
1715 | const vull __builtin_vsx_xvcvdpuxds_uns (vd); | |
1716 | XVCVDPUXDS_UNS vsx_fixuns_truncv2dfv2di2 {} | |
1717 | ||
1718 | const vsi __builtin_vsx_xvcvdpuxws (vd); | |
1719 | XVCVDPUXWS vsx_xvcvdpuxws {} | |
1720 | ||
1721 | const vd __builtin_vsx_xvcvspdp (vf); | |
1722 | XVCVSPDP vsx_xvcvspdp {} | |
1723 | ||
1724 | const vsll __builtin_vsx_xvcvspsxds (vf); | |
1725 | XVCVSPSXDS vsx_xvcvspsxds {} | |
1726 | ||
1727 | const vsi __builtin_vsx_xvcvspsxws (vf); | |
1728 | XVCVSPSXWS vsx_fix_truncv4sfv4si2 {} | |
1729 | ||
1730 | const vsll __builtin_vsx_xvcvspuxds (vf); | |
1731 | XVCVSPUXDS vsx_xvcvspuxds {} | |
1732 | ||
1733 | const vsi __builtin_vsx_xvcvspuxws (vf); | |
1734 | XVCVSPUXWS vsx_fixuns_truncv4sfv4si2 {} | |
1735 | ||
1736 | const vd __builtin_vsx_xvcvsxddp (vsll); | |
1737 | XVCVSXDDP vsx_floatv2div2df2 {} | |
1738 | ||
1739 | const vd __builtin_vsx_xvcvsxddp_scale (vsll, const int<5>); | |
1740 | XVCVSXDDP_SCALE vsx_xvcvsxddp_scale {} | |
1741 | ||
1742 | const vf __builtin_vsx_xvcvsxdsp (vsll); | |
1743 | XVCVSXDSP vsx_xvcvsxdsp {} | |
1744 | ||
1745 | const vd __builtin_vsx_xvcvsxwdp (vsi); | |
1746 | XVCVSXWDP vsx_xvcvsxwdp {} | |
1747 | ||
1748 | const vf __builtin_vsx_xvcvsxwsp (vsi); | |
1749 | XVCVSXWSP vsx_floatv4siv4sf2 {} | |
1750 | ||
1751 | const vd __builtin_vsx_xvcvuxddp (vsll); | |
1752 | XVCVUXDDP vsx_floatunsv2div2df2 {} | |
1753 | ||
1754 | const vd __builtin_vsx_xvcvuxddp_scale (vsll, const int<5>); | |
1755 | XVCVUXDDP_SCALE vsx_xvcvuxddp_scale {} | |
1756 | ||
1757 | const vd __builtin_vsx_xvcvuxddp_uns (vull); | |
1758 | XVCVUXDDP_UNS vsx_floatunsv2div2df2 {} | |
1759 | ||
1760 | const vf __builtin_vsx_xvcvuxdsp (vull); | |
1761 | XVCVUXDSP vsx_xvcvuxdsp {} | |
1762 | ||
1763 | const vd __builtin_vsx_xvcvuxwdp (vsi); | |
1764 | XVCVUXWDP vsx_xvcvuxwdp {} | |
1765 | ||
1766 | const vf __builtin_vsx_xvcvuxwsp (vsi); | |
1767 | XVCVUXWSP vsx_floatunsv4siv4sf2 {} | |
1768 | ||
1769 | fpmath vd __builtin_vsx_xvdivdp (vd, vd); | |
1770 | XVDIVDP divv2df3 {} | |
1771 | ||
1772 | fpmath vf __builtin_vsx_xvdivsp (vf, vf); | |
1773 | XVDIVSP divv4sf3 {} | |
1774 | ||
1775 | const vd __builtin_vsx_xvmadddp (vd, vd, vd); | |
1776 | XVMADDDP fmav2df4 {} | |
1777 | ||
1778 | const vf __builtin_vsx_xvmaddsp (vf, vf, vf); | |
1779 | XVMADDSP fmav4sf4 {} | |
1780 | ||
1781 | const vd __builtin_vsx_xvmaxdp (vd, vd); | |
1782 | XVMAXDP smaxv2df3 {} | |
1783 | ||
1784 | const vf __builtin_vsx_xvmaxsp (vf, vf); | |
1785 | XVMAXSP smaxv4sf3 {} | |
1786 | ||
1787 | const vd __builtin_vsx_xvmindp (vd, vd); | |
1788 | XVMINDP sminv2df3 {} | |
1789 | ||
1790 | const vf __builtin_vsx_xvminsp (vf, vf); | |
1791 | XVMINSP sminv4sf3 {} | |
1792 | ||
1793 | const vd __builtin_vsx_xvmsubdp (vd, vd, vd); | |
1794 | XVMSUBDP fmsv2df4 {} | |
1795 | ||
1796 | const vf __builtin_vsx_xvmsubsp (vf, vf, vf); | |
1797 | XVMSUBSP fmsv4sf4 {} | |
1798 | ||
1799 | fpmath vd __builtin_vsx_xvmuldp (vd, vd); | |
1800 | XVMULDP mulv2df3 {} | |
1801 | ||
1802 | fpmath vf __builtin_vsx_xvmulsp (vf, vf); | |
1803 | XVMULSP mulv4sf3 {} | |
1804 | ||
1805 | const vd __builtin_vsx_xvnabsdp (vd); | |
1806 | XVNABSDP vsx_nabsv2df2 {} | |
1807 | ||
1808 | const vf __builtin_vsx_xvnabssp (vf); | |
1809 | XVNABSSP vsx_nabsv4sf2 {} | |
1810 | ||
1811 | const vd __builtin_vsx_xvnegdp (vd); | |
1812 | XVNEGDP negv2df2 {} | |
1813 | ||
1814 | const vf __builtin_vsx_xvnegsp (vf); | |
1815 | XVNEGSP negv4sf2 {} | |
1816 | ||
1817 | const vd __builtin_vsx_xvnmadddp (vd, vd, vd); | |
1818 | XVNMADDDP nfmav2df4 {} | |
1819 | ||
1820 | const vf __builtin_vsx_xvnmaddsp (vf, vf, vf); | |
1821 | XVNMADDSP nfmav4sf4 {} | |
1822 | ||
1823 | const vd __builtin_vsx_xvnmsubdp (vd, vd, vd); | |
1824 | XVNMSUBDP nfmsv2df4 {} | |
1825 | ||
1826 | const vf __builtin_vsx_xvnmsubsp (vf, vf, vf); | |
1827 | XVNMSUBSP nfmsv4sf4 {} | |
1828 | ||
1829 | const vd __builtin_vsx_xvrdpi (vd); | |
1830 | XVRDPI vsx_xvrdpi {} | |
1831 | ||
1832 | const vd __builtin_vsx_xvrdpic (vd); | |
1833 | XVRDPIC vsx_xvrdpic {} | |
1834 | ||
1835 | const vd __builtin_vsx_xvrdpim (vd); | |
1836 | XVRDPIM vsx_floorv2df2 {} | |
1837 | ||
1838 | const vd __builtin_vsx_xvrdpip (vd); | |
1839 | XVRDPIP vsx_ceilv2df2 {} | |
1840 | ||
1841 | const vd __builtin_vsx_xvrdpiz (vd); | |
1842 | XVRDPIZ vsx_btruncv2df2 {} | |
1843 | ||
1844 | fpmath vd __builtin_vsx_xvrecipdivdp (vd, vd); | |
1845 | RECIP_V2DF recipv2df3 {} | |
1846 | ||
1847 | fpmath vf __builtin_vsx_xvrecipdivsp (vf, vf); | |
1848 | RECIP_V4SF recipv4sf3 {} | |
1849 | ||
1850 | const vd __builtin_vsx_xvredp (vd); | |
1851 | XVREDP vsx_frev2df2 {} | |
1852 | ||
1853 | const vf __builtin_vsx_xvresp (vf); | |
1854 | XVRESP vsx_frev4sf2 {} | |
1855 | ||
1856 | const vf __builtin_vsx_xvrspi (vf); | |
1857 | XVRSPI vsx_xvrspi {} | |
1858 | ||
1859 | const vf __builtin_vsx_xvrspic (vf); | |
1860 | XVRSPIC vsx_xvrspic {} | |
1861 | ||
1862 | const vf __builtin_vsx_xvrspim (vf); | |
1863 | XVRSPIM vsx_floorv4sf2 {} | |
1864 | ||
1865 | const vf __builtin_vsx_xvrspip (vf); | |
1866 | XVRSPIP vsx_ceilv4sf2 {} | |
1867 | ||
1868 | const vf __builtin_vsx_xvrspiz (vf); | |
1869 | XVRSPIZ vsx_btruncv4sf2 {} | |
1870 | ||
1871 | const vd __builtin_vsx_xvrsqrtdp (vd); | |
1872 | RSQRT_2DF rsqrtv2df2 {} | |
1873 | ||
1874 | const vf __builtin_vsx_xvrsqrtsp (vf); | |
1875 | RSQRT_4SF rsqrtv4sf2 {} | |
1876 | ||
1877 | const vd __builtin_vsx_xvrsqrtedp (vd); | |
1878 | XVRSQRTEDP rsqrtev2df2 {} | |
1879 | ||
1880 | const vf __builtin_vsx_xvrsqrtesp (vf); | |
1881 | XVRSQRTESP rsqrtev4sf2 {} | |
1882 | ||
1883 | const vd __builtin_vsx_xvsqrtdp (vd); | |
1884 | XVSQRTDP sqrtv2df2 {} | |
1885 | ||
1886 | const vf __builtin_vsx_xvsqrtsp (vf); | |
1887 | XVSQRTSP sqrtv4sf2 {} | |
1888 | ||
1889 | fpmath vd __builtin_vsx_xvsubdp (vd, vd); | |
1890 | XVSUBDP subv2df3 {} | |
1891 | ||
1892 | fpmath vf __builtin_vsx_xvsubsp (vf, vf); | |
1893 | XVSUBSP subv4sf3 {} | |
1894 | ||
1895 | const signed int __builtin_vsx_xvtdivdp_fe (vd, vd); | |
1896 | XVTDIVDP_FE vsx_tdivv2df3_fe {} | |
1897 | ||
1898 | const signed int __builtin_vsx_xvtdivdp_fg (vd, vd); | |
1899 | XVTDIVDP_FG vsx_tdivv2df3_fg {} | |
1900 | ||
1901 | const signed int __builtin_vsx_xvtdivsp_fe (vf, vf); | |
1902 | XVTDIVSP_FE vsx_tdivv4sf3_fe {} | |
1903 | ||
1904 | const signed int __builtin_vsx_xvtdivsp_fg (vf, vf); | |
1905 | XVTDIVSP_FG vsx_tdivv4sf3_fg {} | |
1906 | ||
1907 | const signed int __builtin_vsx_xvtsqrtdp_fe (vd); | |
1908 | XVTSQRTDP_FE vsx_tsqrtv2df2_fe {} | |
1909 | ||
1910 | const signed int __builtin_vsx_xvtsqrtdp_fg (vd); | |
1911 | XVTSQRTDP_FG vsx_tsqrtv2df2_fg {} | |
1912 | ||
1913 | const signed int __builtin_vsx_xvtsqrtsp_fe (vf); | |
1914 | XVTSQRTSP_FE vsx_tsqrtv4sf2_fe {} | |
1915 | ||
1916 | const signed int __builtin_vsx_xvtsqrtsp_fg (vf); | |
1917 | XVTSQRTSP_FG vsx_tsqrtv4sf2_fg {} | |
1918 | ||
1919 | const vf __builtin_vsx_xxmrghw (vf, vf); | |
1920 | XXMRGHW_4SF vsx_xxmrghw_v4sf {} | |
1921 | ||
1922 | const vsi __builtin_vsx_xxmrghw_4si (vsi, vsi); | |
1923 | XXMRGHW_4SI vsx_xxmrghw_v4si {} | |
1924 | ||
1925 | const vf __builtin_vsx_xxmrglw (vf, vf); | |
1926 | XXMRGLW_4SF vsx_xxmrglw_v4sf {} | |
1927 | ||
1928 | const vsi __builtin_vsx_xxmrglw_4si (vsi, vsi); | |
1929 | XXMRGLW_4SI vsx_xxmrglw_v4si {} | |
1930 | ||
1931 | const vsc __builtin_vsx_xxpermdi_16qi (vsc, vsc, const int<2>); | |
1932 | XXPERMDI_16QI vsx_xxpermdi_v16qi {} | |
1933 | ||
1934 | const vsq __builtin_vsx_xxpermdi_1ti (vsq, vsq, const int<2>); | |
1935 | XXPERMDI_1TI vsx_xxpermdi_v1ti {} | |
1936 | ||
1937 | const vd __builtin_vsx_xxpermdi_2df (vd, vd, const int<2>); | |
1938 | XXPERMDI_2DF vsx_xxpermdi_v2df {} | |
1939 | ||
1940 | const vsll __builtin_vsx_xxpermdi_2di (vsll, vsll, const int<2>); | |
1941 | XXPERMDI_2DI vsx_xxpermdi_v2di {} | |
1942 | ||
1943 | const vf __builtin_vsx_xxpermdi_4sf (vf, vf, const int<2>); | |
1944 | XXPERMDI_4SF vsx_xxpermdi_v4sf {} | |
1945 | ||
1946 | const vsi __builtin_vsx_xxpermdi_4si (vsi, vsi, const int<2>); | |
1947 | XXPERMDI_4SI vsx_xxpermdi_v4si {} | |
1948 | ||
1949 | const vss __builtin_vsx_xxpermdi_8hi (vss, vss, const int<2>); | |
1950 | XXPERMDI_8HI vsx_xxpermdi_v8hi {} | |
1951 | ||
1952 | const vsc __builtin_vsx_xxsel_16qi (vsc, vsc, vsc); | |
1953 | XXSEL_16QI vector_select_v16qi {} | |
1954 | ||
1955 | const vuc __builtin_vsx_xxsel_16qi_uns (vuc, vuc, vuc); | |
1956 | XXSEL_16QI_UNS vector_select_v16qi_uns {} | |
1957 | ||
1958 | const vsq __builtin_vsx_xxsel_1ti (vsq, vsq, vsq); | |
1959 | XXSEL_1TI vector_select_v1ti {} | |
1960 | ||
1961 | const vsq __builtin_vsx_xxsel_1ti_uns (vsq, vsq, vsq); | |
1962 | XXSEL_1TI_UNS vector_select_v1ti_uns {} | |
1963 | ||
1964 | const vd __builtin_vsx_xxsel_2df (vd, vd, vd); | |
1965 | XXSEL_2DF vector_select_v2df {} | |
1966 | ||
1967 | const vsll __builtin_vsx_xxsel_2di (vsll, vsll, vsll); | |
1968 | XXSEL_2DI vector_select_v2di {} | |
1969 | ||
1970 | const vull __builtin_vsx_xxsel_2di_uns (vull, vull, vull); | |
1971 | XXSEL_2DI_UNS vector_select_v2di_uns {} | |
1972 | ||
1973 | const vf __builtin_vsx_xxsel_4sf (vf, vf, vf); | |
1974 | XXSEL_4SF vector_select_v4sf {} | |
1975 | ||
1976 | const vsi __builtin_vsx_xxsel_4si (vsi, vsi, vsi); | |
1977 | XXSEL_4SI vector_select_v4si {} | |
1978 | ||
1979 | const vui __builtin_vsx_xxsel_4si_uns (vui, vui, vui); | |
1980 | XXSEL_4SI_UNS vector_select_v4si_uns {} | |
1981 | ||
1982 | const vss __builtin_vsx_xxsel_8hi (vss, vss, vss); | |
1983 | XXSEL_8HI vector_select_v8hi {} | |
1984 | ||
1985 | const vus __builtin_vsx_xxsel_8hi_uns (vus, vus, vus); | |
1986 | XXSEL_8HI_UNS vector_select_v8hi_uns {} | |
1987 | ||
1988 | const vsc __builtin_vsx_xxsldwi_16qi (vsc, vsc, const int<2>); | |
1989 | XXSLDWI_16QI vsx_xxsldwi_v16qi {} | |
1990 | ||
1991 | const vd __builtin_vsx_xxsldwi_2df (vd, vd, const int<2>); | |
1992 | XXSLDWI_2DF vsx_xxsldwi_v2df {} | |
1993 | ||
1994 | const vsll __builtin_vsx_xxsldwi_2di (vsll, vsll, const int<2>); | |
1995 | XXSLDWI_2DI vsx_xxsldwi_v2di {} | |
1996 | ||
1997 | const vf __builtin_vsx_xxsldwi_4sf (vf, vf, const int<2>); | |
1998 | XXSLDWI_4SF vsx_xxsldwi_v4sf {} | |
1999 | ||
2000 | const vsi __builtin_vsx_xxsldwi_4si (vsi, vsi, const int<2>); | |
2001 | XXSLDWI_4SI vsx_xxsldwi_v4si {} | |
2002 | ||
2003 | const vss __builtin_vsx_xxsldwi_8hi (vss, vss, const int<2>); | |
2004 | XXSLDWI_8HI vsx_xxsldwi_v8hi {} | |
2005 | ||
2006 | const vd __builtin_vsx_xxspltd_2df (vd, const int<1>); | |
2007 | XXSPLTD_V2DF vsx_xxspltd_v2df {} | |
2008 | ||
2009 | const vsll __builtin_vsx_xxspltd_2di (vsll, const int<1>); | |
2010 | XXSPLTD_V2DI vsx_xxspltd_v2di {} | |
fce8a52d BS |
2011 | |
2012 | ||
2013 | ; Power7 builtins (ISA 2.06). | |
2014 | [power7] | |
2015 | const unsigned int __builtin_addg6s (unsigned int, unsigned int); | |
2016 | ADDG6S addg6s {} | |
2017 | ||
2018 | const signed long __builtin_bpermd (signed long, signed long); | |
d0823635 | 2019 | BPERMD bpermd_di {32bit} |
fce8a52d BS |
2020 | |
2021 | const unsigned int __builtin_cbcdtd (unsigned int); | |
2022 | CBCDTD cbcdtd {} | |
2023 | ||
2024 | const unsigned int __builtin_cdtbcd (unsigned int); | |
2025 | CDTBCD cdtbcd {} | |
2026 | ||
2027 | const signed int __builtin_divwe (signed int, signed int); | |
2028 | DIVWE dive_si {} | |
2029 | ||
2030 | const unsigned int __builtin_divweu (unsigned int, unsigned int); | |
2031 | DIVWEU diveu_si {} | |
2032 | ||
206c08ce BS |
2033 | const vsq __builtin_pack_vector_int128 (unsigned long long, \ |
2034 | unsigned long long); | |
fce8a52d BS |
2035 | PACK_V1TI packv1ti {} |
2036 | ||
2037 | void __builtin_ppc_speculation_barrier (); | |
2038 | SPECBARR speculation_barrier {} | |
2039 | ||
2040 | const unsigned long __builtin_unpack_vector_int128 (vsq, const int<1>); | |
2041 | UNPACK_V1TI unpackv1ti {} | |
2042 | ||
2043 | ||
2044 | ; Power7 builtins requiring 64-bit GPRs (even with 32-bit addressing). | |
2045 | [power7-64] | |
2046 | const signed long long __builtin_divde (signed long long, signed long long); | |
2047 | DIVDE dive_di {} | |
2048 | ||
206c08ce BS |
2049 | const unsigned long long __builtin_divdeu (unsigned long long, \ |
2050 | unsigned long long); | |
fce8a52d | 2051 | DIVDEU diveu_di {} |
8ce18a29 BS |
2052 | |
2053 | ||
2054 | ; Power8 vector built-ins. | |
2055 | [power8-vector] | |
2056 | const vsll __builtin_altivec_abs_v2di (vsll); | |
2057 | ABS_V2DI absv2di2 {} | |
2058 | ||
2059 | const vsc __builtin_altivec_bcddiv10_v16qi (vsc); | |
2060 | BCDDIV10_V16QI bcddiv10_v16qi {} | |
2061 | ||
2062 | const vsc __builtin_altivec_bcdmul10_v16qi (vsc); | |
2063 | BCDMUL10_V16QI bcdmul10_v16qi {} | |
2064 | ||
2065 | const vsc __builtin_altivec_eqv_v16qi (vsc, vsc); | |
2066 | EQV_V16QI eqvv16qi3 {} | |
2067 | ||
2068 | const vuc __builtin_altivec_eqv_v16qi_uns (vuc, vuc); | |
2069 | EQV_V16QI_UNS eqvv16qi3 {} | |
2070 | ||
2071 | const vsq __builtin_altivec_eqv_v1ti (vsq, vsq); | |
2072 | EQV_V1TI eqvv1ti3 {} | |
2073 | ||
2074 | const vuq __builtin_altivec_eqv_v1ti_uns (vuq, vuq); | |
2075 | EQV_V1TI_UNS eqvv1ti3 {} | |
2076 | ||
2077 | const vd __builtin_altivec_eqv_v2df (vd, vd); | |
2078 | EQV_V2DF eqvv2df3 {} | |
2079 | ||
2080 | const vsll __builtin_altivec_eqv_v2di (vsll, vsll); | |
2081 | EQV_V2DI eqvv2di3 {} | |
2082 | ||
2083 | const vull __builtin_altivec_eqv_v2di_uns (vull, vull); | |
2084 | EQV_V2DI_UNS eqvv2di3 {} | |
2085 | ||
2086 | const vf __builtin_altivec_eqv_v4sf (vf, vf); | |
2087 | EQV_V4SF eqvv4sf3 {} | |
2088 | ||
2089 | const vsi __builtin_altivec_eqv_v4si (vsi, vsi); | |
2090 | EQV_V4SI eqvv4si3 {} | |
2091 | ||
2092 | const vui __builtin_altivec_eqv_v4si_uns (vui, vui); | |
2093 | EQV_V4SI_UNS eqvv4si3 {} | |
2094 | ||
2095 | const vss __builtin_altivec_eqv_v8hi (vss, vss); | |
2096 | EQV_V8HI eqvv8hi3 {} | |
2097 | ||
2098 | const vus __builtin_altivec_eqv_v8hi_uns (vus, vus); | |
2099 | EQV_V8HI_UNS eqvv8hi3 {} | |
2100 | ||
2101 | const vsc __builtin_altivec_nand_v16qi (vsc, vsc); | |
2102 | NAND_V16QI nandv16qi3 {} | |
2103 | ||
2104 | const vuc __builtin_altivec_nand_v16qi_uns (vuc, vuc); | |
2105 | NAND_V16QI_UNS nandv16qi3 {} | |
2106 | ||
2107 | const vsq __builtin_altivec_nand_v1ti (vsq, vsq); | |
2108 | NAND_V1TI nandv1ti3 {} | |
2109 | ||
2110 | const vuq __builtin_altivec_nand_v1ti_uns (vuq, vuq); | |
2111 | NAND_V1TI_UNS nandv1ti3 {} | |
2112 | ||
2113 | const vd __builtin_altivec_nand_v2df (vd, vd); | |
2114 | NAND_V2DF nandv2df3 {} | |
2115 | ||
2116 | const vsll __builtin_altivec_nand_v2di (vsll, vsll); | |
2117 | NAND_V2DI nandv2di3 {} | |
2118 | ||
2119 | const vull __builtin_altivec_nand_v2di_uns (vull, vull); | |
2120 | NAND_V2DI_UNS nandv2di3 {} | |
2121 | ||
2122 | const vf __builtin_altivec_nand_v4sf (vf, vf); | |
2123 | NAND_V4SF nandv4sf3 {} | |
2124 | ||
2125 | const vsi __builtin_altivec_nand_v4si (vsi, vsi); | |
2126 | NAND_V4SI nandv4si3 {} | |
2127 | ||
2128 | const vui __builtin_altivec_nand_v4si_uns (vui, vui); | |
2129 | NAND_V4SI_UNS nandv4si3 {} | |
2130 | ||
2131 | const vss __builtin_altivec_nand_v8hi (vss, vss); | |
2132 | NAND_V8HI nandv8hi3 {} | |
2133 | ||
2134 | const vus __builtin_altivec_nand_v8hi_uns (vus, vus); | |
2135 | NAND_V8HI_UNS nandv8hi3 {} | |
2136 | ||
39d2411c KL |
2137 | const vsll __builtin_altivec_neg_v2di (vsll); |
2138 | NEG_V2DI negv2di2 {} | |
2139 | ||
8ce18a29 BS |
2140 | const vsc __builtin_altivec_orc_v16qi (vsc, vsc); |
2141 | ORC_V16QI orcv16qi3 {} | |
2142 | ||
2143 | const vuc __builtin_altivec_orc_v16qi_uns (vuc, vuc); | |
2144 | ORC_V16QI_UNS orcv16qi3 {} | |
2145 | ||
2146 | const vsq __builtin_altivec_orc_v1ti (vsq, vsq); | |
2147 | ORC_V1TI orcv1ti3 {} | |
2148 | ||
2149 | const vuq __builtin_altivec_orc_v1ti_uns (vuq, vuq); | |
2150 | ORC_V1TI_UNS orcv1ti3 {} | |
2151 | ||
2152 | const vd __builtin_altivec_orc_v2df (vd, vd); | |
2153 | ORC_V2DF orcv2df3 {} | |
2154 | ||
2155 | const vsll __builtin_altivec_orc_v2di (vsll, vsll); | |
2156 | ORC_V2DI orcv2di3 {} | |
2157 | ||
2158 | const vull __builtin_altivec_orc_v2di_uns (vull, vull); | |
2159 | ORC_V2DI_UNS orcv2di3 {} | |
2160 | ||
2161 | const vf __builtin_altivec_orc_v4sf (vf, vf); | |
2162 | ORC_V4SF orcv4sf3 {} | |
2163 | ||
2164 | const vsi __builtin_altivec_orc_v4si (vsi, vsi); | |
2165 | ORC_V4SI orcv4si3 {} | |
2166 | ||
2167 | const vui __builtin_altivec_orc_v4si_uns (vui, vui); | |
2168 | ORC_V4SI_UNS orcv4si3 {} | |
2169 | ||
2170 | const vss __builtin_altivec_orc_v8hi (vss, vss); | |
2171 | ORC_V8HI orcv8hi3 {} | |
2172 | ||
2173 | const vus __builtin_altivec_orc_v8hi_uns (vus, vus); | |
2174 | ORC_V8HI_UNS orcv8hi3 {} | |
2175 | ||
2176 | const vsc __builtin_altivec_vclzb (vsc); | |
2177 | VCLZB clzv16qi2 {} | |
2178 | ||
2179 | const vsll __builtin_altivec_vclzd (vsll); | |
2180 | VCLZD clzv2di2 {} | |
2181 | ||
2182 | const vss __builtin_altivec_vclzh (vss); | |
2183 | VCLZH clzv8hi2 {} | |
2184 | ||
2185 | const vsi __builtin_altivec_vclzw (vsi); | |
2186 | VCLZW clzv4si2 {} | |
2187 | ||
2188 | const vuc __builtin_altivec_vgbbd (vuc); | |
2189 | VGBBD p8v_vgbbd {} | |
2190 | ||
2191 | const vsq __builtin_altivec_vaddcuq (vsq, vsq); | |
2192 | VADDCUQ altivec_vaddcuq {} | |
2193 | ||
2194 | const vsq __builtin_altivec_vaddecuq (vsq, vsq, vsq); | |
2195 | VADDECUQ altivec_vaddecuq {} | |
2196 | ||
2197 | const vsq __builtin_altivec_vaddeuqm (vsq, vsq, vsq); | |
2198 | VADDEUQM altivec_vaddeuqm {} | |
2199 | ||
2200 | const vsll __builtin_altivec_vaddudm (vsll, vsll); | |
2201 | VADDUDM addv2di3 {} | |
2202 | ||
2203 | const vsq __builtin_altivec_vadduqm (vsq, vsq); | |
2204 | VADDUQM altivec_vadduqm {} | |
2205 | ||
2206 | const vsll __builtin_altivec_vbpermq (vsc, vsc); | |
2207 | VBPERMQ altivec_vbpermq {} | |
2208 | ||
2209 | const vsc __builtin_altivec_vbpermq2 (vsc, vsc); | |
2210 | VBPERMQ2 altivec_vbpermq2 {} | |
2211 | ||
936051f9 BS |
2212 | const vsll __builtin_altivec_vcmpequd (vull, vull); |
2213 | VCMPEQUD vector_eqv2di {} | |
2214 | ||
2215 | const int __builtin_altivec_vcmpequd_p (int, vsll, vsll); | |
2216 | VCMPEQUD_P vector_eq_v2di_p {pred} | |
2217 | ||
2218 | const vsll __builtin_altivec_vcmpgtsd (vsll, vsll); | |
2219 | VCMPGTSD vector_gtv2di {} | |
2220 | ||
2221 | const int __builtin_altivec_vcmpgtsd_p (int, vsll, vsll); | |
2222 | VCMPGTSD_P vector_gt_v2di_p {pred} | |
2223 | ||
2224 | const vsll __builtin_altivec_vcmpgtud (vull, vull); | |
2225 | VCMPGTUD vector_gtuv2di {} | |
2226 | ||
2227 | const int __builtin_altivec_vcmpgtud_p (int, vsll, vsll); | |
2228 | VCMPGTUD_P vector_gtu_v2di_p {pred} | |
2229 | ||
8ce18a29 BS |
2230 | const vsll __builtin_altivec_vmaxsd (vsll, vsll); |
2231 | VMAXSD smaxv2di3 {} | |
2232 | ||
2233 | const vull __builtin_altivec_vmaxud (vull, vull); | |
2234 | VMAXUD umaxv2di3 {} | |
2235 | ||
2236 | const vsll __builtin_altivec_vminsd (vsll, vsll); | |
2237 | VMINSD sminv2di3 {} | |
2238 | ||
2239 | const vull __builtin_altivec_vminud (vull, vull); | |
2240 | VMINUD uminv2di3 {} | |
2241 | ||
2242 | const vd __builtin_altivec_vmrgew_v2df (vd, vd); | |
2243 | VMRGEW_V2DF p8_vmrgew_v2df {} | |
2244 | ||
2245 | const vsll __builtin_altivec_vmrgew_v2di (vsll, vsll); | |
2246 | VMRGEW_V2DI p8_vmrgew_v2di {} | |
2247 | ||
2248 | const vf __builtin_altivec_vmrgew_v4sf (vf, vf); | |
2249 | VMRGEW_V4SF p8_vmrgew_v4sf {} | |
2250 | ||
2251 | const vsi __builtin_altivec_vmrgew_v4si (vsi, vsi); | |
2252 | VMRGEW_V4SI p8_vmrgew_v4si {} | |
2253 | ||
2254 | const vd __builtin_altivec_vmrgow_v2df (vd, vd); | |
2255 | VMRGOW_V2DF p8_vmrgow_v2df {} | |
2256 | ||
2257 | const vsll __builtin_altivec_vmrgow_v2di (vsll, vsll); | |
2258 | VMRGOW_V2DI p8_vmrgow_v2di {} | |
2259 | ||
2260 | const vf __builtin_altivec_vmrgow_v4sf (vf, vf); | |
2261 | VMRGOW_V4SF p8_vmrgow_v4sf {} | |
2262 | ||
2263 | const vsi __builtin_altivec_vmrgow_v4si (vsi, vsi); | |
2264 | VMRGOW_V4SI p8_vmrgow_v4si {} | |
2265 | ||
2266 | const vsc __builtin_altivec_vpermxor (vsc, vsc, vsc); | |
2267 | VPERMXOR altivec_vpermxor {} | |
2268 | ||
2269 | const vsi __builtin_altivec_vpksdss (vsll, vsll); | |
2270 | VPKSDSS altivec_vpksdss {} | |
2271 | ||
2272 | const vsi __builtin_altivec_vpksdus (vsll, vsll); | |
2273 | VPKSDUS altivec_vpksdus {} | |
2274 | ||
2275 | const vsi __builtin_altivec_vpkudum (vsll, vsll); | |
2276 | VPKUDUM altivec_vpkudum {} | |
2277 | ||
2278 | const vsi __builtin_altivec_vpkudus (vsll, vsll); | |
2279 | VPKUDUS altivec_vpkudus {} | |
2280 | ||
2281 | const vsc __builtin_altivec_vpmsumb (vsc, vsc); | |
2282 | VPMSUMB_A crypto_vpmsumb {} | |
2283 | ||
2284 | const vsll __builtin_altivec_vpmsumd (vsll, vsll); | |
2285 | VPMSUMD_A crypto_vpmsumd {} | |
2286 | ||
2287 | const vss __builtin_altivec_vpmsumh (vss, vss); | |
2288 | VPMSUMH_A crypto_vpmsumh {} | |
2289 | ||
2290 | const vsi __builtin_altivec_vpmsumw (vsi, vsi); | |
2291 | VPMSUMW_A crypto_vpmsumw {} | |
2292 | ||
2293 | const vsc __builtin_altivec_vpopcntb (vsc); | |
2294 | VPOPCNTB popcountv16qi2 {} | |
2295 | ||
2296 | const vsll __builtin_altivec_vpopcntd (vsll); | |
2297 | VPOPCNTD popcountv2di2 {} | |
2298 | ||
2299 | const vss __builtin_altivec_vpopcnth (vss); | |
2300 | VPOPCNTH popcountv8hi2 {} | |
2301 | ||
2302 | const vsc __builtin_altivec_vpopcntub (vsc); | |
2303 | VPOPCNTUB popcountv16qi2 {} | |
2304 | ||
2305 | const vsll __builtin_altivec_vpopcntud (vsll); | |
2306 | VPOPCNTUD popcountv2di2 {} | |
2307 | ||
2308 | const vss __builtin_altivec_vpopcntuh (vss); | |
2309 | VPOPCNTUH popcountv8hi2 {} | |
2310 | ||
2311 | const vsi __builtin_altivec_vpopcntuw (vsi); | |
2312 | VPOPCNTUW popcountv4si2 {} | |
2313 | ||
2314 | const vsi __builtin_altivec_vpopcntw (vsi); | |
2315 | VPOPCNTW popcountv4si2 {} | |
2316 | ||
2317 | const vsll __builtin_altivec_vrld (vsll, vsll); | |
2318 | VRLD vrotlv2di3 {} | |
2319 | ||
2320 | const vsll __builtin_altivec_vsld (vsll, vsll); | |
2321 | VSLD vashlv2di3 {} | |
2322 | ||
2323 | const vsll __builtin_altivec_vsrad (vsll, vsll); | |
2324 | VSRAD vashrv2di3 {} | |
2325 | ||
2326 | const vsll __builtin_altivec_vsrd (vsll, vull); | |
2327 | VSRD vlshrv2di3 {} | |
2328 | ||
2329 | const vsq __builtin_altivec_vsubcuq (vsq, vsq); | |
2330 | VSUBCUQ altivec_vsubcuq {} | |
2331 | ||
2332 | const vsq __builtin_altivec_vsubecuq (vsq, vsq, vsq); | |
2333 | VSUBECUQ altivec_vsubecuq {} | |
2334 | ||
2335 | const vsq __builtin_altivec_vsubeuqm (vsq, vsq, vsq); | |
2336 | VSUBEUQM altivec_vsubeuqm {} | |
2337 | ||
2338 | const vsll __builtin_altivec_vsubudm (vsll, vsll); | |
2339 | VSUBUDM subv2di3 {} | |
2340 | ||
2341 | const vsq __builtin_altivec_vsubuqm (vsq, vsq); | |
2342 | VSUBUQM altivec_vsubuqm {} | |
2343 | ||
2344 | const vsll __builtin_altivec_vupkhsw (vsi); | |
2345 | VUPKHSW altivec_vupkhsw {} | |
2346 | ||
2347 | const vsll __builtin_altivec_vupklsw (vsi); | |
2348 | VUPKLSW altivec_vupklsw {} | |
2349 | ||
2350 | const vsq __builtin_bcdadd_v1ti (vsq, vsq, const int<1>); | |
2351 | BCDADD_V1TI bcdadd_v1ti {} | |
2352 | ||
2353 | const vsc __builtin_bcdadd_v16qi (vsc, vsc, const int<1>); | |
2354 | BCDADD_V16QI bcdadd_v16qi {} | |
2355 | ||
2356 | const signed int __builtin_bcdadd_eq_v1ti (vsq, vsq, const int<1>); | |
2357 | BCDADD_EQ_V1TI bcdadd_eq_v1ti {} | |
2358 | ||
2359 | const signed int __builtin_bcdadd_eq_v16qi (vsc, vsc, const int<1>); | |
2360 | BCDADD_EQ_V16QI bcdadd_eq_v16qi {} | |
2361 | ||
2362 | const signed int __builtin_bcdadd_gt_v1ti (vsq, vsq, const int<1>); | |
2363 | BCDADD_GT_V1TI bcdadd_gt_v1ti {} | |
2364 | ||
2365 | const signed int __builtin_bcdadd_gt_v16qi (vsc, vsc, const int<1>); | |
2366 | BCDADD_GT_V16QI bcdadd_gt_v16qi {} | |
2367 | ||
2368 | const signed int __builtin_bcdadd_lt_v1ti (vsq, vsq, const int<1>); | |
2369 | BCDADD_LT_V1TI bcdadd_lt_v1ti {} | |
2370 | ||
2371 | const signed int __builtin_bcdadd_lt_v16qi (vsc, vsc, const int<1>); | |
2372 | BCDADD_LT_V16QI bcdadd_lt_v16qi {} | |
2373 | ||
2374 | const signed int __builtin_bcdadd_ov_v1ti (vsq, vsq, const int<1>); | |
2375 | BCDADD_OV_V1TI bcdadd_unordered_v1ti {} | |
2376 | ||
2377 | const signed int __builtin_bcdadd_ov_v16qi (vsc, vsc, const int<1>); | |
2378 | BCDADD_OV_V16QI bcdadd_unordered_v16qi {} | |
2379 | ||
2380 | const signed int __builtin_bcdinvalid_v1ti (vsq); | |
2381 | BCDINVALID_V1TI bcdinvalid_v1ti {} | |
2382 | ||
2383 | const signed int __builtin_bcdinvalid_v16qi (vsc); | |
2384 | BCDINVALID_V16QI bcdinvalid_v16qi {} | |
2385 | ||
2386 | const vsq __builtin_bcdsub_v1ti (vsq, vsq, const int<1>); | |
2387 | BCDSUB_V1TI bcdsub_v1ti {} | |
2388 | ||
2389 | const vsc __builtin_bcdsub_v16qi (vsc, vsc, const int<1>); | |
2390 | BCDSUB_V16QI bcdsub_v16qi {} | |
2391 | ||
2392 | const signed int __builtin_bcdsub_eq_v1ti (vsq, vsq, const int<1>); | |
2393 | BCDSUB_EQ_V1TI bcdsub_eq_v1ti {} | |
2394 | ||
2395 | const signed int __builtin_bcdsub_eq_v16qi (vsc, vsc, const int<1>); | |
2396 | BCDSUB_EQ_V16QI bcdsub_eq_v16qi {} | |
2397 | ||
2398 | const signed int __builtin_bcdsub_ge_v1ti (vsq, vsq, const int<1>); | |
2399 | BCDSUB_GE_V1TI bcdsub_ge_v1ti {} | |
2400 | ||
2401 | const signed int __builtin_bcdsub_ge_v16qi (vsc, vsc, const int<1>); | |
2402 | BCDSUB_GE_V16QI bcdsub_ge_v16qi {} | |
2403 | ||
2404 | const signed int __builtin_bcdsub_gt_v1ti (vsq, vsq, const int<1>); | |
2405 | BCDSUB_GT_V1TI bcdsub_gt_v1ti {} | |
2406 | ||
2407 | const signed int __builtin_bcdsub_gt_v16qi (vsc, vsc, const int<1>); | |
2408 | BCDSUB_GT_V16QI bcdsub_gt_v16qi {} | |
2409 | ||
2410 | const signed int __builtin_bcdsub_le_v1ti (vsq, vsq, const int<1>); | |
2411 | BCDSUB_LE_V1TI bcdsub_le_v1ti {} | |
2412 | ||
2413 | const signed int __builtin_bcdsub_le_v16qi (vsc, vsc, const int<1>); | |
2414 | BCDSUB_LE_V16QI bcdsub_le_v16qi {} | |
2415 | ||
2416 | const signed int __builtin_bcdsub_lt_v1ti (vsq, vsq, const int<1>); | |
2417 | BCDSUB_LT_V1TI bcdsub_lt_v1ti {} | |
2418 | ||
2419 | const signed int __builtin_bcdsub_lt_v16qi (vsc, vsc, const int<1>); | |
2420 | BCDSUB_LT_V16QI bcdsub_lt_v16qi {} | |
2421 | ||
2422 | const signed int __builtin_bcdsub_ov_v1ti (vsq, vsq, const int<1>); | |
2423 | BCDSUB_OV_V1TI bcdsub_unordered_v1ti {} | |
2424 | ||
2425 | const signed int __builtin_bcdsub_ov_v16qi (vsc, vsc, const int<1>); | |
2426 | BCDSUB_OV_V16QI bcdsub_unordered_v16qi {} | |
2427 | ||
2428 | const vuc __builtin_crypto_vpermxor_v16qi (vuc, vuc, vuc); | |
2429 | VPERMXOR_V16QI crypto_vpermxor_v16qi {} | |
2430 | ||
2431 | const vull __builtin_crypto_vpermxor_v2di (vull, vull, vull); | |
2432 | VPERMXOR_V2DI crypto_vpermxor_v2di {} | |
2433 | ||
2434 | const vui __builtin_crypto_vpermxor_v4si (vui, vui, vui); | |
2435 | VPERMXOR_V4SI crypto_vpermxor_v4si {} | |
2436 | ||
2437 | const vus __builtin_crypto_vpermxor_v8hi (vus, vus, vus); | |
2438 | VPERMXOR_V8HI crypto_vpermxor_v8hi {} | |
2439 | ||
2440 | const vuc __builtin_crypto_vpmsumb (vuc, vuc); | |
2441 | VPMSUMB crypto_vpmsumb {} | |
2442 | ||
2443 | const vull __builtin_crypto_vpmsumd (vull, vull); | |
2444 | VPMSUMD crypto_vpmsumd {} | |
2445 | ||
2446 | const vus __builtin_crypto_vpmsumh (vus, vus); | |
2447 | VPMSUMH crypto_vpmsumh {} | |
2448 | ||
2449 | const vui __builtin_crypto_vpmsumw (vui, vui); | |
2450 | VPMSUMW crypto_vpmsumw {} | |
2451 | ||
2452 | const vf __builtin_vsx_float2_v2df (vd, vd); | |
2453 | FLOAT2_V2DF float2_v2df {} | |
2454 | ||
2455 | const vf __builtin_vsx_float2_v2di (vsll, vsll); | |
2456 | FLOAT2_V2DI float2_v2di {} | |
2457 | ||
2458 | const vsc __builtin_vsx_revb_v16qi (vsc); | |
2459 | REVB_V16QI revb_v16qi {} | |
2460 | ||
2461 | const vsq __builtin_vsx_revb_v1ti (vsq); | |
2462 | REVB_V1TI revb_v1ti {} | |
2463 | ||
2464 | const vd __builtin_vsx_revb_v2df (vd); | |
2465 | REVB_V2DF revb_v2df {} | |
2466 | ||
2467 | const vsll __builtin_vsx_revb_v2di (vsll); | |
2468 | REVB_V2DI revb_v2di {} | |
2469 | ||
2470 | const vf __builtin_vsx_revb_v4sf (vf); | |
2471 | REVB_V4SF revb_v4sf {} | |
2472 | ||
2473 | const vsi __builtin_vsx_revb_v4si (vsi); | |
2474 | REVB_V4SI revb_v4si {} | |
2475 | ||
2476 | const vss __builtin_vsx_revb_v8hi (vss); | |
2477 | REVB_V8HI revb_v8hi {} | |
2478 | ||
2479 | const vf __builtin_vsx_uns_float2_v2di (vsll, vsll); | |
2480 | UNS_FLOAT2_V2DI uns_float2_v2di {} | |
2481 | ||
2482 | const vsi __builtin_vsx_vsigned2_v2df (vd, vd); | |
2483 | VEC_VSIGNED2_V2DF vsigned2_v2df {} | |
2484 | ||
2485 | const vsi __builtin_vsx_vunsigned2_v2df (vd, vd); | |
2486 | VEC_VUNSIGNED2_V2DF vunsigned2_v2df {} | |
2487 | ||
2488 | const vf __builtin_vsx_xscvdpspn (double); | |
2489 | XSCVDPSPN vsx_xscvdpspn {} | |
2490 | ||
2491 | const double __builtin_vsx_xscvspdpn (vf); | |
2492 | XSCVSPDPN vsx_xscvspdpn {} | |
2ed356a4 BS |
2493 | |
2494 | ||
2495 | ; Power9 vector builtins. | |
2496 | [power9-vector] | |
2497 | const vss __builtin_altivec_convert_4f32_8f16 (vf, vf); | |
2498 | CONVERT_4F32_8F16 convert_4f32_8f16 {} | |
2499 | ||
2500 | const vss __builtin_altivec_convert_4f32_8i16 (vf, vf); | |
2501 | CONVERT_4F32_8I16 convert_4f32_8i16 {} | |
2502 | ||
2503 | const signed int __builtin_altivec_first_match_index_v16qi (vsc, vsc); | |
2504 | VFIRSTMATCHINDEX_V16QI first_match_index_v16qi {} | |
2505 | ||
2506 | const signed int __builtin_altivec_first_match_index_v8hi (vss, vss); | |
2507 | VFIRSTMATCHINDEX_V8HI first_match_index_v8hi {} | |
2508 | ||
2509 | const signed int __builtin_altivec_first_match_index_v4si (vsi, vsi); | |
2510 | VFIRSTMATCHINDEX_V4SI first_match_index_v4si {} | |
2511 | ||
2512 | const signed int __builtin_altivec_first_match_or_eos_index_v16qi (vsc, vsc); | |
2513 | VFIRSTMATCHOREOSINDEX_V16QI first_match_or_eos_index_v16qi {} | |
2514 | ||
2515 | const signed int __builtin_altivec_first_match_or_eos_index_v8hi (vss, vss); | |
2516 | VFIRSTMATCHOREOSINDEX_V8HI first_match_or_eos_index_v8hi {} | |
2517 | ||
2518 | const signed int __builtin_altivec_first_match_or_eos_index_v4si (vsi, vsi); | |
2519 | VFIRSTMATCHOREOSINDEX_V4SI first_match_or_eos_index_v4si {} | |
2520 | ||
2521 | const signed int __builtin_altivec_first_mismatch_index_v16qi (vsc, vsc); | |
2522 | VFIRSTMISMATCHINDEX_V16QI first_mismatch_index_v16qi {} | |
2523 | ||
2524 | const signed int __builtin_altivec_first_mismatch_index_v8hi (vss, vss); | |
2525 | VFIRSTMISMATCHINDEX_V8HI first_mismatch_index_v8hi {} | |
2526 | ||
2527 | const signed int __builtin_altivec_first_mismatch_index_v4si (vsi, vsi); | |
2528 | VFIRSTMISMATCHINDEX_V4SI first_mismatch_index_v4si {} | |
2529 | ||
206c08ce BS |
2530 | const signed int \ |
2531 | __builtin_altivec_first_mismatch_or_eos_index_v16qi (vsc, vsc); | |
2ed356a4 BS |
2532 | VFIRSTMISMATCHOREOSINDEX_V16QI first_mismatch_or_eos_index_v16qi {} |
2533 | ||
206c08ce BS |
2534 | const signed int \ |
2535 | __builtin_altivec_first_mismatch_or_eos_index_v8hi (vss, vss); | |
2ed356a4 BS |
2536 | VFIRSTMISMATCHOREOSINDEX_V8HI first_mismatch_or_eos_index_v8hi {} |
2537 | ||
206c08ce BS |
2538 | const signed int \ |
2539 | __builtin_altivec_first_mismatch_or_eos_index_v4si (vsi, vsi); | |
2ed356a4 BS |
2540 | VFIRSTMISMATCHOREOSINDEX_V4SI first_mismatch_or_eos_index_v4si {} |
2541 | ||
2542 | const vsc __builtin_altivec_vadub (vsc, vsc); | |
2543 | VADUB vaduv16qi3 {} | |
2544 | ||
2545 | const vss __builtin_altivec_vaduh (vss, vss); | |
2546 | VADUH vaduv8hi3 {} | |
2547 | ||
2548 | const vsi __builtin_altivec_vaduw (vsi, vsi); | |
2549 | VADUW vaduv4si3 {} | |
2550 | ||
2551 | const vsll __builtin_altivec_vbpermd (vsll, vsc); | |
2552 | VBPERMD altivec_vbpermd {} | |
2553 | ||
2554 | const signed int __builtin_altivec_vclzlsbb_v16qi (vsc); | |
3f30f2d1 | 2555 | VCLZLSBB_V16QI vctzlsbb_v16qi {endian} |
2ed356a4 BS |
2556 | |
2557 | const signed int __builtin_altivec_vclzlsbb_v4si (vsi); | |
3f30f2d1 | 2558 | VCLZLSBB_V4SI vctzlsbb_v4si {endian} |
2ed356a4 BS |
2559 | |
2560 | const signed int __builtin_altivec_vclzlsbb_v8hi (vss); | |
3f30f2d1 | 2561 | VCLZLSBB_V8HI vctzlsbb_v8hi {endian} |
2ed356a4 BS |
2562 | |
2563 | const vsc __builtin_altivec_vctzb (vsc); | |
2564 | VCTZB ctzv16qi2 {} | |
2565 | ||
2566 | const vsll __builtin_altivec_vctzd (vsll); | |
2567 | VCTZD ctzv2di2 {} | |
2568 | ||
2569 | const vss __builtin_altivec_vctzh (vss); | |
2570 | VCTZH ctzv8hi2 {} | |
2571 | ||
2572 | const vsi __builtin_altivec_vctzw (vsi); | |
2573 | VCTZW ctzv4si2 {} | |
2574 | ||
2575 | const signed int __builtin_altivec_vctzlsbb_v16qi (vsc); | |
3f30f2d1 | 2576 | VCTZLSBB_V16QI vclzlsbb_v16qi {endian} |
2ed356a4 BS |
2577 | |
2578 | const signed int __builtin_altivec_vctzlsbb_v4si (vsi); | |
3f30f2d1 | 2579 | VCTZLSBB_V4SI vclzlsbb_v4si {endian} |
2ed356a4 BS |
2580 | |
2581 | const signed int __builtin_altivec_vctzlsbb_v8hi (vss); | |
3f30f2d1 | 2582 | VCTZLSBB_V8HI vclzlsbb_v8hi {endian} |
2ed356a4 BS |
2583 | |
2584 | const signed int __builtin_altivec_vcmpaeb_p (vsc, vsc); | |
2585 | VCMPAEB_P vector_ae_v16qi_p {} | |
2586 | ||
2587 | const signed int __builtin_altivec_vcmpaed_p (vsll, vsll); | |
2588 | VCMPAED_P vector_ae_v2di_p {} | |
2589 | ||
2590 | const signed int __builtin_altivec_vcmpaedp_p (vd, vd); | |
2591 | VCMPAEDP_P vector_ae_v2df_p {} | |
2592 | ||
2593 | const signed int __builtin_altivec_vcmpaefp_p (vf, vf); | |
2594 | VCMPAEFP_P vector_ae_v4sf_p {} | |
2595 | ||
2596 | const signed int __builtin_altivec_vcmpaeh_p (vss, vss); | |
2597 | VCMPAEH_P vector_ae_v8hi_p {} | |
2598 | ||
2599 | const signed int __builtin_altivec_vcmpaew_p (vsi, vsi); | |
2600 | VCMPAEW_P vector_ae_v4si_p {} | |
2601 | ||
2602 | const vsc __builtin_altivec_vcmpneb (vsc, vsc); | |
2603 | VCMPNEB vcmpneb {} | |
2604 | ||
2605 | const signed int __builtin_altivec_vcmpneb_p (vsc, vsc); | |
2606 | VCMPNEB_P vector_ne_v16qi_p {} | |
2607 | ||
2608 | const signed int __builtin_altivec_vcmpned_p (vsll, vsll); | |
2609 | VCMPNED_P vector_ne_v2di_p {} | |
2610 | ||
2611 | const signed int __builtin_altivec_vcmpnedp_p (vd, vd); | |
2612 | VCMPNEDP_P vector_ne_v2df_p {} | |
2613 | ||
2614 | const signed int __builtin_altivec_vcmpnefp_p (vf, vf); | |
2615 | VCMPNEFP_P vector_ne_v4sf_p {} | |
2616 | ||
2617 | const vss __builtin_altivec_vcmpneh (vss, vss); | |
2618 | VCMPNEH vcmpneh {} | |
2619 | ||
2620 | const signed int __builtin_altivec_vcmpneh_p (vss, vss); | |
2621 | VCMPNEH_P vector_ne_v8hi_p {} | |
2622 | ||
2623 | const vsi __builtin_altivec_vcmpnew (vsi, vsi); | |
2624 | VCMPNEW vcmpnew {} | |
2625 | ||
2626 | const signed int __builtin_altivec_vcmpnew_p (vsi, vsi); | |
2627 | VCMPNEW_P vector_ne_v4si_p {} | |
2628 | ||
2629 | const vsc __builtin_altivec_vcmpnezb (vsc, vsc); | |
2630 | CMPNEZB vcmpnezb {} | |
2631 | ||
2632 | const signed int __builtin_altivec_vcmpnezb_p (signed int, vsc, vsc); | |
2633 | VCMPNEZB_P vector_nez_v16qi_p {pred} | |
2634 | ||
2635 | const vss __builtin_altivec_vcmpnezh (vss, vss); | |
2636 | CMPNEZH vcmpnezh {} | |
2637 | ||
2638 | const signed int __builtin_altivec_vcmpnezh_p (signed int, vss, vss); | |
2639 | VCMPNEZH_P vector_nez_v8hi_p {pred} | |
2640 | ||
2641 | const vsi __builtin_altivec_vcmpnezw (vsi, vsi); | |
2642 | CMPNEZW vcmpnezw {} | |
2643 | ||
2644 | const signed int __builtin_altivec_vcmpnezw_p (signed int, vsi, vsi); | |
2645 | VCMPNEZW_P vector_nez_v4si_p {pred} | |
2646 | ||
2647 | const signed int __builtin_altivec_vextublx (signed int, vsc); | |
2648 | VEXTUBLX vextublx {} | |
2649 | ||
2650 | const signed int __builtin_altivec_vextubrx (signed int, vsc); | |
2651 | VEXTUBRX vextubrx {} | |
2652 | ||
2653 | const signed int __builtin_altivec_vextuhlx (signed int, vss); | |
2654 | VEXTUHLX vextuhlx {} | |
2655 | ||
2656 | const signed int __builtin_altivec_vextuhrx (signed int, vss); | |
2657 | VEXTUHRX vextuhrx {} | |
2658 | ||
2659 | const signed int __builtin_altivec_vextuwlx (signed int, vsi); | |
2660 | VEXTUWLX vextuwlx {} | |
2661 | ||
2662 | const signed int __builtin_altivec_vextuwrx (signed int, vsi); | |
2663 | VEXTUWRX vextuwrx {} | |
2664 | ||
2665 | const vsq __builtin_altivec_vmsumudm (vsll, vsll, vsq); | |
2666 | VMSUMUDM altivec_vmsumudm {} | |
2667 | ||
2668 | const vsll __builtin_altivec_vprtybd (vsll); | |
2669 | VPRTYBD parityv2di2 {} | |
2670 | ||
2671 | const vsq __builtin_altivec_vprtybq (vsq); | |
2672 | VPRTYBQ parityv1ti2 {} | |
2673 | ||
2674 | const vsi __builtin_altivec_vprtybw (vsi); | |
2675 | VPRTYBW parityv4si2 {} | |
2676 | ||
2677 | const vsll __builtin_altivec_vrldmi (vsll, vsll, vsll); | |
2678 | VRLDMI altivec_vrldmi {} | |
2679 | ||
2680 | const vsll __builtin_altivec_vrldnm (vsll, vsll); | |
2681 | VRLDNM altivec_vrldnm {} | |
2682 | ||
2683 | const vsi __builtin_altivec_vrlwmi (vsi, vsi, vsi); | |
2684 | VRLWMI altivec_vrlwmi {} | |
2685 | ||
2686 | const vsi __builtin_altivec_vrlwnm (vsi, vsi); | |
2687 | VRLWNM altivec_vrlwnm {} | |
2688 | ||
2689 | const vsll __builtin_altivec_vsignextsb2d (vsc); | |
2690 | VSIGNEXTSB2D vsignextend_qi_v2di {} | |
2691 | ||
2692 | const vsi __builtin_altivec_vsignextsb2w (vsc); | |
2693 | VSIGNEXTSB2W vsignextend_qi_v4si {} | |
2694 | ||
2695 | const vsll __builtin_altivec_visgnextsh2d (vss); | |
2696 | VSIGNEXTSH2D vsignextend_hi_v2di {} | |
2697 | ||
2698 | const vsi __builtin_altivec_vsignextsh2w (vss); | |
2699 | VSIGNEXTSH2W vsignextend_hi_v4si {} | |
2700 | ||
2701 | const vsll __builtin_altivec_vsignextsw2d (vsi); | |
2702 | VSIGNEXTSW2D vsignextend_si_v2di {} | |
2703 | ||
2704 | const vsc __builtin_altivec_vslv (vsc, vsc); | |
2705 | VSLV vslv {} | |
2706 | ||
2707 | const vsc __builtin_altivec_vsrv (vsc, vsc); | |
2708 | VSRV vsrv {} | |
2709 | ||
2710 | const signed int __builtin_scalar_byte_in_range (signed int, signed int); | |
2711 | CMPRB cmprb {} | |
2712 | ||
206c08ce BS |
2713 | const signed int \ |
2714 | __builtin_scalar_byte_in_either_range (signed int, signed int); | |
2ed356a4 BS |
2715 | CMPRB2 cmprb2 {} |
2716 | ||
2717 | const vsll __builtin_vsx_extract4b (vsc, const int[0,12]); | |
2718 | EXTRACT4B extract4b {} | |
2719 | ||
2720 | const vd __builtin_vsx_extract_exp_dp (vd); | |
2721 | VEEDP xvxexpdp {} | |
2722 | ||
2723 | const vf __builtin_vsx_extract_exp_sp (vf); | |
2724 | VEESP xvxexpsp {} | |
2725 | ||
2726 | const vd __builtin_vsx_extract_sig_dp (vd); | |
2727 | VESDP xvxsigdp {} | |
2728 | ||
2729 | const vf __builtin_vsx_extract_sig_sp (vf); | |
2730 | VESSP xvxsigsp {} | |
2731 | ||
2732 | const vsc __builtin_vsx_insert4b (vsi, vsc, const int[0,12]); | |
2733 | INSERT4B insert4b {} | |
2734 | ||
2735 | const vd __builtin_vsx_insert_exp_dp (vd, vd); | |
2736 | VIEDP xviexpdp {} | |
2737 | ||
2738 | const vf __builtin_vsx_insert_exp_sp (vf, vf); | |
2739 | VIESP xviexpsp {} | |
2740 | ||
2741 | const signed int __builtin_vsx_scalar_cmp_exp_dp_eq (double, double); | |
2742 | VSCEDPEQ xscmpexpdp_eq {} | |
2743 | ||
2744 | const signed int __builtin_vsx_scalar_cmp_exp_dp_gt (double, double); | |
2745 | VSCEDPGT xscmpexpdp_gt {} | |
2746 | ||
2747 | const signed int __builtin_vsx_scalar_cmp_exp_dp_lt (double, double); | |
2748 | VSCEDPLT xscmpexpdp_lt {} | |
2749 | ||
2750 | const signed int __builtin_vsx_scalar_cmp_exp_dp_unordered (double, double); | |
2751 | VSCEDPUO xscmpexpdp_unordered {} | |
2752 | ||
206c08ce BS |
2753 | const signed int \ |
2754 | __builtin_vsx_scalar_test_data_class_dp (double, const int<7>); | |
2ed356a4 BS |
2755 | VSTDCDP xststdcdp {} |
2756 | ||
206c08ce BS |
2757 | const signed int \ |
2758 | __builtin_vsx_scalar_test_data_class_sp (float, const int<7>); | |
2ed356a4 BS |
2759 | VSTDCSP xststdcsp {} |
2760 | ||
2761 | const signed int __builtin_vsx_scalar_test_neg_dp (double); | |
2762 | VSTDCNDP xststdcnegdp {} | |
2763 | ||
2764 | const signed int __builtin_vsx_scalar_test_neg_sp (float); | |
2765 | VSTDCNSP xststdcnegsp {} | |
2766 | ||
2767 | const vsll __builtin_vsx_test_data_class_dp (vd, const int<7>); | |
2768 | VTDCDP xvtstdcdp {} | |
2769 | ||
2770 | const vsi __builtin_vsx_test_data_class_sp (vf, const int<7>); | |
2771 | VTDCSP xvtstdcsp {} | |
2772 | ||
2773 | const vf __builtin_vsx_vextract_fp_from_shorth (vss); | |
2774 | VEXTRACT_FP_FROM_SHORTH vextract_fp_from_shorth {} | |
2775 | ||
2776 | const vf __builtin_vsx_vextract_fp_from_shortl (vss); | |
2777 | VEXTRACT_FP_FROM_SHORTL vextract_fp_from_shortl {} | |
2778 | ||
2779 | const vd __builtin_vsx_xxbrd_v2df (vd); | |
2780 | XXBRD_V2DF p9_xxbrd_v2df {} | |
2781 | ||
2782 | const vsll __builtin_vsx_xxbrd_v2di (vsll); | |
2783 | XXBRD_V2DI p9_xxbrd_v2di {} | |
2784 | ||
2785 | const vss __builtin_vsx_xxbrh_v8hi (vss); | |
2786 | XXBRH_V8HI p9_xxbrh_v8hi {} | |
2787 | ||
2788 | const vsc __builtin_vsx_xxbrq_v16qi (vsc); | |
2789 | XXBRQ_V16QI p9_xxbrq_v16qi {} | |
2790 | ||
2791 | const vsq __builtin_vsx_xxbrq_v1ti (vsq); | |
2792 | XXBRQ_V1TI p9_xxbrq_v1ti {} | |
2793 | ||
2794 | const vf __builtin_vsx_xxbrw_v4sf (vf); | |
2795 | XXBRW_V4SF p9_xxbrw_v4sf {} | |
2796 | ||
2797 | const vsi __builtin_vsx_xxbrw_v4si (vsi); | |
2798 | XXBRW_V4SI p9_xxbrw_v4si {} | |
2799 | ||
2800 | ||
2801 | ; Miscellaneous P9 functions | |
2802 | [power9] | |
71943979 SB |
2803 | signed long __builtin_darn (); |
2804 | DARN darn_64_di {32bit} | |
2ed356a4 | 2805 | |
71943979 SB |
2806 | signed long __builtin_darn_32 (); |
2807 | DARN_32 darn_32_di {32bit} | |
2ed356a4 | 2808 | |
71943979 SB |
2809 | signed long __builtin_darn_raw (); |
2810 | DARN_RAW darn_raw_di {32bit} | |
2ed356a4 | 2811 | |
2ed356a4 BS |
2812 | const signed int __builtin_dtstsfi_eq_dd (const int<6>, _Decimal64); |
2813 | TSTSFI_EQ_DD dfptstsfi_eq_dd {} | |
2814 | ||
2815 | const signed int __builtin_dtstsfi_eq_td (const int<6>, _Decimal128); | |
2816 | TSTSFI_EQ_TD dfptstsfi_eq_td {} | |
2817 | ||
2818 | const signed int __builtin_dtstsfi_gt_dd (const int<6>, _Decimal64); | |
2819 | TSTSFI_GT_DD dfptstsfi_gt_dd {} | |
2820 | ||
2821 | const signed int __builtin_dtstsfi_gt_td (const int<6>, _Decimal128); | |
2822 | TSTSFI_GT_TD dfptstsfi_gt_td {} | |
2823 | ||
2824 | const signed int __builtin_dtstsfi_lt_dd (const int<6>, _Decimal64); | |
2825 | TSTSFI_LT_DD dfptstsfi_lt_dd {} | |
2826 | ||
2827 | const signed int __builtin_dtstsfi_lt_td (const int<6>, _Decimal128); | |
2828 | TSTSFI_LT_TD dfptstsfi_lt_td {} | |
2829 | ||
2830 | const signed int __builtin_dtstsfi_ov_dd (const int<6>, _Decimal64); | |
2831 | TSTSFI_OV_DD dfptstsfi_unordered_dd {} | |
2832 | ||
2833 | const signed int __builtin_dtstsfi_ov_td (const int<6>, _Decimal128); | |
2834 | TSTSFI_OV_TD dfptstsfi_unordered_td {} | |
2835 | ||
2836 | ||
2837 | [power9-64] | |
2838 | void __builtin_altivec_xst_len_r (vsc, void *, long); | |
2839 | XST_LEN_R xst_len_r {} | |
2840 | ||
2841 | void __builtin_altivec_stxvl (vsc, void *, long); | |
2842 | STXVL stxvl {} | |
2843 | ||
2844 | const signed int __builtin_scalar_byte_in_set (signed int, signed long long); | |
2845 | CMPEQB cmpeqb {} | |
2846 | ||
2847 | pure vsc __builtin_vsx_lxvl (const void *, signed long); | |
2848 | LXVL lxvl {} | |
2849 | ||
2850 | const signed long __builtin_vsx_scalar_extract_exp (double); | |
2851 | VSEEDP xsxexpdp {} | |
2852 | ||
2853 | const signed long __builtin_vsx_scalar_extract_sig (double); | |
2854 | VSESDP xsxsigdp {} | |
2855 | ||
206c08ce BS |
2856 | const double __builtin_vsx_scalar_insert_exp (unsigned long long, \ |
2857 | unsigned long long); | |
2ed356a4 BS |
2858 | VSIEDP xsiexpdp {} |
2859 | ||
2860 | const double __builtin_vsx_scalar_insert_exp_dp (double, unsigned long long); | |
2861 | VSIEDPF xsiexpdpf {} | |
2862 | ||
2863 | pure vsc __builtin_vsx_xl_len_r (void *, signed long); | |
2864 | XL_LEN_R xl_len_r {} | |
50cb8300 BS |
2865 | |
2866 | ||
2f9489a1 BS |
2867 | ; Builtins requiring hardware support for IEEE-128 floating-point. |
2868 | [ieee128-hw] | |
2869 | fpmath _Float128 __builtin_addf128_round_to_odd (_Float128, _Float128); | |
2870 | ADDF128_ODD addkf3_odd {} | |
2871 | ||
2872 | fpmath _Float128 __builtin_divf128_round_to_odd (_Float128, _Float128); | |
2873 | DIVF128_ODD divkf3_odd {} | |
2874 | ||
206c08ce BS |
2875 | fpmath _Float128 __builtin_fmaf128_round_to_odd (_Float128, _Float128, \ |
2876 | _Float128); | |
2f9489a1 BS |
2877 | FMAF128_ODD fmakf4_odd {} |
2878 | ||
2879 | fpmath _Float128 __builtin_mulf128_round_to_odd (_Float128, _Float128); | |
2880 | MULF128_ODD mulkf3_odd {} | |
2881 | ||
2882 | const signed int __builtin_vsx_scalar_cmp_exp_qp_eq (_Float128, _Float128); | |
2883 | VSCEQPEQ xscmpexpqp_eq_kf {} | |
2884 | ||
2885 | const signed int __builtin_vsx_scalar_cmp_exp_qp_gt (_Float128, _Float128); | |
2886 | VSCEQPGT xscmpexpqp_gt_kf {} | |
2887 | ||
2888 | const signed int __builtin_vsx_scalar_cmp_exp_qp_lt (_Float128, _Float128); | |
2889 | VSCEQPLT xscmpexpqp_lt_kf {} | |
2890 | ||
206c08ce BS |
2891 | const signed int \ |
2892 | __builtin_vsx_scalar_cmp_exp_qp_unordered (_Float128, _Float128); | |
2f9489a1 BS |
2893 | VSCEQPUO xscmpexpqp_unordered_kf {} |
2894 | ||
2895 | fpmath _Float128 __builtin_sqrtf128_round_to_odd (_Float128); | |
2896 | SQRTF128_ODD sqrtkf2_odd {} | |
2897 | ||
2898 | fpmath _Float128 __builtin_subf128_round_to_odd (_Float128, _Float128); | |
2899 | SUBF128_ODD subkf3_odd {} | |
2900 | ||
2901 | fpmath double __builtin_truncf128_round_to_odd (_Float128); | |
2902 | TRUNCF128_ODD trunckfdf2_odd {} | |
2903 | ||
2904 | const signed long long __builtin_vsx_scalar_extract_expq (_Float128); | |
2905 | VSEEQP xsxexpqp_kf {} | |
2906 | ||
2907 | const signed __int128 __builtin_vsx_scalar_extract_sigq (_Float128); | |
2908 | VSESQP xsxsigqp_kf {} | |
2909 | ||
206c08ce BS |
2910 | const _Float128 __builtin_vsx_scalar_insert_exp_q (unsigned __int128, \ |
2911 | unsigned long long); | |
2f9489a1 BS |
2912 | VSIEQP xsiexpqp_kf {} |
2913 | ||
206c08ce BS |
2914 | const _Float128 __builtin_vsx_scalar_insert_exp_qp (_Float128, \ |
2915 | unsigned long long); | |
2f9489a1 BS |
2916 | VSIEQPF xsiexpqpf_kf {} |
2917 | ||
206c08ce BS |
2918 | const signed int __builtin_vsx_scalar_test_data_class_qp (_Float128, \ |
2919 | const int<7>); | |
2f9489a1 BS |
2920 | VSTDCQP xststdcqp_kf {} |
2921 | ||
2922 | const signed int __builtin_vsx_scalar_test_neg_qp (_Float128); | |
2923 | VSTDCNQP xststdcnegqp_kf {} | |
2924 | ||
2925 | ||
2926 | ||
2927 | ; Decimal floating-point builtins. | |
2928 | [dfp] | |
2929 | const _Decimal64 __builtin_ddedpd (const int<2>, _Decimal64); | |
2930 | DDEDPD dfp_ddedpd_dd {} | |
2931 | ||
2932 | const _Decimal128 __builtin_ddedpdq (const int<2>, _Decimal128); | |
2933 | DDEDPDQ dfp_ddedpd_td {} | |
2934 | ||
2935 | const _Decimal64 __builtin_denbcd (const int<1>, _Decimal64); | |
2936 | DENBCD dfp_denbcd_dd {} | |
2937 | ||
2938 | const _Decimal128 __builtin_denbcdq (const int<1>, _Decimal128); | |
2939 | DENBCDQ dfp_denbcd_td {} | |
2940 | ||
2941 | const _Decimal128 __builtin_denb2dfp_v16qi (vsc); | |
2942 | DENB2DFP_V16QI dfp_denbcd_v16qi {} | |
2943 | ||
2944 | const _Decimal64 __builtin_diex (signed long long, _Decimal64); | |
2945 | DIEX dfp_diex_dd {} | |
2946 | ||
2947 | const _Decimal128 __builtin_diexq (signed long long, _Decimal128); | |
2948 | DIEXQ dfp_diex_td {} | |
2949 | ||
2950 | const _Decimal64 __builtin_dscli (_Decimal64, const int<6>); | |
2951 | DSCLI dfp_dscli_dd {} | |
2952 | ||
2953 | const _Decimal128 __builtin_dscliq (_Decimal128, const int<6>); | |
2954 | DSCLIQ dfp_dscli_td {} | |
2955 | ||
2956 | const _Decimal64 __builtin_dscri (_Decimal64, const int<6>); | |
2957 | DSCRI dfp_dscri_dd {} | |
2958 | ||
2959 | const _Decimal128 __builtin_dscriq (_Decimal128, const int<6>); | |
2960 | DSCRIQ dfp_dscri_td {} | |
2961 | ||
2962 | const signed long long __builtin_dxex (_Decimal64); | |
2963 | DXEX dfp_dxex_dd {} | |
2964 | ||
2965 | const signed long long __builtin_dxexq (_Decimal128); | |
2966 | DXEXQ dfp_dxex_td {} | |
2967 | ||
206c08ce BS |
2968 | const _Decimal128 __builtin_pack_dec128 (unsigned long long, \ |
2969 | unsigned long long); | |
2f9489a1 BS |
2970 | PACK_TD packtd {} |
2971 | ||
2972 | void __builtin_set_fpscr_drn (const int[0,7]); | |
aaf3a599 | 2973 | SET_FPSCR_DRN rs6000_set_fpscr_drn {nosoft,no32bit} |
2f9489a1 | 2974 | |
d0823635 | 2975 | const unsigned long long __builtin_unpack_dec128 (_Decimal128, const int<1>); |
2f9489a1 BS |
2976 | UNPACK_TD unpacktd {} |
2977 | ||
2978 | ||
2979 | [crypto] | |
2980 | const vull __builtin_crypto_vcipher (vull, vull); | |
2981 | VCIPHER crypto_vcipher_v2di {} | |
2982 | ||
2983 | const vuc __builtin_crypto_vcipher_be (vuc, vuc); | |
2984 | VCIPHER_BE crypto_vcipher_v16qi {} | |
2985 | ||
2986 | const vull __builtin_crypto_vcipherlast (vull, vull); | |
2987 | VCIPHERLAST crypto_vcipherlast_v2di {} | |
2988 | ||
2989 | const vuc __builtin_crypto_vcipherlast_be (vuc, vuc); | |
2990 | VCIPHERLAST_BE crypto_vcipherlast_v16qi {} | |
2991 | ||
2992 | const vull __builtin_crypto_vncipher (vull, vull); | |
2993 | VNCIPHER crypto_vncipher_v2di {} | |
2994 | ||
2995 | const vuc __builtin_crypto_vncipher_be (vuc, vuc); | |
2996 | VNCIPHER_BE crypto_vncipher_v16qi {} | |
2997 | ||
2998 | const vull __builtin_crypto_vncipherlast (vull, vull); | |
2999 | VNCIPHERLAST crypto_vncipherlast_v2di {} | |
3000 | ||
3001 | const vuc __builtin_crypto_vncipherlast_be (vuc, vuc); | |
3002 | VNCIPHERLAST_BE crypto_vncipherlast_v16qi {} | |
3003 | ||
3004 | const vull __builtin_crypto_vsbox (vull); | |
3005 | VSBOX crypto_vsbox_v2di {} | |
3006 | ||
3007 | const vuc __builtin_crypto_vsbox_be (vuc); | |
3008 | VSBOX_BE crypto_vsbox_v16qi {} | |
3009 | ||
3010 | const vull __builtin_crypto_vshasigmad (vull, const int<1>, const int<4>); | |
3011 | VSHASIGMAD crypto_vshasigmad {} | |
3012 | ||
3013 | const vui __builtin_crypto_vshasigmaw (vui, const int<1>, const int<4>); | |
3014 | VSHASIGMAW crypto_vshasigmaw {} | |
3015 | ||
3016 | ||
3017 | [htm] | |
d0823635 | 3018 | unsigned long __builtin_get_texasr (); |
2f9489a1 BS |
3019 | GET_TEXASR nothing {htm,htmspr} |
3020 | ||
d0823635 | 3021 | unsigned long __builtin_get_texasru (); |
2f9489a1 BS |
3022 | GET_TEXASRU nothing {htm,htmspr} |
3023 | ||
d0823635 | 3024 | unsigned long __builtin_get_tfhar (); |
2f9489a1 BS |
3025 | GET_TFHAR nothing {htm,htmspr} |
3026 | ||
d0823635 | 3027 | unsigned long __builtin_get_tfiar (); |
2f9489a1 BS |
3028 | GET_TFIAR nothing {htm,htmspr} |
3029 | ||
d0823635 | 3030 | void __builtin_set_texasr (unsigned long); |
2f9489a1 BS |
3031 | SET_TEXASR nothing {htm,htmspr} |
3032 | ||
d0823635 | 3033 | void __builtin_set_texasru (unsigned long); |
2f9489a1 BS |
3034 | SET_TEXASRU nothing {htm,htmspr} |
3035 | ||
d0823635 | 3036 | void __builtin_set_tfhar (unsigned long); |
2f9489a1 BS |
3037 | SET_TFHAR nothing {htm,htmspr} |
3038 | ||
d0823635 | 3039 | void __builtin_set_tfiar (unsigned long); |
2f9489a1 BS |
3040 | SET_TFIAR nothing {htm,htmspr} |
3041 | ||
3042 | unsigned int __builtin_tabort (unsigned int); | |
3043 | TABORT tabort {htm,htmcr} | |
3044 | ||
d0823635 BS |
3045 | unsigned int __builtin_tabortdc (unsigned long, unsigned long, \ |
3046 | unsigned long); | |
2f9489a1 BS |
3047 | TABORTDC tabortdc {htm,htmcr} |
3048 | ||
d0823635 BS |
3049 | unsigned int __builtin_tabortdci (unsigned long, unsigned long, \ |
3050 | unsigned long); | |
2f9489a1 BS |
3051 | TABORTDCI tabortdci {htm,htmcr} |
3052 | ||
3053 | unsigned int __builtin_tabortwc (unsigned int, unsigned int, unsigned int); | |
3054 | TABORTWC tabortwc {htm,htmcr} | |
3055 | ||
3056 | unsigned int __builtin_tabortwci (unsigned int, unsigned int, unsigned int); | |
3057 | TABORTWCI tabortwci {htm,htmcr} | |
3058 | ||
3059 | unsigned int __builtin_tbegin (unsigned int); | |
3060 | TBEGIN tbegin {htm,htmcr} | |
3061 | ||
3062 | unsigned int __builtin_tcheck (); | |
3063 | TCHECK tcheck {htm,htmcr} | |
3064 | ||
3065 | unsigned int __builtin_tend (unsigned int); | |
3066 | TEND tend {htm,htmcr} | |
3067 | ||
3068 | unsigned int __builtin_tendall (); | |
3069 | TENDALL tend {htm,htmcr} | |
3070 | ||
3071 | unsigned int __builtin_trechkpt (); | |
3072 | TRECHKPT trechkpt {htm,htmcr} | |
3073 | ||
3074 | unsigned int __builtin_treclaim (unsigned int); | |
3075 | TRECLAIM treclaim {htm,htmcr} | |
3076 | ||
3077 | unsigned int __builtin_tresume (); | |
3078 | TRESUME tsr {htm,htmcr} | |
3079 | ||
3080 | unsigned int __builtin_tsr (unsigned int); | |
3081 | TSR tsr {htm,htmcr} | |
3082 | ||
3083 | unsigned int __builtin_tsuspend (); | |
3084 | TSUSPEND tsr {htm,htmcr} | |
3085 | ||
3086 | unsigned int __builtin_ttest (); | |
3087 | TTEST ttest {htm,htmcr} | |
3088 | ||
3089 | ||
50cb8300 BS |
3090 | [power10] |
3091 | const vbq __builtin_altivec_cmpge_1ti (vsq, vsq); | |
3092 | CMPGE_1TI vector_nltv1ti {} | |
3093 | ||
3094 | const vbq __builtin_altivec_cmpge_u1ti (vuq, vuq); | |
3095 | CMPGE_U1TI vector_nltuv1ti {} | |
3096 | ||
3097 | const vbq __builtin_altivec_cmple_1ti (vsq, vsq); | |
3098 | CMPLE_1TI vector_ngtv1ti {} | |
3099 | ||
3100 | const vbq __builtin_altivec_cmple_u1ti (vuq, vuq); | |
3101 | CMPLE_U1TI vector_ngtuv1ti {} | |
3102 | ||
3103 | const unsigned long long __builtin_altivec_cntmbb (vuc, const int<1>); | |
3104 | VCNTMBB vec_cntmb_v16qi {} | |
3105 | ||
3106 | const unsigned long long __builtin_altivec_cntmbd (vull, const int<1>); | |
3107 | VCNTMBD vec_cntmb_v2di {} | |
3108 | ||
3109 | const unsigned long long __builtin_altivec_cntmbh (vus, const int<1>); | |
3110 | VCNTMBH vec_cntmb_v8hi {} | |
3111 | ||
3112 | const unsigned long long __builtin_altivec_cntmbw (vui, const int<1>); | |
3113 | VCNTMBW vec_cntmb_v4si {} | |
3114 | ||
3115 | const vsq __builtin_altivec_div_v1ti (vsq, vsq); | |
3116 | DIV_V1TI vsx_div_v1ti {} | |
3117 | ||
3118 | const vsq __builtin_altivec_dives (vsq, vsq); | |
3119 | DIVES_V1TI vsx_dives_v1ti {} | |
3120 | ||
3121 | const vuq __builtin_altivec_diveu (vuq, vuq); | |
3122 | DIVEU_V1TI vsx_diveu_v1ti {} | |
3123 | ||
3124 | const vsq __builtin_altivec_mods (vsq, vsq); | |
3125 | MODS_V1TI vsx_mods_v1ti {} | |
3126 | ||
3127 | const vuq __builtin_altivec_modu (vuq, vuq); | |
3128 | MODU_V1TI vsx_modu_v1ti {} | |
3129 | ||
3130 | const vuc __builtin_altivec_mtvsrbm (unsigned long long); | |
3131 | MTVSRBM vec_mtvsr_v16qi {} | |
3132 | ||
3133 | const vull __builtin_altivec_mtvsrdm (unsigned long long); | |
3134 | MTVSRDM vec_mtvsr_v2di {} | |
3135 | ||
3136 | const vus __builtin_altivec_mtvsrhm (unsigned long long); | |
3137 | MTVSRHM vec_mtvsr_v8hi {} | |
3138 | ||
3139 | const vuq __builtin_altivec_mtvsrqm (unsigned long long); | |
3140 | MTVSRQM vec_mtvsr_v1ti {} | |
3141 | ||
3142 | const vui __builtin_altivec_mtvsrwm (unsigned long long); | |
3143 | MTVSRWM vec_mtvsr_v4si {} | |
3144 | ||
206c08ce BS |
3145 | pure signed __int128 __builtin_altivec_se_lxvrbx (signed long, \ |
3146 | const signed char *); | |
50cb8300 BS |
3147 | SE_LXVRBX vsx_lxvrbx {lxvrse} |
3148 | ||
206c08ce BS |
3149 | pure signed __int128 __builtin_altivec_se_lxvrhx (signed long, \ |
3150 | const signed short *); | |
50cb8300 BS |
3151 | SE_LXVRHX vsx_lxvrhx {lxvrse} |
3152 | ||
206c08ce BS |
3153 | pure signed __int128 __builtin_altivec_se_lxvrwx (signed long, \ |
3154 | const signed int *); | |
50cb8300 BS |
3155 | SE_LXVRWX vsx_lxvrwx {lxvrse} |
3156 | ||
206c08ce BS |
3157 | pure signed __int128 __builtin_altivec_se_lxvrdx (signed long, \ |
3158 | const signed long long *); | |
50cb8300 BS |
3159 | SE_LXVRDX vsx_lxvrdx {lxvrse} |
3160 | ||
3161 | void __builtin_altivec_tr_stxvrbx (vsq, signed long, signed char *); | |
3162 | TR_STXVRBX vsx_stxvrbx {stvec} | |
3163 | ||
3164 | void __builtin_altivec_tr_stxvrhx (vsq, signed long, signed int *); | |
3165 | TR_STXVRHX vsx_stxvrhx {stvec} | |
3166 | ||
3167 | void __builtin_altivec_tr_stxvrwx (vsq, signed long, signed short *); | |
3168 | TR_STXVRWX vsx_stxvrwx {stvec} | |
3169 | ||
3170 | void __builtin_altivec_tr_stxvrdx (vsq, signed long, signed long long *); | |
3171 | TR_STXVRDX vsx_stxvrdx {stvec} | |
3172 | ||
3173 | const vuq __builtin_altivec_udiv_v1ti (vuq, vuq); | |
3174 | UDIV_V1TI vsx_udiv_v1ti {} | |
3175 | ||
3176 | const vull __builtin_altivec_vcfuged (vull, vull); | |
3177 | VCFUGED vcfuged {} | |
3178 | ||
3179 | const vsc __builtin_altivec_vclrlb (vsc, signed int); | |
3180 | VCLRLB vclrlb {} | |
3181 | ||
3182 | const vsc __builtin_altivec_vclrrb (vsc, signed int); | |
3183 | VCLRRB vclrrb {} | |
3184 | ||
3185 | const signed int __builtin_altivec_vcmpaet_p (vsq, vsq); | |
3186 | VCMPAET_P vector_ae_v1ti_p {} | |
3187 | ||
3188 | const vbq __builtin_altivec_vcmpequt (vsq, vsq); | |
3189 | VCMPEQUT vector_eqv1ti {} | |
3190 | ||
3191 | const signed int __builtin_altivec_vcmpequt_p (signed int, vsq, vsq); | |
3192 | VCMPEQUT_P vector_eq_v1ti_p {pred} | |
3193 | ||
3194 | const vbq __builtin_altivec_vcmpgtst (vsq, vsq); | |
3195 | VCMPGTST vector_gtv1ti {} | |
3196 | ||
3197 | const signed int __builtin_altivec_vcmpgtst_p (signed int, vsq, vsq); | |
3198 | VCMPGTST_P vector_gt_v1ti_p {pred} | |
3199 | ||
3200 | const vbq __builtin_altivec_vcmpgtut (vuq, vuq); | |
3201 | VCMPGTUT vector_gtuv1ti {} | |
3202 | ||
3203 | const signed int __builtin_altivec_vcmpgtut_p (signed int, vuq, vuq); | |
3204 | VCMPGTUT_P vector_gtu_v1ti_p {pred} | |
3205 | ||
3206 | const vbq __builtin_altivec_vcmpnet (vsq, vsq); | |
3207 | VCMPNET vcmpnet {} | |
3208 | ||
3209 | const signed int __builtin_altivec_vcmpnet_p (vsq, vsq); | |
3210 | VCMPNET_P vector_ne_v1ti_p {} | |
3211 | ||
3212 | const vull __builtin_altivec_vclzdm (vull, vull); | |
3213 | VCLZDM vclzdm {} | |
3214 | ||
3215 | const vull __builtin_altivec_vctzdm (vull, vull); | |
3216 | VCTZDM vctzdm {} | |
3217 | ||
3218 | const vsll __builtin_altivec_vdivesd (vsll, vsll); | |
3219 | VDIVESD dives_v2di {} | |
3220 | ||
3221 | const vsi __builtin_altivec_vdivesw (vsi, vsi); | |
3222 | VDIVESW dives_v4si {} | |
3223 | ||
3224 | const vull __builtin_altivec_vdiveud (vull, vull); | |
3225 | VDIVEUD diveu_v2di {} | |
3226 | ||
3227 | const vui __builtin_altivec_vdiveuw (vui, vui); | |
3228 | VDIVEUW diveu_v4si {} | |
3229 | ||
3230 | const vsll __builtin_altivec_vdivsd (vsll, vsll); | |
3231 | VDIVSD divv2di3 {} | |
3232 | ||
3233 | const vsi __builtin_altivec_vdivsw (vsi, vsi); | |
3234 | VDIVSW divv4si3 {} | |
3235 | ||
3236 | const vull __builtin_altivec_vdivud (vull, vull); | |
3237 | VDIVUD udivv2di3 {} | |
3238 | ||
3239 | const vui __builtin_altivec_vdivuw (vui, vui); | |
3240 | VDIVUW udivv4si3 {} | |
3241 | ||
3242 | const vuc __builtin_altivec_vexpandmb (vuc); | |
3243 | VEXPANDMB vec_expand_v16qi {} | |
3244 | ||
3245 | const vull __builtin_altivec_vexpandmd (vull); | |
3246 | VEXPANDMD vec_expand_v2di {} | |
3247 | ||
3248 | const vus __builtin_altivec_vexpandmh (vus); | |
3249 | VEXPANDMH vec_expand_v8hi {} | |
3250 | ||
3251 | const vuq __builtin_altivec_vexpandmq (vuq); | |
3252 | VEXPANDMQ vec_expand_v1ti {} | |
3253 | ||
3254 | const vui __builtin_altivec_vexpandmw (vui); | |
3255 | VEXPANDMW vec_expand_v4si {} | |
3256 | ||
3257 | const vull __builtin_altivec_vextddvhx (vull, vull, unsigned int); | |
3258 | VEXTRACTDR vextractrv2di {} | |
3259 | ||
3260 | const vull __builtin_altivec_vextddvlx (vull, vull, unsigned int); | |
3261 | VEXTRACTDL vextractlv2di {} | |
3262 | ||
3263 | const vull __builtin_altivec_vextdubvhx (vuc, vuc, unsigned int); | |
3264 | VEXTRACTBR vextractrv16qi {} | |
3265 | ||
3266 | const vull __builtin_altivec_vextdubvlx (vuc, vuc, unsigned int); | |
3267 | VEXTRACTBL vextractlv16qi {} | |
3268 | ||
3269 | const vull __builtin_altivec_vextduhvhx (vus, vus, unsigned int); | |
3270 | VEXTRACTHR vextractrv8hi {} | |
3271 | ||
3272 | const vull __builtin_altivec_vextduhvlx (vus, vus, unsigned int); | |
3273 | VEXTRACTHL vextractlv8hi {} | |
3274 | ||
3275 | const vull __builtin_altivec_vextduwvhx (vui, vui, unsigned int); | |
3276 | VEXTRACTWR vextractrv4si {} | |
3277 | ||
3278 | const vull __builtin_altivec_vextduwvlx (vui, vui, unsigned int); | |
3279 | VEXTRACTWL vextractlv4si {} | |
3280 | ||
3281 | const signed int __builtin_altivec_vextractmb (vsc); | |
3282 | VEXTRACTMB vec_extract_v16qi {} | |
3283 | ||
3284 | const signed int __builtin_altivec_vextractmd (vsll); | |
3285 | VEXTRACTMD vec_extract_v2di {} | |
3286 | ||
3287 | const signed int __builtin_altivec_vextractmh (vss); | |
3288 | VEXTRACTMH vec_extract_v8hi {} | |
3289 | ||
3290 | const signed int __builtin_altivec_vextractmq (vsq); | |
3291 | VEXTRACTMQ vec_extract_v1ti {} | |
3292 | ||
3293 | const signed int __builtin_altivec_vextractmw (vsi); | |
3294 | VEXTRACTMW vec_extract_v4si {} | |
3295 | ||
3296 | const unsigned long long __builtin_altivec_vgnb (vull, const int <2,7>); | |
3297 | VGNB vgnb {} | |
3298 | ||
3299 | const vuc __builtin_altivec_vinsgubvlx (unsigned int, vuc, unsigned int); | |
3300 | VINSERTGPRBL vinsertgl_v16qi {} | |
3301 | ||
3302 | const vsc __builtin_altivec_vinsgubvrx (signed int, vsc, signed int); | |
3303 | VINSERTGPRBR vinsertgr_v16qi {} | |
3304 | ||
3305 | const vull __builtin_altivec_vinsgudvlx (unsigned int, vull, unsigned int); | |
3306 | VINSERTGPRDL vinsertgl_v2di {} | |
3307 | ||
3308 | const vsll __builtin_altivec_vinsgudvrx (signed int, vsll, signed int); | |
3309 | VINSERTGPRDR vinsertgr_v2di {} | |
3310 | ||
3311 | const vus __builtin_altivec_vinsguhvlx (unsigned int, vus, unsigned int); | |
3312 | VINSERTGPRHL vinsertgl_v8hi {} | |
3313 | ||
3314 | const vss __builtin_altivec_vinsguhvrx (signed int, vss, signed int); | |
3315 | VINSERTGPRHR vinsertgr_v8hi {} | |
3316 | ||
3317 | const vui __builtin_altivec_vinsguwvlx (unsigned int, vui, unsigned int); | |
3318 | VINSERTGPRWL vinsertgl_v4si {} | |
3319 | ||
3320 | const vsi __builtin_altivec_vinsguwvrx (signed int, vsi, signed int); | |
3321 | VINSERTGPRWR vinsertgr_v4si {} | |
3322 | ||
3323 | const vuc __builtin_altivec_vinsvubvlx (vuc, vuc, unsigned int); | |
3324 | VINSERTVPRBL vinsertvl_v16qi {} | |
3325 | ||
3326 | const vsc __builtin_altivec_vinsvubvrx (vsc, vsc, signed int); | |
3327 | VINSERTVPRBR vinsertvr_v16qi {} | |
3328 | ||
3329 | const vus __builtin_altivec_vinsvuhvlx (vus, vus, unsigned int); | |
3330 | VINSERTVPRHL vinsertvl_v8hi {} | |
3331 | ||
3332 | const vss __builtin_altivec_vinsvuhvrx (vss, vss, signed int); | |
3333 | VINSERTVPRHR vinsertvr_v8hi {} | |
3334 | ||
3335 | const vui __builtin_altivec_vinsvuwvlx (vui, vui, unsigned int); | |
3336 | VINSERTVPRWL vinsertvl_v4si {} | |
3337 | ||
3338 | const vsi __builtin_altivec_vinsvuwvrx (vsi, vsi, signed int); | |
3339 | VINSERTVPRWR vinsertvr_v4si {} | |
3340 | ||
3341 | const vsll __builtin_altivec_vmodsd (vsll, vsll); | |
3342 | VMODSD modv2di3 {} | |
3343 | ||
3344 | const vsi __builtin_altivec_vmodsw (vsi, vsi); | |
3345 | VMODSW modv4si3 {} | |
3346 | ||
3347 | const vull __builtin_altivec_vmodud (vull, vull); | |
3348 | VMODUD umodv2di3 {} | |
3349 | ||
3350 | const vui __builtin_altivec_vmoduw (vui, vui); | |
3351 | VMODUW umodv4si3 {} | |
3352 | ||
3353 | const vsq __builtin_altivec_vmulesd (vsll, vsll); | |
3354 | VMULESD vec_widen_smult_even_v2di {} | |
3355 | ||
3356 | const vuq __builtin_altivec_vmuleud (vull, vull); | |
3357 | VMULEUD vec_widen_umult_even_v2di {} | |
3358 | ||
3359 | const vsll __builtin_altivec_vmulhsd (vsll, vsll); | |
3360 | VMULHSD smulv2di3_highpart {} | |
3361 | ||
3362 | const vsi __builtin_altivec_vmulhsw (vsi, vsi); | |
3363 | VMULHSW smulv4si3_highpart {} | |
3364 | ||
3365 | const vull __builtin_altivec_vmulhud (vull, vull); | |
3366 | VMULHUD umulv2di3_highpart {} | |
3367 | ||
3368 | const vui __builtin_altivec_vmulhuw (vui, vui); | |
3369 | VMULHUW umulv4si3_highpart {} | |
3370 | ||
3371 | const vsll __builtin_altivec_vmulld (vsll, vsll); | |
3372 | VMULLD mulv2di3 {} | |
3373 | ||
3374 | const vsq __builtin_altivec_vmulosd (vsll, vsll); | |
3375 | VMULOSD vec_widen_smult_odd_v2di {} | |
3376 | ||
3377 | const vuq __builtin_altivec_vmuloud (vull, vull); | |
3378 | VMULOUD vec_widen_umult_odd_v2di {} | |
3379 | ||
3380 | const vsq __builtin_altivec_vnor_v1ti (vsq, vsq); | |
3381 | VNOR_V1TI norv1ti3 {} | |
3382 | ||
3383 | const vuq __builtin_altivec_vnor_v1ti_uns (vuq, vuq); | |
3384 | VNOR_V1TI_UNS norv1ti3 {} | |
3385 | ||
3386 | const vull __builtin_altivec_vpdepd (vull, vull); | |
3387 | VPDEPD vpdepd {} | |
3388 | ||
3389 | const vull __builtin_altivec_vpextd (vull, vull); | |
3390 | VPEXTD vpextd {} | |
3391 | ||
ed3fea09 BS |
3392 | const vuc __builtin_altivec_vreplace_un_uv2di (vull, unsigned long long, \ |
3393 | const int<4>); | |
50cb8300 BS |
3394 | VREPLACE_UN_UV2DI vreplace_un_v2di {} |
3395 | ||
ed3fea09 | 3396 | const vuc __builtin_altivec_vreplace_un_uv4si (vui, unsigned int, \ |
206c08ce | 3397 | const int<4>); |
50cb8300 BS |
3398 | VREPLACE_UN_UV4SI vreplace_un_v4si {} |
3399 | ||
ed3fea09 | 3400 | const vuc __builtin_altivec_vreplace_un_v2df (vd, double, const int<4>); |
50cb8300 BS |
3401 | VREPLACE_UN_V2DF vreplace_un_v2df {} |
3402 | ||
ed3fea09 BS |
3403 | const vuc __builtin_altivec_vreplace_un_v2di (vsll, signed long long, \ |
3404 | const int<4>); | |
50cb8300 BS |
3405 | VREPLACE_UN_V2DI vreplace_un_v2di {} |
3406 | ||
ed3fea09 | 3407 | const vuc __builtin_altivec_vreplace_un_v4sf (vf, float, const int<4>); |
50cb8300 BS |
3408 | VREPLACE_UN_V4SF vreplace_un_v4sf {} |
3409 | ||
ed3fea09 | 3410 | const vuc __builtin_altivec_vreplace_un_v4si (vsi, signed int, const int<4>); |
50cb8300 BS |
3411 | VREPLACE_UN_V4SI vreplace_un_v4si {} |
3412 | ||
206c08ce BS |
3413 | const vull __builtin_altivec_vreplace_uv2di (vull, unsigned long long, \ |
3414 | const int<1>); | |
50cb8300 BS |
3415 | VREPLACE_ELT_UV2DI vreplace_elt_v2di {} |
3416 | ||
3417 | const vui __builtin_altivec_vreplace_uv4si (vui, unsigned int, const int<2>); | |
3418 | VREPLACE_ELT_UV4SI vreplace_elt_v4si {} | |
3419 | ||
3420 | const vd __builtin_altivec_vreplace_v2df (vd, double, const int<1>); | |
3421 | VREPLACE_ELT_V2DF vreplace_elt_v2df {} | |
3422 | ||
206c08ce BS |
3423 | const vsll __builtin_altivec_vreplace_v2di (vsll, signed long long, \ |
3424 | const int<1>); | |
50cb8300 BS |
3425 | VREPLACE_ELT_V2DI vreplace_elt_v2di {} |
3426 | ||
3427 | const vf __builtin_altivec_vreplace_v4sf (vf, float, const int<2>); | |
3428 | VREPLACE_ELT_V4SF vreplace_elt_v4sf {} | |
3429 | ||
3430 | const vsi __builtin_altivec_vreplace_v4si (vsi, signed int, const int<2>); | |
3431 | VREPLACE_ELT_V4SI vreplace_elt_v4si {} | |
3432 | ||
3433 | const vsq __builtin_altivec_vrlq (vsq, vuq); | |
3434 | VRLQ vrotlv1ti3 {} | |
3435 | ||
3436 | const vsq __builtin_altivec_vrlqmi (vsq, vsq, vuq); | |
3437 | VRLQMI altivec_vrlqmi {} | |
3438 | ||
3439 | const vsq __builtin_altivec_vrlqnm (vsq, vuq); | |
3440 | VRLQNM altivec_vrlqnm {} | |
3441 | ||
3442 | const vsq __builtin_altivec_vsignext (vsll); | |
3443 | VSIGNEXTSD2Q vsignextend_v2di_v1ti {} | |
3444 | ||
3445 | const vsc __builtin_altivec_vsldb_v16qi (vsc, vsc, const int<3>); | |
3446 | VSLDB_V16QI vsldb_v16qi {} | |
3447 | ||
3448 | const vsll __builtin_altivec_vsldb_v2di (vsll, vsll, const int<3>); | |
3449 | VSLDB_V2DI vsldb_v2di {} | |
3450 | ||
3451 | const vsi __builtin_altivec_vsldb_v4si (vsi, vsi, const int<3>); | |
3452 | VSLDB_V4SI vsldb_v4si {} | |
3453 | ||
3454 | const vss __builtin_altivec_vsldb_v8hi (vss, vss, const int<3>); | |
3455 | VSLDB_V8HI vsldb_v8hi {} | |
3456 | ||
3457 | const vsq __builtin_altivec_vslq (vsq, vuq); | |
3458 | VSLQ vashlv1ti3 {} | |
3459 | ||
3460 | const vsq __builtin_altivec_vsraq (vsq, vuq); | |
3461 | VSRAQ vashrv1ti3 {} | |
3462 | ||
3463 | const vsc __builtin_altivec_vsrdb_v16qi (vsc, vsc, const int<3>); | |
3464 | VSRDB_V16QI vsrdb_v16qi {} | |
3465 | ||
3466 | const vsll __builtin_altivec_vsrdb_v2di (vsll, vsll, const int<3>); | |
3467 | VSRDB_V2DI vsrdb_v2di {} | |
3468 | ||
3469 | const vsi __builtin_altivec_vsrdb_v4si (vsi, vsi, const int<3>); | |
3470 | VSRDB_V4SI vsrdb_v4si {} | |
3471 | ||
3472 | const vss __builtin_altivec_vsrdb_v8hi (vss, vss, const int<3>); | |
3473 | VSRDB_V8HI vsrdb_v8hi {} | |
3474 | ||
3475 | const vsq __builtin_altivec_vsrq (vsq, vuq); | |
3476 | VSRQ vlshrv1ti3 {} | |
3477 | ||
3478 | const vsc __builtin_altivec_vstribl (vsc); | |
3479 | VSTRIBL vstril_v16qi {} | |
3480 | ||
3481 | const signed int __builtin_altivec_vstribl_p (vsc); | |
3482 | VSTRIBL_P vstril_p_v16qi {} | |
3483 | ||
3484 | const vsc __builtin_altivec_vstribr (vsc); | |
3485 | VSTRIBR vstrir_v16qi {} | |
3486 | ||
3487 | const signed int __builtin_altivec_vstribr_p (vsc); | |
3488 | VSTRIBR_P vstrir_p_v16qi {} | |
3489 | ||
3490 | const vss __builtin_altivec_vstrihl (vss); | |
3491 | VSTRIHL vstril_v8hi {} | |
3492 | ||
3493 | const signed int __builtin_altivec_vstrihl_p (vss); | |
3494 | VSTRIHL_P vstril_p_v8hi {} | |
3495 | ||
3496 | const vss __builtin_altivec_vstrihr (vss); | |
3497 | VSTRIHR vstrir_v8hi {} | |
3498 | ||
3499 | const signed int __builtin_altivec_vstrihr_p (vss); | |
3500 | VSTRIHR_P vstrir_p_v8hi {} | |
3501 | ||
943d631a BS |
3502 | const vuq __builtin_vsx_vmsumcud (vull, vull, vuq); |
3503 | VMSUMCUD vmsumcud {} | |
3504 | ||
50cb8300 BS |
3505 | const signed int __builtin_vsx_xvtlsbb_all_ones (vsc); |
3506 | XVTLSBB_ONES xvtlsbbo {} | |
3507 | ||
3508 | const signed int __builtin_vsx_xvtlsbb_all_zeros (vsc); | |
3509 | XVTLSBB_ZEROS xvtlsbbz {} | |
3510 | ||
3511 | const vf __builtin_vsx_vxxsplti32dx_v4sf (vf, const int<1>, float); | |
3512 | VXXSPLTI32DX_V4SF xxsplti32dx_v4sf {} | |
3513 | ||
3514 | const vsi __builtin_vsx_vxxsplti32dx_v4si (vsi, const int<1>, signed int); | |
3515 | VXXSPLTI32DX_V4SI xxsplti32dx_v4si {} | |
3516 | ||
3517 | const vd __builtin_vsx_vxxspltidp (float); | |
3518 | VXXSPLTIDP xxspltidp_v2df {} | |
3519 | ||
3520 | const vf __builtin_vsx_vxxspltiw_v4sf (float); | |
3521 | VXXSPLTIW_V4SF xxspltiw_v4sf {} | |
3522 | ||
3523 | const vsi __builtin_vsx_vxxspltiw_v4si (signed int); | |
3524 | VXXSPLTIW_V4SI xxspltiw_v4si {} | |
3525 | ||
3526 | const vuc __builtin_vsx_xvcvbf16spn (vuc); | |
3527 | XVCVBF16SPN vsx_xvcvbf16spn {} | |
3528 | ||
3529 | const vuc __builtin_vsx_xvcvspbf16 (vuc); | |
3530 | XVCVSPBF16 vsx_xvcvspbf16 {} | |
3531 | ||
3532 | const vuc __builtin_vsx_xxblend_v16qi (vuc, vuc, vuc); | |
3533 | VXXBLEND_V16QI xxblend_v16qi {} | |
3534 | ||
3535 | const vd __builtin_vsx_xxblend_v2df (vd, vd, vd); | |
3536 | VXXBLEND_V2DF xxblend_v2df {} | |
3537 | ||
3538 | const vull __builtin_vsx_xxblend_v2di (vull, vull, vull); | |
3539 | VXXBLEND_V2DI xxblend_v2di {} | |
3540 | ||
3541 | const vf __builtin_vsx_xxblend_v4sf (vf, vf, vf); | |
3542 | VXXBLEND_V4SF xxblend_v4sf {} | |
3543 | ||
3544 | const vui __builtin_vsx_xxblend_v4si (vui, vui, vui); | |
3545 | VXXBLEND_V4SI xxblend_v4si {} | |
3546 | ||
3547 | const vus __builtin_vsx_xxblend_v8hi (vus, vus, vus); | |
3548 | VXXBLEND_V8HI xxblend_v8hi {} | |
3549 | ||
3550 | const vull __builtin_vsx_xxeval (vull, vull, vull, const int <8>); | |
3551 | XXEVAL xxeval {} | |
3552 | ||
3553 | const vuc __builtin_vsx_xxgenpcvm_v16qi (vuc, const int <2>); | |
3554 | XXGENPCVM_V16QI xxgenpcvm_v16qi {} | |
3555 | ||
3556 | const vull __builtin_vsx_xxgenpcvm_v2di (vull, const int <2>); | |
3557 | XXGENPCVM_V2DI xxgenpcvm_v2di {} | |
3558 | ||
3559 | const vui __builtin_vsx_xxgenpcvm_v4si (vui, const int <2>); | |
3560 | XXGENPCVM_V4SI xxgenpcvm_v4si {} | |
3561 | ||
3562 | const vus __builtin_vsx_xxgenpcvm_v8hi (vus, const int <2>); | |
3563 | XXGENPCVM_V8HI xxgenpcvm_v8hi {} | |
3564 | ||
3565 | const vuc __builtin_vsx_xxpermx_uv16qi (vuc, vuc, vuc, const int<3>); | |
3566 | XXPERMX_UV16QI xxpermx {} | |
3567 | ||
3568 | const vull __builtin_vsx_xxpermx_uv2di (vull, vull, vuc, const int<3>); | |
3569 | XXPERMX_UV2DI xxpermx {} | |
3570 | ||
3571 | const vui __builtin_vsx_xxpermx_uv4si (vui, vui, vuc, const int<3>); | |
3572 | XXPERMX_UV4SI xxpermx {} | |
3573 | ||
3574 | const vus __builtin_vsx_xxpermx_uv8hi (vus, vus, vuc, const int<3>); | |
3575 | XXPERMX_UV8HI xxpermx {} | |
3576 | ||
3577 | const vsc __builtin_vsx_xxpermx_v16qi (vsc, vsc, vuc, const int<3>); | |
3578 | XXPERMX_V16QI xxpermx {} | |
3579 | ||
3580 | const vd __builtin_vsx_xxpermx_v2df (vd, vd, vuc, const int<3>); | |
3581 | XXPERMX_V2DF xxpermx {} | |
3582 | ||
3583 | const vsll __builtin_vsx_xxpermx_v2di (vsll, vsll, vuc, const int<3>); | |
3584 | XXPERMX_V2DI xxpermx {} | |
3585 | ||
3586 | const vf __builtin_vsx_xxpermx_v4sf (vf, vf, vuc, const int<3>); | |
3587 | XXPERMX_V4SF xxpermx {} | |
3588 | ||
3589 | const vsi __builtin_vsx_xxpermx_v4si (vsi, vsi, vuc, const int<3>); | |
3590 | XXPERMX_V4SI xxpermx {} | |
3591 | ||
3592 | const vss __builtin_vsx_xxpermx_v8hi (vss, vss, vuc, const int<3>); | |
3593 | XXPERMX_V8HI xxpermx {} | |
3594 | ||
206c08ce BS |
3595 | pure unsigned __int128 __builtin_altivec_ze_lxvrbx (signed long, \ |
3596 | const unsigned char *); | |
50cb8300 BS |
3597 | ZE_LXVRBX vsx_lxvrbx {lxvrze} |
3598 | ||
206c08ce BS |
3599 | pure unsigned __int128 __builtin_altivec_ze_lxvrhx (signed long, \ |
3600 | const unsigned short *); | |
50cb8300 BS |
3601 | ZE_LXVRHX vsx_lxvrhx {lxvrze} |
3602 | ||
206c08ce BS |
3603 | pure unsigned __int128 __builtin_altivec_ze_lxvrwx (signed long, \ |
3604 | const unsigned int *); | |
50cb8300 BS |
3605 | ZE_LXVRWX vsx_lxvrwx {lxvrze} |
3606 | ||
206c08ce BS |
3607 | pure unsigned __int128 \ |
3608 | __builtin_altivec_ze_lxvrdx (signed long, const unsigned long long *); | |
50cb8300 BS |
3609 | ZE_LXVRDX vsx_lxvrdx {lxvrze} |
3610 | ||
3611 | ||
3612 | [power10-64] | |
206c08ce BS |
3613 | const unsigned long long __builtin_cfuged (unsigned long long, \ |
3614 | unsigned long long); | |
50cb8300 BS |
3615 | CFUGED cfuged {} |
3616 | ||
206c08ce BS |
3617 | const unsigned long long __builtin_cntlzdm (unsigned long long, \ |
3618 | unsigned long long); | |
50cb8300 BS |
3619 | CNTLZDM cntlzdm {} |
3620 | ||
206c08ce BS |
3621 | const unsigned long long __builtin_cnttzdm (unsigned long long, \ |
3622 | unsigned long long); | |
50cb8300 BS |
3623 | CNTTZDM cnttzdm {} |
3624 | ||
206c08ce BS |
3625 | const unsigned long long __builtin_pdepd (unsigned long long, \ |
3626 | unsigned long long); | |
50cb8300 BS |
3627 | PDEPD pdepd {} |
3628 | ||
206c08ce BS |
3629 | const unsigned long long __builtin_pextd (unsigned long long, \ |
3630 | unsigned long long); | |
50cb8300 | 3631 | PEXTD pextd {} |
344951b6 BS |
3632 | |
3633 | ||
3634 | [mma] | |
3635 | void __builtin_mma_assemble_acc (v512 *, vuc, vuc, vuc, vuc); | |
6cba7d1d | 3636 | ASSEMBLE_ACC nothing {mma,mmaint} |
344951b6 BS |
3637 | |
3638 | v512 __builtin_mma_assemble_acc_internal (vuc, vuc, vuc, vuc); | |
3639 | ASSEMBLE_ACC_INTERNAL mma_assemble_acc {mma} | |
3640 | ||
3641 | void __builtin_mma_assemble_pair (v256 *, vuc, vuc); | |
6cba7d1d | 3642 | ASSEMBLE_PAIR nothing {mma,mmaint} |
344951b6 BS |
3643 | |
3644 | v256 __builtin_mma_assemble_pair_internal (vuc, vuc); | |
3645 | ASSEMBLE_PAIR_INTERNAL vsx_assemble_pair {mma} | |
3646 | ||
3647 | void __builtin_mma_build_acc (v512 *, vuc, vuc, vuc, vuc); | |
6cba7d1d | 3648 | BUILD_ACC nothing {mma,mmaint} |
344951b6 BS |
3649 | |
3650 | v512 __builtin_mma_build_acc_internal (vuc, vuc, vuc, vuc); | |
3651 | BUILD_ACC_INTERNAL mma_assemble_acc {mma} | |
3652 | ||
3653 | void __builtin_mma_disassemble_acc (void *, v512 *); | |
6cba7d1d | 3654 | DISASSEMBLE_ACC nothing {mma,quad,mmaint} |
344951b6 BS |
3655 | |
3656 | vuc __builtin_mma_disassemble_acc_internal (v512, const int<2>); | |
3657 | DISASSEMBLE_ACC_INTERNAL mma_disassemble_acc {mma} | |
3658 | ||
3659 | void __builtin_mma_disassemble_pair (void *, v256 *); | |
6cba7d1d | 3660 | DISASSEMBLE_PAIR nothing {mma,pair,mmaint} |
344951b6 BS |
3661 | |
3662 | vuc __builtin_mma_disassemble_pair_internal (v256, const int<2>); | |
3663 | DISASSEMBLE_PAIR_INTERNAL vsx_disassemble_pair {mma} | |
3664 | ||
206c08ce BS |
3665 | void __builtin_mma_pmxvbf16ger2 (v512 *, vuc, vuc, const int<4>, \ |
3666 | const int<4>, const int<2>); | |
6cba7d1d | 3667 | PMXVBF16GER2 nothing {mma,mmaint} |
344951b6 | 3668 | |
206c08ce BS |
3669 | v512 __builtin_mma_pmxvbf16ger2_internal (vuc, vuc, const int<4>, \ |
3670 | const int<4>, const int<2>); | |
344951b6 BS |
3671 | PMXVBF16GER2_INTERNAL mma_pmxvbf16ger2 {mma} |
3672 | ||
206c08ce BS |
3673 | void __builtin_mma_pmxvbf16ger2nn (v512 *, vuc, vuc, const int<4>, \ |
3674 | const int<4>, const int<2>); | |
6cba7d1d | 3675 | PMXVBF16GER2NN nothing {mma,quad,mmaint} |
344951b6 | 3676 | |
206c08ce BS |
3677 | v512 __builtin_mma_pmxvbf16ger2nn_internal (v512, vuc, vuc, const int<4>, \ |
3678 | const int<4>, const int<2>); | |
344951b6 BS |
3679 | PMXVBF16GER2NN_INTERNAL mma_pmxvbf16ger2nn {mma,quad} |
3680 | ||
206c08ce BS |
3681 | void __builtin_mma_pmxvbf16ger2np (v512 *, vuc, vuc, const int<4>, \ |
3682 | const int<4>, const int<2>); | |
6cba7d1d | 3683 | PMXVBF16GER2NP nothing {mma,quad,mmaint} |
344951b6 | 3684 | |
206c08ce BS |
3685 | v512 __builtin_mma_pmxvbf16ger2np_internal (v512, vuc, vuc, const int<4>, \ |
3686 | const int<4>, const int<2>); | |
344951b6 BS |
3687 | PMXVBF16GER2NP_INTERNAL mma_pmxvbf16ger2np {mma,quad} |
3688 | ||
206c08ce BS |
3689 | void __builtin_mma_pmxvbf16ger2pn (v512 *, vuc, vuc, const int<4>, \ |
3690 | const int<4>, const int<2>); | |
6cba7d1d | 3691 | PMXVBF16GER2PN nothing {mma,quad,mmaint} |
344951b6 | 3692 | |
206c08ce BS |
3693 | v512 __builtin_mma_pmxvbf16ger2pn_internal (v512, vuc, vuc, const int<4>, \ |
3694 | const int<4>, const int<2>); | |
344951b6 BS |
3695 | PMXVBF16GER2PN_INTERNAL mma_pmxvbf16ger2pn {mma,quad} |
3696 | ||
206c08ce BS |
3697 | void __builtin_mma_pmxvbf16ger2pp (v512 *, vuc, vuc, const int<4>, \ |
3698 | const int<4>, const int<2>); | |
6cba7d1d | 3699 | PMXVBF16GER2PP nothing {mma,quad,mmaint} |
344951b6 | 3700 | |
206c08ce BS |
3701 | v512 __builtin_mma_pmxvbf16ger2pp_internal (v512, vuc, vuc, const int<4>, \ |
3702 | const int<4>, const int<2>); | |
344951b6 BS |
3703 | PMXVBF16GER2PP_INTERNAL mma_pmxvbf16ger2pp {mma,quad} |
3704 | ||
206c08ce BS |
3705 | void __builtin_mma_pmxvf16ger2 (v512 *, vuc, vuc, const int<4>, \ |
3706 | const int<4>, const int<2>); | |
6cba7d1d | 3707 | PMXVF16GER2 nothing {mma,mmaint} |
344951b6 | 3708 | |
206c08ce BS |
3709 | v512 __builtin_mma_pmxvf16ger2_internal (vuc, vuc, const int<4>, \ |
3710 | const int<4>, const int<2>); | |
344951b6 BS |
3711 | PMXVF16GER2_INTERNAL mma_pmxvf16ger2 {mma} |
3712 | ||
206c08ce BS |
3713 | void __builtin_mma_pmxvf16ger2nn (v512 *, vuc, vuc, const int<4>, \ |
3714 | const int<4>, const int<2>); | |
6cba7d1d | 3715 | PMXVF16GER2NN nothing {mma,quad,mmaint} |
344951b6 | 3716 | |
206c08ce BS |
3717 | v512 __builtin_mma_pmxvf16ger2nn_internal (v512, vuc, vuc, const int<4>, \ |
3718 | const int<4>, const int<2>); | |
344951b6 BS |
3719 | PMXVF16GER2NN_INTERNAL mma_pmxvf16ger2nn {mma,quad} |
3720 | ||
206c08ce BS |
3721 | void __builtin_mma_pmxvf16ger2np (v512 *, vuc, vuc, const int<4>, \ |
3722 | const int<4>, const int<2>); | |
6cba7d1d | 3723 | PMXVF16GER2NP nothing {mma,quad,mmaint} |
344951b6 | 3724 | |
206c08ce BS |
3725 | v512 __builtin_mma_pmxvf16ger2np_internal (v512, vuc, vuc, const int<4>, \ |
3726 | const int<4>, const int<2>); | |
344951b6 BS |
3727 | PMXVF16GER2NP_INTERNAL mma_pmxvf16ger2np {mma,quad} |
3728 | ||
206c08ce BS |
3729 | void __builtin_mma_pmxvf16ger2pn (v512 *, vuc, vuc, const int<4>, \ |
3730 | const int<4>, const int<2>); | |
6cba7d1d | 3731 | PMXVF16GER2PN nothing {mma,quad,mmaint} |
344951b6 | 3732 | |
206c08ce BS |
3733 | v512 __builtin_mma_pmxvf16ger2pn_internal (v512, vuc, vuc, const int<4>, \ |
3734 | const int<4>, const int<2>); | |
344951b6 BS |
3735 | PMXVF16GER2PN_INTERNAL mma_pmxvf16ger2pn {mma,quad} |
3736 | ||
206c08ce BS |
3737 | void __builtin_mma_pmxvf16ger2pp (v512 *, vuc, vuc, const int<4>, \ |
3738 | const int<4>, const int<2>); | |
6cba7d1d | 3739 | PMXVF16GER2PP nothing {mma,quad,mmaint} |
344951b6 | 3740 | |
206c08ce BS |
3741 | v512 __builtin_mma_pmxvf16ger2pp_internal (v512, vuc, vuc, const int<4>, \ |
3742 | const int<4>, const int<2>); | |
344951b6 BS |
3743 | PMXVF16GER2PP_INTERNAL mma_pmxvf16ger2pp {mma,quad} |
3744 | ||
3745 | void __builtin_mma_pmxvf32ger (v512 *, vuc, vuc, const int<4>, const int<4>); | |
6cba7d1d | 3746 | PMXVF32GER nothing {mma,mmaint} |
344951b6 | 3747 | |
206c08ce BS |
3748 | v512 __builtin_mma_pmxvf32ger_internal (vuc, vuc, const int<4>, \ |
3749 | const int<4>); | |
344951b6 BS |
3750 | PMXVF32GER_INTERNAL mma_pmxvf32ger {mma} |
3751 | ||
206c08ce BS |
3752 | void __builtin_mma_pmxvf32gernn (v512 *, vuc, vuc, const int<4>, \ |
3753 | const int<4>); | |
6cba7d1d | 3754 | PMXVF32GERNN nothing {mma,quad,mmaint} |
344951b6 | 3755 | |
206c08ce BS |
3756 | v512 __builtin_mma_pmxvf32gernn_internal (v512, vuc, vuc, const int<4>, \ |
3757 | const int<4>); | |
344951b6 BS |
3758 | PMXVF32GERNN_INTERNAL mma_pmxvf32gernn {mma,quad} |
3759 | ||
206c08ce BS |
3760 | void __builtin_mma_pmxvf32gernp (v512 *, vuc, vuc, const int<4>, \ |
3761 | const int<4>); | |
6cba7d1d | 3762 | PMXVF32GERNP nothing {mma,quad,mmaint} |
344951b6 | 3763 | |
206c08ce BS |
3764 | v512 __builtin_mma_pmxvf32gernp_internal (v512, vuc, vuc, const int<4>, \ |
3765 | const int<4>); | |
344951b6 BS |
3766 | PMXVF32GERNP_INTERNAL mma_pmxvf32gernp {mma,quad} |
3767 | ||
206c08ce BS |
3768 | void __builtin_mma_pmxvf32gerpn (v512 *, vuc, vuc, const int<4>, \ |
3769 | const int<4>); | |
6cba7d1d | 3770 | PMXVF32GERPN nothing {mma,quad,mmaint} |
344951b6 | 3771 | |
206c08ce BS |
3772 | v512 __builtin_mma_pmxvf32gerpn_internal (v512, vuc, vuc, const int<4>, \ |
3773 | const int<4>); | |
344951b6 BS |
3774 | PMXVF32GERPN_INTERNAL mma_pmxvf32gerpn {mma,quad} |
3775 | ||
206c08ce BS |
3776 | void __builtin_mma_pmxvf32gerpp (v512 *, vuc, vuc, const int<4>, \ |
3777 | const int<4>); | |
6cba7d1d | 3778 | PMXVF32GERPP nothing {mma,quad,mmaint} |
344951b6 | 3779 | |
206c08ce BS |
3780 | v512 __builtin_mma_pmxvf32gerpp_internal (v512, vuc, vuc, const int<4>, \ |
3781 | const int<4>); | |
344951b6 BS |
3782 | PMXVF32GERPP_INTERNAL mma_pmxvf32gerpp {mma,quad} |
3783 | ||
206c08ce BS |
3784 | void __builtin_mma_pmxvf64ger (v512 *, v256, vuc, const int<4>, \ |
3785 | const int<2>); | |
6cba7d1d | 3786 | PMXVF64GER nothing {mma,pair,mmaint} |
344951b6 | 3787 | |
206c08ce BS |
3788 | v512 __builtin_mma_pmxvf64ger_internal (v256, vuc, const int<4>, \ |
3789 | const int<2>); | |
344951b6 BS |
3790 | PMXVF64GER_INTERNAL mma_pmxvf64ger {mma,pair} |
3791 | ||
206c08ce BS |
3792 | void __builtin_mma_pmxvf64gernn (v512 *, v256, vuc, const int<4>, \ |
3793 | const int<2>); | |
6cba7d1d | 3794 | PMXVF64GERNN nothing {mma,pair,quad,mmaint} |
344951b6 | 3795 | |
206c08ce BS |
3796 | v512 __builtin_mma_pmxvf64gernn_internal (v512, v256, vuc, const int<4>, \ |
3797 | const int<2>); | |
344951b6 BS |
3798 | PMXVF64GERNN_INTERNAL mma_pmxvf64gernn {mma,pair,quad} |
3799 | ||
206c08ce BS |
3800 | void __builtin_mma_pmxvf64gernp (v512 *, v256, vuc, const int<4>, \ |
3801 | const int<2>); | |
6cba7d1d | 3802 | PMXVF64GERNP nothing {mma,pair,quad,mmaint} |
344951b6 | 3803 | |
206c08ce BS |
3804 | v512 __builtin_mma_pmxvf64gernp_internal (v512, v256, vuc, const int<4>, \ |
3805 | const int<2>); | |
344951b6 BS |
3806 | PMXVF64GERNP_INTERNAL mma_pmxvf64gernp {mma,pair,quad} |
3807 | ||
206c08ce BS |
3808 | void __builtin_mma_pmxvf64gerpn (v512 *, v256, vuc, const int<4>, \ |
3809 | const int<2>); | |
6cba7d1d | 3810 | PMXVF64GERPN nothing {mma,pair,quad,mmaint} |
344951b6 | 3811 | |
206c08ce BS |
3812 | v512 __builtin_mma_pmxvf64gerpn_internal (v512, v256, vuc, const int<4>, \ |
3813 | const int<2>); | |
344951b6 BS |
3814 | PMXVF64GERPN_INTERNAL mma_pmxvf64gerpn {mma,pair,quad} |
3815 | ||
206c08ce BS |
3816 | void __builtin_mma_pmxvf64gerpp (v512 *, v256, vuc, const int<4>, \ |
3817 | const int<2>); | |
6cba7d1d | 3818 | PMXVF64GERPP nothing {mma,pair,quad,mmaint} |
344951b6 | 3819 | |
206c08ce BS |
3820 | v512 __builtin_mma_pmxvf64gerpp_internal (v512, v256, vuc, const int<4>, \ |
3821 | const int<2>); | |
344951b6 BS |
3822 | PMXVF64GERPP_INTERNAL mma_pmxvf64gerpp {mma,pair,quad} |
3823 | ||
206c08ce BS |
3824 | void __builtin_mma_pmxvi16ger2 (v512 *, vuc, vuc, const int<4>, \ |
3825 | const int<4>, const int<2>); | |
6cba7d1d | 3826 | PMXVI16GER2 nothing {mma,mmaint} |
344951b6 | 3827 | |
206c08ce BS |
3828 | v512 __builtin_mma_pmxvi16ger2_internal (vuc, vuc, const int<4>, \ |
3829 | const int<4>, const int<2>); | |
344951b6 BS |
3830 | PMXVI16GER2_INTERNAL mma_pmxvi16ger2 {mma} |
3831 | ||
206c08ce BS |
3832 | void __builtin_mma_pmxvi16ger2pp (v512 *, vuc, vuc, const int<4>, \ |
3833 | const int<4>, const int<2>); | |
6cba7d1d | 3834 | PMXVI16GER2PP nothing {mma,quad,mmaint} |
344951b6 | 3835 | |
206c08ce BS |
3836 | v512 __builtin_mma_pmxvi16ger2pp_internal (v512, vuc, vuc, const int<4>, \ |
3837 | const int<4>, const int<2>); | |
344951b6 BS |
3838 | PMXVI16GER2PP_INTERNAL mma_pmxvi16ger2pp {mma,quad} |
3839 | ||
206c08ce BS |
3840 | void __builtin_mma_pmxvi16ger2s (v512 *, vuc, vuc, const int<4>, \ |
3841 | const int<4>, const int<2>); | |
6cba7d1d | 3842 | PMXVI16GER2S nothing {mma,mmaint} |
344951b6 | 3843 | |
206c08ce BS |
3844 | v512 __builtin_mma_pmxvi16ger2s_internal (vuc, vuc, const int<4>, \ |
3845 | const int<4>, const int<2>); | |
344951b6 BS |
3846 | PMXVI16GER2S_INTERNAL mma_pmxvi16ger2s {mma} |
3847 | ||
206c08ce BS |
3848 | void __builtin_mma_pmxvi16ger2spp (v512 *, vuc, vuc, const int<4>, \ |
3849 | const int<4>, const int<2>); | |
6cba7d1d | 3850 | PMXVI16GER2SPP nothing {mma,quad,mmaint} |
344951b6 | 3851 | |
206c08ce BS |
3852 | v512 __builtin_mma_pmxvi16ger2spp_internal (v512, vuc, vuc, const int<4>, \ |
3853 | const int<4>, const int<2>); | |
344951b6 BS |
3854 | PMXVI16GER2SPP_INTERNAL mma_pmxvi16ger2spp {mma,quad} |
3855 | ||
206c08ce BS |
3856 | void __builtin_mma_pmxvi4ger8 (v512 *, vuc, vuc, const int<4>, \ |
3857 | const int<4>, const int<8>); | |
6cba7d1d | 3858 | PMXVI4GER8 nothing {mma,mmaint} |
344951b6 | 3859 | |
206c08ce BS |
3860 | v512 __builtin_mma_pmxvi4ger8_internal (vuc, vuc, const int<4>, \ |
3861 | const int<4>, const int<8>); | |
344951b6 BS |
3862 | PMXVI4GER8_INTERNAL mma_pmxvi4ger8 {mma} |
3863 | ||
206c08ce BS |
3864 | void __builtin_mma_pmxvi4ger8pp (v512 *, vuc, vuc, const int<4>, \ |
3865 | const int<4>, const int<4>); | |
6cba7d1d | 3866 | PMXVI4GER8PP nothing {mma,quad,mmaint} |
344951b6 | 3867 | |
206c08ce BS |
3868 | v512 __builtin_mma_pmxvi4ger8pp_internal (v512, vuc, vuc, const int<4>, \ |
3869 | const int<4>, const int<4>); | |
344951b6 BS |
3870 | PMXVI4GER8PP_INTERNAL mma_pmxvi4ger8pp {mma,quad} |
3871 | ||
206c08ce BS |
3872 | void __builtin_mma_pmxvi8ger4 (v512 *, vuc, vuc, const int<4>, \ |
3873 | const int<4>, const int<4>); | |
6cba7d1d | 3874 | PMXVI8GER4 nothing {mma,mmaint} |
344951b6 | 3875 | |
206c08ce BS |
3876 | v512 __builtin_mma_pmxvi8ger4_internal (vuc, vuc, const int<4>, \ |
3877 | const int<4>, const int<4>); | |
344951b6 BS |
3878 | PMXVI8GER4_INTERNAL mma_pmxvi8ger4 {mma} |
3879 | ||
206c08ce BS |
3880 | void __builtin_mma_pmxvi8ger4pp (v512 *, vuc, vuc, const int<4>, \ |
3881 | const int<4>, const int<4>); | |
6cba7d1d | 3882 | PMXVI8GER4PP nothing {mma,quad,mmaint} |
344951b6 | 3883 | |
206c08ce BS |
3884 | v512 __builtin_mma_pmxvi8ger4pp_internal (v512, vuc, vuc, const int<4>, \ |
3885 | const int<4>, const int<4>); | |
344951b6 BS |
3886 | PMXVI8GER4PP_INTERNAL mma_pmxvi8ger4pp {mma,quad} |
3887 | ||
206c08ce BS |
3888 | void __builtin_mma_pmxvi8ger4spp (v512 *, vuc, vuc, const int<4>, \ |
3889 | const int<4>, const int<4>); | |
6cba7d1d | 3890 | PMXVI8GER4SPP nothing {mma,quad,mmaint} |
344951b6 | 3891 | |
206c08ce BS |
3892 | v512 __builtin_mma_pmxvi8ger4spp_internal (v512, vuc, vuc, const int<4>, \ |
3893 | const int<4>, const int<4>); | |
344951b6 BS |
3894 | PMXVI8GER4SPP_INTERNAL mma_pmxvi8ger4spp {mma,quad} |
3895 | ||
3896 | void __builtin_mma_xvbf16ger2 (v512 *, vuc, vuc); | |
6cba7d1d | 3897 | XVBF16GER2 nothing {mma,mmaint} |
344951b6 BS |
3898 | |
3899 | v512 __builtin_mma_xvbf16ger2_internal (vuc, vuc); | |
3900 | XVBF16GER2_INTERNAL mma_xvbf16ger2 {mma} | |
3901 | ||
3902 | void __builtin_mma_xvbf16ger2nn (v512 *, vuc, vuc); | |
6cba7d1d | 3903 | XVBF16GER2NN nothing {mma,quad,mmaint} |
344951b6 BS |
3904 | |
3905 | v512 __builtin_mma_xvbf16ger2nn_internal (v512, vuc, vuc); | |
3906 | XVBF16GER2NN_INTERNAL mma_xvbf16ger2nn {mma,quad} | |
3907 | ||
3908 | void __builtin_mma_xvbf16ger2np (v512 *, vuc, vuc); | |
6cba7d1d | 3909 | XVBF16GER2NP nothing {mma,quad,mmaint} |
344951b6 BS |
3910 | |
3911 | v512 __builtin_mma_xvbf16ger2np_internal (v512, vuc, vuc); | |
3912 | XVBF16GER2NP_INTERNAL mma_xvbf16ger2np {mma,quad} | |
3913 | ||
3914 | void __builtin_mma_xvbf16ger2pn (v512 *, vuc, vuc); | |
6cba7d1d | 3915 | XVBF16GER2PN nothing {mma,quad,mmaint} |
344951b6 BS |
3916 | |
3917 | v512 __builtin_mma_xvbf16ger2pn_internal (v512, vuc, vuc); | |
3918 | XVBF16GER2PN_INTERNAL mma_xvbf16ger2pn {mma,quad} | |
3919 | ||
3920 | void __builtin_mma_xvbf16ger2pp (v512 *, vuc, vuc); | |
6cba7d1d | 3921 | XVBF16GER2PP nothing {mma,quad,mmaint} |
344951b6 BS |
3922 | |
3923 | v512 __builtin_mma_xvbf16ger2pp_internal (v512, vuc, vuc); | |
3924 | XVBF16GER2PP_INTERNAL mma_xvbf16ger2pp {mma,quad} | |
3925 | ||
3926 | void __builtin_mma_xvf16ger2 (v512 *, vuc, vuc); | |
6cba7d1d | 3927 | XVF16GER2 nothing {mma,mmaint} |
344951b6 BS |
3928 | |
3929 | v512 __builtin_mma_xvf16ger2_internal (vuc, vuc); | |
3930 | XVF16GER2_INTERNAL mma_xvf16ger2 {mma} | |
3931 | ||
3932 | void __builtin_mma_xvf16ger2nn (v512 *, vuc, vuc); | |
6cba7d1d | 3933 | XVF16GER2NN nothing {mma,quad,mmaint} |
344951b6 BS |
3934 | |
3935 | v512 __builtin_mma_xvf16ger2nn_internal (v512, vuc, vuc); | |
3936 | XVF16GER2NN_INTERNAL mma_xvf16ger2nn {mma,quad} | |
3937 | ||
3938 | void __builtin_mma_xvf16ger2np (v512 *, vuc, vuc); | |
6cba7d1d | 3939 | XVF16GER2NP nothing {mma,quad,mmaint} |
344951b6 BS |
3940 | |
3941 | v512 __builtin_mma_xvf16ger2np_internal (v512, vuc, vuc); | |
3942 | XVF16GER2NP_INTERNAL mma_xvf16ger2np {mma,quad} | |
3943 | ||
3944 | void __builtin_mma_xvf16ger2pn (v512 *, vuc, vuc); | |
6cba7d1d | 3945 | XVF16GER2PN nothing {mma,quad,mmaint} |
344951b6 BS |
3946 | |
3947 | v512 __builtin_mma_xvf16ger2pn_internal (v512, vuc, vuc); | |
3948 | XVF16GER2PN_INTERNAL mma_xvf16ger2pn {mma,quad} | |
3949 | ||
3950 | void __builtin_mma_xvf16ger2pp (v512 *, vuc, vuc); | |
6cba7d1d | 3951 | XVF16GER2PP nothing {mma,quad,mmaint} |
344951b6 BS |
3952 | |
3953 | v512 __builtin_mma_xvf16ger2pp_internal (v512, vuc, vuc); | |
3954 | XVF16GER2PP_INTERNAL mma_xvf16ger2pp {mma,quad} | |
3955 | ||
3956 | void __builtin_mma_xvf32ger (v512 *, vuc, vuc); | |
6cba7d1d | 3957 | XVF32GER nothing {mma,mmaint} |
344951b6 BS |
3958 | |
3959 | v512 __builtin_mma_xvf32ger_internal (vuc, vuc); | |
3960 | XVF32GER_INTERNAL mma_xvf32ger {mma} | |
3961 | ||
3962 | void __builtin_mma_xvf32gernn (v512 *, vuc, vuc); | |
6cba7d1d | 3963 | XVF32GERNN nothing {mma,quad,mmaint} |
344951b6 BS |
3964 | |
3965 | v512 __builtin_mma_xvf32gernn_internal (v512, vuc, vuc); | |
3966 | XVF32GERNN_INTERNAL mma_xvf32gernn {mma,quad} | |
3967 | ||
3968 | void __builtin_mma_xvf32gernp (v512 *, vuc, vuc); | |
6cba7d1d | 3969 | XVF32GERNP nothing {mma,quad,mmaint} |
344951b6 BS |
3970 | |
3971 | v512 __builtin_mma_xvf32gernp_internal (v512, vuc, vuc); | |
3972 | XVF32GERNP_INTERNAL mma_xvf32gernp {mma,quad} | |
3973 | ||
3974 | void __builtin_mma_xvf32gerpn (v512 *, vuc, vuc); | |
6cba7d1d | 3975 | XVF32GERPN nothing {mma,quad,mmaint} |
344951b6 BS |
3976 | |
3977 | v512 __builtin_mma_xvf32gerpn_internal (v512, vuc, vuc); | |
3978 | XVF32GERPN_INTERNAL mma_xvf32gerpn {mma,quad} | |
3979 | ||
3980 | void __builtin_mma_xvf32gerpp (v512 *, vuc, vuc); | |
6cba7d1d | 3981 | XVF32GERPP nothing {mma,quad,mmaint} |
344951b6 BS |
3982 | |
3983 | v512 __builtin_mma_xvf32gerpp_internal (v512, vuc, vuc); | |
3984 | XVF32GERPP_INTERNAL mma_xvf32gerpp {mma,quad} | |
3985 | ||
3986 | void __builtin_mma_xvf64ger (v512 *, v256, vuc); | |
6cba7d1d | 3987 | XVF64GER nothing {mma,pair,mmaint} |
344951b6 BS |
3988 | |
3989 | v512 __builtin_mma_xvf64ger_internal (v256, vuc); | |
3990 | XVF64GER_INTERNAL mma_xvf64ger {mma,pair} | |
3991 | ||
3992 | void __builtin_mma_xvf64gernn (v512 *, v256, vuc); | |
6cba7d1d | 3993 | XVF64GERNN nothing {mma,pair,quad,mmaint} |
344951b6 BS |
3994 | |
3995 | v512 __builtin_mma_xvf64gernn_internal (v512, v256, vuc); | |
3996 | XVF64GERNN_INTERNAL mma_xvf64gernn {mma,pair,quad} | |
3997 | ||
3998 | void __builtin_mma_xvf64gernp (v512 *, v256, vuc); | |
6cba7d1d | 3999 | XVF64GERNP nothing {mma,pair,quad,mmaint} |
344951b6 BS |
4000 | |
4001 | v512 __builtin_mma_xvf64gernp_internal (v512, v256, vuc); | |
4002 | XVF64GERNP_INTERNAL mma_xvf64gernp {mma,pair,quad} | |
4003 | ||
4004 | void __builtin_mma_xvf64gerpn (v512 *, v256, vuc); | |
6cba7d1d | 4005 | XVF64GERPN nothing {mma,pair,quad,mmaint} |
344951b6 BS |
4006 | |
4007 | v512 __builtin_mma_xvf64gerpn_internal (v512, v256, vuc); | |
4008 | XVF64GERPN_INTERNAL mma_xvf64gerpn {mma,pair,quad} | |
4009 | ||
4010 | void __builtin_mma_xvf64gerpp (v512 *, v256, vuc); | |
6cba7d1d | 4011 | XVF64GERPP nothing {mma,pair,quad,mmaint} |
344951b6 BS |
4012 | |
4013 | v512 __builtin_mma_xvf64gerpp_internal (v512, v256, vuc); | |
4014 | XVF64GERPP_INTERNAL mma_xvf64gerpp {mma,pair,quad} | |
4015 | ||
4016 | void __builtin_mma_xvi16ger2 (v512 *, vuc, vuc); | |
6cba7d1d | 4017 | XVI16GER2 nothing {mma,mmaint} |
344951b6 BS |
4018 | |
4019 | v512 __builtin_mma_xvi16ger2_internal (vuc, vuc); | |
4020 | XVI16GER2_INTERNAL mma_xvi16ger2 {mma} | |
4021 | ||
4022 | void __builtin_mma_xvi16ger2pp (v512 *, vuc, vuc); | |
6cba7d1d | 4023 | XVI16GER2PP nothing {mma,quad,mmaint} |
344951b6 BS |
4024 | |
4025 | v512 __builtin_mma_xvi16ger2pp_internal (v512, vuc, vuc); | |
4026 | XVI16GER2PP_INTERNAL mma_xvi16ger2pp {mma,quad} | |
4027 | ||
4028 | void __builtin_mma_xvi16ger2s (v512 *, vuc, vuc); | |
6cba7d1d | 4029 | XVI16GER2S nothing {mma,mmaint} |
344951b6 BS |
4030 | |
4031 | v512 __builtin_mma_xvi16ger2s_internal (vuc, vuc); | |
4032 | XVI16GER2S_INTERNAL mma_xvi16ger2s {mma} | |
4033 | ||
4034 | void __builtin_mma_xvi16ger2spp (v512 *, vuc, vuc); | |
6cba7d1d | 4035 | XVI16GER2SPP nothing {mma,quad,mmaint} |
344951b6 BS |
4036 | |
4037 | v512 __builtin_mma_xvi16ger2spp_internal (v512, vuc, vuc); | |
4038 | XVI16GER2SPP_INTERNAL mma_xvi16ger2spp {mma,quad} | |
4039 | ||
4040 | void __builtin_mma_xvi4ger8 (v512 *, vuc, vuc); | |
6cba7d1d | 4041 | XVI4GER8 nothing {mma,mmaint} |
344951b6 BS |
4042 | |
4043 | v512 __builtin_mma_xvi4ger8_internal (vuc, vuc); | |
4044 | XVI4GER8_INTERNAL mma_xvi4ger8 {mma} | |
4045 | ||
4046 | void __builtin_mma_xvi4ger8pp (v512 *, vuc, vuc); | |
6cba7d1d | 4047 | XVI4GER8PP nothing {mma,quad,mmaint} |
344951b6 BS |
4048 | |
4049 | v512 __builtin_mma_xvi4ger8pp_internal (v512, vuc, vuc); | |
4050 | XVI4GER8PP_INTERNAL mma_xvi4ger8pp {mma,quad} | |
4051 | ||
4052 | void __builtin_mma_xvi8ger4 (v512 *, vuc, vuc); | |
6cba7d1d | 4053 | XVI8GER4 nothing {mma,mmaint} |
344951b6 BS |
4054 | |
4055 | v512 __builtin_mma_xvi8ger4_internal (vuc, vuc); | |
4056 | XVI8GER4_INTERNAL mma_xvi8ger4 {mma} | |
4057 | ||
4058 | void __builtin_mma_xvi8ger4pp (v512 *, vuc, vuc); | |
6cba7d1d | 4059 | XVI8GER4PP nothing {mma,quad,mmaint} |
344951b6 BS |
4060 | |
4061 | v512 __builtin_mma_xvi8ger4pp_internal (v512, vuc, vuc); | |
4062 | XVI8GER4PP_INTERNAL mma_xvi8ger4pp {mma,quad} | |
4063 | ||
4064 | void __builtin_mma_xvi8ger4spp (v512 *, vuc, vuc); | |
6cba7d1d | 4065 | XVI8GER4SPP nothing {mma,quad,mmaint} |
344951b6 BS |
4066 | |
4067 | v512 __builtin_mma_xvi8ger4spp_internal (v512, vuc, vuc); | |
4068 | XVI8GER4SPP_INTERNAL mma_xvi8ger4spp {mma,quad} | |
4069 | ||
4070 | void __builtin_mma_xxmfacc (v512 *); | |
6cba7d1d | 4071 | XXMFACC nothing {mma,quad,mmaint} |
344951b6 BS |
4072 | |
4073 | v512 __builtin_mma_xxmfacc_internal (v512); | |
4074 | XXMFACC_INTERNAL mma_xxmfacc {mma,quad} | |
4075 | ||
4076 | void __builtin_mma_xxmtacc (v512 *); | |
6cba7d1d | 4077 | XXMTACC nothing {mma,quad,mmaint} |
344951b6 BS |
4078 | |
4079 | v512 __builtin_mma_xxmtacc_internal (v512); | |
4080 | XXMTACC_INTERNAL mma_xxmtacc {mma,quad} | |
4081 | ||
4082 | void __builtin_mma_xxsetaccz (v512 *); | |
6cba7d1d | 4083 | XXSETACCZ nothing {mma,mmaint} |
344951b6 BS |
4084 | |
4085 | v512 __builtin_mma_xxsetaccz_internal (); | |
4086 | XXSETACCZ_INTERNAL mma_xxsetaccz {mma} | |
4087 | ||
4088 | void __builtin_vsx_assemble_pair (v256 *, vuc, vuc); | |
6cba7d1d | 4089 | ASSEMBLE_PAIR_V nothing {mma,mmaint} |
344951b6 BS |
4090 | |
4091 | v256 __builtin_vsx_assemble_pair_internal (vuc, vuc); | |
4092 | ASSEMBLE_PAIR_V_INTERNAL vsx_assemble_pair {mma} | |
4093 | ||
4094 | void __builtin_vsx_build_pair (v256 *, vuc, vuc); | |
6cba7d1d | 4095 | BUILD_PAIR nothing {mma,mmaint} |
344951b6 BS |
4096 | |
4097 | v256 __builtin_vsx_build_pair_internal (vuc, vuc); | |
4098 | BUILD_PAIR_INTERNAL vsx_assemble_pair {mma} | |
4099 | ||
4100 | void __builtin_vsx_disassemble_pair (void *, v256 *); | |
6cba7d1d | 4101 | DISASSEMBLE_PAIR_V nothing {mma,pair,mmaint} |
344951b6 BS |
4102 | |
4103 | vuc __builtin_vsx_disassemble_pair_internal (v256, const int<2>); | |
4104 | DISASSEMBLE_PAIR_V_INTERNAL vsx_disassemble_pair {mma} | |
6cba7d1d BS |
4105 | |
4106 | v256 __builtin_vsx_lxvp (unsigned long, const v256 *); | |
4107 | LXVP nothing {mma} | |
4108 | ||
4109 | void __builtin_vsx_stxvp (v256, unsigned long, const v256 *); | |
4110 | STXVP nothing {mma,pair} |