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