Mercurial > hg > CbC > CbC_gcc
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 |