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
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
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
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
):
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
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
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
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.
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 ();
199 void __builtin_cpu_init ();
200 CPU_INIT nothing {cpu}
202 bool __builtin_cpu_is (string);
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 ();
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 double __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.
254 fpmath double __builtin_recipdiv (double, double);
257 fpmath float __builtin_recipdivf (float, float);
260 fpmath double __builtin_rsqrt (double);
263 fpmath float __builtin_rsqrtf (float);
267 ; Power6 builtins (ISA 2.05).
269 const signed int __builtin_p6_cmpb_32 (signed int, signed int);
273 ; Power6 builtins requiring 64-bit GPRs (even with 32-bit addressing).
275 const signed long __builtin_p6_cmpb (signed long, signed long);
276 CMPB cmpbdi3 {no32bit}
281 const vsc __builtin_altivec_abs_v16qi (vsc);
282 ABS_V16QI absv16qi2 {}
284 const vf __builtin_altivec_abs_v4sf (vf);
287 const vsi __builtin_altivec_abs_v4si (vsi);
290 const vss __builtin_altivec_abs_v8hi (vss);
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>);
308 void __builtin_altivec_dssall ();
309 DSSALL altivec_dssall {}
311 void __builtin_altivec_dst (void *, const int, const int<2>);
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>);
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);
419 const vsi __builtin_altivec_neg_v4si (vsi);
422 const vss __builtin_altivec_neg_v8hi (vss);
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);
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);
485 const vuc __builtin_altivec_vaddubs (vuc, vuc);
486 VADDUBS altivec_vaddubs {}
488 const vus __builtin_altivec_vadduhm (vus, vus);
491 const vus __builtin_altivec_vadduhs (vus, vus);
492 VADDUHS altivec_vadduhs {}
494 const vsi __builtin_altivec_vadduwm (vsi, vsi);
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 vsc __builtin_altivec_vcmpneb (vsc, vsc);
645 VCMPNEB altivec_vcmpne_v16qi {}
647 const vss __builtin_altivec_vcmpneh (vss, vss);
648 VCMPNEH altivec_vcmpne_v8hi {}
650 const vsi __builtin_altivec_vcmpnew (vsi, vsi);
651 VCMPNEW altivec_vcmpne_v4si {}
653 const vsi __builtin_altivec_vctsxs (vf, const int<5>);
654 VCTSXS altivec_vctsxs {}
656 const vui __builtin_altivec_vctuxs (vf, const int<5>);
657 VCTUXS altivec_vctuxs {}
659 fpmath vf __builtin_altivec_vexptefp (vf);
660 VEXPTEFP altivec_vexptefp {}
662 fpmath vf __builtin_altivec_vlogefp (vf);
663 VLOGEFP altivec_vlogefp {}
665 fpmath vf __builtin_altivec_vmaddfp (vf, vf, vf);
668 const vf __builtin_altivec_vmaxfp (vf, vf);
671 const vsc __builtin_altivec_vmaxsb (vsc, vsc);
674 const vuc __builtin_altivec_vmaxub (vuc, vuc);
677 const vss __builtin_altivec_vmaxsh (vss, vss);
680 const vsi __builtin_altivec_vmaxsw (vsi, vsi);
683 const vus __builtin_altivec_vmaxuh (vus, vus);
686 const vui __builtin_altivec_vmaxuw (vui, vui);
689 vss __builtin_altivec_vmhaddshs (vss, vss, vss);
690 VMHADDSHS altivec_vmhaddshs {}
692 vss __builtin_altivec_vmhraddshs (vss, vss, vss);
693 VMHRADDSHS altivec_vmhraddshs {}
695 const vf __builtin_altivec_vminfp (vf, vf);
698 const vsc __builtin_altivec_vminsb (vsc, vsc);
701 const vss __builtin_altivec_vminsh (vss, vss);
704 const vsi __builtin_altivec_vminsw (vsi, vsi);
707 const vuc __builtin_altivec_vminub (vuc, vuc);
710 const vus __builtin_altivec_vminuh (vus, vus);
713 const vui __builtin_altivec_vminuw (vui, vui);
716 const vss __builtin_altivec_vmladduhm (vss, vss, vss);
717 VMLADDUHM fmav8hi4 {}
719 const vsc __builtin_altivec_vmrghb (vsc, vsc);
720 VMRGHB altivec_vmrghb {}
722 const vss __builtin_altivec_vmrghh (vss, vss);
723 VMRGHH altivec_vmrghh {}
725 const vsi __builtin_altivec_vmrghw (vsi, vsi);
726 VMRGHW altivec_vmrghw {}
728 const vsc __builtin_altivec_vmrglb (vsc, vsc);
729 VMRGLB altivec_vmrglb {}
731 const vss __builtin_altivec_vmrglh (vss, vss);
732 VMRGLH altivec_vmrglh {}
734 const vsi __builtin_altivec_vmrglw (vsi, vsi);
735 VMRGLW altivec_vmrglw {}
737 const vsi __builtin_altivec_vmsummbm (vsc, vuc, vsi);
738 VMSUMMBM altivec_vmsummbm {}
740 const vsi __builtin_altivec_vmsumshm (vss, vss, vsi);
741 VMSUMSHM altivec_vmsumshm {}
743 vsi __builtin_altivec_vmsumshs (vss, vss, vsi);
744 VMSUMSHS altivec_vmsumshs {}
746 const vui __builtin_altivec_vmsumubm (vuc, vuc, vui);
747 VMSUMUBM altivec_vmsumubm {}
749 const vui __builtin_altivec_vmsumuhm (vus, vus, vui);
750 VMSUMUHM altivec_vmsumuhm {}
752 vui __builtin_altivec_vmsumuhs (vus, vus, vui);
753 VMSUMUHS altivec_vmsumuhs {}
755 const vss __builtin_altivec_vmulesb (vsc, vsc);
756 VMULESB vec_widen_smult_even_v16qi {}
758 const vsi __builtin_altivec_vmulesh (vss, vss);
759 VMULESH vec_widen_smult_even_v8hi {}
761 const vus __builtin_altivec_vmuleub (vuc, vuc);
762 VMULEUB vec_widen_umult_even_v16qi {}
764 const vui __builtin_altivec_vmuleuh (vus, vus);
765 VMULEUH vec_widen_umult_even_v8hi {}
767 const vss __builtin_altivec_vmulosb (vsc, vsc);
768 VMULOSB vec_widen_smult_odd_v16qi {}
770 const vus __builtin_altivec_vmuloub (vuc, vuc);
771 VMULOUB vec_widen_umult_odd_v16qi {}
773 const vsi __builtin_altivec_vmulosh (vss, vss);
774 VMULOSH vec_widen_smult_odd_v8hi {}
776 const vui __builtin_altivec_vmulouh (vus, vus);
777 VMULOUH vec_widen_umult_odd_v8hi {}
779 fpmath vf __builtin_altivec_vnmsubfp (vf, vf, vf);
780 VNMSUBFP nfmsv4sf4 {}
782 const vsc __builtin_altivec_vnor_v16qi (vsc, vsc);
783 VNOR_V16QI norv16qi3 {}
785 const vuc __builtin_altivec_vnor_v16qi_uns (vuc, vuc);
786 VNOR_V16QI_UNS norv16qi3 {}
788 const vf __builtin_altivec_vnor_v4sf (vf, vf);
789 VNOR_V4SF norv4sf3 {}
791 const vsi __builtin_altivec_vnor_v4si (vsi, vsi);
792 VNOR_V4SI norv4si3 {}
794 const vui __builtin_altivec_vnor_v4si_uns (vui, vui);
795 VNOR_V4SI_UNS norv4si3 {}
797 const vss __builtin_altivec_vnor_v8hi (vss, vss);
798 VNOR_V8HI norv8hi3 {}
800 const vus __builtin_altivec_vnor_v8hi_uns (vus, vus);
801 VNOR_V8HI_UNS norv8hi3 {}
803 const vsc __builtin_altivec_vor_v16qi (vsc, vsc);
804 VOR_V16QI iorv16qi3 {}
806 const vuc __builtin_altivec_vor_v16qi_uns (vuc, vuc);
807 VOR_V16QI_UNS iorv16qi3 {}
809 const vf __builtin_altivec_vor_v4sf (vf, vf);
812 const vsi __builtin_altivec_vor_v4si (vsi, vsi);
815 const vui __builtin_altivec_vor_v4si_uns (vui, vui);
816 VOR_V4SI_UNS iorv4si3 {}
818 const vss __builtin_altivec_vor_v8hi (vss, vss);
821 const vus __builtin_altivec_vor_v8hi_uns (vus, vus);
822 VOR_V8HI_UNS iorv8hi3 {}
824 const vsc __builtin_altivec_vperm_16qi (vsc, vsc, vuc);
825 VPERM_16QI altivec_vperm_v16qi {}
827 const vuc __builtin_altivec_vperm_16qi_uns (vuc, vuc, vuc);
828 VPERM_16QI_UNS altivec_vperm_v16qi_uns {}
830 const vsq __builtin_altivec_vperm_1ti (vsq, vsq, vuc);
831 VPERM_1TI altivec_vperm_v1ti {}
833 const vuq __builtin_altivec_vperm_1ti_uns (vuq, vuq, vuc);
834 VPERM_1TI_UNS altivec_vperm_v1ti_uns {}
836 const vf __builtin_altivec_vperm_4sf (vf, vf, vuc);
837 VPERM_4SF altivec_vperm_v4sf {}
839 const vsi __builtin_altivec_vperm_4si (vsi, vsi, vuc);
840 VPERM_4SI altivec_vperm_v4si {}
842 const vui __builtin_altivec_vperm_4si_uns (vui, vui, vuc);
843 VPERM_4SI_UNS altivec_vperm_v4si_uns {}
845 const vss __builtin_altivec_vperm_8hi (vss, vss, vuc);
846 VPERM_8HI altivec_vperm_v8hi {}
848 const vus __builtin_altivec_vperm_8hi_uns (vus, vus, vuc);
849 VPERM_8HI_UNS altivec_vperm_v8hi_uns {}
851 const vp __builtin_altivec_vpkpx (vui, vui);
852 VPKPX altivec_vpkpx {}
854 const vsc __builtin_altivec_vpkshss (vss, vss);
855 VPKSHSS altivec_vpkshss {}
857 const vuc __builtin_altivec_vpkshus (vss, vss);
858 VPKSHUS altivec_vpkshus {}
860 const vss __builtin_altivec_vpkswss (vsi, vsi);
861 VPKSWSS altivec_vpkswss {}
863 const vus __builtin_altivec_vpkswus (vsi, vsi);
864 VPKSWUS altivec_vpkswus {}
866 const vsc __builtin_altivec_vpkuhum (vss, vss);
867 VPKUHUM altivec_vpkuhum {}
869 const vuc __builtin_altivec_vpkuhus (vus, vus);
870 VPKUHUS altivec_vpkuhus {}
872 const vss __builtin_altivec_vpkuwum (vsi, vsi);
873 VPKUWUM altivec_vpkuwum {}
875 const vus __builtin_altivec_vpkuwus (vui, vui);
876 VPKUWUS altivec_vpkuwus {}
878 const vf __builtin_altivec_vrecipdivfp (vf, vf);
879 VRECIPFP recipv4sf3 {}
881 fpmath vf __builtin_altivec_vrefp (vf);
884 const vsc __builtin_altivec_vreve_v16qi (vsc);
885 VREVE_V16QI altivec_vrevev16qi2 {}
887 const vf __builtin_altivec_vreve_v4sf (vf);
888 VREVE_V4SF altivec_vrevev4sf2 {}
890 const vsi __builtin_altivec_vreve_v4si (vsi);
891 VREVE_V4SI altivec_vrevev4si2 {}
893 const vss __builtin_altivec_vreve_v8hi (vss);
894 VREVE_V8HI altivec_vrevev8hi2 {}
896 fpmath vf __builtin_altivec_vrfim (vf);
897 VRFIM vector_floorv4sf2 {}
899 fpmath vf __builtin_altivec_vrfin (vf);
900 VRFIN altivec_vrfin {}
902 fpmath vf __builtin_altivec_vrfip (vf);
903 VRFIP vector_ceilv4sf2 {}
905 fpmath vf __builtin_altivec_vrfiz (vf);
906 VRFIZ vector_btruncv4sf2 {}
908 const vsc __builtin_altivec_vrlb (vsc, vsc);
911 const vss __builtin_altivec_vrlh (vss, vss);
914 const vsi __builtin_altivec_vrlw (vsi, vsi);
917 fpmath vf __builtin_altivec_vrsqrtefp (vf);
918 VRSQRTEFP rsqrtev4sf2 {}
920 fpmath vf __builtin_altivec_vrsqrtfp (vf);
921 VRSQRTFP rsqrtv4sf2 {}
923 const vsc __builtin_altivec_vsel_16qi (vsc, vsc, vuc);
924 VSEL_16QI vector_select_v16qi {}
926 const vuc __builtin_altivec_vsel_16qi_uns (vuc, vuc, vuc);
927 VSEL_16QI_UNS vector_select_v16qi_uns {}
929 const vsq __builtin_altivec_vsel_1ti (vsq, vsq, vuq);
930 VSEL_1TI vector_select_v1ti {}
932 const vuq __builtin_altivec_vsel_1ti_uns (vuq, vuq, vuq);
933 VSEL_1TI_UNS vector_select_v1ti_uns {}
935 const vf __builtin_altivec_vsel_4sf (vf, vf, vf);
936 VSEL_4SF vector_select_v4sf {}
938 const vsi __builtin_altivec_vsel_4si (vsi, vsi, vui);
939 VSEL_4SI vector_select_v4si {}
941 const vui __builtin_altivec_vsel_4si_uns (vui, vui, vui);
942 VSEL_4SI_UNS vector_select_v4si_uns {}
944 const vss __builtin_altivec_vsel_8hi (vss, vss, vus);
945 VSEL_8HI vector_select_v8hi {}
947 const vus __builtin_altivec_vsel_8hi_uns (vus, vus, vus);
948 VSEL_8HI_UNS vector_select_v8hi_uns {}
950 const vsi __builtin_altivec_vsl (vsi, vsi);
953 const vsc __builtin_altivec_vslb (vsc, vuc);
956 const vsc __builtin_altivec_vsldoi_16qi (vsc, vsc, const int<4>);
957 VSLDOI_16QI altivec_vsldoi_v16qi {}
959 const vf __builtin_altivec_vsldoi_4sf (vf, vf, const int<4>);
960 VSLDOI_4SF altivec_vsldoi_v4sf {}
962 const vsi __builtin_altivec_vsldoi_4si (vsi, vsi, const int<4>);
963 VSLDOI_4SI altivec_vsldoi_v4si {}
965 const vss __builtin_altivec_vsldoi_8hi (vss, vss, const int<4>);
966 VSLDOI_8HI altivec_vsldoi_v8hi {}
968 const vss __builtin_altivec_vslh (vss, vus);
971 const vsi __builtin_altivec_vslo (vsi, vsi);
974 const vsi __builtin_altivec_vslw (vsi, vui);
977 const vsc __builtin_altivec_vspltb (vsc, const int<4>);
978 VSPLTB altivec_vspltb {}
980 const vss __builtin_altivec_vsplth (vss, const int<3>);
981 VSPLTH altivec_vsplth {}
983 const vsc __builtin_altivec_vspltisb (const int<-16,15>);
984 VSPLTISB altivec_vspltisb {}
986 const vss __builtin_altivec_vspltish (const int<-16,15>);
987 VSPLTISH altivec_vspltish {}
989 const vsi __builtin_altivec_vspltisw (const int<-16,15>);
990 VSPLTISW altivec_vspltisw {}
992 const vsi __builtin_altivec_vspltw (vsi, const int<2>);
993 VSPLTW altivec_vspltw {}
995 const vsi __builtin_altivec_vsr (vsi, vsi);
998 const vsc __builtin_altivec_vsrab (vsc, vuc);
1001 const vss __builtin_altivec_vsrah (vss, vus);
1004 const vsi __builtin_altivec_vsraw (vsi, vui);
1007 const vsc __builtin_altivec_vsrb (vsc, vuc);
1010 const vss __builtin_altivec_vsrh (vss, vus);
1013 const vsi __builtin_altivec_vsro (vsi, vsi);
1014 VSRO altivec_vsro {}
1016 const vsi __builtin_altivec_vsrw (vsi, vui);
1019 const vsi __builtin_altivec_vsubcuw (vsi, vsi);
1020 VSUBCUW altivec_vsubcuw {}
1022 const vf __builtin_altivec_vsubfp (vf, vf);
1025 const vsc __builtin_altivec_vsubsbs (vsc, vsc);
1026 VSUBSBS altivec_vsubsbs {}
1028 const vss __builtin_altivec_vsubshs (vss, vss);
1029 VSUBSHS altivec_vsubshs {}
1031 const vsi __builtin_altivec_vsubsws (vsi, vsi);
1032 VSUBSWS altivec_vsubsws {}
1034 const vuc __builtin_altivec_vsububm (vuc, vuc);
1035 VSUBUBM subv16qi3 {}
1037 const vuc __builtin_altivec_vsububs (vuc, vuc);
1038 VSUBUBS altivec_vsububs {}
1040 const vus __builtin_altivec_vsubuhm (vus, vus);
1043 const vus __builtin_altivec_vsubuhs (vus, vus);
1044 VSUBUHS altivec_vsubuhs {}
1046 const vui __builtin_altivec_vsubuwm (vui, vui);
1049 const vui __builtin_altivec_vsubuws (vui, vui);
1050 VSUBUWS altivec_vsubuws {}
1052 const vsi __builtin_altivec_vsum2sws (vsi, vsi);
1053 VSUM2SWS altivec_vsum2sws {}
1055 const vsi __builtin_altivec_vsum4sbs (vsc, vsi);
1056 VSUM4SBS altivec_vsum4sbs {}
1058 const vsi __builtin_altivec_vsum4shs (vss, vsi);
1059 VSUM4SHS altivec_vsum4shs {}
1061 const vui __builtin_altivec_vsum4ubs (vuc, vui);
1062 VSUM4UBS altivec_vsum4ubs {}
1064 const vsi __builtin_altivec_vsumsws (vsi, vsi);
1065 VSUMSWS altivec_vsumsws {}
1067 const vsi __builtin_altivec_vsumsws_be (vsi, vsi);
1068 VSUMSWS_BE altivec_vsumsws_direct {}
1070 const vui __builtin_altivec_vupkhpx (vp);
1071 VUPKHPX altivec_vupkhpx {}
1073 const vss __builtin_altivec_vupkhsb (vsc);
1074 VUPKHSB altivec_vupkhsb {}
1076 const vsi __builtin_altivec_vupkhsh (vss);
1077 VUPKHSH altivec_vupkhsh {}
1079 const vui __builtin_altivec_vupklpx (vp);
1080 VUPKLPX altivec_vupklpx {}
1082 const vss __builtin_altivec_vupklsb (vsc);
1083 VUPKLSB altivec_vupklsb {}
1085 const vsi __builtin_altivec_vupklsh (vss);
1086 VUPKLSH altivec_vupklsh {}
1088 const vsc __builtin_altivec_vxor_v16qi (vsc, vsc);
1089 VXOR_V16QI xorv16qi3 {}
1091 const vuc __builtin_altivec_vxor_v16qi_uns (vuc, vuc);
1092 VXOR_V16QI_UNS xorv16qi3 {}
1094 const vf __builtin_altivec_vxor_v4sf (vf, vf);
1095 VXOR_V4SF xorv4sf3 {}
1097 const vsi __builtin_altivec_vxor_v4si (vsi, vsi);
1098 VXOR_V4SI xorv4si3 {}
1100 const vui __builtin_altivec_vxor_v4si_uns (vui, vui);
1101 VXOR_V4SI_UNS xorv4si3 {}
1103 const vss __builtin_altivec_vxor_v8hi (vss, vss);
1104 VXOR_V8HI xorv8hi3 {}
1106 const vus __builtin_altivec_vxor_v8hi_uns (vus, vus);
1107 VXOR_V8HI_UNS xorv8hi3 {}
1109 const signed char __builtin_vec_ext_v16qi (vsc, signed int);
1110 VEC_EXT_V16QI nothing {extract}
1112 const float __builtin_vec_ext_v4sf (vf, signed int);
1113 VEC_EXT_V4SF nothing {extract}
1115 const signed int __builtin_vec_ext_v4si (vsi, signed int);
1116 VEC_EXT_V4SI nothing {extract}
1118 const signed short __builtin_vec_ext_v8hi (vss, signed int);
1119 VEC_EXT_V8HI nothing {extract}
1121 const vsc __builtin_vec_init_v16qi (signed char, signed char, signed char, \
1122 signed char, signed char, signed char, signed char, signed char, \
1123 signed char, signed char, signed char, signed char, signed char, \
1124 signed char, signed char, signed char);
1125 VEC_INIT_V16QI nothing {init}
1127 const vf __builtin_vec_init_v4sf (float, float, float, float);
1128 VEC_INIT_V4SF nothing {init}
1130 const vsi __builtin_vec_init_v4si (signed int, signed int, signed int, \
1132 VEC_INIT_V4SI nothing {init}
1134 const vss __builtin_vec_init_v8hi (signed short, signed short, signed short,\
1135 signed short, signed short, signed short, signed short, \
1137 VEC_INIT_V8HI nothing {init}
1139 const vsc __builtin_vec_set_v16qi (vsc, signed char, const int<4>);
1140 VEC_SET_V16QI nothing {set}
1142 const vf __builtin_vec_set_v4sf (vf, float, const int<2>);
1143 VEC_SET_V4SF nothing {set}
1145 const vsi __builtin_vec_set_v4si (vsi, signed int, const int<2>);
1146 VEC_SET_V4SI nothing {set}
1148 const vss __builtin_vec_set_v8hi (vss, signed short, const int<3>);
1149 VEC_SET_V8HI nothing {set}
1154 pure vsc __builtin_altivec_lvlx (signed long, const void *);
1155 LVLX altivec_lvlx {ldvec}
1157 pure vsc __builtin_altivec_lvlxl (signed long, const void *);
1158 LVLXL altivec_lvlxl {ldvec}
1160 pure vsc __builtin_altivec_lvrx (signed long, const void *);
1161 LVRX altivec_lvrx {ldvec}
1163 pure vsc __builtin_altivec_lvrxl (signed long, const void *);
1164 LVRXL altivec_lvrxl {ldvec}
1166 void __builtin_altivec_stvlx (vsc, signed long, void *);
1167 STVLX altivec_stvlx {stvec}
1169 void __builtin_altivec_stvlxl (vsc, signed long, void *);
1170 STVLXL altivec_stvlxl {stvec}
1172 void __builtin_altivec_stvrx (vsc, signed long, void *);
1173 STVRX altivec_stvrx {stvec}
1175 void __builtin_altivec_stvrxl (vsc, signed long, void *);
1176 STVRXL altivec_stvrxl {stvec}
1181 pure vd __builtin_altivec_lvx_v2df (signed long, const void *);
1182 LVX_V2DF altivec_lvx_v2df {ldvec}
1184 pure vsll __builtin_altivec_lvx_v2di (signed long, const void *);
1185 LVX_V2DI altivec_lvx_v2di {ldvec}
1187 pure vd __builtin_altivec_lvxl_v2df (signed long, const void *);
1188 LVXL_V2DF altivec_lvxl_v2df {ldvec}
1190 pure vsll __builtin_altivec_lvxl_v2di (signed long, const void *);
1191 LVXL_V2DI altivec_lvxl_v2di {ldvec}
1193 const vd __builtin_altivec_nabs_v2df (vd);
1194 NABS_V2DF vsx_nabsv2df2 {}
1196 const vsll __builtin_altivec_nabs_v2di (vsll);
1197 NABS_V2DI nabsv2di2 {}
1199 const vd __builtin_altivec_neg_v2df (vd);
1200 NEG_V2DF negv2df2 {}
1202 void __builtin_altivec_stvx_v2df (vd, signed long, void *);
1203 STVX_V2DF altivec_stvx_v2df {stvec}
1205 void __builtin_altivec_stvx_v2di (vsll, signed long, void *);
1206 STVX_V2DI altivec_stvx_v2di {stvec}
1208 void __builtin_altivec_stvxl_v2df (vd, signed long, void *);
1209 STVXL_V2DF altivec_stvxl_v2df {stvec}
1211 void __builtin_altivec_stvxl_v2di (vsll, signed long, void *);
1212 STVXL_V2DI altivec_stvxl_v2di {stvec}
1214 const vd __builtin_altivec_vand_v2df (vd, vd);
1215 VAND_V2DF andv2df3 {}
1217 const vsll __builtin_altivec_vand_v2di (vsll, vsll);
1218 VAND_V2DI andv2di3 {}
1220 const vull __builtin_altivec_vand_v2di_uns (vull, vull);
1221 VAND_V2DI_UNS andv2di3 {}
1223 const vd __builtin_altivec_vandc_v2df (vd, vd);
1224 VANDC_V2DF andcv2df3 {}
1226 const vsll __builtin_altivec_vandc_v2di (vsll, vsll);
1227 VANDC_V2DI andcv2di3 {}
1229 const vull __builtin_altivec_vandc_v2di_uns (vull, vull);
1230 VANDC_V2DI_UNS andcv2di3 {}
1232 const vd __builtin_altivec_vnor_v2df (vd, vd);
1233 VNOR_V2DF norv2df3 {}
1235 const vsll __builtin_altivec_vnor_v2di (vsll, vsll);
1236 VNOR_V2DI norv2di3 {}
1238 const vull __builtin_altivec_vnor_v2di_uns (vull, vull);
1239 VNOR_V2DI_UNS norv2di3 {}
1241 const vd __builtin_altivec_vor_v2df (vd, vd);
1242 VOR_V2DF iorv2df3 {}
1244 const vsll __builtin_altivec_vor_v2di (vsll, vsll);
1245 VOR_V2DI iorv2di3 {}
1247 const vull __builtin_altivec_vor_v2di_uns (vull, vull);
1248 VOR_V2DI_UNS iorv2di3 {}
1250 const vd __builtin_altivec_vperm_2df (vd, vd, vuc);
1251 VPERM_2DF altivec_vperm_v2df {}
1253 const vsll __builtin_altivec_vperm_2di (vsll, vsll, vuc);
1254 VPERM_2DI altivec_vperm_v2di {}
1256 const vull __builtin_altivec_vperm_2di_uns (vull, vull, vuc);
1257 VPERM_2DI_UNS altivec_vperm_v2di_uns {}
1259 const vd __builtin_altivec_vreve_v2df (vd);
1260 VREVE_V2DF altivec_vrevev2df2 {}
1262 const vsll __builtin_altivec_vreve_v2di (vsll);
1263 VREVE_V2DI altivec_vrevev2di2 {}
1265 const vd __builtin_altivec_vsel_2df (vd, vd, vd);
1266 VSEL_2DF vector_select_v2df {}
1268 const vsll __builtin_altivec_vsel_2di (vsll, vsll, vsll);
1269 VSEL_2DI_B vector_select_v2di {}
1271 const vull __builtin_altivec_vsel_2di_uns (vull, vull, vull);
1272 VSEL_2DI_UNS vector_select_v2di_uns {}
1274 const vd __builtin_altivec_vsldoi_2df (vd, vd, const int<4>);
1275 VSLDOI_2DF altivec_vsldoi_v2df {}
1277 const vsll __builtin_altivec_vsldoi_2di (vsll, vsll, const int<4>);
1278 VSLDOI_2DI altivec_vsldoi_v2di {}
1280 const vd __builtin_altivec_vxor_v2df (vd, vd);
1281 VXOR_V2DF xorv2df3 {}
1283 const vsll __builtin_altivec_vxor_v2di (vsll, vsll);
1284 VXOR_V2DI xorv2di3 {}
1286 const vull __builtin_altivec_vxor_v2di_uns (vull, vull);
1287 VXOR_V2DI_UNS xorv2di3 {}
1289 const signed __int128 __builtin_vec_ext_v1ti (vsq, signed int);
1290 VEC_EXT_V1TI nothing {extract}
1292 const double __builtin_vec_ext_v2df (vd, signed int);
1293 VEC_EXT_V2DF nothing {extract}
1295 const signed long long __builtin_vec_ext_v2di (vsll, signed int);
1296 VEC_EXT_V2DI nothing {extract}
1298 const vsq __builtin_vec_init_v1ti (signed __int128);
1299 VEC_INIT_V1TI nothing {init}
1301 const vd __builtin_vec_init_v2df (double, double);
1302 VEC_INIT_V2DF nothing {init}
1304 const vsll __builtin_vec_init_v2di (signed long long, signed long long);
1305 VEC_INIT_V2DI nothing {init}
1307 const vsq __builtin_vec_set_v1ti (vsq, signed __int128, const int<0,0>);
1308 VEC_SET_V1TI nothing {set}
1310 const vd __builtin_vec_set_v2df (vd, double, const int<1>);
1311 VEC_SET_V2DF nothing {set}
1313 const vsll __builtin_vec_set_v2di (vsll, signed long long, const int<1>);
1314 VEC_SET_V2DI nothing {set}
1316 const vsc __builtin_vsx_cmpge_16qi (vsc, vsc);
1317 CMPGE_16QI vector_nltv16qi {}
1319 const vsll __builtin_vsx_cmpge_2di (vsll, vsll);
1320 CMPGE_2DI vector_nltv2di {}
1322 const vsi __builtin_vsx_cmpge_4si (vsi, vsi);
1323 CMPGE_4SI vector_nltv4si {}
1325 const vss __builtin_vsx_cmpge_8hi (vss, vss);
1326 CMPGE_8HI vector_nltv8hi {}
1328 const vsc __builtin_vsx_cmpge_u16qi (vuc, vuc);
1329 CMPGE_U16QI vector_nltuv16qi {}
1331 const vsll __builtin_vsx_cmpge_u2di (vull, vull);
1332 CMPGE_U2DI vector_nltuv2di {}
1334 const vsi __builtin_vsx_cmpge_u4si (vui, vui);
1335 CMPGE_U4SI vector_nltuv4si {}
1337 const vss __builtin_vsx_cmpge_u8hi (vus, vus);
1338 CMPGE_U8HI vector_nltuv8hi {}
1340 const vsc __builtin_vsx_cmple_16qi (vsc, vsc);
1341 CMPLE_16QI vector_ngtv16qi {}
1343 const vsll __builtin_vsx_cmple_2di (vsll, vsll);
1344 CMPLE_2DI vector_ngtv2di {}
1346 const vsi __builtin_vsx_cmple_4si (vsi, vsi);
1347 CMPLE_4SI vector_ngtv4si {}
1349 const vss __builtin_vsx_cmple_8hi (vss, vss);
1350 CMPLE_8HI vector_ngtv8hi {}
1352 const vsc __builtin_vsx_cmple_u16qi (vsc, vsc);
1353 CMPLE_U16QI vector_ngtuv16qi {}
1355 const vsll __builtin_vsx_cmple_u2di (vsll, vsll);
1356 CMPLE_U2DI vector_ngtuv2di {}
1358 const vsi __builtin_vsx_cmple_u4si (vsi, vsi);
1359 CMPLE_U4SI vector_ngtuv4si {}
1361 const vss __builtin_vsx_cmple_u8hi (vss, vss);
1362 CMPLE_U8HI vector_ngtuv8hi {}
1364 const vd __builtin_vsx_concat_2df (double, double);
1365 CONCAT_2DF vsx_concat_v2df {}
1367 const vsll __builtin_vsx_concat_2di (signed long long, signed long long);
1368 CONCAT_2DI vsx_concat_v2di {}
1370 const vd __builtin_vsx_cpsgndp (vd, vd);
1371 CPSGNDP vector_copysignv2df3 {}
1373 const vf __builtin_vsx_cpsgnsp (vf, vf);
1374 CPSGNSP vector_copysignv4sf3 {}
1376 const vsll __builtin_vsx_div_2di (vsll, vsll);
1377 DIV_V2DI vsx_div_v2di {}
1379 const vd __builtin_vsx_doublee_v4sf (vf);
1380 DOUBLEE_V4SF doubleev4sf2 {}
1382 const vd __builtin_vsx_doublee_v4si (vsi);
1383 DOUBLEE_V4SI doubleev4si2 {}
1385 const vd __builtin_vsx_doubleh_v4sf (vf);
1386 DOUBLEH_V4SF doublehv4sf2 {}
1388 const vd __builtin_vsx_doubleh_v4si (vsi);
1389 DOUBLEH_V4SI doublehv4si2 {}
1391 const vd __builtin_vsx_doublel_v4sf (vf);
1392 DOUBLEL_V4SF doublelv4sf2 {}
1394 const vd __builtin_vsx_doublel_v4si (vsi);
1395 DOUBLEL_V4SI doublelv4si2 {}
1397 const vd __builtin_vsx_doubleo_v4sf (vf);
1398 DOUBLEO_V4SF doubleov4sf2 {}
1400 const vd __builtin_vsx_doubleo_v4si (vsi);
1401 DOUBLEO_V4SI doubleov4si2 {}
1403 const vf __builtin_vsx_floate_v2df (vd);
1404 FLOATE_V2DF floatev2df {}
1406 const vf __builtin_vsx_floate_v2di (vsll);
1407 FLOATE_V2DI floatev2di {}
1409 const vf __builtin_vsx_floato_v2df (vd);
1410 FLOATO_V2DF floatov2df {}
1412 const vf __builtin_vsx_floato_v2di (vsll);
1413 FLOATO_V2DI floatov2di {}
1415 pure vsq __builtin_vsx_ld_elemrev_v1ti (signed long, const void *);
1416 LD_ELEMREV_V1TI vsx_ld_elemrev_v1ti {ldvec,endian}
1418 pure vd __builtin_vsx_ld_elemrev_v2df (signed long, const void *);
1419 LD_ELEMREV_V2DF vsx_ld_elemrev_v2df {ldvec,endian}
1421 pure vsll __builtin_vsx_ld_elemrev_v2di (signed long, const void *);
1422 LD_ELEMREV_V2DI vsx_ld_elemrev_v2di {ldvec,endian}
1424 pure vf __builtin_vsx_ld_elemrev_v4sf (signed long, const void *);
1425 LD_ELEMREV_V4SF vsx_ld_elemrev_v4sf {ldvec,endian}
1427 pure vsi __builtin_vsx_ld_elemrev_v4si (signed long, const void *);
1428 LD_ELEMREV_V4SI vsx_ld_elemrev_v4si {ldvec,endian}
1430 pure vss __builtin_vsx_ld_elemrev_v8hi (signed long, const void *);
1431 LD_ELEMREV_V8HI vsx_ld_elemrev_v8hi {ldvec,endian}
1433 pure vsc __builtin_vsx_ld_elemrev_v16qi (signed long, const void *);
1434 LD_ELEMREV_V16QI vsx_ld_elemrev_v16qi {ldvec,endian}
1436 ; TODO: There was apparent intent in the rs6000-builtin.def to
1437 ; have SPECIAL processing for LXSDX, LXVDSX, and STXSDX, but there are
1438 ; no def_builtin calls for any of them. That file was removed as part
1439 ; of the BIF rewrite, but at some point, we may want to add a
1440 ; set of built-ins for whichever vector types make sense for these.
1442 pure vsq __builtin_vsx_lxvd2x_v1ti (signed long, const void *);
1443 LXVD2X_V1TI vsx_load_v1ti {ldvec}
1445 pure vd __builtin_vsx_lxvd2x_v2df (signed long, const void *);
1446 LXVD2X_V2DF vsx_load_v2df {ldvec}
1448 pure vsll __builtin_vsx_lxvd2x_v2di (signed long, const void *);
1449 LXVD2X_V2DI vsx_load_v2di {ldvec}
1451 pure vsc __builtin_vsx_lxvw4x_v16qi (signed long, const void *);
1452 LXVW4X_V16QI vsx_load_v16qi {ldvec}
1454 pure vf __builtin_vsx_lxvw4x_v4sf (signed long, const void *);
1455 LXVW4X_V4SF vsx_load_v4sf {ldvec}
1457 pure vsi __builtin_vsx_lxvw4x_v4si (signed long, const void *);
1458 LXVW4X_V4SI vsx_load_v4si {ldvec}
1460 pure vss __builtin_vsx_lxvw4x_v8hi (signed long, const void *);
1461 LXVW4X_V8HI vsx_load_v8hi {ldvec}
1463 const vd __builtin_vsx_mergeh_2df (vd, vd);
1464 VEC_MERGEH_V2DF vsx_mergeh_v2df {}
1466 const vsll __builtin_vsx_mergeh_2di (vsll, vsll);
1467 VEC_MERGEH_V2DI vsx_mergeh_v2di {}
1469 const vd __builtin_vsx_mergel_2df (vd, vd);
1470 VEC_MERGEL_V2DF vsx_mergel_v2df {}
1472 const vsll __builtin_vsx_mergel_2di (vsll, vsll);
1473 VEC_MERGEL_V2DI vsx_mergel_v2di {}
1475 const vsll __builtin_vsx_mul_2di (vsll, vsll);
1476 MUL_V2DI vsx_mul_v2di {}
1478 const vsq __builtin_vsx_set_1ti (vsq, signed __int128, const int<0,0>);
1479 SET_1TI vsx_set_v1ti {set}
1481 const vd __builtin_vsx_set_2df (vd, double, const int<0,1>);
1482 SET_2DF vsx_set_v2df {set}
1484 const vsll __builtin_vsx_set_2di (vsll, signed long long, const int<0,1>);
1485 SET_2DI vsx_set_v2di {set}
1487 const vd __builtin_vsx_splat_2df (double);
1488 SPLAT_2DF vsx_splat_v2df {}
1490 const vsll __builtin_vsx_splat_2di (signed long long);
1491 SPLAT_2DI vsx_splat_v2di {}
1493 void __builtin_vsx_st_elemrev_v1ti (vsq, signed long, void *);
1494 ST_ELEMREV_V1TI vsx_st_elemrev_v1ti {stvec,endian}
1496 void __builtin_vsx_st_elemrev_v2df (vd, signed long, void *);
1497 ST_ELEMREV_V2DF vsx_st_elemrev_v2df {stvec,endian}
1499 void __builtin_vsx_st_elemrev_v2di (vsll, signed long, void *);
1500 ST_ELEMREV_V2DI vsx_st_elemrev_v2di {stvec,endian}
1502 void __builtin_vsx_st_elemrev_v4sf (vf, signed long, void *);
1503 ST_ELEMREV_V4SF vsx_st_elemrev_v4sf {stvec,endian}
1505 void __builtin_vsx_st_elemrev_v4si (vsi, signed long, void *);
1506 ST_ELEMREV_V4SI vsx_st_elemrev_v4si {stvec,endian}
1508 void __builtin_vsx_st_elemrev_v8hi (vss, signed long, void *);
1509 ST_ELEMREV_V8HI vsx_st_elemrev_v8hi {stvec,endian}
1511 void __builtin_vsx_st_elemrev_v16qi (vsc, signed long, void *);
1512 ST_ELEMREV_V16QI vsx_st_elemrev_v16qi {stvec,endian}
1514 void __builtin_vsx_stxvd2x_v1ti (vsq, signed long, void *);
1515 STXVD2X_V1TI vsx_store_v1ti {stvec}
1517 void __builtin_vsx_stxvd2x_v2df (vd, signed long, void *);
1518 STXVD2X_V2DF vsx_store_v2df {stvec}
1520 void __builtin_vsx_stxvd2x_v2di (vsll, signed long, void *);
1521 STXVD2X_V2DI vsx_store_v2di {stvec}
1523 void __builtin_vsx_stxvw4x_v4sf (vf, signed long, void *);
1524 STXVW4X_V4SF vsx_store_v4sf {stvec}
1526 void __builtin_vsx_stxvw4x_v4si (vsi, signed long, void *);
1527 STXVW4X_V4SI vsx_store_v4si {stvec}
1529 void __builtin_vsx_stxvw4x_v8hi (vss, signed long, void *);
1530 STXVW4X_V8HI vsx_store_v8hi {stvec}
1532 void __builtin_vsx_stxvw4x_v16qi (vsc, signed long, void *);
1533 STXVW4X_V16QI vsx_store_v16qi {stvec}
1535 const vull __builtin_vsx_udiv_2di (vull, vull);
1536 UDIV_V2DI vsx_udiv_v2di {}
1538 const vd __builtin_vsx_uns_doublee_v4si (vsi);
1539 UNS_DOUBLEE_V4SI unsdoubleev4si2 {}
1541 const vd __builtin_vsx_uns_doubleh_v4si (vsi);
1542 UNS_DOUBLEH_V4SI unsdoublehv4si2 {}
1544 const vd __builtin_vsx_uns_doublel_v4si (vsi);
1545 UNS_DOUBLEL_V4SI unsdoublelv4si2 {}
1547 const vd __builtin_vsx_uns_doubleo_v4si (vsi);
1548 UNS_DOUBLEO_V4SI unsdoubleov4si2 {}
1550 const vf __builtin_vsx_uns_floate_v2di (vsll);
1551 UNS_FLOATE_V2DI unsfloatev2di {}
1553 const vf __builtin_vsx_uns_floato_v2di (vsll);
1554 UNS_FLOATO_V2DI unsfloatov2di {}
1556 ; These are duplicates of __builtin_altivec_* counterparts, and are being
1557 ; kept for backwards compatibility. The reason for their existence is
1558 ; unclear. TODO: Consider deprecation/removal at some point.
1559 const vsc __builtin_vsx_vperm_16qi (vsc, vsc, vuc);
1560 VPERM_16QI_X altivec_vperm_v16qi {}
1562 const vuc __builtin_vsx_vperm_16qi_uns (vuc, vuc, vuc);
1563 VPERM_16QI_UNS_X altivec_vperm_v16qi_uns {}
1565 const vsq __builtin_vsx_vperm_1ti (vsq, vsq, vsc);
1566 VPERM_1TI_X altivec_vperm_v1ti {}
1568 const vsq __builtin_vsx_vperm_1ti_uns (vsq, vsq, vsc);
1569 VPERM_1TI_UNS_X altivec_vperm_v1ti_uns {}
1571 const vd __builtin_vsx_vperm_2df (vd, vd, vuc);
1572 VPERM_2DF_X altivec_vperm_v2df {}
1574 const vsll __builtin_vsx_vperm_2di (vsll, vsll, vuc);
1575 VPERM_2DI_X altivec_vperm_v2di {}
1577 const vull __builtin_vsx_vperm_2di_uns (vull, vull, vuc);
1578 VPERM_2DI_UNS_X altivec_vperm_v2di_uns {}
1580 const vf __builtin_vsx_vperm_4sf (vf, vf, vuc);
1581 VPERM_4SF_X altivec_vperm_v4sf {}
1583 const vsi __builtin_vsx_vperm_4si (vsi, vsi, vuc);
1584 VPERM_4SI_X altivec_vperm_v4si {}
1586 const vui __builtin_vsx_vperm_4si_uns (vui, vui, vuc);
1587 VPERM_4SI_UNS_X altivec_vperm_v4si_uns {}
1589 const vss __builtin_vsx_vperm_8hi (vss, vss, vuc);
1590 VPERM_8HI_X altivec_vperm_v8hi {}
1592 const vus __builtin_vsx_vperm_8hi_uns (vus, vus, vuc);
1593 VPERM_8HI_UNS_X altivec_vperm_v8hi_uns {}
1595 const vsll __builtin_vsx_vsigned_v2df (vd);
1596 VEC_VSIGNED_V2DF vsx_xvcvdpsxds {}
1598 const vsi __builtin_vsx_vsigned_v4sf (vf);
1599 VEC_VSIGNED_V4SF vsx_xvcvspsxws {}
1601 const vsi __builtin_vsx_vsignede_v2df (vd);
1602 VEC_VSIGNEDE_V2DF vsignede_v2df {}
1604 const vsi __builtin_vsx_vsignedo_v2df (vd);
1605 VEC_VSIGNEDO_V2DF vsignedo_v2df {}
1607 const vsll __builtin_vsx_vunsigned_v2df (vd);
1608 VEC_VUNSIGNED_V2DF vsx_xvcvdpsxds {}
1610 const vsi __builtin_vsx_vunsigned_v4sf (vf);
1611 VEC_VUNSIGNED_V4SF vsx_xvcvspsxws {}
1613 const vsi __builtin_vsx_vunsignede_v2df (vd);
1614 VEC_VUNSIGNEDE_V2DF vunsignede_v2df {}
1616 const vsi __builtin_vsx_vunsignedo_v2df (vd);
1617 VEC_VUNSIGNEDO_V2DF vunsignedo_v2df {}
1619 const vf __builtin_vsx_xscvdpsp (double);
1620 XSCVDPSP vsx_xscvdpsp {}
1622 const double __builtin_vsx_xscvspdp (vf);
1623 XSCVSPDP vsx_xscvspdp {}
1625 const double __builtin_vsx_xsmaxdp (double, double);
1628 const double __builtin_vsx_xsmindp (double, double);
1631 const double __builtin_vsx_xsrdpi (double);
1632 XSRDPI vsx_xsrdpi {}
1634 const double __builtin_vsx_xsrdpic (double);
1635 XSRDPIC vsx_xsrdpic {}
1637 const double __builtin_vsx_xsrdpim (double);
1640 const double __builtin_vsx_xsrdpip (double);
1643 const double __builtin_vsx_xsrdpiz (double);
1644 XSRDPIZ btruncdf2 {}
1646 const signed int __builtin_vsx_xstdivdp_fe (double, double);
1647 XSTDIVDP_FE vsx_tdivdf3_fe {}
1649 const signed int __builtin_vsx_xstdivdp_fg (double, double);
1650 XSTDIVDP_FG vsx_tdivdf3_fg {}
1652 const signed int __builtin_vsx_xstsqrtdp_fe (double);
1653 XSTSQRTDP_FE vsx_tsqrtdf2_fe {}
1655 const signed int __builtin_vsx_xstsqrtdp_fg (double);
1656 XSTSQRTDP_FG vsx_tsqrtdf2_fg {}
1658 const vd __builtin_vsx_xvabsdp (vd);
1661 const vf __builtin_vsx_xvabssp (vf);
1664 fpmath vd __builtin_vsx_xvadddp (vd, vd);
1667 fpmath vf __builtin_vsx_xvaddsp (vf, vf);
1670 const vd __builtin_vsx_xvcmpeqdp (vd, vd);
1671 XVCMPEQDP vector_eqv2df {}
1673 const signed int __builtin_vsx_xvcmpeqdp_p (signed int, vd, vd);
1674 XVCMPEQDP_P vector_eq_v2df_p {pred}
1676 const vf __builtin_vsx_xvcmpeqsp (vf, vf);
1677 XVCMPEQSP vector_eqv4sf {}
1679 const signed int __builtin_vsx_xvcmpeqsp_p (signed int, vf, vf);
1680 XVCMPEQSP_P vector_eq_v4sf_p {pred}
1682 const vd __builtin_vsx_xvcmpgedp (vd, vd);
1683 XVCMPGEDP vector_gev2df {}
1685 const signed int __builtin_vsx_xvcmpgedp_p (signed int, vd, vd);
1686 XVCMPGEDP_P vector_ge_v2df_p {pred}
1688 const vf __builtin_vsx_xvcmpgesp (vf, vf);
1689 XVCMPGESP vector_gev4sf {}
1691 const signed int __builtin_vsx_xvcmpgesp_p (signed int, vf, vf);
1692 XVCMPGESP_P vector_ge_v4sf_p {pred}
1694 const vd __builtin_vsx_xvcmpgtdp (vd, vd);
1695 XVCMPGTDP vector_gtv2df {}
1697 const signed int __builtin_vsx_xvcmpgtdp_p (signed int, vd, vd);
1698 XVCMPGTDP_P vector_gt_v2df_p {pred}
1700 const vf __builtin_vsx_xvcmpgtsp (vf, vf);
1701 XVCMPGTSP vector_gtv4sf {}
1703 const signed int __builtin_vsx_xvcmpgtsp_p (signed int, vf, vf);
1704 XVCMPGTSP_P vector_gt_v4sf_p {pred}
1706 const vf __builtin_vsx_xvcvdpsp (vd);
1707 XVCVDPSP vsx_xvcvdpsp {}
1709 const vsll __builtin_vsx_xvcvdpsxds (vd);
1710 XVCVDPSXDS vsx_fix_truncv2dfv2di2 {}
1712 const vsll __builtin_vsx_xvcvdpsxds_scale (vd, const int);
1713 XVCVDPSXDS_SCALE vsx_xvcvdpsxds_scale {}
1715 const vsi __builtin_vsx_xvcvdpsxws (vd);
1716 XVCVDPSXWS vsx_xvcvdpsxws {}
1718 const vsll __builtin_vsx_xvcvdpuxds (vd);
1719 XVCVDPUXDS vsx_fixuns_truncv2dfv2di2 {}
1721 const vsll __builtin_vsx_xvcvdpuxds_scale (vd, const int);
1722 XVCVDPUXDS_SCALE vsx_xvcvdpuxds_scale {}
1724 const vull __builtin_vsx_xvcvdpuxds_uns (vd);
1725 XVCVDPUXDS_UNS vsx_fixuns_truncv2dfv2di2 {}
1727 const vsi __builtin_vsx_xvcvdpuxws (vd);
1728 XVCVDPUXWS vsx_xvcvdpuxws {}
1730 const vd __builtin_vsx_xvcvspdp (vf);
1731 XVCVSPDP vsx_xvcvspdp {}
1733 const vsll __builtin_vsx_xvcvspsxds (vf);
1734 XVCVSPSXDS vsx_xvcvspsxds {}
1736 const vsi __builtin_vsx_xvcvspsxws (vf);
1737 XVCVSPSXWS vsx_fix_truncv4sfv4si2 {}
1739 const vsll __builtin_vsx_xvcvspuxds (vf);
1740 XVCVSPUXDS vsx_xvcvspuxds {}
1742 const vsi __builtin_vsx_xvcvspuxws (vf);
1743 XVCVSPUXWS vsx_fixuns_truncv4sfv4si2 {}
1745 const vd __builtin_vsx_xvcvsxddp (vsll);
1746 XVCVSXDDP vsx_floatv2div2df2 {}
1748 const vd __builtin_vsx_xvcvsxddp_scale (vsll, const int<5>);
1749 XVCVSXDDP_SCALE vsx_xvcvsxddp_scale {}
1751 const vf __builtin_vsx_xvcvsxdsp (vsll);
1752 XVCVSXDSP vsx_xvcvsxdsp {}
1754 const vd __builtin_vsx_xvcvsxwdp (vsi);
1755 XVCVSXWDP vsx_xvcvsxwdp {}
1757 const vf __builtin_vsx_xvcvsxwsp (vsi);
1758 XVCVSXWSP vsx_floatv4siv4sf2 {}
1760 const vd __builtin_vsx_xvcvuxddp (vsll);
1761 XVCVUXDDP vsx_floatunsv2div2df2 {}
1763 const vd __builtin_vsx_xvcvuxddp_scale (vsll, const int<5>);
1764 XVCVUXDDP_SCALE vsx_xvcvuxddp_scale {}
1766 const vd __builtin_vsx_xvcvuxddp_uns (vull);
1767 XVCVUXDDP_UNS vsx_floatunsv2div2df2 {}
1769 const vf __builtin_vsx_xvcvuxdsp (vull);
1770 XVCVUXDSP vsx_xvcvuxdsp {}
1772 const vd __builtin_vsx_xvcvuxwdp (vsi);
1773 XVCVUXWDP vsx_xvcvuxwdp {}
1775 const vf __builtin_vsx_xvcvuxwsp (vsi);
1776 XVCVUXWSP vsx_floatunsv4siv4sf2 {}
1778 fpmath vd __builtin_vsx_xvdivdp (vd, vd);
1781 fpmath vf __builtin_vsx_xvdivsp (vf, vf);
1784 const vd __builtin_vsx_xvmadddp (vd, vd, vd);
1785 XVMADDDP fmav2df4 {}
1787 const vf __builtin_vsx_xvmaddsp (vf, vf, vf);
1788 XVMADDSP fmav4sf4 {}
1790 const vd __builtin_vsx_xvmaxdp (vd, vd);
1791 XVMAXDP smaxv2df3 {}
1793 const vf __builtin_vsx_xvmaxsp (vf, vf);
1794 XVMAXSP smaxv4sf3 {}
1796 const vd __builtin_vsx_xvmindp (vd, vd);
1797 XVMINDP sminv2df3 {}
1799 const vf __builtin_vsx_xvminsp (vf, vf);
1800 XVMINSP sminv4sf3 {}
1802 const vd __builtin_vsx_xvmsubdp (vd, vd, vd);
1803 XVMSUBDP fmsv2df4 {}
1805 const vf __builtin_vsx_xvmsubsp (vf, vf, vf);
1806 XVMSUBSP fmsv4sf4 {}
1808 fpmath vd __builtin_vsx_xvmuldp (vd, vd);
1811 fpmath vf __builtin_vsx_xvmulsp (vf, vf);
1814 const vd __builtin_vsx_xvnabsdp (vd);
1815 XVNABSDP vsx_nabsv2df2 {}
1817 const vf __builtin_vsx_xvnabssp (vf);
1818 XVNABSSP vsx_nabsv4sf2 {}
1820 const vd __builtin_vsx_xvnegdp (vd);
1823 const vf __builtin_vsx_xvnegsp (vf);
1826 const vd __builtin_vsx_xvnmadddp (vd, vd, vd);
1827 XVNMADDDP nfmav2df4 {}
1829 const vf __builtin_vsx_xvnmaddsp (vf, vf, vf);
1830 XVNMADDSP nfmav4sf4 {}
1832 const vd __builtin_vsx_xvnmsubdp (vd, vd, vd);
1833 XVNMSUBDP nfmsv2df4 {}
1835 const vf __builtin_vsx_xvnmsubsp (vf, vf, vf);
1836 XVNMSUBSP nfmsv4sf4 {}
1838 const vd __builtin_vsx_xvrdpi (vd);
1839 XVRDPI vsx_xvrdpi {}
1841 const vd __builtin_vsx_xvrdpic (vd);
1842 XVRDPIC vsx_xvrdpic {}
1844 const vd __builtin_vsx_xvrdpim (vd);
1845 XVRDPIM vsx_floorv2df2 {}
1847 const vd __builtin_vsx_xvrdpip (vd);
1848 XVRDPIP vsx_ceilv2df2 {}
1850 const vd __builtin_vsx_xvrdpiz (vd);
1851 XVRDPIZ vsx_btruncv2df2 {}
1853 fpmath vd __builtin_vsx_xvrecipdivdp (vd, vd);
1854 RECIP_V2DF recipv2df3 {}
1856 fpmath vf __builtin_vsx_xvrecipdivsp (vf, vf);
1857 RECIP_V4SF recipv4sf3 {}
1859 const vd __builtin_vsx_xvredp (vd);
1860 XVREDP vsx_frev2df2 {}
1862 const vf __builtin_vsx_xvresp (vf);
1863 XVRESP vsx_frev4sf2 {}
1865 const vf __builtin_vsx_xvrspi (vf);
1866 XVRSPI vsx_xvrspi {}
1868 const vf __builtin_vsx_xvrspic (vf);
1869 XVRSPIC vsx_xvrspic {}
1871 const vf __builtin_vsx_xvrspim (vf);
1872 XVRSPIM vsx_floorv4sf2 {}
1874 const vf __builtin_vsx_xvrspip (vf);
1875 XVRSPIP vsx_ceilv4sf2 {}
1877 const vf __builtin_vsx_xvrspiz (vf);
1878 XVRSPIZ vsx_btruncv4sf2 {}
1880 const vd __builtin_vsx_xvrsqrtdp (vd);
1881 RSQRT_2DF rsqrtv2df2 {}
1883 const vf __builtin_vsx_xvrsqrtsp (vf);
1884 RSQRT_4SF rsqrtv4sf2 {}
1886 const vd __builtin_vsx_xvrsqrtedp (vd);
1887 XVRSQRTEDP rsqrtev2df2 {}
1889 const vf __builtin_vsx_xvrsqrtesp (vf);
1890 XVRSQRTESP rsqrtev4sf2 {}
1892 const vd __builtin_vsx_xvsqrtdp (vd);
1893 XVSQRTDP sqrtv2df2 {}
1895 const vf __builtin_vsx_xvsqrtsp (vf);
1896 XVSQRTSP sqrtv4sf2 {}
1898 fpmath vd __builtin_vsx_xvsubdp (vd, vd);
1901 fpmath vf __builtin_vsx_xvsubsp (vf, vf);
1904 const signed int __builtin_vsx_xvtdivdp_fe (vd, vd);
1905 XVTDIVDP_FE vsx_tdivv2df3_fe {}
1907 const signed int __builtin_vsx_xvtdivdp_fg (vd, vd);
1908 XVTDIVDP_FG vsx_tdivv2df3_fg {}
1910 const signed int __builtin_vsx_xvtdivsp_fe (vf, vf);
1911 XVTDIVSP_FE vsx_tdivv4sf3_fe {}
1913 const signed int __builtin_vsx_xvtdivsp_fg (vf, vf);
1914 XVTDIVSP_FG vsx_tdivv4sf3_fg {}
1916 const signed int __builtin_vsx_xvtsqrtdp_fe (vd);
1917 XVTSQRTDP_FE vsx_tsqrtv2df2_fe {}
1919 const signed int __builtin_vsx_xvtsqrtdp_fg (vd);
1920 XVTSQRTDP_FG vsx_tsqrtv2df2_fg {}
1922 const signed int __builtin_vsx_xvtsqrtsp_fe (vf);
1923 XVTSQRTSP_FE vsx_tsqrtv4sf2_fe {}
1925 const signed int __builtin_vsx_xvtsqrtsp_fg (vf);
1926 XVTSQRTSP_FG vsx_tsqrtv4sf2_fg {}
1928 const vf __builtin_vsx_xxmrghw (vf, vf);
1929 XXMRGHW_4SF vsx_xxmrghw_v4sf {}
1931 const vsi __builtin_vsx_xxmrghw_4si (vsi, vsi);
1932 XXMRGHW_4SI vsx_xxmrghw_v4si {}
1934 const vf __builtin_vsx_xxmrglw (vf, vf);
1935 XXMRGLW_4SF vsx_xxmrglw_v4sf {}
1937 const vsi __builtin_vsx_xxmrglw_4si (vsi, vsi);
1938 XXMRGLW_4SI vsx_xxmrglw_v4si {}
1940 const vsc __builtin_vsx_xxpermdi_16qi (vsc, vsc, const int<2>);
1941 XXPERMDI_16QI vsx_xxpermdi_v16qi {}
1943 const vsq __builtin_vsx_xxpermdi_1ti (vsq, vsq, const int<2>);
1944 XXPERMDI_1TI vsx_xxpermdi_v1ti {}
1946 const vd __builtin_vsx_xxpermdi_2df (vd, vd, const int<2>);
1947 XXPERMDI_2DF vsx_xxpermdi_v2df {}
1949 const vsll __builtin_vsx_xxpermdi_2di (vsll, vsll, const int<2>);
1950 XXPERMDI_2DI vsx_xxpermdi_v2di {}
1952 const vf __builtin_vsx_xxpermdi_4sf (vf, vf, const int<2>);
1953 XXPERMDI_4SF vsx_xxpermdi_v4sf {}
1955 const vsi __builtin_vsx_xxpermdi_4si (vsi, vsi, const int<2>);
1956 XXPERMDI_4SI vsx_xxpermdi_v4si {}
1958 const vss __builtin_vsx_xxpermdi_8hi (vss, vss, const int<2>);
1959 XXPERMDI_8HI vsx_xxpermdi_v8hi {}
1961 const vsc __builtin_vsx_xxsel_16qi (vsc, vsc, vsc);
1962 XXSEL_16QI vector_select_v16qi {}
1964 const vuc __builtin_vsx_xxsel_16qi_uns (vuc, vuc, vuc);
1965 XXSEL_16QI_UNS vector_select_v16qi_uns {}
1967 const vsq __builtin_vsx_xxsel_1ti (vsq, vsq, vsq);
1968 XXSEL_1TI vector_select_v1ti {}
1970 const vsq __builtin_vsx_xxsel_1ti_uns (vsq, vsq, vsq);
1971 XXSEL_1TI_UNS vector_select_v1ti_uns {}
1973 const vd __builtin_vsx_xxsel_2df (vd, vd, vd);
1974 XXSEL_2DF vector_select_v2df {}
1976 const vsll __builtin_vsx_xxsel_2di (vsll, vsll, vsll);
1977 XXSEL_2DI vector_select_v2di {}
1979 const vull __builtin_vsx_xxsel_2di_uns (vull, vull, vull);
1980 XXSEL_2DI_UNS vector_select_v2di_uns {}
1982 const vf __builtin_vsx_xxsel_4sf (vf, vf, vf);
1983 XXSEL_4SF vector_select_v4sf {}
1985 const vsi __builtin_vsx_xxsel_4si (vsi, vsi, vsi);
1986 XXSEL_4SI vector_select_v4si {}
1988 const vui __builtin_vsx_xxsel_4si_uns (vui, vui, vui);
1989 XXSEL_4SI_UNS vector_select_v4si_uns {}
1991 const vss __builtin_vsx_xxsel_8hi (vss, vss, vss);
1992 XXSEL_8HI vector_select_v8hi {}
1994 const vus __builtin_vsx_xxsel_8hi_uns (vus, vus, vus);
1995 XXSEL_8HI_UNS vector_select_v8hi_uns {}
1997 const vsc __builtin_vsx_xxsldwi_16qi (vsc, vsc, const int<2>);
1998 XXSLDWI_16QI vsx_xxsldwi_v16qi {}
2000 const vd __builtin_vsx_xxsldwi_2df (vd, vd, const int<2>);
2001 XXSLDWI_2DF vsx_xxsldwi_v2df {}
2003 const vsll __builtin_vsx_xxsldwi_2di (vsll, vsll, const int<2>);
2004 XXSLDWI_2DI vsx_xxsldwi_v2di {}
2006 const vf __builtin_vsx_xxsldwi_4sf (vf, vf, const int<2>);
2007 XXSLDWI_4SF vsx_xxsldwi_v4sf {}
2009 const vsi __builtin_vsx_xxsldwi_4si (vsi, vsi, const int<2>);
2010 XXSLDWI_4SI vsx_xxsldwi_v4si {}
2012 const vss __builtin_vsx_xxsldwi_8hi (vss, vss, const int<2>);
2013 XXSLDWI_8HI vsx_xxsldwi_v8hi {}
2015 const vd __builtin_vsx_xxspltd_2df (vd, const int<1>);
2016 XXSPLTD_V2DF vsx_xxspltd_v2df {}
2018 const vsll __builtin_vsx_xxspltd_2di (vsll, const int<1>);
2019 XXSPLTD_V2DI vsx_xxspltd_v2di {}
2021 const vsq __builtin_pack_vector_int128 (unsigned long long, \
2022 unsigned long long);
2023 PACK_V1TI packv1ti {}
2025 const unsigned long __builtin_unpack_vector_int128 (vsq, const int<1>);
2026 UNPACK_V1TI unpackv1ti {}
2029 ; Power7 builtins (ISA 2.06).
2031 const unsigned int __builtin_addg6s (unsigned int, unsigned int);
2034 const signed long __builtin_bpermd (signed long, signed long);
2035 BPERMD bpermd_di {32bit}
2037 const unsigned int __builtin_cbcdtd (unsigned int);
2040 const unsigned int __builtin_cdtbcd (unsigned int);
2043 const signed int __builtin_divwe (signed int, signed int);
2046 const unsigned int __builtin_divweu (unsigned int, unsigned int);
2049 void __builtin_ppc_speculation_barrier ();
2050 SPECBARR speculation_barrier {}
2053 ; Power7 builtins requiring 64-bit GPRs (even with 32-bit addressing).
2055 const signed long long __builtin_divde (signed long long, signed long long);
2058 const unsigned long long __builtin_divdeu (unsigned long long, \
2059 unsigned long long);
2063 ; Power8 vector built-ins.
2065 const vsll __builtin_altivec_abs_v2di (vsll);
2066 ABS_V2DI absv2di2 {}
2068 const vsc __builtin_altivec_bcddiv10_v16qi (vsc);
2069 BCDDIV10_V16QI bcddiv10_v16qi {}
2071 const vsc __builtin_altivec_bcdmul10_v16qi (vsc);
2072 BCDMUL10_V16QI bcdmul10_v16qi {}
2074 const vsc __builtin_altivec_eqv_v16qi (vsc, vsc);
2075 EQV_V16QI eqvv16qi3 {}
2077 const vuc __builtin_altivec_eqv_v16qi_uns (vuc, vuc);
2078 EQV_V16QI_UNS eqvv16qi3 {}
2080 const vsq __builtin_altivec_eqv_v1ti (vsq, vsq);
2081 EQV_V1TI eqvv1ti3 {}
2083 const vuq __builtin_altivec_eqv_v1ti_uns (vuq, vuq);
2084 EQV_V1TI_UNS eqvv1ti3 {}
2086 const vd __builtin_altivec_eqv_v2df (vd, vd);
2087 EQV_V2DF eqvv2df3 {}
2089 const vsll __builtin_altivec_eqv_v2di (vsll, vsll);
2090 EQV_V2DI eqvv2di3 {}
2092 const vull __builtin_altivec_eqv_v2di_uns (vull, vull);
2093 EQV_V2DI_UNS eqvv2di3 {}
2095 const vf __builtin_altivec_eqv_v4sf (vf, vf);
2096 EQV_V4SF eqvv4sf3 {}
2098 const vsi __builtin_altivec_eqv_v4si (vsi, vsi);
2099 EQV_V4SI eqvv4si3 {}
2101 const vui __builtin_altivec_eqv_v4si_uns (vui, vui);
2102 EQV_V4SI_UNS eqvv4si3 {}
2104 const vss __builtin_altivec_eqv_v8hi (vss, vss);
2105 EQV_V8HI eqvv8hi3 {}
2107 const vus __builtin_altivec_eqv_v8hi_uns (vus, vus);
2108 EQV_V8HI_UNS eqvv8hi3 {}
2110 const vsc __builtin_altivec_nand_v16qi (vsc, vsc);
2111 NAND_V16QI nandv16qi3 {}
2113 const vuc __builtin_altivec_nand_v16qi_uns (vuc, vuc);
2114 NAND_V16QI_UNS nandv16qi3 {}
2116 const vsq __builtin_altivec_nand_v1ti (vsq, vsq);
2117 NAND_V1TI nandv1ti3 {}
2119 const vuq __builtin_altivec_nand_v1ti_uns (vuq, vuq);
2120 NAND_V1TI_UNS nandv1ti3 {}
2122 const vd __builtin_altivec_nand_v2df (vd, vd);
2123 NAND_V2DF nandv2df3 {}
2125 const vsll __builtin_altivec_nand_v2di (vsll, vsll);
2126 NAND_V2DI nandv2di3 {}
2128 const vull __builtin_altivec_nand_v2di_uns (vull, vull);
2129 NAND_V2DI_UNS nandv2di3 {}
2131 const vf __builtin_altivec_nand_v4sf (vf, vf);
2132 NAND_V4SF nandv4sf3 {}
2134 const vsi __builtin_altivec_nand_v4si (vsi, vsi);
2135 NAND_V4SI nandv4si3 {}
2137 const vui __builtin_altivec_nand_v4si_uns (vui, vui);
2138 NAND_V4SI_UNS nandv4si3 {}
2140 const vss __builtin_altivec_nand_v8hi (vss, vss);
2141 NAND_V8HI nandv8hi3 {}
2143 const vus __builtin_altivec_nand_v8hi_uns (vus, vus);
2144 NAND_V8HI_UNS nandv8hi3 {}
2146 const vsll __builtin_altivec_neg_v2di (vsll);
2147 NEG_V2DI negv2di2 {}
2149 const vsc __builtin_altivec_orc_v16qi (vsc, vsc);
2150 ORC_V16QI orcv16qi3 {}
2152 const vuc __builtin_altivec_orc_v16qi_uns (vuc, vuc);
2153 ORC_V16QI_UNS orcv16qi3 {}
2155 const vsq __builtin_altivec_orc_v1ti (vsq, vsq);
2156 ORC_V1TI orcv1ti3 {}
2158 const vuq __builtin_altivec_orc_v1ti_uns (vuq, vuq);
2159 ORC_V1TI_UNS orcv1ti3 {}
2161 const vd __builtin_altivec_orc_v2df (vd, vd);
2162 ORC_V2DF orcv2df3 {}
2164 const vsll __builtin_altivec_orc_v2di (vsll, vsll);
2165 ORC_V2DI orcv2di3 {}
2167 const vull __builtin_altivec_orc_v2di_uns (vull, vull);
2168 ORC_V2DI_UNS orcv2di3 {}
2170 const vf __builtin_altivec_orc_v4sf (vf, vf);
2171 ORC_V4SF orcv4sf3 {}
2173 const vsi __builtin_altivec_orc_v4si (vsi, vsi);
2174 ORC_V4SI orcv4si3 {}
2176 const vui __builtin_altivec_orc_v4si_uns (vui, vui);
2177 ORC_V4SI_UNS orcv4si3 {}
2179 const vss __builtin_altivec_orc_v8hi (vss, vss);
2180 ORC_V8HI orcv8hi3 {}
2182 const vus __builtin_altivec_orc_v8hi_uns (vus, vus);
2183 ORC_V8HI_UNS orcv8hi3 {}
2185 const vsc __builtin_altivec_vclzb (vsc);
2188 const vsll __builtin_altivec_vclzd (vsll);
2191 const vss __builtin_altivec_vclzh (vss);
2194 const vsi __builtin_altivec_vclzw (vsi);
2197 const vuc __builtin_altivec_vgbbd (vuc);
2200 const vsq __builtin_altivec_vaddcuq (vsq, vsq);
2201 VADDCUQ altivec_vaddcuq {}
2203 const vsq __builtin_altivec_vaddecuq (vsq, vsq, vsq);
2204 VADDECUQ altivec_vaddecuq {}
2206 const vsq __builtin_altivec_vaddeuqm (vsq, vsq, vsq);
2207 VADDEUQM altivec_vaddeuqm {}
2209 const vsll __builtin_altivec_vaddudm (vsll, vsll);
2212 const vsq __builtin_altivec_vadduqm (vsq, vsq);
2213 VADDUQM altivec_vadduqm {}
2215 const vsll __builtin_altivec_vbpermq (vsc, vsc);
2216 VBPERMQ altivec_vbpermq {}
2218 const vsc __builtin_altivec_vbpermq2 (vsc, vsc);
2219 VBPERMQ2 altivec_vbpermq2 {}
2221 const vsll __builtin_altivec_vcmpequd (vull, vull);
2222 VCMPEQUD vector_eqv2di {}
2224 const int __builtin_altivec_vcmpequd_p (int, vsll, vsll);
2225 VCMPEQUD_P vector_eq_v2di_p {pred}
2227 const vsll __builtin_altivec_vcmpgtsd (vsll, vsll);
2228 VCMPGTSD vector_gtv2di {}
2230 const int __builtin_altivec_vcmpgtsd_p (int, vsll, vsll);
2231 VCMPGTSD_P vector_gt_v2di_p {pred}
2233 const vsll __builtin_altivec_vcmpgtud (vull, vull);
2234 VCMPGTUD vector_gtuv2di {}
2236 const int __builtin_altivec_vcmpgtud_p (int, vsll, vsll);
2237 VCMPGTUD_P vector_gtu_v2di_p {pred}
2239 const vsll __builtin_altivec_vmaxsd (vsll, vsll);
2242 const vull __builtin_altivec_vmaxud (vull, vull);
2245 const vsll __builtin_altivec_vminsd (vsll, vsll);
2248 const vull __builtin_altivec_vminud (vull, vull);
2251 const vd __builtin_altivec_vmrgew_v2df (vd, vd);
2252 VMRGEW_V2DF p8_vmrgew_v2df {}
2254 const vsll __builtin_altivec_vmrgew_v2di (vsll, vsll);
2255 VMRGEW_V2DI p8_vmrgew_v2di {}
2257 const vf __builtin_altivec_vmrgew_v4sf (vf, vf);
2258 VMRGEW_V4SF p8_vmrgew_v4sf {}
2260 const vsi __builtin_altivec_vmrgew_v4si (vsi, vsi);
2261 VMRGEW_V4SI p8_vmrgew_v4si {}
2263 const vd __builtin_altivec_vmrgow_v2df (vd, vd);
2264 VMRGOW_V2DF p8_vmrgow_v2df {}
2266 const vsll __builtin_altivec_vmrgow_v2di (vsll, vsll);
2267 VMRGOW_V2DI p8_vmrgow_v2di {}
2269 const vf __builtin_altivec_vmrgow_v4sf (vf, vf);
2270 VMRGOW_V4SF p8_vmrgow_v4sf {}
2272 const vsi __builtin_altivec_vmrgow_v4si (vsi, vsi);
2273 VMRGOW_V4SI p8_vmrgow_v4si {}
2275 const vsc __builtin_altivec_vpermxor (vsc, vsc, vsc);
2276 VPERMXOR altivec_vpermxor {}
2278 const vsi __builtin_altivec_vpksdss (vsll, vsll);
2279 VPKSDSS altivec_vpksdss {}
2281 const vsi __builtin_altivec_vpksdus (vsll, vsll);
2282 VPKSDUS altivec_vpksdus {}
2284 const vsi __builtin_altivec_vpkudum (vsll, vsll);
2285 VPKUDUM altivec_vpkudum {}
2287 const vsi __builtin_altivec_vpkudus (vsll, vsll);
2288 VPKUDUS altivec_vpkudus {}
2290 const vsc __builtin_altivec_vpmsumb (vsc, vsc);
2291 VPMSUMB_A crypto_vpmsumb {}
2293 const vsll __builtin_altivec_vpmsumd (vsll, vsll);
2294 VPMSUMD_A crypto_vpmsumd {}
2296 const vss __builtin_altivec_vpmsumh (vss, vss);
2297 VPMSUMH_A crypto_vpmsumh {}
2299 const vsi __builtin_altivec_vpmsumw (vsi, vsi);
2300 VPMSUMW_A crypto_vpmsumw {}
2302 const vsc __builtin_altivec_vpopcntb (vsc);
2303 VPOPCNTB popcountv16qi2 {}
2305 const vsll __builtin_altivec_vpopcntd (vsll);
2306 VPOPCNTD popcountv2di2 {}
2308 const vss __builtin_altivec_vpopcnth (vss);
2309 VPOPCNTH popcountv8hi2 {}
2311 const vsc __builtin_altivec_vpopcntub (vsc);
2312 VPOPCNTUB popcountv16qi2 {}
2314 const vsll __builtin_altivec_vpopcntud (vsll);
2315 VPOPCNTUD popcountv2di2 {}
2317 const vss __builtin_altivec_vpopcntuh (vss);
2318 VPOPCNTUH popcountv8hi2 {}
2320 const vsi __builtin_altivec_vpopcntuw (vsi);
2321 VPOPCNTUW popcountv4si2 {}
2323 const vsi __builtin_altivec_vpopcntw (vsi);
2324 VPOPCNTW popcountv4si2 {}
2326 const vsll __builtin_altivec_vrld (vsll, vsll);
2329 const vsll __builtin_altivec_vsld (vsll, vsll);
2332 const vsll __builtin_altivec_vsrad (vsll, vsll);
2335 const vsll __builtin_altivec_vsrd (vsll, vull);
2338 const vsq __builtin_altivec_vsubcuq (vsq, vsq);
2339 VSUBCUQ altivec_vsubcuq {}
2341 const vsq __builtin_altivec_vsubecuq (vsq, vsq, vsq);
2342 VSUBECUQ altivec_vsubecuq {}
2344 const vsq __builtin_altivec_vsubeuqm (vsq, vsq, vsq);
2345 VSUBEUQM altivec_vsubeuqm {}
2347 const vsll __builtin_altivec_vsubudm (vsll, vsll);
2350 const vsq __builtin_altivec_vsubuqm (vsq, vsq);
2351 VSUBUQM altivec_vsubuqm {}
2353 const vsll __builtin_altivec_vupkhsw (vsi);
2354 VUPKHSW altivec_vupkhsw {}
2356 const vsll __builtin_altivec_vupklsw (vsi);
2357 VUPKLSW altivec_vupklsw {}
2359 const vsq __builtin_bcdadd_v1ti (vsq, vsq, const int<1>);
2360 BCDADD_V1TI bcdadd_v1ti {}
2362 const vsc __builtin_bcdadd_v16qi (vsc, vsc, const int<1>);
2363 BCDADD_V16QI bcdadd_v16qi {}
2365 const signed int __builtin_bcdadd_eq_v1ti (vsq, vsq, const int<1>);
2366 BCDADD_EQ_V1TI bcdadd_eq_v1ti {}
2368 const signed int __builtin_bcdadd_eq_v16qi (vsc, vsc, const int<1>);
2369 BCDADD_EQ_V16QI bcdadd_eq_v16qi {}
2371 const signed int __builtin_bcdadd_gt_v1ti (vsq, vsq, const int<1>);
2372 BCDADD_GT_V1TI bcdadd_gt_v1ti {}
2374 const signed int __builtin_bcdadd_gt_v16qi (vsc, vsc, const int<1>);
2375 BCDADD_GT_V16QI bcdadd_gt_v16qi {}
2377 const signed int __builtin_bcdadd_lt_v1ti (vsq, vsq, const int<1>);
2378 BCDADD_LT_V1TI bcdadd_lt_v1ti {}
2380 const signed int __builtin_bcdadd_lt_v16qi (vsc, vsc, const int<1>);
2381 BCDADD_LT_V16QI bcdadd_lt_v16qi {}
2383 const signed int __builtin_bcdadd_ov_v1ti (vsq, vsq, const int<1>);
2384 BCDADD_OV_V1TI bcdadd_unordered_v1ti {}
2386 const signed int __builtin_bcdadd_ov_v16qi (vsc, vsc, const int<1>);
2387 BCDADD_OV_V16QI bcdadd_unordered_v16qi {}
2389 const signed int __builtin_bcdinvalid_v1ti (vsq);
2390 BCDINVALID_V1TI bcdinvalid_v1ti {}
2392 const signed int __builtin_bcdinvalid_v16qi (vsc);
2393 BCDINVALID_V16QI bcdinvalid_v16qi {}
2395 const vsq __builtin_bcdsub_v1ti (vsq, vsq, const int<1>);
2396 BCDSUB_V1TI bcdsub_v1ti {}
2398 const vsc __builtin_bcdsub_v16qi (vsc, vsc, const int<1>);
2399 BCDSUB_V16QI bcdsub_v16qi {}
2401 const signed int __builtin_bcdsub_eq_v1ti (vsq, vsq, const int<1>);
2402 BCDSUB_EQ_V1TI bcdsub_eq_v1ti {}
2404 const signed int __builtin_bcdsub_eq_v16qi (vsc, vsc, const int<1>);
2405 BCDSUB_EQ_V16QI bcdsub_eq_v16qi {}
2407 const signed int __builtin_bcdsub_ge_v1ti (vsq, vsq, const int<1>);
2408 BCDSUB_GE_V1TI bcdsub_ge_v1ti {}
2410 const signed int __builtin_bcdsub_ge_v16qi (vsc, vsc, const int<1>);
2411 BCDSUB_GE_V16QI bcdsub_ge_v16qi {}
2413 const signed int __builtin_bcdsub_gt_v1ti (vsq, vsq, const int<1>);
2414 BCDSUB_GT_V1TI bcdsub_gt_v1ti {}
2416 const signed int __builtin_bcdsub_gt_v16qi (vsc, vsc, const int<1>);
2417 BCDSUB_GT_V16QI bcdsub_gt_v16qi {}
2419 const signed int __builtin_bcdsub_le_v1ti (vsq, vsq, const int<1>);
2420 BCDSUB_LE_V1TI bcdsub_le_v1ti {}
2422 const signed int __builtin_bcdsub_le_v16qi (vsc, vsc, const int<1>);
2423 BCDSUB_LE_V16QI bcdsub_le_v16qi {}
2425 const signed int __builtin_bcdsub_lt_v1ti (vsq, vsq, const int<1>);
2426 BCDSUB_LT_V1TI bcdsub_lt_v1ti {}
2428 const signed int __builtin_bcdsub_lt_v16qi (vsc, vsc, const int<1>);
2429 BCDSUB_LT_V16QI bcdsub_lt_v16qi {}
2431 const signed int __builtin_bcdsub_ov_v1ti (vsq, vsq, const int<1>);
2432 BCDSUB_OV_V1TI bcdsub_unordered_v1ti {}
2434 const signed int __builtin_bcdsub_ov_v16qi (vsc, vsc, const int<1>);
2435 BCDSUB_OV_V16QI bcdsub_unordered_v16qi {}
2437 const vuc __builtin_crypto_vpermxor_v16qi (vuc, vuc, vuc);
2438 VPERMXOR_V16QI crypto_vpermxor_v16qi {}
2440 const vull __builtin_crypto_vpermxor_v2di (vull, vull, vull);
2441 VPERMXOR_V2DI crypto_vpermxor_v2di {}
2443 const vui __builtin_crypto_vpermxor_v4si (vui, vui, vui);
2444 VPERMXOR_V4SI crypto_vpermxor_v4si {}
2446 const vus __builtin_crypto_vpermxor_v8hi (vus, vus, vus);
2447 VPERMXOR_V8HI crypto_vpermxor_v8hi {}
2449 const vuc __builtin_crypto_vpmsumb (vuc, vuc);
2450 VPMSUMB crypto_vpmsumb {}
2452 const vull __builtin_crypto_vpmsumd (vull, vull);
2453 VPMSUMD crypto_vpmsumd {}
2455 const vus __builtin_crypto_vpmsumh (vus, vus);
2456 VPMSUMH crypto_vpmsumh {}
2458 const vui __builtin_crypto_vpmsumw (vui, vui);
2459 VPMSUMW crypto_vpmsumw {}
2461 const vf __builtin_vsx_float2_v2df (vd, vd);
2462 FLOAT2_V2DF float2_v2df {}
2464 const vf __builtin_vsx_float2_v2di (vsll, vsll);
2465 FLOAT2_V2DI float2_v2di {}
2467 const vsc __builtin_vsx_revb_v16qi (vsc);
2468 REVB_V16QI revb_v16qi {}
2470 const vsq __builtin_vsx_revb_v1ti (vsq);
2471 REVB_V1TI revb_v1ti {}
2473 const vd __builtin_vsx_revb_v2df (vd);
2474 REVB_V2DF revb_v2df {}
2476 const vsll __builtin_vsx_revb_v2di (vsll);
2477 REVB_V2DI revb_v2di {}
2479 const vf __builtin_vsx_revb_v4sf (vf);
2480 REVB_V4SF revb_v4sf {}
2482 const vsi __builtin_vsx_revb_v4si (vsi);
2483 REVB_V4SI revb_v4si {}
2485 const vss __builtin_vsx_revb_v8hi (vss);
2486 REVB_V8HI revb_v8hi {}
2488 const vf __builtin_vsx_uns_float2_v2di (vsll, vsll);
2489 UNS_FLOAT2_V2DI uns_float2_v2di {}
2491 const vsi __builtin_vsx_vsigned2_v2df (vd, vd);
2492 VEC_VSIGNED2_V2DF vsigned2_v2df {}
2494 const vsi __builtin_vsx_vunsigned2_v2df (vd, vd);
2495 VEC_VUNSIGNED2_V2DF vunsigned2_v2df {}
2497 const vf __builtin_vsx_xscvdpspn (double);
2498 XSCVDPSPN vsx_xscvdpspn {}
2500 const double __builtin_vsx_xscvspdpn (vf);
2501 XSCVSPDPN vsx_xscvspdpn {}
2504 ; Power9 vector builtins.
2506 const vss __builtin_altivec_convert_4f32_8f16 (vf, vf);
2507 CONVERT_4F32_8F16 convert_4f32_8f16 {}
2509 const vss __builtin_altivec_convert_4f32_8i16 (vf, vf);
2510 CONVERT_4F32_8I16 convert_4f32_8i16 {}
2512 const signed int __builtin_altivec_first_match_index_v16qi (vsc, vsc);
2513 VFIRSTMATCHINDEX_V16QI first_match_index_v16qi {}
2515 const signed int __builtin_altivec_first_match_index_v8hi (vss, vss);
2516 VFIRSTMATCHINDEX_V8HI first_match_index_v8hi {}
2518 const signed int __builtin_altivec_first_match_index_v4si (vsi, vsi);
2519 VFIRSTMATCHINDEX_V4SI first_match_index_v4si {}
2521 const signed int __builtin_altivec_first_match_or_eos_index_v16qi (vsc, vsc);
2522 VFIRSTMATCHOREOSINDEX_V16QI first_match_or_eos_index_v16qi {}
2524 const signed int __builtin_altivec_first_match_or_eos_index_v8hi (vss, vss);
2525 VFIRSTMATCHOREOSINDEX_V8HI first_match_or_eos_index_v8hi {}
2527 const signed int __builtin_altivec_first_match_or_eos_index_v4si (vsi, vsi);
2528 VFIRSTMATCHOREOSINDEX_V4SI first_match_or_eos_index_v4si {}
2530 const signed int __builtin_altivec_first_mismatch_index_v16qi (vsc, vsc);
2531 VFIRSTMISMATCHINDEX_V16QI first_mismatch_index_v16qi {}
2533 const signed int __builtin_altivec_first_mismatch_index_v8hi (vss, vss);
2534 VFIRSTMISMATCHINDEX_V8HI first_mismatch_index_v8hi {}
2536 const signed int __builtin_altivec_first_mismatch_index_v4si (vsi, vsi);
2537 VFIRSTMISMATCHINDEX_V4SI first_mismatch_index_v4si {}
2540 __builtin_altivec_first_mismatch_or_eos_index_v16qi (vsc, vsc);
2541 VFIRSTMISMATCHOREOSINDEX_V16QI first_mismatch_or_eos_index_v16qi {}
2544 __builtin_altivec_first_mismatch_or_eos_index_v8hi (vss, vss);
2545 VFIRSTMISMATCHOREOSINDEX_V8HI first_mismatch_or_eos_index_v8hi {}
2548 __builtin_altivec_first_mismatch_or_eos_index_v4si (vsi, vsi);
2549 VFIRSTMISMATCHOREOSINDEX_V4SI first_mismatch_or_eos_index_v4si {}
2551 const vsc __builtin_altivec_vadub (vsc, vsc);
2554 const vss __builtin_altivec_vaduh (vss, vss);
2557 const vsi __builtin_altivec_vaduw (vsi, vsi);
2560 const vsll __builtin_altivec_vbpermd (vsll, vsc);
2561 VBPERMD altivec_vbpermd {}
2563 const signed int __builtin_altivec_vclzlsbb_v16qi (vsc);
2564 VCLZLSBB_V16QI vctzlsbb_v16qi {endian}
2566 const signed int __builtin_altivec_vclzlsbb_v4si (vsi);
2567 VCLZLSBB_V4SI vctzlsbb_v4si {endian}
2569 const signed int __builtin_altivec_vclzlsbb_v8hi (vss);
2570 VCLZLSBB_V8HI vctzlsbb_v8hi {endian}
2572 const vsc __builtin_altivec_vctzb (vsc);
2575 const vsll __builtin_altivec_vctzd (vsll);
2578 const vss __builtin_altivec_vctzh (vss);
2581 const vsi __builtin_altivec_vctzw (vsi);
2584 const signed int __builtin_altivec_vctzlsbb_v16qi (vsc);
2585 VCTZLSBB_V16QI vclzlsbb_v16qi {endian}
2587 const signed int __builtin_altivec_vctzlsbb_v4si (vsi);
2588 VCTZLSBB_V4SI vclzlsbb_v4si {endian}
2590 const signed int __builtin_altivec_vctzlsbb_v8hi (vss);
2591 VCTZLSBB_V8HI vclzlsbb_v8hi {endian}
2593 const signed int __builtin_altivec_vcmpaeb_p (vsc, vsc);
2594 VCMPAEB_P vector_ae_v16qi_p {}
2596 const signed int __builtin_altivec_vcmpaed_p (vsll, vsll);
2597 VCMPAED_P vector_ae_v2di_p {}
2599 const signed int __builtin_altivec_vcmpaedp_p (vd, vd);
2600 VCMPAEDP_P vector_ae_v2df_p {}
2602 const signed int __builtin_altivec_vcmpaefp_p (vf, vf);
2603 VCMPAEFP_P vector_ae_v4sf_p {}
2605 const signed int __builtin_altivec_vcmpaeh_p (vss, vss);
2606 VCMPAEH_P vector_ae_v8hi_p {}
2608 const signed int __builtin_altivec_vcmpaew_p (vsi, vsi);
2609 VCMPAEW_P vector_ae_v4si_p {}
2611 const signed int __builtin_altivec_vcmpneb_p (vsc, vsc);
2612 VCMPNEB_P vector_ne_v16qi_p {}
2614 const signed int __builtin_altivec_vcmpned_p (vsll, vsll);
2615 VCMPNED_P vector_ne_v2di_p {}
2617 const signed int __builtin_altivec_vcmpnedp_p (vd, vd);
2618 VCMPNEDP_P vector_ne_v2df_p {}
2620 const signed int __builtin_altivec_vcmpnefp_p (vf, vf);
2621 VCMPNEFP_P vector_ne_v4sf_p {}
2623 const signed int __builtin_altivec_vcmpneh_p (vss, vss);
2624 VCMPNEH_P vector_ne_v8hi_p {}
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);
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);
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);
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);
2707 const vsc __builtin_altivec_vsrv (vsc, vsc);
2710 const signed int __builtin_scalar_byte_in_range (signed int, signed int);
2714 __builtin_scalar_byte_in_either_range (signed int, signed int);
2717 const vsll __builtin_vsx_extract4b (vsc, const int[0,12]);
2718 EXTRACT4B extract4b {}
2720 const vd __builtin_vsx_extract_exp_dp (vd);
2723 const vf __builtin_vsx_extract_exp_sp (vf);
2726 const vd __builtin_vsx_extract_sig_dp (vd);
2729 const vf __builtin_vsx_extract_sig_sp (vf);
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);
2738 const vf __builtin_vsx_insert_exp_sp (vf, vf);
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 {}
2754 __builtin_vsx_scalar_test_data_class_dp (double, const int<7>);
2755 VSTDCDP xststdcdp {}
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>);
2770 const vsi __builtin_vsx_test_data_class_sp (vf, const int<7>);
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 {}
2810 __builtin_vsx_scalar_cmp_exp_qp_unordered (_Float128, _Float128);
2811 VSCEQPUO xscmpexpqp_unordered_kf {}
2814 ; Miscellaneous P9 functions
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 {}
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);
2859 const signed int __builtin_scalar_byte_in_set (signed int, signed long long);
2862 pure vsc __builtin_vsx_lxvl (const void *, signed long);
2865 const signed long long __builtin_vsx_scalar_extract_sig (double);
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.
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, \
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_di {}
2906 vull __builtin_vsx_scalar_extract_exp_to_vec (_Float128);
2907 VSEEQPV xsxexpqp_kf_v2di {}
2909 const signed __int128 __builtin_vsx_scalar_extract_sigq (_Float128);
2910 VSESQP xsxsigqp_kf_ti {}
2912 vuq __builtin_vsx_scalar_extract_sig_to_vec (_Float128);
2913 VSESQPV xsxsigqp_kf_v1ti {}
2915 const _Float128 __builtin_vsx_scalar_insert_exp_q (unsigned __int128, \
2916 unsigned long long);
2917 VSIEQP xsiexpqp_kf_di {}
2919 const _Float128 __builtin_vsx_scalar_insert_exp_qp (_Float128, \
2920 unsigned long long);
2921 VSIEQPF xsiexpqpf_kf {}
2923 const _Float128 __builtin_vsx_scalar_insert_exp_vqp (vuq, vull);
2924 VSIEQPV xsiexpqp_kf_v2di {}
2926 const signed int __builtin_vsx_scalar_test_data_class_qp (_Float128, \
2928 VSTDCQP xststdcqp_kf {}
2930 const signed int __builtin_vsx_scalar_test_neg_qp (_Float128);
2931 VSTDCNQP xststdcnegqp_kf {}
2935 ; Decimal floating-point builtins.
2937 const _Decimal64 __builtin_ddedpd (const int<2>, _Decimal64);
2938 DDEDPD dfp_ddedpd_dd {}
2940 const _Decimal128 __builtin_ddedpdq (const int<2>, _Decimal128);
2941 DDEDPDQ dfp_ddedpd_td {}
2943 const _Decimal64 __builtin_denbcd (const int<1>, _Decimal64);
2944 DENBCD dfp_denbcd_dd {}
2946 const _Decimal128 __builtin_denbcdq (const int<1>, _Decimal128);
2947 DENBCDQ dfp_denbcd_td {}
2949 const _Decimal128 __builtin_denb2dfp_v16qi (vsc);
2950 DENB2DFP_V16QI dfp_denbcd_v16qi {}
2952 const _Decimal64 __builtin_diex (signed long long, _Decimal64);
2955 const _Decimal128 __builtin_diexq (signed long long, _Decimal128);
2956 DIEXQ dfp_diex_td {}
2958 const _Decimal64 __builtin_dscli (_Decimal64, const int<6>);
2959 DSCLI dfp_dscli_dd {}
2961 const _Decimal128 __builtin_dscliq (_Decimal128, const int<6>);
2962 DSCLIQ dfp_dscli_td {}
2964 const _Decimal64 __builtin_dscri (_Decimal64, const int<6>);
2965 DSCRI dfp_dscri_dd {}
2967 const _Decimal128 __builtin_dscriq (_Decimal128, const int<6>);
2968 DSCRIQ dfp_dscri_td {}
2970 const signed long long __builtin_dxex (_Decimal64);
2973 const signed long long __builtin_dxexq (_Decimal128);
2974 DXEXQ dfp_dxex_td {}
2976 const _Decimal128 __builtin_pack_dec128 (unsigned long long, \
2977 unsigned long long);
2980 void __builtin_set_fpscr_drn (const int[0,7]);
2981 SET_FPSCR_DRN rs6000_set_fpscr_drn {nosoft,no32bit}
2983 const unsigned long long __builtin_unpack_dec128 (_Decimal128, const int<1>);
2984 UNPACK_TD unpacktd {}
2986 const _Decimal64 __builtin_dfp_dqua (_Decimal64, _Decimal64, \
2988 DFPQUAN_64 dfp_dqua_dd {}
2990 const _Decimal64 __builtin_dfp_dquai (const int<5>, _Decimal64, \
2992 DFPQUAN_64i dfp_dquai_dd {}
2994 const _Decimal128 __builtin_dfp_dquaq (_Decimal128, _Decimal128, \
2996 DFPQUAN_128 dfp_dqua_td {}
2998 const _Decimal128 __builtin_dfp_dquaqi (const int<5>, _Decimal128, \
3000 DFPQUAN_128i dfp_dquai_td {}
3003 const vull __builtin_crypto_vcipher (vull, vull);
3004 VCIPHER crypto_vcipher_v2di {}
3006 const vuc __builtin_crypto_vcipher_be (vuc, vuc);
3007 VCIPHER_BE crypto_vcipher_v16qi {}
3009 const vull __builtin_crypto_vcipherlast (vull, vull);
3010 VCIPHERLAST crypto_vcipherlast_v2di {}
3012 const vuc __builtin_crypto_vcipherlast_be (vuc, vuc);
3013 VCIPHERLAST_BE crypto_vcipherlast_v16qi {}
3015 const vull __builtin_crypto_vncipher (vull, vull);
3016 VNCIPHER crypto_vncipher_v2di {}
3018 const vuc __builtin_crypto_vncipher_be (vuc, vuc);
3019 VNCIPHER_BE crypto_vncipher_v16qi {}
3021 const vull __builtin_crypto_vncipherlast (vull, vull);
3022 VNCIPHERLAST crypto_vncipherlast_v2di {}
3024 const vuc __builtin_crypto_vncipherlast_be (vuc, vuc);
3025 VNCIPHERLAST_BE crypto_vncipherlast_v16qi {}
3027 const vull __builtin_crypto_vsbox (vull);
3028 VSBOX crypto_vsbox_v2di {}
3030 const vuc __builtin_crypto_vsbox_be (vuc);
3031 VSBOX_BE crypto_vsbox_v16qi {}
3033 const vull __builtin_crypto_vshasigmad (vull, const int<1>, const int<4>);
3034 VSHASIGMAD crypto_vshasigmad {}
3036 const vui __builtin_crypto_vshasigmaw (vui, const int<1>, const int<4>);
3037 VSHASIGMAW crypto_vshasigmaw {}
3041 unsigned long __builtin_get_texasr ();
3042 GET_TEXASR nothing {htm,htmspr}
3044 unsigned long __builtin_get_texasru ();
3045 GET_TEXASRU nothing {htm,htmspr}
3047 unsigned long __builtin_get_tfhar ();
3048 GET_TFHAR nothing {htm,htmspr}
3050 unsigned long __builtin_get_tfiar ();
3051 GET_TFIAR nothing {htm,htmspr}
3053 void __builtin_set_texasr (unsigned long);
3054 SET_TEXASR nothing {htm,htmspr}
3056 void __builtin_set_texasru (unsigned long);
3057 SET_TEXASRU nothing {htm,htmspr}
3059 void __builtin_set_tfhar (unsigned long);
3060 SET_TFHAR nothing {htm,htmspr}
3062 void __builtin_set_tfiar (unsigned long);
3063 SET_TFIAR nothing {htm,htmspr}
3065 unsigned int __builtin_tabort (unsigned int);
3066 TABORT tabort {htm,htmcr}
3068 unsigned int __builtin_tabortdc (unsigned long, unsigned long, \
3070 TABORTDC tabortdc {htm,htmcr}
3072 unsigned int __builtin_tabortdci (unsigned long, unsigned long, \
3074 TABORTDCI tabortdci {htm,htmcr}
3076 unsigned int __builtin_tabortwc (unsigned int, unsigned int, unsigned int);
3077 TABORTWC tabortwc {htm,htmcr}
3079 unsigned int __builtin_tabortwci (unsigned int, unsigned int, unsigned int);
3080 TABORTWCI tabortwci {htm,htmcr}
3082 unsigned int __builtin_tbegin (unsigned int);
3083 TBEGIN tbegin {htm,htmcr}
3085 unsigned int __builtin_tcheck ();
3086 TCHECK tcheck {htm,htmcr}
3088 unsigned int __builtin_tend (unsigned int);
3089 TEND tend {htm,htmcr}
3091 unsigned int __builtin_tendall ();
3092 TENDALL tend {htm,htmcr}
3094 unsigned int __builtin_trechkpt ();
3095 TRECHKPT trechkpt {htm,htmcr}
3097 unsigned int __builtin_treclaim (unsigned int);
3098 TRECLAIM treclaim {htm,htmcr}
3100 unsigned int __builtin_tresume ();
3101 TRESUME tsr {htm,htmcr}
3103 unsigned int __builtin_tsr (unsigned int);
3106 unsigned int __builtin_tsuspend ();
3107 TSUSPEND tsr {htm,htmcr}
3109 unsigned int __builtin_ttest ();
3110 TTEST ttest {htm,htmcr}
3114 const vbq __builtin_altivec_cmpge_1ti (vsq, vsq);
3115 CMPGE_1TI vector_nltv1ti {}
3117 const vbq __builtin_altivec_cmpge_u1ti (vuq, vuq);
3118 CMPGE_U1TI vector_nltuv1ti {}
3120 const vbq __builtin_altivec_cmple_1ti (vsq, vsq);
3121 CMPLE_1TI vector_ngtv1ti {}
3123 const vbq __builtin_altivec_cmple_u1ti (vuq, vuq);
3124 CMPLE_U1TI vector_ngtuv1ti {}
3126 const unsigned long long __builtin_altivec_cntmbb (vuc, const int<1>);
3127 VCNTMBB vec_cntmb_v16qi {}
3129 const unsigned long long __builtin_altivec_cntmbd (vull, const int<1>);
3130 VCNTMBD vec_cntmb_v2di {}
3132 const unsigned long long __builtin_altivec_cntmbh (vus, const int<1>);
3133 VCNTMBH vec_cntmb_v8hi {}
3135 const unsigned long long __builtin_altivec_cntmbw (vui, const int<1>);
3136 VCNTMBW vec_cntmb_v4si {}
3138 const vsq __builtin_altivec_div_v1ti (vsq, vsq);
3139 DIV_V1TI vsx_div_v1ti {}
3141 const vsq __builtin_altivec_dives (vsq, vsq);
3142 DIVES_V1TI vsx_dives_v1ti {}
3144 const vuq __builtin_altivec_diveu (vuq, vuq);
3145 DIVEU_V1TI vsx_diveu_v1ti {}
3147 const vsq __builtin_altivec_mods (vsq, vsq);
3148 MODS_V1TI vsx_mods_v1ti {}
3150 const vuq __builtin_altivec_modu (vuq, vuq);
3151 MODU_V1TI vsx_modu_v1ti {}
3153 const vuc __builtin_altivec_mtvsrbm (unsigned long long);
3154 MTVSRBM vec_mtvsr_v16qi {}
3156 const vull __builtin_altivec_mtvsrdm (unsigned long long);
3157 MTVSRDM vec_mtvsr_v2di {}
3159 const vus __builtin_altivec_mtvsrhm (unsigned long long);
3160 MTVSRHM vec_mtvsr_v8hi {}
3162 const vuq __builtin_altivec_mtvsrqm (unsigned long long);
3163 MTVSRQM vec_mtvsr_v1ti {}
3165 const vui __builtin_altivec_mtvsrwm (unsigned long long);
3166 MTVSRWM vec_mtvsr_v4si {}
3168 pure signed __int128 __builtin_altivec_se_lxvrbx (signed long, \
3169 const signed char *);
3170 SE_LXVRBX vsx_lxvrbx {lxvrse}
3172 pure signed __int128 __builtin_altivec_se_lxvrhx (signed long, \
3173 const signed short *);
3174 SE_LXVRHX vsx_lxvrhx {lxvrse}
3176 pure signed __int128 __builtin_altivec_se_lxvrwx (signed long, \
3177 const signed int *);
3178 SE_LXVRWX vsx_lxvrwx {lxvrse}
3180 pure signed __int128 __builtin_altivec_se_lxvrdx (signed long, \
3181 const signed long long *);
3182 SE_LXVRDX vsx_lxvrdx {lxvrse}
3184 void __builtin_altivec_tr_stxvrbx (vsq, signed long, signed char *);
3185 TR_STXVRBX vsx_stxvrbx {stvec}
3187 void __builtin_altivec_tr_stxvrhx (vsq, signed long, signed short *);
3188 TR_STXVRHX vsx_stxvrhx {stvec}
3190 void __builtin_altivec_tr_stxvrwx (vsq, signed long, signed int *);
3191 TR_STXVRWX vsx_stxvrwx {stvec}
3193 void __builtin_altivec_tr_stxvrdx (vsq, signed long, signed long long *);
3194 TR_STXVRDX vsx_stxvrdx {stvec}
3196 const vuq __builtin_altivec_udiv_v1ti (vuq, vuq);
3197 UDIV_V1TI vsx_udiv_v1ti {}
3199 const vull __builtin_altivec_vcfuged (vull, vull);
3202 const vsc __builtin_altivec_vclrlb (vsc, signed int);
3205 const vsc __builtin_altivec_vclrrb (vsc, signed int);
3208 const signed int __builtin_altivec_vcmpaet_p (vsq, vsq);
3209 VCMPAET_P vector_ae_v1ti_p {}
3211 const vbq __builtin_altivec_vcmpequt (vsq, vsq);
3212 VCMPEQUT vector_eqv1ti {}
3214 const signed int __builtin_altivec_vcmpequt_p (signed int, vsq, vsq);
3215 VCMPEQUT_P vector_eq_v1ti_p {pred}
3217 const vbq __builtin_altivec_vcmpgtst (vsq, vsq);
3218 VCMPGTST vector_gtv1ti {}
3220 const signed int __builtin_altivec_vcmpgtst_p (signed int, vsq, vsq);
3221 VCMPGTST_P vector_gt_v1ti_p {pred}
3223 const vbq __builtin_altivec_vcmpgtut (vuq, vuq);
3224 VCMPGTUT vector_gtuv1ti {}
3226 const signed int __builtin_altivec_vcmpgtut_p (signed int, vuq, vuq);
3227 VCMPGTUT_P vector_gtu_v1ti_p {pred}
3229 const vbq __builtin_altivec_vcmpnet (vsq, vsq);
3232 const signed int __builtin_altivec_vcmpnet_p (vsq, vsq);
3233 VCMPNET_P vector_ne_v1ti_p {}
3235 const vull __builtin_altivec_vclzdm (vull, vull);
3238 const vull __builtin_altivec_vctzdm (vull, vull);
3241 const vsll __builtin_altivec_vdivesd (vsll, vsll);
3242 VDIVESD dives_v2di {}
3244 const vsi __builtin_altivec_vdivesw (vsi, vsi);
3245 VDIVESW dives_v4si {}
3247 const vull __builtin_altivec_vdiveud (vull, vull);
3248 VDIVEUD diveu_v2di {}
3250 const vui __builtin_altivec_vdiveuw (vui, vui);
3251 VDIVEUW diveu_v4si {}
3253 const vsll __builtin_altivec_vdivsd (vsll, vsll);
3256 const vsi __builtin_altivec_vdivsw (vsi, vsi);
3259 const vull __builtin_altivec_vdivud (vull, vull);
3262 const vui __builtin_altivec_vdivuw (vui, vui);
3265 const vuc __builtin_altivec_vexpandmb (vuc);
3266 VEXPANDMB vec_expand_v16qi {}
3268 const vull __builtin_altivec_vexpandmd (vull);
3269 VEXPANDMD vec_expand_v2di {}
3271 const vus __builtin_altivec_vexpandmh (vus);
3272 VEXPANDMH vec_expand_v8hi {}
3274 const vuq __builtin_altivec_vexpandmq (vuq);
3275 VEXPANDMQ vec_expand_v1ti {}
3277 const vui __builtin_altivec_vexpandmw (vui);
3278 VEXPANDMW vec_expand_v4si {}
3280 const vull __builtin_altivec_vextddvhx (vull, vull, unsigned int);
3281 VEXTRACTDR vextractrv2di {}
3283 const vull __builtin_altivec_vextddvlx (vull, vull, unsigned int);
3284 VEXTRACTDL vextractlv2di {}
3286 const vull __builtin_altivec_vextdubvhx (vuc, vuc, unsigned int);
3287 VEXTRACTBR vextractrv16qi {}
3289 const vull __builtin_altivec_vextdubvlx (vuc, vuc, unsigned int);
3290 VEXTRACTBL vextractlv16qi {}
3292 const vull __builtin_altivec_vextduhvhx (vus, vus, unsigned int);
3293 VEXTRACTHR vextractrv8hi {}
3295 const vull __builtin_altivec_vextduhvlx (vus, vus, unsigned int);
3296 VEXTRACTHL vextractlv8hi {}
3298 const vull __builtin_altivec_vextduwvhx (vui, vui, unsigned int);
3299 VEXTRACTWR vextractrv4si {}
3301 const vull __builtin_altivec_vextduwvlx (vui, vui, unsigned int);
3302 VEXTRACTWL vextractlv4si {}
3304 const signed int __builtin_altivec_vextractmb (vsc);
3305 VEXTRACTMB vec_extract_v16qi {}
3307 const signed int __builtin_altivec_vextractmd (vsll);
3308 VEXTRACTMD vec_extract_v2di {}
3310 const signed int __builtin_altivec_vextractmh (vss);
3311 VEXTRACTMH vec_extract_v8hi {}
3313 const signed int __builtin_altivec_vextractmq (vsq);
3314 VEXTRACTMQ vec_extract_v1ti {}
3316 const signed int __builtin_altivec_vextractmw (vsi);
3317 VEXTRACTMW vec_extract_v4si {}
3319 const unsigned long long __builtin_altivec_vgnb (vull, const int <2,7>);
3322 const vuc __builtin_altivec_vinsgubvlx (unsigned int, vuc, unsigned int);
3323 VINSERTGPRBL vinsertgl_v16qi {}
3325 const vsc __builtin_altivec_vinsgubvrx (signed int, vsc, signed int);
3326 VINSERTGPRBR vinsertgr_v16qi {}
3328 const vull __builtin_altivec_vinsgudvlx (unsigned int, vull, unsigned int);
3329 VINSERTGPRDL vinsertgl_v2di {}
3331 const vsll __builtin_altivec_vinsgudvrx (signed int, vsll, signed int);
3332 VINSERTGPRDR vinsertgr_v2di {}
3334 const vus __builtin_altivec_vinsguhvlx (unsigned int, vus, unsigned int);
3335 VINSERTGPRHL vinsertgl_v8hi {}
3337 const vss __builtin_altivec_vinsguhvrx (signed int, vss, signed int);
3338 VINSERTGPRHR vinsertgr_v8hi {}
3340 const vui __builtin_altivec_vinsguwvlx (unsigned int, vui, unsigned int);
3341 VINSERTGPRWL vinsertgl_v4si {}
3343 const vsi __builtin_altivec_vinsguwvrx (signed int, vsi, signed int);
3344 VINSERTGPRWR vinsertgr_v4si {}
3346 const vuc __builtin_altivec_vinsvubvlx (vuc, vuc, unsigned int);
3347 VINSERTVPRBL vinsertvl_v16qi {}
3349 const vsc __builtin_altivec_vinsvubvrx (vsc, vsc, signed int);
3350 VINSERTVPRBR vinsertvr_v16qi {}
3352 const vus __builtin_altivec_vinsvuhvlx (vus, vus, unsigned int);
3353 VINSERTVPRHL vinsertvl_v8hi {}
3355 const vss __builtin_altivec_vinsvuhvrx (vss, vss, signed int);
3356 VINSERTVPRHR vinsertvr_v8hi {}
3358 const vui __builtin_altivec_vinsvuwvlx (vui, vui, unsigned int);
3359 VINSERTVPRWL vinsertvl_v4si {}
3361 const vsi __builtin_altivec_vinsvuwvrx (vsi, vsi, signed int);
3362 VINSERTVPRWR vinsertvr_v4si {}
3364 const vsll __builtin_altivec_vmodsd (vsll, vsll);
3367 const vsi __builtin_altivec_vmodsw (vsi, vsi);
3370 const vull __builtin_altivec_vmodud (vull, vull);
3373 const vui __builtin_altivec_vmoduw (vui, vui);
3376 const vsq __builtin_altivec_vmulesd (vsll, vsll);
3377 VMULESD vec_widen_smult_even_v2di {}
3379 const vuq __builtin_altivec_vmuleud (vull, vull);
3380 VMULEUD vec_widen_umult_even_v2di {}
3382 const vsll __builtin_altivec_vmulhsd (vsll, vsll);
3383 VMULHSD smulv2di3_highpart {}
3385 const vsi __builtin_altivec_vmulhsw (vsi, vsi);
3386 VMULHSW smulv4si3_highpart {}
3388 const vull __builtin_altivec_vmulhud (vull, vull);
3389 VMULHUD umulv2di3_highpart {}
3391 const vui __builtin_altivec_vmulhuw (vui, vui);
3392 VMULHUW umulv4si3_highpart {}
3394 const vsll __builtin_altivec_vmulld (vsll, vsll);
3397 const vsq __builtin_altivec_vmulosd (vsll, vsll);
3398 VMULOSD vec_widen_smult_odd_v2di {}
3400 const vuq __builtin_altivec_vmuloud (vull, vull);
3401 VMULOUD vec_widen_umult_odd_v2di {}
3403 const vsq __builtin_altivec_vnor_v1ti (vsq, vsq);
3404 VNOR_V1TI norv1ti3 {}
3406 const vuq __builtin_altivec_vnor_v1ti_uns (vuq, vuq);
3407 VNOR_V1TI_UNS norv1ti3 {}
3409 const vull __builtin_altivec_vpdepd (vull, vull);
3412 const vull __builtin_altivec_vpextd (vull, vull);
3415 const vuc __builtin_altivec_vreplace_un_udi (vuc, unsigned long long, \
3417 VREPLACE_UN_UDI vreplace_un_di {}
3419 const vuc __builtin_altivec_vreplace_un_usi (vuc, unsigned int, \
3421 VREPLACE_UN_USI vreplace_un_si {}
3423 const vuc __builtin_altivec_vreplace_un_df (vuc, double, const int<4>);
3424 VREPLACE_UN_DF vreplace_un_df {}
3426 const vuc __builtin_altivec_vreplace_un_di (vuc, signed long long, \
3428 VREPLACE_UN_DI vreplace_un_di {}
3430 const vuc __builtin_altivec_vreplace_un_sf (vuc, float, const int<4>);
3431 VREPLACE_UN_SF vreplace_un_sf {}
3433 const vuc __builtin_altivec_vreplace_un_si (vuc, signed int, const int<4>);
3434 VREPLACE_UN_SI vreplace_un_si {}
3436 const vull __builtin_altivec_vreplace_uv2di (vull, unsigned long long, \
3438 VREPLACE_ELT_UV2DI vreplace_elt_v2di {}
3440 const vui __builtin_altivec_vreplace_uv4si (vui, unsigned int, const int<2>);
3441 VREPLACE_ELT_UV4SI vreplace_elt_v4si {}
3443 const vd __builtin_altivec_vreplace_v2df (vd, double, const int<1>);
3444 VREPLACE_ELT_V2DF vreplace_elt_v2df {}
3446 const vsll __builtin_altivec_vreplace_v2di (vsll, signed long long, \
3448 VREPLACE_ELT_V2DI vreplace_elt_v2di {}
3450 const vf __builtin_altivec_vreplace_v4sf (vf, float, const int<2>);
3451 VREPLACE_ELT_V4SF vreplace_elt_v4sf {}
3453 const vsi __builtin_altivec_vreplace_v4si (vsi, signed int, const int<2>);
3454 VREPLACE_ELT_V4SI vreplace_elt_v4si {}
3456 const vsq __builtin_altivec_vrlq (vsq, vuq);
3459 const vsq __builtin_altivec_vrlqmi (vsq, vsq, vuq);
3460 VRLQMI altivec_vrlqmi {}
3462 const vsq __builtin_altivec_vrlqnm (vsq, vuq);
3463 VRLQNM altivec_vrlqnm {}
3465 const vsq __builtin_altivec_vsignext (vsll);
3466 VSIGNEXTSD2Q vsx_sign_extend_v2di_v1ti {}
3468 const vsc __builtin_altivec_vsldb_v16qi (vsc, vsc, const int<3>);
3469 VSLDB_V16QI vsldb_v16qi {}
3471 const vsll __builtin_altivec_vsldb_v2di (vsll, vsll, const int<3>);
3472 VSLDB_V2DI vsldb_v2di {}
3474 const vsi __builtin_altivec_vsldb_v4si (vsi, vsi, const int<3>);
3475 VSLDB_V4SI vsldb_v4si {}
3477 const vss __builtin_altivec_vsldb_v8hi (vss, vss, const int<3>);
3478 VSLDB_V8HI vsldb_v8hi {}
3480 const vsq __builtin_altivec_vslq (vsq, vuq);
3483 const vsq __builtin_altivec_vsraq (vsq, vuq);
3486 const vsc __builtin_altivec_vsrdb_v16qi (vsc, vsc, const int<3>);
3487 VSRDB_V16QI vsrdb_v16qi {}
3489 const vsll __builtin_altivec_vsrdb_v2di (vsll, vsll, const int<3>);
3490 VSRDB_V2DI vsrdb_v2di {}
3492 const vsi __builtin_altivec_vsrdb_v4si (vsi, vsi, const int<3>);
3493 VSRDB_V4SI vsrdb_v4si {}
3495 const vss __builtin_altivec_vsrdb_v8hi (vss, vss, const int<3>);
3496 VSRDB_V8HI vsrdb_v8hi {}
3498 const vsq __builtin_altivec_vsrq (vsq, vuq);
3501 const vsc __builtin_altivec_vstribl (vsc);
3502 VSTRIBL vstril_v16qi {}
3504 const signed int __builtin_altivec_vstribl_p (vsc);
3505 VSTRIBL_P vstril_p_v16qi {}
3507 const vsc __builtin_altivec_vstribr (vsc);
3508 VSTRIBR vstrir_v16qi {}
3510 const signed int __builtin_altivec_vstribr_p (vsc);
3511 VSTRIBR_P vstrir_p_v16qi {}
3513 const vss __builtin_altivec_vstrihl (vss);
3514 VSTRIHL vstril_v8hi {}
3516 const signed int __builtin_altivec_vstrihl_p (vss);
3517 VSTRIHL_P vstril_p_v8hi {}
3519 const vss __builtin_altivec_vstrihr (vss);
3520 VSTRIHR vstrir_v8hi {}
3522 const signed int __builtin_altivec_vstrihr_p (vss);
3523 VSTRIHR_P vstrir_p_v8hi {}
3525 const vuq __builtin_vsx_vmsumcud (vull, vull, vuq);
3526 VMSUMCUD vmsumcud {}
3528 const signed int __builtin_vsx_xvtlsbb_all_ones (vsc);
3529 XVTLSBB_ONES xvtlsbbo {}
3531 const signed int __builtin_vsx_xvtlsbb_all_zeros (vsc);
3532 XVTLSBB_ZEROS xvtlsbbz {}
3534 const vf __builtin_vsx_vxxsplti32dx_v4sf (vf, const int<1>, float);
3535 VXXSPLTI32DX_V4SF xxsplti32dx_v4sf {}
3537 const vsi __builtin_vsx_vxxsplti32dx_v4si (vsi, const int<1>, signed int);
3538 VXXSPLTI32DX_V4SI xxsplti32dx_v4si {}
3540 const vd __builtin_vsx_vxxspltidp (float);
3541 VXXSPLTIDP xxspltidp_v2df {}
3543 const vf __builtin_vsx_vxxspltiw_v4sf (float);
3544 VXXSPLTIW_V4SF xxspltiw_v4sf {}
3546 const vsi __builtin_vsx_vxxspltiw_v4si (signed int);
3547 VXXSPLTIW_V4SI xxspltiw_v4si {}
3549 const vuc __builtin_vsx_xvcvbf16spn (vuc);
3550 XVCVBF16SPN vsx_xvcvbf16spn {}
3552 const vuc __builtin_vsx_xvcvspbf16 (vuc);
3553 XVCVSPBF16 vsx_xvcvspbf16 {}
3555 const vuc __builtin_vsx_xxblend_v16qi (vuc, vuc, vuc);
3556 VXXBLEND_V16QI xxblend_v16qi {}
3558 const vd __builtin_vsx_xxblend_v2df (vd, vd, vd);
3559 VXXBLEND_V2DF xxblend_v2df {}
3561 const vull __builtin_vsx_xxblend_v2di (vull, vull, vull);
3562 VXXBLEND_V2DI xxblend_v2di {}
3564 const vf __builtin_vsx_xxblend_v4sf (vf, vf, vf);
3565 VXXBLEND_V4SF xxblend_v4sf {}
3567 const vui __builtin_vsx_xxblend_v4si (vui, vui, vui);
3568 VXXBLEND_V4SI xxblend_v4si {}
3570 const vus __builtin_vsx_xxblend_v8hi (vus, vus, vus);
3571 VXXBLEND_V8HI xxblend_v8hi {}
3573 const vull __builtin_vsx_xxeval (vull, vull, vull, const int <8>);
3576 const vuc __builtin_vsx_xxgenpcvm_v16qi (vuc, const int <2>);
3577 XXGENPCVM_V16QI xxgenpcvm_v16qi {}
3579 const vull __builtin_vsx_xxgenpcvm_v2di (vull, const int <2>);
3580 XXGENPCVM_V2DI xxgenpcvm_v2di {}
3582 const vui __builtin_vsx_xxgenpcvm_v4si (vui, const int <2>);
3583 XXGENPCVM_V4SI xxgenpcvm_v4si {}
3585 const vus __builtin_vsx_xxgenpcvm_v8hi (vus, const int <2>);
3586 XXGENPCVM_V8HI xxgenpcvm_v8hi {}
3588 const vuc __builtin_vsx_xxpermx_uv16qi (vuc, vuc, vuc, const int<3>);
3589 XXPERMX_UV16QI xxpermx {}
3591 const vull __builtin_vsx_xxpermx_uv2di (vull, vull, vuc, const int<3>);
3592 XXPERMX_UV2DI xxpermx {}
3594 const vui __builtin_vsx_xxpermx_uv4si (vui, vui, vuc, const int<3>);
3595 XXPERMX_UV4SI xxpermx {}
3597 const vus __builtin_vsx_xxpermx_uv8hi (vus, vus, vuc, const int<3>);
3598 XXPERMX_UV8HI xxpermx {}
3600 const vsc __builtin_vsx_xxpermx_v16qi (vsc, vsc, vuc, const int<3>);
3601 XXPERMX_V16QI xxpermx {}
3603 const vd __builtin_vsx_xxpermx_v2df (vd, vd, vuc, const int<3>);
3604 XXPERMX_V2DF xxpermx {}
3606 const vsll __builtin_vsx_xxpermx_v2di (vsll, vsll, vuc, const int<3>);
3607 XXPERMX_V2DI xxpermx {}
3609 const vf __builtin_vsx_xxpermx_v4sf (vf, vf, vuc, const int<3>);
3610 XXPERMX_V4SF xxpermx {}
3612 const vsi __builtin_vsx_xxpermx_v4si (vsi, vsi, vuc, const int<3>);
3613 XXPERMX_V4SI xxpermx {}
3615 const vss __builtin_vsx_xxpermx_v8hi (vss, vss, vuc, const int<3>);
3616 XXPERMX_V8HI xxpermx {}
3618 pure unsigned __int128 __builtin_altivec_ze_lxvrbx (signed long, \
3619 const unsigned char *);
3620 ZE_LXVRBX vsx_lxvrbx {lxvrze}
3622 pure unsigned __int128 __builtin_altivec_ze_lxvrhx (signed long, \
3623 const unsigned short *);
3624 ZE_LXVRHX vsx_lxvrhx {lxvrze}
3626 pure unsigned __int128 __builtin_altivec_ze_lxvrwx (signed long, \
3627 const unsigned int *);
3628 ZE_LXVRWX vsx_lxvrwx {lxvrze}
3630 pure unsigned __int128 \
3631 __builtin_altivec_ze_lxvrdx (signed long, const unsigned long long *);
3632 ZE_LXVRDX vsx_lxvrdx {lxvrze}
3636 const unsigned long long __builtin_cfuged (unsigned long long, \
3637 unsigned long long);
3640 const unsigned long long __builtin_cntlzdm (unsigned long long, \
3641 unsigned long long);
3644 const unsigned long long __builtin_cnttzdm (unsigned long long, \
3645 unsigned long long);
3648 const unsigned long long __builtin_pdepd (unsigned long long, \
3649 unsigned long long);
3652 const unsigned long long __builtin_pextd (unsigned long long, \
3653 unsigned long long);
3658 void __builtin_mma_assemble_acc (v512 *, vuc, vuc, vuc, vuc);
3659 ASSEMBLE_ACC nothing {mma,mmaint}
3661 v512 __builtin_mma_assemble_acc_internal (vuc, vuc, vuc, vuc);
3662 ASSEMBLE_ACC_INTERNAL mma_assemble_acc {mma}
3664 void __builtin_mma_assemble_pair (v256 *, vuc, vuc);
3665 ASSEMBLE_PAIR nothing {mma,mmaint}
3667 v256 __builtin_mma_assemble_pair_internal (vuc, vuc);
3668 ASSEMBLE_PAIR_INTERNAL vsx_assemble_pair {mma}
3670 void __builtin_mma_build_acc (v512 *, vuc, vuc, vuc, vuc);
3671 BUILD_ACC nothing {mma,mmaint}
3673 v512 __builtin_mma_build_acc_internal (vuc, vuc, vuc, vuc);
3674 BUILD_ACC_INTERNAL mma_assemble_acc {mma}
3676 void __builtin_mma_disassemble_acc (void *, v512 *);
3677 DISASSEMBLE_ACC nothing {mma,quad,mmaint}
3679 vuc __builtin_mma_disassemble_acc_internal (v512, const int<2>);
3680 DISASSEMBLE_ACC_INTERNAL mma_disassemble_acc {mma}
3682 void __builtin_mma_disassemble_pair (void *, v256 *);
3683 DISASSEMBLE_PAIR nothing {mma,pair,mmaint}
3685 vuc __builtin_mma_disassemble_pair_internal (v256, const int<2>);
3686 DISASSEMBLE_PAIR_INTERNAL vsx_disassemble_pair {mma}
3688 void __builtin_mma_pmxvbf16ger2 (v512 *, vuc, vuc, const int<4>, \
3689 const int<4>, const int<2>);
3690 PMXVBF16GER2 nothing {mma,mmaint}
3692 v512 __builtin_mma_pmxvbf16ger2_internal (vuc, vuc, const int<4>, \
3693 const int<4>, const int<2>);
3694 PMXVBF16GER2_INTERNAL mma_pmxvbf16ger2 {mma}
3696 void __builtin_mma_pmxvbf16ger2nn (v512 *, vuc, vuc, const int<4>, \
3697 const int<4>, const int<2>);
3698 PMXVBF16GER2NN nothing {mma,quad,mmaint}
3700 v512 __builtin_mma_pmxvbf16ger2nn_internal (v512, vuc, vuc, const int<4>, \
3701 const int<4>, const int<2>);
3702 PMXVBF16GER2NN_INTERNAL mma_pmxvbf16ger2nn {mma,quad}
3704 void __builtin_mma_pmxvbf16ger2np (v512 *, vuc, vuc, const int<4>, \
3705 const int<4>, const int<2>);
3706 PMXVBF16GER2NP nothing {mma,quad,mmaint}
3708 v512 __builtin_mma_pmxvbf16ger2np_internal (v512, vuc, vuc, const int<4>, \
3709 const int<4>, const int<2>);
3710 PMXVBF16GER2NP_INTERNAL mma_pmxvbf16ger2np {mma,quad}
3712 void __builtin_mma_pmxvbf16ger2pn (v512 *, vuc, vuc, const int<4>, \
3713 const int<4>, const int<2>);
3714 PMXVBF16GER2PN nothing {mma,quad,mmaint}
3716 v512 __builtin_mma_pmxvbf16ger2pn_internal (v512, vuc, vuc, const int<4>, \
3717 const int<4>, const int<2>);
3718 PMXVBF16GER2PN_INTERNAL mma_pmxvbf16ger2pn {mma,quad}
3720 void __builtin_mma_pmxvbf16ger2pp (v512 *, vuc, vuc, const int<4>, \
3721 const int<4>, const int<2>);
3722 PMXVBF16GER2PP nothing {mma,quad,mmaint}
3724 v512 __builtin_mma_pmxvbf16ger2pp_internal (v512, vuc, vuc, const int<4>, \
3725 const int<4>, const int<2>);
3726 PMXVBF16GER2PP_INTERNAL mma_pmxvbf16ger2pp {mma,quad}
3728 void __builtin_mma_pmxvf16ger2 (v512 *, vuc, vuc, const int<4>, \
3729 const int<4>, const int<2>);
3730 PMXVF16GER2 nothing {mma,mmaint}
3732 v512 __builtin_mma_pmxvf16ger2_internal (vuc, vuc, const int<4>, \
3733 const int<4>, const int<2>);
3734 PMXVF16GER2_INTERNAL mma_pmxvf16ger2 {mma}
3736 void __builtin_mma_pmxvf16ger2nn (v512 *, vuc, vuc, const int<4>, \
3737 const int<4>, const int<2>);
3738 PMXVF16GER2NN nothing {mma,quad,mmaint}
3740 v512 __builtin_mma_pmxvf16ger2nn_internal (v512, vuc, vuc, const int<4>, \
3741 const int<4>, const int<2>);
3742 PMXVF16GER2NN_INTERNAL mma_pmxvf16ger2nn {mma,quad}
3744 void __builtin_mma_pmxvf16ger2np (v512 *, vuc, vuc, const int<4>, \
3745 const int<4>, const int<2>);
3746 PMXVF16GER2NP nothing {mma,quad,mmaint}
3748 v512 __builtin_mma_pmxvf16ger2np_internal (v512, vuc, vuc, const int<4>, \
3749 const int<4>, const int<2>);
3750 PMXVF16GER2NP_INTERNAL mma_pmxvf16ger2np {mma,quad}
3752 void __builtin_mma_pmxvf16ger2pn (v512 *, vuc, vuc, const int<4>, \
3753 const int<4>, const int<2>);
3754 PMXVF16GER2PN nothing {mma,quad,mmaint}
3756 v512 __builtin_mma_pmxvf16ger2pn_internal (v512, vuc, vuc, const int<4>, \
3757 const int<4>, const int<2>);
3758 PMXVF16GER2PN_INTERNAL mma_pmxvf16ger2pn {mma,quad}
3760 void __builtin_mma_pmxvf16ger2pp (v512 *, vuc, vuc, const int<4>, \
3761 const int<4>, const int<2>);
3762 PMXVF16GER2PP nothing {mma,quad,mmaint}
3764 v512 __builtin_mma_pmxvf16ger2pp_internal (v512, vuc, vuc, const int<4>, \
3765 const int<4>, const int<2>);
3766 PMXVF16GER2PP_INTERNAL mma_pmxvf16ger2pp {mma,quad}
3768 void __builtin_mma_pmxvf32ger (v512 *, vuc, vuc, const int<4>, const int<4>);
3769 PMXVF32GER nothing {mma,mmaint}
3771 v512 __builtin_mma_pmxvf32ger_internal (vuc, vuc, const int<4>, \
3773 PMXVF32GER_INTERNAL mma_pmxvf32ger {mma}
3775 void __builtin_mma_pmxvf32gernn (v512 *, vuc, vuc, const int<4>, \
3777 PMXVF32GERNN nothing {mma,quad,mmaint}
3779 v512 __builtin_mma_pmxvf32gernn_internal (v512, vuc, vuc, const int<4>, \
3781 PMXVF32GERNN_INTERNAL mma_pmxvf32gernn {mma,quad}
3783 void __builtin_mma_pmxvf32gernp (v512 *, vuc, vuc, const int<4>, \
3785 PMXVF32GERNP nothing {mma,quad,mmaint}
3787 v512 __builtin_mma_pmxvf32gernp_internal (v512, vuc, vuc, const int<4>, \
3789 PMXVF32GERNP_INTERNAL mma_pmxvf32gernp {mma,quad}
3791 void __builtin_mma_pmxvf32gerpn (v512 *, vuc, vuc, const int<4>, \
3793 PMXVF32GERPN nothing {mma,quad,mmaint}
3795 v512 __builtin_mma_pmxvf32gerpn_internal (v512, vuc, vuc, const int<4>, \
3797 PMXVF32GERPN_INTERNAL mma_pmxvf32gerpn {mma,quad}
3799 void __builtin_mma_pmxvf32gerpp (v512 *, vuc, vuc, const int<4>, \
3801 PMXVF32GERPP nothing {mma,quad,mmaint}
3803 v512 __builtin_mma_pmxvf32gerpp_internal (v512, vuc, vuc, const int<4>, \
3805 PMXVF32GERPP_INTERNAL mma_pmxvf32gerpp {mma,quad}
3807 void __builtin_mma_pmxvf64ger (v512 *, v256, vuc, const int<4>, \
3809 PMXVF64GER nothing {mma,pair,mmaint}
3811 v512 __builtin_mma_pmxvf64ger_internal (v256, vuc, const int<4>, \
3813 PMXVF64GER_INTERNAL mma_pmxvf64ger {mma,pair}
3815 void __builtin_mma_pmxvf64gernn (v512 *, v256, vuc, const int<4>, \
3817 PMXVF64GERNN nothing {mma,pair,quad,mmaint}
3819 v512 __builtin_mma_pmxvf64gernn_internal (v512, v256, vuc, const int<4>, \
3821 PMXVF64GERNN_INTERNAL mma_pmxvf64gernn {mma,pair,quad}
3823 void __builtin_mma_pmxvf64gernp (v512 *, v256, vuc, const int<4>, \
3825 PMXVF64GERNP nothing {mma,pair,quad,mmaint}
3827 v512 __builtin_mma_pmxvf64gernp_internal (v512, v256, vuc, const int<4>, \
3829 PMXVF64GERNP_INTERNAL mma_pmxvf64gernp {mma,pair,quad}
3831 void __builtin_mma_pmxvf64gerpn (v512 *, v256, vuc, const int<4>, \
3833 PMXVF64GERPN nothing {mma,pair,quad,mmaint}
3835 v512 __builtin_mma_pmxvf64gerpn_internal (v512, v256, vuc, const int<4>, \
3837 PMXVF64GERPN_INTERNAL mma_pmxvf64gerpn {mma,pair,quad}
3839 void __builtin_mma_pmxvf64gerpp (v512 *, v256, vuc, const int<4>, \
3841 PMXVF64GERPP nothing {mma,pair,quad,mmaint}
3843 v512 __builtin_mma_pmxvf64gerpp_internal (v512, v256, vuc, const int<4>, \
3845 PMXVF64GERPP_INTERNAL mma_pmxvf64gerpp {mma,pair,quad}
3847 void __builtin_mma_pmxvi16ger2 (v512 *, vuc, vuc, const int<4>, \
3848 const int<4>, const int<2>);
3849 PMXVI16GER2 nothing {mma,mmaint}
3851 v512 __builtin_mma_pmxvi16ger2_internal (vuc, vuc, const int<4>, \
3852 const int<4>, const int<2>);
3853 PMXVI16GER2_INTERNAL mma_pmxvi16ger2 {mma}
3855 void __builtin_mma_pmxvi16ger2pp (v512 *, vuc, vuc, const int<4>, \
3856 const int<4>, const int<2>);
3857 PMXVI16GER2PP nothing {mma,quad,mmaint}
3859 v512 __builtin_mma_pmxvi16ger2pp_internal (v512, vuc, vuc, const int<4>, \
3860 const int<4>, const int<2>);
3861 PMXVI16GER2PP_INTERNAL mma_pmxvi16ger2pp {mma,quad}
3863 void __builtin_mma_pmxvi16ger2s (v512 *, vuc, vuc, const int<4>, \
3864 const int<4>, const int<2>);
3865 PMXVI16GER2S nothing {mma,mmaint}
3867 v512 __builtin_mma_pmxvi16ger2s_internal (vuc, vuc, const int<4>, \
3868 const int<4>, const int<2>);
3869 PMXVI16GER2S_INTERNAL mma_pmxvi16ger2s {mma}
3871 void __builtin_mma_pmxvi16ger2spp (v512 *, vuc, vuc, const int<4>, \
3872 const int<4>, const int<2>);
3873 PMXVI16GER2SPP nothing {mma,quad,mmaint}
3875 v512 __builtin_mma_pmxvi16ger2spp_internal (v512, vuc, vuc, const int<4>, \
3876 const int<4>, const int<2>);
3877 PMXVI16GER2SPP_INTERNAL mma_pmxvi16ger2spp {mma,quad}
3879 void __builtin_mma_pmxvi4ger8 (v512 *, vuc, vuc, const int<4>, \
3880 const int<4>, const int<8>);
3881 PMXVI4GER8 nothing {mma,mmaint}
3883 v512 __builtin_mma_pmxvi4ger8_internal (vuc, vuc, const int<4>, \
3884 const int<4>, const int<8>);
3885 PMXVI4GER8_INTERNAL mma_pmxvi4ger8 {mma}
3887 void __builtin_mma_pmxvi4ger8pp (v512 *, vuc, vuc, const int<4>, \
3888 const int<4>, const int<4>);
3889 PMXVI4GER8PP nothing {mma,quad,mmaint}
3891 v512 __builtin_mma_pmxvi4ger8pp_internal (v512, vuc, vuc, const int<4>, \
3892 const int<4>, const int<4>);
3893 PMXVI4GER8PP_INTERNAL mma_pmxvi4ger8pp {mma,quad}
3895 void __builtin_mma_pmxvi8ger4 (v512 *, vuc, vuc, const int<4>, \
3896 const int<4>, const int<4>);
3897 PMXVI8GER4 nothing {mma,mmaint}
3899 v512 __builtin_mma_pmxvi8ger4_internal (vuc, vuc, const int<4>, \
3900 const int<4>, const int<4>);
3901 PMXVI8GER4_INTERNAL mma_pmxvi8ger4 {mma}
3903 void __builtin_mma_pmxvi8ger4pp (v512 *, vuc, vuc, const int<4>, \
3904 const int<4>, const int<4>);
3905 PMXVI8GER4PP nothing {mma,quad,mmaint}
3907 v512 __builtin_mma_pmxvi8ger4pp_internal (v512, vuc, vuc, const int<4>, \
3908 const int<4>, const int<4>);
3909 PMXVI8GER4PP_INTERNAL mma_pmxvi8ger4pp {mma,quad}
3911 void __builtin_mma_pmxvi8ger4spp (v512 *, vuc, vuc, const int<4>, \
3912 const int<4>, const int<4>);
3913 PMXVI8GER4SPP nothing {mma,quad,mmaint}
3915 v512 __builtin_mma_pmxvi8ger4spp_internal (v512, vuc, vuc, const int<4>, \
3916 const int<4>, const int<4>);
3917 PMXVI8GER4SPP_INTERNAL mma_pmxvi8ger4spp {mma,quad}
3919 void __builtin_mma_xvbf16ger2 (v512 *, vuc, vuc);
3920 XVBF16GER2 nothing {mma,mmaint}
3922 v512 __builtin_mma_xvbf16ger2_internal (vuc, vuc);
3923 XVBF16GER2_INTERNAL mma_xvbf16ger2 {mma}
3925 void __builtin_mma_xvbf16ger2nn (v512 *, vuc, vuc);
3926 XVBF16GER2NN nothing {mma,quad,mmaint}
3928 v512 __builtin_mma_xvbf16ger2nn_internal (v512, vuc, vuc);
3929 XVBF16GER2NN_INTERNAL mma_xvbf16ger2nn {mma,quad}
3931 void __builtin_mma_xvbf16ger2np (v512 *, vuc, vuc);
3932 XVBF16GER2NP nothing {mma,quad,mmaint}
3934 v512 __builtin_mma_xvbf16ger2np_internal (v512, vuc, vuc);
3935 XVBF16GER2NP_INTERNAL mma_xvbf16ger2np {mma,quad}
3937 void __builtin_mma_xvbf16ger2pn (v512 *, vuc, vuc);
3938 XVBF16GER2PN nothing {mma,quad,mmaint}
3940 v512 __builtin_mma_xvbf16ger2pn_internal (v512, vuc, vuc);
3941 XVBF16GER2PN_INTERNAL mma_xvbf16ger2pn {mma,quad}
3943 void __builtin_mma_xvbf16ger2pp (v512 *, vuc, vuc);
3944 XVBF16GER2PP nothing {mma,quad,mmaint}
3946 v512 __builtin_mma_xvbf16ger2pp_internal (v512, vuc, vuc);
3947 XVBF16GER2PP_INTERNAL mma_xvbf16ger2pp {mma,quad}
3949 void __builtin_mma_xvf16ger2 (v512 *, vuc, vuc);
3950 XVF16GER2 nothing {mma,mmaint}
3952 v512 __builtin_mma_xvf16ger2_internal (vuc, vuc);
3953 XVF16GER2_INTERNAL mma_xvf16ger2 {mma}
3955 void __builtin_mma_xvf16ger2nn (v512 *, vuc, vuc);
3956 XVF16GER2NN nothing {mma,quad,mmaint}
3958 v512 __builtin_mma_xvf16ger2nn_internal (v512, vuc, vuc);
3959 XVF16GER2NN_INTERNAL mma_xvf16ger2nn {mma,quad}
3961 void __builtin_mma_xvf16ger2np (v512 *, vuc, vuc);
3962 XVF16GER2NP nothing {mma,quad,mmaint}
3964 v512 __builtin_mma_xvf16ger2np_internal (v512, vuc, vuc);
3965 XVF16GER2NP_INTERNAL mma_xvf16ger2np {mma,quad}
3967 void __builtin_mma_xvf16ger2pn (v512 *, vuc, vuc);
3968 XVF16GER2PN nothing {mma,quad,mmaint}
3970 v512 __builtin_mma_xvf16ger2pn_internal (v512, vuc, vuc);
3971 XVF16GER2PN_INTERNAL mma_xvf16ger2pn {mma,quad}
3973 void __builtin_mma_xvf16ger2pp (v512 *, vuc, vuc);
3974 XVF16GER2PP nothing {mma,quad,mmaint}
3976 v512 __builtin_mma_xvf16ger2pp_internal (v512, vuc, vuc);
3977 XVF16GER2PP_INTERNAL mma_xvf16ger2pp {mma,quad}
3979 void __builtin_mma_xvf32ger (v512 *, vuc, vuc);
3980 XVF32GER nothing {mma,mmaint}
3982 v512 __builtin_mma_xvf32ger_internal (vuc, vuc);
3983 XVF32GER_INTERNAL mma_xvf32ger {mma}
3985 void __builtin_mma_xvf32gernn (v512 *, vuc, vuc);
3986 XVF32GERNN nothing {mma,quad,mmaint}
3988 v512 __builtin_mma_xvf32gernn_internal (v512, vuc, vuc);
3989 XVF32GERNN_INTERNAL mma_xvf32gernn {mma,quad}
3991 void __builtin_mma_xvf32gernp (v512 *, vuc, vuc);
3992 XVF32GERNP nothing {mma,quad,mmaint}
3994 v512 __builtin_mma_xvf32gernp_internal (v512, vuc, vuc);
3995 XVF32GERNP_INTERNAL mma_xvf32gernp {mma,quad}
3997 void __builtin_mma_xvf32gerpn (v512 *, vuc, vuc);
3998 XVF32GERPN nothing {mma,quad,mmaint}
4000 v512 __builtin_mma_xvf32gerpn_internal (v512, vuc, vuc);
4001 XVF32GERPN_INTERNAL mma_xvf32gerpn {mma,quad}
4003 void __builtin_mma_xvf32gerpp (v512 *, vuc, vuc);
4004 XVF32GERPP nothing {mma,quad,mmaint}
4006 v512 __builtin_mma_xvf32gerpp_internal (v512, vuc, vuc);
4007 XVF32GERPP_INTERNAL mma_xvf32gerpp {mma,quad}
4009 void __builtin_mma_xvf64ger (v512 *, v256, vuc);
4010 XVF64GER nothing {mma,pair,mmaint}
4012 v512 __builtin_mma_xvf64ger_internal (v256, vuc);
4013 XVF64GER_INTERNAL mma_xvf64ger {mma,pair}
4015 void __builtin_mma_xvf64gernn (v512 *, v256, vuc);
4016 XVF64GERNN nothing {mma,pair,quad,mmaint}
4018 v512 __builtin_mma_xvf64gernn_internal (v512, v256, vuc);
4019 XVF64GERNN_INTERNAL mma_xvf64gernn {mma,pair,quad}
4021 void __builtin_mma_xvf64gernp (v512 *, v256, vuc);
4022 XVF64GERNP nothing {mma,pair,quad,mmaint}
4024 v512 __builtin_mma_xvf64gernp_internal (v512, v256, vuc);
4025 XVF64GERNP_INTERNAL mma_xvf64gernp {mma,pair,quad}
4027 void __builtin_mma_xvf64gerpn (v512 *, v256, vuc);
4028 XVF64GERPN nothing {mma,pair,quad,mmaint}
4030 v512 __builtin_mma_xvf64gerpn_internal (v512, v256, vuc);
4031 XVF64GERPN_INTERNAL mma_xvf64gerpn {mma,pair,quad}
4033 void __builtin_mma_xvf64gerpp (v512 *, v256, vuc);
4034 XVF64GERPP nothing {mma,pair,quad,mmaint}
4036 v512 __builtin_mma_xvf64gerpp_internal (v512, v256, vuc);
4037 XVF64GERPP_INTERNAL mma_xvf64gerpp {mma,pair,quad}
4039 void __builtin_mma_xvi16ger2 (v512 *, vuc, vuc);
4040 XVI16GER2 nothing {mma,mmaint}
4042 v512 __builtin_mma_xvi16ger2_internal (vuc, vuc);
4043 XVI16GER2_INTERNAL mma_xvi16ger2 {mma}
4045 void __builtin_mma_xvi16ger2pp (v512 *, vuc, vuc);
4046 XVI16GER2PP nothing {mma,quad,mmaint}
4048 v512 __builtin_mma_xvi16ger2pp_internal (v512, vuc, vuc);
4049 XVI16GER2PP_INTERNAL mma_xvi16ger2pp {mma,quad}
4051 void __builtin_mma_xvi16ger2s (v512 *, vuc, vuc);
4052 XVI16GER2S nothing {mma,mmaint}
4054 v512 __builtin_mma_xvi16ger2s_internal (vuc, vuc);
4055 XVI16GER2S_INTERNAL mma_xvi16ger2s {mma}
4057 void __builtin_mma_xvi16ger2spp (v512 *, vuc, vuc);
4058 XVI16GER2SPP nothing {mma,quad,mmaint}
4060 v512 __builtin_mma_xvi16ger2spp_internal (v512, vuc, vuc);
4061 XVI16GER2SPP_INTERNAL mma_xvi16ger2spp {mma,quad}
4063 void __builtin_mma_xvi4ger8 (v512 *, vuc, vuc);
4064 XVI4GER8 nothing {mma,mmaint}
4066 v512 __builtin_mma_xvi4ger8_internal (vuc, vuc);
4067 XVI4GER8_INTERNAL mma_xvi4ger8 {mma}
4069 void __builtin_mma_xvi4ger8pp (v512 *, vuc, vuc);
4070 XVI4GER8PP nothing {mma,quad,mmaint}
4072 v512 __builtin_mma_xvi4ger8pp_internal (v512, vuc, vuc);
4073 XVI4GER8PP_INTERNAL mma_xvi4ger8pp {mma,quad}
4075 void __builtin_mma_xvi8ger4 (v512 *, vuc, vuc);
4076 XVI8GER4 nothing {mma,mmaint}
4078 v512 __builtin_mma_xvi8ger4_internal (vuc, vuc);
4079 XVI8GER4_INTERNAL mma_xvi8ger4 {mma}
4081 void __builtin_mma_xvi8ger4pp (v512 *, vuc, vuc);
4082 XVI8GER4PP nothing {mma,quad,mmaint}
4084 v512 __builtin_mma_xvi8ger4pp_internal (v512, vuc, vuc);
4085 XVI8GER4PP_INTERNAL mma_xvi8ger4pp {mma,quad}
4087 void __builtin_mma_xvi8ger4spp (v512 *, vuc, vuc);
4088 XVI8GER4SPP nothing {mma,quad,mmaint}
4090 v512 __builtin_mma_xvi8ger4spp_internal (v512, vuc, vuc);
4091 XVI8GER4SPP_INTERNAL mma_xvi8ger4spp {mma,quad}
4093 void __builtin_mma_xxmfacc (v512 *);
4094 XXMFACC nothing {mma,quad,mmaint}
4096 v512 __builtin_mma_xxmfacc_internal (v512);
4097 XXMFACC_INTERNAL mma_xxmfacc {mma,quad}
4099 void __builtin_mma_xxmtacc (v512 *);
4100 XXMTACC nothing {mma,quad,mmaint}
4102 v512 __builtin_mma_xxmtacc_internal (v512);
4103 XXMTACC_INTERNAL mma_xxmtacc {mma,quad}
4105 void __builtin_mma_xxsetaccz (v512 *);
4106 XXSETACCZ nothing {mma,mmaint}
4108 v512 __builtin_mma_xxsetaccz_internal ();
4109 XXSETACCZ_INTERNAL mma_xxsetaccz {mma}
4111 void __builtin_vsx_assemble_pair (v256 *, vuc, vuc);
4112 ASSEMBLE_PAIR_V nothing {mma,mmaint}
4114 v256 __builtin_vsx_assemble_pair_internal (vuc, vuc);
4115 ASSEMBLE_PAIR_V_INTERNAL vsx_assemble_pair {mma}
4117 void __builtin_vsx_build_pair (v256 *, vuc, vuc);
4118 BUILD_PAIR nothing {mma,mmaint}
4120 v256 __builtin_vsx_build_pair_internal (vuc, vuc);
4121 BUILD_PAIR_INTERNAL vsx_assemble_pair {mma}
4123 void __builtin_vsx_disassemble_pair (void *, v256 *);
4124 DISASSEMBLE_PAIR_V nothing {mma,pair,mmaint}
4126 vuc __builtin_vsx_disassemble_pair_internal (v256, const int<2>);
4127 DISASSEMBLE_PAIR_V_INTERNAL vsx_disassemble_pair {mma}
4129 v256 __builtin_vsx_lxvp (unsigned long, const v256 *);
4132 void __builtin_vsx_stxvp (v256, unsigned long, const v256 *);
4133 STXVP nothing {mma,pair}