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