S/390: Provide low-level builtins with __int128 ops.
commitb0c401ca35ca20be56a33dd957fc05dcfd782e44
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Aug 2016 11:15:50 +0000 (11 11:15 +0000)
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Aug 2016 11:15:50 +0000 (11 11:15 +0000)
treec60789103f8d28808cdd153dd6402412ff49c776
parent578fe473c09cf1d42f8e587f0339fc66541dc7ff
S/390: Provide low-level builtins with __int128 ops.

gcc/ChangeLog:

2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-builtin-types.def: Add INT128 types.
* config/s390/s390-builtins.def: Add INT128 variants for the add
sub low-level builtins dealing with TImode.
* config/s390/s390.c (s390_expand_builtin): Allow mode conversions
via subreg when expanding a builtin.
* config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
Fix comment.
* config/s390/vecintrin.h: Adjust builtin names accordingly.
* config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
("vec_addc<mode>", "vec_addc_u128"): Merge to
"vacc<bhfgq>_<mode>".
("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
("vec_subc<mode>", "vec_subc_u128"): Merge to
"vscbi<bhfgq>_<mode>".
("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239361 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/s390/s390-builtin-types.def
gcc/config/s390/s390-builtins.def
gcc/config/s390/s390.c
gcc/config/s390/s390.md
gcc/config/s390/vecintrin.h
gcc/config/s390/vx-builtins.md