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