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