diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2024-10-24 11:40:42 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2024-10-30 12:17:11 +0000 |
commit | e2692b9ea7bde28de2a31a3580ce9dcc25e42fa4 (patch) | |
tree | 31c2d0ba74fa580fe152b9deeaa58318adb3c14e /gcc/tree-vectorizer.h | |
parent | 30563d8978a39c402a425e958b5b51936ee76cff (diff) | |
download | gcc-e2692b9ea7bde28de2a31a3580ce9dcc25e42fa4.zip gcc-e2692b9ea7bde28de2a31a3580ce9dcc25e42fa4.tar.gz gcc-e2692b9ea7bde28de2a31a3580ce9dcc25e42fa4.tar.bz2 |
libstdc++: Define config macros for additional IEEE formats
Some targets use IEEE binary64 for both double and long double, which
means we could use memmove to optimize a std::copy from a range of
double to a range of long double. We currently have no config macro to
detect when long double is binary64, so add that to <bits/c++config.h>.
This also adds config macros for the case where double and long double
both use the same binary32 format as float, which is true for the avr
target. No specializations of __memcpyable for that case are added by
this patch, but they could be added later.
libstdc++-v3/ChangeLog:
* include/bits/c++config (_GLIBCXX_DOUBLE_IS_IEEE_BINARY32):
Define.
(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY64): Define.
(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY32): Define.
* include/bits/cpp_type_traits.h (__memcpyable): Define
specializations when double and long double are compatible.
Reviewed-by: Patrick Palka <ppalka@redhat.com>
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions