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