comparison gcc/config/rs6000/altivec.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* PowerPC AltiVec include file. 1 /* PowerPC AltiVec include file.
2 Copyright (C) 2002-2017 Free Software Foundation, Inc. 2 Copyright (C) 2002-2018 Free Software Foundation, Inc.
3 Contributed by Aldy Hernandez (aldyh@redhat.com). 3 Contributed by Aldy Hernandez (aldyh@redhat.com).
4 Rewritten by Paolo Bonzini (bonzini@gnu.org). 4 Rewritten by Paolo Bonzini (bonzini@gnu.org).
5 5
6 This file is part of GCC. 6 This file is part of GCC.
7 7
74 #define vec_vnmsubfp vec_nmsub 74 #define vec_vnmsubfp vec_nmsub
75 #define vec_vnor vec_nor 75 #define vec_vnor vec_nor
76 #define vec_vor vec_or 76 #define vec_vor vec_or
77 #define vec_vpkpx vec_packpx 77 #define vec_vpkpx vec_packpx
78 #define vec_vperm vec_perm 78 #define vec_vperm vec_perm
79 #define vec_permxor __builtin_vec_vpermxor
79 #define vec_vrefp vec_re 80 #define vec_vrefp vec_re
80 #define vec_vrfin vec_round 81 #define vec_vrfin vec_round
81 #define vec_vrsqrtefp vec_rsqrte 82 #define vec_vrsqrtefp vec_rsqrte
82 #define vec_vsel vec_sel 83 #define vec_vsel vec_sel
83 #define vec_vsldoi vec_sld 84 #define vec_vsldoi vec_sld
355 #define vec_vsx_ld __builtin_vec_vsx_ld 356 #define vec_vsx_ld __builtin_vec_vsx_ld
356 #define vec_vsx_st __builtin_vec_vsx_st 357 #define vec_vsx_st __builtin_vec_vsx_st
357 #define vec_xl __builtin_vec_vsx_ld 358 #define vec_xl __builtin_vec_vsx_ld
358 #define vec_xl_be __builtin_vec_xl_be 359 #define vec_xl_be __builtin_vec_xl_be
359 #define vec_xst __builtin_vec_vsx_st 360 #define vec_xst __builtin_vec_vsx_st
361 #define vec_xst_be __builtin_vec_xst_be
360 362
361 /* Note, xxsldi and xxpermdi were added as __builtin_vsx_<xxx> functions 363 /* Note, xxsldi and xxpermdi were added as __builtin_vsx_<xxx> functions
362 instead of __builtin_vec_<xxx> */ 364 instead of __builtin_vec_<xxx> */
363 #define vec_xxsldwi __builtin_vsx_xxsldwi 365 #define vec_xxsldwi __builtin_vsx_xxsldwi
364 #define vec_xxpermdi __builtin_vsx_xxpermdi 366 #define vec_xxpermdi __builtin_vsx_xxpermdi
413 #define vec_vsubcuq __builtin_vec_vsubcuq 415 #define vec_vsubcuq __builtin_vec_vsubcuq
414 #define vec_vsubudm __builtin_vec_vsubudm 416 #define vec_vsubudm __builtin_vec_vsubudm
415 #define vec_vsubuqm __builtin_vec_vsubuqm 417 #define vec_vsubuqm __builtin_vec_vsubuqm
416 #define vec_vupkhsw __builtin_vec_vupkhsw 418 #define vec_vupkhsw __builtin_vec_vupkhsw
417 #define vec_vupklsw __builtin_vec_vupklsw 419 #define vec_vupklsw __builtin_vec_vupklsw
420 #define vec_revb __builtin_vec_revb
418 #endif 421 #endif
419 422
420 #ifdef __POWER9_VECTOR__ 423 #ifdef __POWER9_VECTOR__
421 /* Vector additions added in ISA 3.0. */ 424 /* Vector additions added in ISA 3.0. */
425 #define vec_first_match_index __builtin_vec_first_match_index
426 #define vec_first_match_or_eos_index __builtin_vec_first_match_or_eos_index
427 #define vec_first_mismatch_index __builtin_vec_first_mismatch_index
428 #define vec_first_mismatch_or_eos_index __builtin_vec_first_mismatch_or_eos_index
422 #define vec_pack_to_short_fp32 __builtin_vec_convert_4f32_8i16 429 #define vec_pack_to_short_fp32 __builtin_vec_convert_4f32_8i16
423 #define vec_parity_lsbb __builtin_vec_vparity_lsbb 430 #define vec_parity_lsbb __builtin_vec_vparity_lsbb
424 #define vec_vctz __builtin_vec_vctz 431 #define vec_vctz __builtin_vec_vctz
425 #define vec_cnttz __builtin_vec_vctz 432 #define vec_cnttz __builtin_vec_vctz
426 #define vec_vctzb __builtin_vec_vctzb 433 #define vec_vctzb __builtin_vec_vctzb
427 #define vec_vctzd __builtin_vec_vctzd 434 #define vec_vctzd __builtin_vec_vctzd
428 #define vec_vctzh __builtin_vec_vctzh 435 #define vec_vctzh __builtin_vec_vctzh
429 #define vec_vctzw __builtin_vec_vctzw 436 #define vec_vctzw __builtin_vec_vctzw
430 #define vec_vextract4b __builtin_vec_vextract4b 437 #define vec_extract4b __builtin_vec_extract4b
431 #define vec_vinsert4b __builtin_vec_vinsert4b 438 #define vec_insert4b __builtin_vec_insert4b
432 #define vec_vprtyb __builtin_vec_vprtyb 439 #define vec_vprtyb __builtin_vec_vprtyb
433 #define vec_vprtybd __builtin_vec_vprtybd 440 #define vec_vprtybd __builtin_vec_vprtybd
434 #define vec_vprtybw __builtin_vec_vprtybw 441 #define vec_vprtybw __builtin_vec_vprtybw
435 442
436 #ifdef _ARCH_PPC64 443 #ifdef _ARCH_PPC64
450 #define vec_insert_exp __builtin_vec_insert_exp 457 #define vec_insert_exp __builtin_vec_insert_exp
451 #define vec_test_data_class __builtin_vec_test_data_class 458 #define vec_test_data_class __builtin_vec_test_data_class
452 459
453 #define vec_extract_fp_from_shorth __builtin_vec_vextract_fp_from_shorth 460 #define vec_extract_fp_from_shorth __builtin_vec_vextract_fp_from_shorth
454 #define vec_extract_fp_from_shortl __builtin_vec_vextract_fp_from_shortl 461 #define vec_extract_fp_from_shortl __builtin_vec_vextract_fp_from_shortl
462 #define vec_extract_fp32_from_shorth __builtin_vec_vextract_fp_from_shorth
463 #define vec_extract_fp32_from_shortl __builtin_vec_vextract_fp_from_shortl
455 464
456 #define scalar_extract_exp __builtin_vec_scalar_extract_exp 465 #define scalar_extract_exp __builtin_vec_scalar_extract_exp
457 #define scalar_extract_sig __builtin_vec_scalar_extract_sig 466 #define scalar_extract_sig __builtin_vec_scalar_extract_sig
458 #define scalar_insert_exp __builtin_vec_scalar_insert_exp 467 #define scalar_insert_exp __builtin_vec_scalar_insert_exp
459 #define scalar_test_data_class __builtin_vec_scalar_test_data_class 468 #define scalar_test_data_class __builtin_vec_scalar_test_data_class
476 #define vec_cntlz_lsbb __builtin_vec_vclzlsbb 485 #define vec_cntlz_lsbb __builtin_vec_vclzlsbb
477 #define vec_cnttz_lsbb __builtin_vec_vctzlsbb 486 #define vec_cnttz_lsbb __builtin_vec_vctzlsbb
478 487
479 #define vec_xlx __builtin_vec_vextulx 488 #define vec_xlx __builtin_vec_vextulx
480 #define vec_xrx __builtin_vec_vexturx 489 #define vec_xrx __builtin_vec_vexturx
481
482 #define vec_revb __builtin_vec_revb
483 #endif 490 #endif
484 491
485 /* Predicates. 492 /* Predicates.
486 For C++, we use templates in order to allow non-parenthesized arguments. 493 For C++, we use templates in order to allow non-parenthesized arguments.
487 For C, instead, we use macros since non-parenthesized arguments were 494 For C, instead, we use macros since non-parenthesized arguments were