aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2024-10-24 11:40:42 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2024-10-30 12:17:11 +0000
commite2692b9ea7bde28de2a31a3580ce9dcc25e42fa4 (patch)
tree31c2d0ba74fa580fe152b9deeaa58318adb3c14e /gcc/tree-vectorizer.h
parent30563d8978a39c402a425e958b5b51936ee76cff (diff)
downloadgcc-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