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