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