diff options
Diffstat (limited to 'contrib/llvm-project/libcxx/include/experimental/__simd/traits.h')
-rw-r--r-- | contrib/llvm-project/libcxx/include/experimental/__simd/traits.h | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/contrib/llvm-project/libcxx/include/experimental/__simd/traits.h b/contrib/llvm-project/libcxx/include/experimental/__simd/traits.h index 9b4abe9d0c23..ec25b4bfa7f9 100644 --- a/contrib/llvm-project/libcxx/include/experimental/__simd/traits.h +++ b/contrib/llvm-project/libcxx/include/experimental/__simd/traits.h @@ -10,14 +10,12 @@ #ifndef _LIBCPP_EXPERIMENTAL___SIMD_TRAITS_H #define _LIBCPP_EXPERIMENTAL___SIMD_TRAITS_H +#include <__bit/bit_ceil.h> #include <__type_traits/integral_constant.h> #include <__type_traits/is_same.h> #include <cstddef> #include <experimental/__config> -#include <experimental/__simd/abi_tag.h> -#include <experimental/__simd/aligned_tag.h> #include <experimental/__simd/declaration.h> -#include <experimental/__simd/internal_declaration.h> #include <experimental/__simd/utility.h> #if _LIBCPP_STD_VER >= 17 && defined(_LIBCPP_ENABLE_EXPERIMENTAL) @@ -47,15 +45,6 @@ struct is_simd_mask : bool_constant<is_simd_mask_v<_Tp>> {}; template <class _Tp> inline constexpr bool is_simd_flag_type_v = false; -template <> -inline constexpr bool is_simd_flag_type_v<element_aligned_tag> = true; - -template <> -inline constexpr bool is_simd_flag_type_v<vector_aligned_tag> = true; - -template <size_t _Np> -inline constexpr bool is_simd_flag_type_v<overaligned_tag<_Np>> = true; - template <class _Tp> struct is_simd_flag_type : bool_constant<is_simd_flag_type_v<_Tp>> {}; @@ -71,7 +60,7 @@ inline constexpr size_t simd_size_v = simd_size<_Tp, _Abi>::value; template <class _Tp, class _Up = typename _Tp::value_type, bool = (is_simd_v<_Tp> && __is_vectorizable_v<_Up>) || (is_simd_mask_v<_Tp> && is_same_v<_Up, bool>)> -struct memory_alignment : integral_constant<size_t, vector_aligned_tag::__alignment<_Tp, _Up>> {}; +struct memory_alignment : integral_constant<size_t, std::__bit_ceil(sizeof(_Up) * _Tp::size())> {}; template <class _Tp, class _Up> struct memory_alignment<_Tp, _Up, false> {}; |