libstdc++
Data parallel extensions
Collaboration diagram for Data parallel extensions:

Macros

#define __cpp_lib_experimental_parallel_simd
using __m128
using __m128d
using __m128i
using __m256
using __m256d
using __m256i
using __m512
using __m512d
using __m512i
template<size_t _Xp>
using _SizeConstant
using _UChar
using _SChar
using _UShort
using _UInt
using _ULong
using _ULLong
using _LLong
template<typename... _Ts>
using __first_of_pack_t
template<typename _Tp>
using __value_type_or_identity_t
template<typename _Tp, typename = enable_if_t<__is_vectorizable_v<_Tp>>>
using _Vectorizable
template<typename _Ptr, typename _ValueType, typename = enable_if_t< __is_possible_loadstore_conversion<_Ptr, _ValueType>::value>>
using _LoadStorePtr
template<typename _Tp>
using __int_for_sizeof_t
template<size_t _Np>
using __int_with_sizeof_t
template<typename _Tp, typename _Up>
using __make_dependent_t
template<typename _Tp>
using __may_alias
template<size_t _Size>
using __bool_storage_member_type_t
template<typename _Tp, int _Np>
using __fixed_size_storage_t
template<typename _Tp>
using _SimdWrapper8
template<typename _Tp>
using _SimdWrapper16
template<typename _Tp>
using _SimdWrapper32
template<typename _Tp>
using _SimdWrapper64
template<typename _From, typename _To, typename = enable_if_t<negation< __is_narrowing_conversion<__remove_cvref_t<_From>, _To>>::value>>
using _ValuePreserving
template<typename _From, typename _To, typename _DecayedFrom = __remove_cvref_t<_From>, typename = enable_if_t<conjunction< is_convertible<_From, _To>, disjunction< is_same<_DecayedFrom, _To>, is_same<_DecayedFrom, int>, conjunction<is_same<_DecayedFrom, _UInt>, is_unsigned<_To>>, negation<__is_narrowing_conversion<_DecayedFrom, _To>>>>::value>>
using _ValuePreservingOrInt
template<typename _Tp, size_t _Size>
using __intrinsic_type_t
template<typename _Tp>
using __intrinsic_type2_t
template<typename _Tp>
using __intrinsic_type4_t
template<typename _Tp>
using __intrinsic_type8_t
template<typename _Tp>
using __intrinsic_type16_t
template<typename _Tp>
using __intrinsic_type32_t
template<typename _Tp>
using __intrinsic_type64_t
template<size_t _Np>
using _SanitizedBitMask
template<typename _Tp, size_t _Size>
using __vector_type_t
template<typename _Tp>
using __vector_type2_t
template<typename _Tp>
using __vector_type4_t
template<typename _Tp>
using __vector_type8_t
template<typename _Tp>
using __vector_type16_t
template<typename _Tp>
using __vector_type32_t
template<typename _Tp>
using __vector_type64_t
template<typename _Tp, typename = typename _VectorTraitsImpl<_Tp>::type>
using _VectorTraits
template<typename _Tp, typename = enable_if_t<is_simd_flag_type_v<_Tp>>>
using _IsSimdFlagType
template<typename _Tp, typename _V>
using rebind_simd_t
template<int _Np, typename _V>
using resize_simd_t
template<typename _Tp>
using native_simd
template<typename _Tp, int _Np>
using fixed_size_simd
template<typename _Tp, size_t _Np>
using __deduced_simd
template<typename _Tp>
using native_simd_mask
template<typename _Tp, int _Np>
using fixed_size_simd_mask
template<typename _Tp, size_t _Np>
using __deduced_simd_mask
template<typename _Tp>
using safe_make_signed_t
constexpr int __sve_vectorized_size_bytes
constexpr element_aligned_tag element_aligned
constexpr vector_aligned_tag vector_aligned
template<size_t _Np>
constexpr overaligned_tag< _Np > overaligned
constexpr bool __have_mmx
constexpr bool __have_sse
constexpr bool __have_sse2
constexpr bool __have_sse3
constexpr bool __have_ssse3
constexpr bool __have_sse4_1
constexpr bool __have_sse4_2
constexpr bool __have_xop
constexpr bool __have_avx
constexpr bool __have_avx2
constexpr bool __have_bmi
constexpr bool __have_bmi2
constexpr bool __have_lzcnt
constexpr bool __have_sse4a
constexpr bool __have_fma
constexpr bool __have_fma4
constexpr bool __have_f16c
constexpr bool __have_popcnt
constexpr bool __have_avx512f
constexpr bool __have_avx512dq
constexpr bool __have_avx512vl
constexpr bool __have_avx512bw
constexpr bool __have_avx512dq_vl
constexpr bool __have_avx512bw_vl
constexpr bool __have_avx512bitalg
constexpr bool __have_avx512vbmi2
constexpr bool __have_avx512vbmi
constexpr bool __have_avx512ifma
constexpr bool __have_avx512cd
constexpr bool __have_avx512vnni
constexpr bool __have_avx512vpopcntdq
constexpr bool __have_avx512vp2intersect
constexpr bool __have_neon
constexpr bool __have_neon_a32
constexpr bool __have_neon_a64
constexpr bool __support_neon_float
constexpr bool __have_sve
constexpr bool __have_sve2
constexpr bool __have_power10vec
constexpr bool __have_power9vec
constexpr bool __have_power8vec
constexpr bool __have_power_vsx
constexpr bool __have_power_vmx
template<typename _Tp>
constexpr bool __is_vectorizable_v
template<typename _Tp>
constexpr bool __is_bitmask_v
template<typename _Tp>
constexpr bool __is_fixed_size_abi_v
template<typename _Abi>
constexpr int __abi_bytes_v
template<typename _Tp, typename _Ap>
constexpr size_t __size_or_zero_v
constexpr struct _PrivateInit __private_init
constexpr struct _BitsetInit __bitset_init
template<typename _Tp>
constexpr bool __is_simd_wrapper_v
template<typename _Tp = void>
static constexpr int __min_vector_size
template<>
constexpr int __min_vector_size< void >
template<typename _Tp>
constexpr bool __is_vector_type_v
template<typename _Tp>
constexpr bool __is_intrinsic_type_v
template<typename _Tp>
constexpr bool is_simd_flag_type_v
template<typename _Tp>
constexpr bool is_abi_tag_v
template<typename _Tp>
constexpr bool is_simd_v
template<typename _Tp>
constexpr bool is_simd_mask_v
template<typename _Tp, typename _Abi = simd_abi::__default_abi<_Tp>>
constexpr size_t simd_size_v
template<typename _Tp, typename _Up = typename _Tp::value_type>
constexpr size_t memory_alignment_v
template<typename _Fp, size_t... _I>
_GLIBCXX_SIMD_INTRINSIC constexpr void __execute_on_index_sequence (_Fp &&__f, index_sequence< _I... >)
template<typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr void __execute_on_index_sequence (_Fp &&, index_sequence<>)
template<size_t _Np, typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr void __execute_n_times (_Fp &&__f)
template<typename _R, typename _Fp, size_t... _I>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __execute_on_index_sequence_with_return (_Fp &&__f, index_sequence< _I... >)
template<size_t _Np, typename _R, typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __generate_from_n_evaluations (_Fp &&__f)
template<size_t... _I, typename _F0, typename _FArgs>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __call_with_n_evaluations (index_sequence< _I... >, _F0 &&__f0, _FArgs &&__fargs)
template<size_t _Np, typename _F0, typename _FArgs>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __call_with_n_evaluations (_F0 &&__f0, _FArgs &&__fargs)
template<size_t _First = 0, size_t... _It, typename _Tp, typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __call_with_subscripts (_Tp &&__x, index_sequence< _It... >, _Fp &&__fun)
template<size_t _Np, size_t _First = 0, typename _Tp, typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __call_with_subscripts (_Tp &&__x, _Fp &&__fun)
template<typename _Tp>
_Tp::value_type __value_type_or_identity_impl (int)
template<typename _Tp>
_Tp __value_type_or_identity_impl (float)
template<size_t _Bytes>
constexpr auto __int_for_sizeof ()
template<typename _Abi>
constexpr bool __is_scalar_abi ()
template<template< int > class _Abi, int _Bytes>
constexpr int __abi_bytes_impl (_Abi< _Bytes > *)
template<typename _Tp>
constexpr int __abi_bytes_impl (_Tp *)
template<typename _Abi>
constexpr bool __is_builtin_bitmask_abi ()
template<typename _Abi>
constexpr bool __is_sse_abi ()
template<typename _Abi>
constexpr bool __is_avx_abi ()
template<typename _Abi>
constexpr bool __is_avx512_abi ()
template<typename _Abi>
constexpr bool __is_neon_abi ()
template<typename _Abi>
constexpr bool __is_sve_abi ()
template<typename... _Args>
_GLIBCXX_SIMD_ALWAYS_INLINE void __invoke_ub (const char *__msg, const _Args &... __args)
template<typename _Tp, typename _Ap, size_t _Np = simd_size<_Tp, _Ap>::value>
constexpr size_t __size_or_zero_dispatch (int)
template<typename _Tp, typename _Ap>
constexpr size_t __size_or_zero_dispatch (float)
constexpr size_t __div_roundup (size_t __a, size_t __b)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC constexpr const auto & __data (const simd< _Tp, _Ap > &__x)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC constexpr auto & __data (simd< _Tp, _Ap > &__x)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC constexpr const auto & __data (const simd_mask< _Tp, _Ap > &__x)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC constexpr auto & __data (simd_mask< _Tp, _Ap > &__x)
template<typename _V>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __to_value_type_or_member_type (const _V &__x) -> decltype(__data(__x))
template<typename _V>
_GLIBCXX_SIMD_INTRINSIC constexpr const _V::value_type & __to_value_type_or_member_type (const typename _V::value_type &__x)
template<typename _V>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __as_vector (_V __x)
template<size_t _Np = 0, typename _V>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __as_wrapper (_V __x)
template<typename _To, typename _From>
_GLIBCXX_SIMD_INTRINSIC constexpr _To __intrin_bitcast (_From __v)
template<typename _To, size_t _NN = 0, typename _From, typename _FromVT = _VectorTraits<_From>, size_t _Np = _NN == 0 ? sizeof(_From) / sizeof(_To) : _NN>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _To, _Np > __vector_bitcast (_From __x)
template<typename _To, size_t _NN = 0, typename _Tp, size_t _Nx, size_t _Np = _NN == 0 ? sizeof(_SimdWrapper<_Tp, _Nx>) / sizeof(_To) : _NN>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _To, _Np > __vector_bitcast (const _SimdWrapper< _Tp, _Nx > &__x)
template<typename _To, typename _From>
_GLIBCXX_SIMD_INTRINSIC constexpr _To __bit_cast (const _From __x)
template<typename _Tp, typename _TVT = _VectorTraits<_Tp>, typename _R = __intrinsic_type_t<typename _TVT::value_type, _TVT::_S_full_size>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __to_intrin (_Tp __x)
template<typename _Tp, typename... _Args>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _Tp, sizeof...(_Args)> __make_vector (const _Args &... __args)
template<size_t _Np, typename _Tp, size_t... _I>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _Tp, _Np > __vector_broadcast_impl (_Tp __x, index_sequence< _I... >)
template<size_t _Np, typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _Tp, _Np > __vector_broadcast (_Tp __x)
template<typename _Tp, size_t _Np, typename _Gp, size_t... _I>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _Tp, _Np > __generate_vector_impl (_Gp &&__gen, index_sequence< _I... >)
template<typename _V, typename _VVT = _VectorTraits<_V>, typename _Gp>
_GLIBCXX_SIMD_INTRINSIC constexpr _V __generate_vector (_Gp &&__gen)
template<typename _TW>
_GLIBCXX_SIMD_INTRINSIC constexpr _TW __xor (_TW __a, _TW __b) noexcept
template<typename _TW>
_GLIBCXX_SIMD_INTRINSIC constexpr _TW __or (_TW __a, _TW __b) noexcept
template<typename _TW>
_GLIBCXX_SIMD_INTRINSIC constexpr _TW __and (_TW __a, _TW __b) noexcept
template<typename _TW>
_GLIBCXX_SIMD_INTRINSIC constexpr _TW __andnot (_TW __a, _TW __b) noexcept
template<typename _Tp, typename _TVT = _VectorTraits<_Tp>>
_GLIBCXX_SIMD_INTRINSIC constexpr _Tp __not (_Tp __a) noexcept
template<typename _T0, typename _T1, typename _Fun, size_t... _Is>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< remove_reference_t< decltype(declval< _T0 >()[0])>, sizeof...(_Is)> __vec_shuffle (_T0 __x, _T1 __y, index_sequence< _Is... > __seq, _Fun __idx_perm)
template<typename _T0, typename _Fun, typename _Seq>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __vec_shuffle (_T0 __x, _Seq __seq, _Fun __idx_perm)
template<typename _Tp, typename _TVT = _VectorTraits<_Tp>, typename _R = __vector_type_t<typename _TVT::value_type, _TVT::_S_full_size * 2>>
constexpr _R __concat (_Tp a_, _Tp b_)
template<typename _Tp, typename _TVT = _VectorTraits<_Tp>>
_GLIBCXX_SIMD_INTRINSIC _ZeroExtendProxy< _Tp, _TVT > __zero_extend (_Tp __x)
template<int _Offset, int _SplitBy, typename _Tp, typename _TVT = _VectorTraits<_Tp>, typename _R = __vector_type_t<typename _TVT::value_type, _TVT::_S_full_size / _SplitBy>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __extract (_Tp __in)
template<typename _Tp, typename _R = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __lo64 (_Tp __x)
template<typename _Tp, typename _R = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __hi64 (_Tp __x)
template<typename _Tp, typename _R = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __hi64z (_Tp __x)
template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __lo128 (_Tp __x)
template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __hi128 (_Tp __x)
template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __lo256 (_Tp __x)
template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __hi256 (_Tp __x)
template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr _AutoCast< _Tp > __auto_bitcast (const _Tp &__x)
template<typename _Tp, size_t _Np>
_GLIBCXX_SIMD_INTRINSIC constexpr _AutoCast< typename _SimdWrapper< _Tp, _Np >::_BuiltinType > __auto_bitcast (const _SimdWrapper< _Tp, _Np > &__x)
template<typename _Tp>
constexpr size_t __vectorized_sizeof ()
template<typename _Tp, typename _Up, typename _Ap, typename _R = typename __static_simd_cast_return_type<_Tp, _Up, _Ap>::type>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _R static_simd_cast (const simd< _Up, _Ap > &__x)
template<typename _Tp, typename _Up, typename _Ap, typename _To = __value_type_or_identity_t<_Tp>>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR auto simd_cast (const simd< _ValuePreserving< _Up, _To >, _Ap > &__x) -> decltype(static_simd_cast< _Tp >(__x))
template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC fixed_size_simd< _Tp, _Np > to_fixed_size (const fixed_size_simd< _Tp, _Np > &__x)
template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC fixed_size_simd_mask< _Tp, _Np > to_fixed_size (const fixed_size_simd_mask< _Tp, _Np > &__x)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC fixed_size_simd< _Tp, simd_size_v< _Tp, _Ap > > to_fixed_size (const simd< _Tp, _Ap > &__x)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC fixed_size_simd_mask< _Tp, simd_size_v< _Tp, _Ap > > to_fixed_size (const simd_mask< _Tp, _Ap > &__x)
template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np==native_simd< _Tp >::size()), native_simd< _Tp > > to_native (const fixed_size_simd< _Tp, _Np > &__x)
template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np==native_simd_mask< _Tp >::size()), native_simd_mask< _Tp > > to_native (const fixed_size_simd_mask< _Tp, _Np > &__x)
template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np==simd< _Tp >::size()), simd< _Tp > > to_compatible (const simd< _Tp, simd_abi::fixed_size< _Np > > &__x)
template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np==simd_mask< _Tp >::size()), simd_mask< _Tp > > to_compatible (const simd_mask< _Tp, simd_abi::fixed_size< _Np > > &__x)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR where_expression< simd_mask< _Tp, _Ap >, simd< _Tp, _Ap > > where (const typename simd< _Tp, _Ap >::mask_type &__k, simd< _Tp, _Ap > &__value)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR const_where_expression< simd_mask< _Tp, _Ap >, simd< _Tp, _Ap > > where (const typename simd< _Tp, _Ap >::mask_type &__k, const simd< _Tp, _Ap > &__value)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR where_expression< simd_mask< _Tp, _Ap >, simd_mask< _Tp, _Ap > > where (const remove_const_t< simd_mask< _Tp, _Ap > > &__k, simd_mask< _Tp, _Ap > &__value)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR const_where_expression< simd_mask< _Tp, _Ap >, simd_mask< _Tp, _Ap > > where (const remove_const_t< simd_mask< _Tp, _Ap > > &__k, const simd_mask< _Tp, _Ap > &__value)
template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR where_expression< bool, _Tp > where (_ExactBool __k, _Tp &__value)
template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR const_where_expression< bool, _Tp > where (_ExactBool __k, const _Tp &__value)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_CONSTEXPR void where (bool __k, simd< _Tp, _Ap > &__value)=delete
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_CONSTEXPR void where (bool __k, const simd< _Tp, _Ap > &__value)=delete
template<typename _Tp, typename _Abi, typename _BinaryOperation = plus<>>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp reduce (const simd< _Tp, _Abi > &__v, _BinaryOperation __binary_op=_BinaryOperation())
template<typename _M, typename _V, typename _BinaryOperation = plus<>>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce (const const_where_expression< _M, _V > &__x, typename _V::value_type __identity_element, _BinaryOperation __binary_op)
template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce (const const_where_expression< _M, _V > &__x, plus<> __binary_op={})
template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce (const const_where_expression< _M, _V > &__x, multiplies<> __binary_op)
template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce (const const_where_expression< _M, _V > &__x, bit_and<> __binary_op)
template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce (const const_where_expression< _M, _V > &__x, bit_or<> __binary_op)
template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce (const const_where_expression< _M, _V > &__x, bit_xor<> __binary_op)
template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp hmin (const simd< _Tp, _Abi > &__v) noexcept
template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp hmax (const simd< _Tp, _Abi > &__v) noexcept
template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V::value_type hmin (const const_where_expression< _M, _V > &__x) noexcept
template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V::value_type hmax (const const_where_expression< _M, _V > &__x) noexcept
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd< _Tp, _Ap > min (const simd< _Tp, _Ap > &__a, const simd< _Tp, _Ap > &__b)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd< _Tp, _Ap > max (const simd< _Tp, _Ap > &__a, const simd< _Tp, _Ap > &__b)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR pair< simd< _Tp, _Ap >, simd< _Tp, _Ap > > minmax (const simd< _Tp, _Ap > &__a, const simd< _Tp, _Ap > &__b)
template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd< _Tp, _Ap > clamp (const simd< _Tp, _Ap > &__v, const simd< _Tp, _Ap > &__lo, const simd< _Tp, _Ap > &__hi)
template<size_t... _Sizes, typename _Tp, typename _Ap, typename = enable_if_t<((_Sizes + ...) == simd<_Tp, _Ap>::size())>>
tuple< simd< _Tp, simd_abi::deduce_t< _Tp, _Sizes > >... > split (const simd< _Tp, _Ap > &)
template<int _Index, int _Total, int _Combine = 1, typename _Tp, size_t _Np>
_GLIBCXX_SIMD_INTRINSIC constexpr conditional_t< _Np==_Total and _Combine==1, _Tp, _SimdWrapper< _Tp, _Np/_Total *_Combine > > __extract_part (const _SimdWrapper< _Tp, _Np > __x)
template<int _Index, int _Parts, int _Combine = 1, typename _Tp, typename _A0, typename... _As>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __extract_part (const _SimdTuple< _Tp, _A0, _As... > &__x)
template<typename _Tp, size_t _Np>
_GLIBCXX_SIMD_INTRINSIC _SimdWrapper< _Tp, _Np/2 > __extract_center (_SimdWrapper< _Tp, _Np > __x)
template<typename _Tp, typename _A0, typename... _As>
_GLIBCXX_SIMD_INTRINSIC _SimdWrapper< _Tp, _SimdTuple< _Tp, _A0, _As... >::_S_size()/2 > __extract_center (const _SimdTuple< _Tp, _A0, _As... > &__x)
template<size_t... _Sizes, typename _Tp, typename... _As>
auto __split_wrapper (_SizeList< _Sizes... >, const _SimdTuple< _Tp, _As... > &__x)
template<typename _V, typename _Ap, size_t _Parts = simd_size_v<typename _V::value_type, _Ap> / _V::size()>
enable_if_t< simd_size_v< typename _V::value_type, _Ap >==_Parts *_V::size() &&is_simd_v< _V >, array< _V, _Parts > > split (const simd< typename _V::value_type, _Ap > &__x)
template<typename _V, typename _Ap, size_t _Parts = simd_size_v<typename _V::simd_type::value_type, _Ap> / _V::size()>
enable_if_t< is_simd_mask_v< _V > &&simd_size_v< typename _V::simd_type::value_type, _Ap >==_Parts *_V::size(), array< _V, _Parts > > split (const simd_mask< typename _V::simd_type::value_type, _Ap > &__x)
template<size_t _I, typename _Tp, typename _Ap, typename... _As>
_GLIBCXX_SIMD_INTRINSIC constexpr _Tp __subscript_in_pack (const simd< _Tp, _Ap > &__x, const simd< _Tp, _As > &... __xs)
template<typename _Tp, typename _A0, typename... _As>
_GLIBCXX_SIMD_INTRINSIC void __store_pack_of_simd (char *__mem, const simd< _Tp, _A0 > &__x0, const simd< _Tp, _As > &... __xs)
template<typename _Tp, typename... _As, typename = __detail::__odr_helper>
_GLIBCXX_SIMD_CONSTEXPR simd< _Tp, simd_abi::deduce_t< _Tp,(simd_size_v< _Tp, _As >+...)> > concat (const simd< _Tp, _As > &... __xs)
template<typename _Tp, typename _Abi, size_t _Np>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR __deduced_simd< _Tp, simd_size_v< _Tp, _Abi > *_Np > concat (const array< simd< _Tp, _Abi >, _Np > &__x)
template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool all_of (const simd_mask< _Tp, _Abi > &__k) noexcept
template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool any_of (const simd_mask< _Tp, _Abi > &__k) noexcept
template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool none_of (const simd_mask< _Tp, _Abi > &__k) noexcept
template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool some_of (const simd_mask< _Tp, _Abi > &__k) noexcept
template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int popcount (const simd_mask< _Tp, _Abi > &__k) noexcept
template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_first_set (const simd_mask< _Tp, _Abi > &__k)
template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_last_set (const simd_mask< _Tp, _Abi > &__k)
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool all_of (_ExactBool __x) noexcept
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool any_of (_ExactBool __x) noexcept
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool none_of (_ExactBool __x) noexcept
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool some_of (_ExactBool) noexcept
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int popcount (_ExactBool __x) noexcept
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_first_set (_ExactBool)
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_last_set (_ExactBool)

Detailed Description

Data-parallel types library.

Since
C++17

Macro Definition Documentation

◆ __cpp_lib_experimental_parallel_simd

#define __cpp_lib_experimental_parallel_simd

Definition at line 57 of file simd.

Typedef Documentation

◆ __bool_storage_member_type_t

template<size_t _Size>
using __bool_storage_member_type_t

Definition at line 995 of file simd.h.

◆ __deduced_simd

template<typename _Tp, size_t _Np>
using __deduced_simd

Definition at line 3191 of file simd.h.

◆ __deduced_simd_mask

template<typename _Tp, size_t _Np>
using __deduced_simd_mask

Definition at line 3207 of file simd.h.

◆ __first_of_pack_t

template<typename... _Ts>
using __first_of_pack_t

Definition at line 538 of file simd.h.

◆ __fixed_size_storage_t

template<typename _Tp, int _Np>
using __fixed_size_storage_t

Definition at line 1015 of file simd.h.

◆ __int_for_sizeof_t

template<typename _Tp>
using __int_for_sizeof_t

Definition at line 669 of file simd.h.

◆ __int_with_sizeof_t

template<size_t _Np>
using __int_with_sizeof_t

Definition at line 672 of file simd.h.

◆ __intrinsic_type16_t

template<typename _Tp>
using __intrinsic_type16_t

Definition at line 1131 of file simd.h.

◆ __intrinsic_type2_t

template<typename _Tp>
using __intrinsic_type2_t

Definition at line 1125 of file simd.h.

◆ __intrinsic_type32_t

template<typename _Tp>
using __intrinsic_type32_t

Definition at line 1133 of file simd.h.

◆ __intrinsic_type4_t

template<typename _Tp>
using __intrinsic_type4_t

Definition at line 1127 of file simd.h.

◆ __intrinsic_type64_t

template<typename _Tp>
using __intrinsic_type64_t

Definition at line 1135 of file simd.h.

◆ __intrinsic_type8_t

template<typename _Tp>
using __intrinsic_type8_t

Definition at line 1129 of file simd.h.

◆ __intrinsic_type_t

template<typename _Tp, size_t _Size>
using __intrinsic_type_t

Definition at line 1121 of file simd.h.

◆ __make_dependent_t

template<typename _Tp, typename _Up>
using __make_dependent_t

Definition at line 773 of file simd.h.

◆ __value_type_or_identity_t

template<typename _Tp>
using __value_type_or_identity_t

Definition at line 551 of file simd.h.

◆ __vector_type16_t

template<typename _Tp>
using __vector_type16_t

Definition at line 1558 of file simd.h.

◆ __vector_type2_t

template<typename _Tp>
using __vector_type2_t

Definition at line 1552 of file simd.h.

◆ __vector_type32_t

template<typename _Tp>
using __vector_type32_t

Definition at line 1560 of file simd.h.

◆ __vector_type4_t

template<typename _Tp>
using __vector_type4_t

Definition at line 1554 of file simd.h.

◆ __vector_type64_t

template<typename _Tp>
using __vector_type64_t

Definition at line 1562 of file simd.h.

◆ __vector_type8_t

template<typename _Tp>
using __vector_type8_t

Definition at line 1556 of file simd.h.

◆ __vector_type_t

template<typename _Tp, size_t _Size>
using __vector_type_t

Definition at line 1549 of file simd.h.

◆ _IsSimdFlagType

template<typename _Tp, typename = enable_if_t<is_simd_flag_type_v<_Tp>>>
using _IsSimdFlagType

Definition at line 3050 of file simd.h.

◆ _LLong

using _LLong

Definition at line 529 of file simd.h.

◆ _LoadStorePtr

template<typename _Ptr, typename _ValueType, typename = enable_if_t< __is_possible_loadstore_conversion<_Ptr, _ValueType>::value>>
using _LoadStorePtr

Definition at line 581 of file simd.h.

◆ _SanitizedBitMask

template<size_t _Np>
using _SanitizedBitMask

Definition at line 1146 of file simd.h.

◆ _SChar

using _SChar

Definition at line 524 of file simd.h.

◆ _SimdWrapper16

template<typename _Tp>
using _SimdWrapper16

Definition at line 1025 of file simd.h.

◆ _SimdWrapper32

template<typename _Tp>
using _SimdWrapper32

Definition at line 1027 of file simd.h.

◆ _SimdWrapper64

template<typename _Tp>
using _SimdWrapper64

Definition at line 1029 of file simd.h.

◆ _SimdWrapper8

template<typename _Tp>
using _SimdWrapper8

Definition at line 1023 of file simd.h.

◆ _SizeConstant

template<size_t _Xp>
using _SizeConstant

Definition at line 228 of file simd.h.

◆ _UChar

using _UChar

Definition at line 523 of file simd.h.

◆ _UInt

using _UInt

Definition at line 526 of file simd.h.

◆ _ULLong

using _ULLong

Definition at line 528 of file simd.h.

◆ _ULong

using _ULong

Definition at line 527 of file simd.h.

◆ _UShort

using _UShort

Definition at line 525 of file simd.h.

◆ _ValuePreserving

template<typename _From, typename _To, typename = enable_if_t<negation< __is_narrowing_conversion<__remove_cvref_t<_From>, _To>>::value>>
using _ValuePreserving

Definition at line 1103 of file simd.h.

◆ _ValuePreservingOrInt

template<typename _From, typename _To, typename _DecayedFrom = __remove_cvref_t<_From>, typename = enable_if_t<conjunction< is_convertible<_From, _To>, disjunction< is_same<_DecayedFrom, _To>, is_same<_DecayedFrom, int>, conjunction<is_same<_DecayedFrom, _UInt>, is_unsigned<_To>>, negation<__is_narrowing_conversion<_DecayedFrom, _To>>>>::value>>
using _ValuePreservingOrInt

Definition at line 1113 of file simd.h.

◆ _Vectorizable

template<typename _Tp, typename = enable_if_t<__is_vectorizable_v<_Tp>>>
using _Vectorizable

Definition at line 566 of file simd.h.

◆ _VectorTraits

template<typename _Tp, typename = typename _VectorTraitsImpl<_Tp>::type>
using _VectorTraits

Definition at line 1635 of file simd.h.

◆ fixed_size_simd

template<typename _Tp, int _Np>
using fixed_size_simd

Definition at line 3188 of file simd.h.

◆ fixed_size_simd_mask

template<typename _Tp, int _Np>
using fixed_size_simd_mask

Definition at line 3204 of file simd.h.

◆ native_simd

template<typename _Tp>
using native_simd

Definition at line 3185 of file simd.h.

◆ native_simd_mask

template<typename _Tp>
using native_simd_mask

Definition at line 3201 of file simd.h.

◆ rebind_simd_t

template<typename _Tp, typename _V>
using rebind_simd_t

Definition at line 3151 of file simd.h.

◆ resize_simd_t

template<int _Np, typename _V>
using resize_simd_t

Definition at line 3166 of file simd.h.

◆ safe_make_signed_t

template<typename _Tp>
using safe_make_signed_t

Definition at line 3244 of file simd.h.

Function Documentation

◆ __abi_bytes_impl() [1/2]

template<template< int > class _Abi, int _Bytes>
int __abi_bytes_impl ( _Abi< _Bytes > * )
constexpr

Definition at line 696 of file simd.h.

◆ __abi_bytes_impl() [2/2]

template<typename _Tp>
int __abi_bytes_impl ( _Tp * )
constexpr

Definition at line 701 of file simd.h.

◆ __and()

template<typename _TW>
_GLIBCXX_SIMD_INTRINSIC constexpr _TW __and ( _TW __a,
_TW __b )
constexprnoexcept

Definition at line 1947 of file simd.h.

◆ __andnot()

template<typename _TW>
_GLIBCXX_SIMD_INTRINSIC constexpr _TW __andnot ( _TW __a,
_TW __b )
constexprnoexcept

Definition at line 2034 of file simd.h.

◆ __as_vector()

template<typename _V>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __as_vector ( _V __x)
constexpr

Definition at line 1641 of file simd.h.

◆ __as_wrapper()

template<size_t _Np = 0, typename _V>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __as_wrapper ( _V __x)
constexpr

Definition at line 1679 of file simd.h.

◆ __auto_bitcast() [1/2]

template<typename _Tp, size_t _Np>
_GLIBCXX_SIMD_INTRINSIC constexpr _AutoCast< typename _SimdWrapper< _Tp, _Np >::_BuiltinType > __auto_bitcast ( const _SimdWrapper< _Tp, _Np > & __x)
constexpr

Definition at line 2423 of file simd.h.

◆ __auto_bitcast() [2/2]

template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr _AutoCast< _Tp > __auto_bitcast ( const _Tp & __x)
constexpr

Definition at line 2417 of file simd.h.

◆ __bit_cast()

template<typename _To, typename _From>
_GLIBCXX_SIMD_INTRINSIC constexpr _To __bit_cast ( const _From __x)
constexpr

Definition at line 1787 of file simd.h.

◆ __call_with_n_evaluations() [1/2]

template<size_t _Np, typename _F0, typename _FArgs>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __call_with_n_evaluations ( _F0 && __f0,
_FArgs && __fargs )
constexpr

Definition at line 495 of file simd.h.

◆ __call_with_n_evaluations() [2/2]

template<size_t... _I, typename _F0, typename _FArgs>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __call_with_n_evaluations ( index_sequence< _I... > ,
_F0 && __f0,
_FArgs && __fargs )
constexpr

Definition at line 490 of file simd.h.

◆ __call_with_subscripts() [1/2]

template<size_t _Np, size_t _First = 0, typename _Tp, typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __call_with_subscripts ( _Tp && __x,
_Fp && __fun )
constexpr

Definition at line 512 of file simd.h.

◆ __call_with_subscripts() [2/2]

template<size_t _First = 0, size_t... _It, typename _Tp, typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __call_with_subscripts ( _Tp && __x,
index_sequence< _It... > ,
_Fp && __fun )
constexpr

Definition at line 507 of file simd.h.

◆ __concat()

template<typename _Tp, typename _TVT = _VectorTraits<_Tp>, typename _R = __vector_type_t<typename _TVT::value_type, _TVT::_S_full_size * 2>>
_R __concat ( _Tp a_,
_Tp b_ )
constexpr

Definition at line 2149 of file simd.h.

◆ __div_roundup()

size_t __div_roundup ( size_t __a,
size_t __b )
inlineconstexpr

Definition at line 816 of file simd.h.

◆ __execute_n_times()

template<size_t _Np, typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr void __execute_n_times ( _Fp && __f)
constexpr

Definition at line 463 of file simd.h.

◆ __execute_on_index_sequence() [1/2]

template<typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr void __execute_on_index_sequence ( _Fp && ,
index_sequence<>  )
constexpr

Definition at line 458 of file simd.h.

◆ __execute_on_index_sequence() [2/2]

template<typename _Fp, size_t... _I>
_GLIBCXX_SIMD_INTRINSIC constexpr void __execute_on_index_sequence ( _Fp && __f,
index_sequence< _I... >  )
constexpr

Definition at line 453 of file simd.h.

◆ __execute_on_index_sequence_with_return()

template<typename _R, typename _Fp, size_t... _I>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __execute_on_index_sequence_with_return ( _Fp && __f,
index_sequence< _I... >  )
constexpr

Definition at line 474 of file simd.h.

◆ __extract()

template<int _Offset, int _SplitBy, typename _Tp, typename _TVT = _VectorTraits<_Tp>, typename _R = __vector_type_t<typename _TVT::value_type, _TVT::_S_full_size / _SplitBy>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __extract ( _Tp __in)
constexpr

Definition at line 2293 of file simd.h.

◆ __extract_center() [1/2]

template<typename _Tp, size_t _Np>
_GLIBCXX_SIMD_INTRINSIC _SimdWrapper< _Tp, _Np/2 > __extract_center ( _SimdWrapper< _Tp, _Np > __x)

Definition at line 4096 of file simd.h.

◆ __extract_center() [2/2]

template<typename _Tp, typename _A0, typename... _As>
_GLIBCXX_SIMD_INTRINSIC _SimdWrapper< _Tp, _SimdTuple< _Tp, _A0, _As... >::_S_size()/2 > __extract_center ( const _SimdTuple< _Tp, _A0, _As... > & __x)

Definition at line 4143 of file simd.h.

◆ __extract_part() [1/2]

template<int _Index, int _Parts, int _Combine = 1, typename _Tp, typename _A0, typename... _As>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __extract_part ( const _SimdTuple< _Tp, _A0, _As... > & __x)
constexpr

Definition at line 913 of file simd_fixed_size.h.

◆ __extract_part() [2/2]

template<int _Index, int _Total, int _Combine = 1, typename _Tp, size_t _Np>
_GLIBCXX_SIMD_INTRINSIC constexpr conditional_t< _Np==_Total and _Combine==1, _Tp, _SimdWrapper< _Tp, _Np/_Total *_Combine > > __extract_part ( const _SimdWrapper< _Tp, _Np > __x)
constexpr

Definition at line 100 of file simd_builtin.h.

◆ __generate_from_n_evaluations()

template<size_t _Np, typename _R, typename _Fp>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __generate_from_n_evaluations ( _Fp && __f)
constexpr

Definition at line 479 of file simd.h.

◆ __generate_vector()

template<typename _V, typename _VVT = _VectorTraits<_V>, typename _Gp>
_GLIBCXX_SIMD_INTRINSIC constexpr _V __generate_vector ( _Gp && __gen)
constexpr

Definition at line 1872 of file simd.h.

◆ __generate_vector_impl()

template<typename _Tp, size_t _Np, typename _Gp, size_t... _I>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _Tp, _Np > __generate_vector_impl ( _Gp && __gen,
index_sequence< _I... >  )
constexpr

Definition at line 1867 of file simd.h.

◆ __hi128()

template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __hi128 ( _Tp __x)
constexpr

Definition at line 2377 of file simd.h.

◆ __hi256()

template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __hi256 ( _Tp __x)
constexpr

Definition at line 2395 of file simd.h.

◆ __hi64()

template<typename _Tp, typename _R = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __hi64 ( _Tp __x)
constexpr

Definition at line 2349 of file simd.h.

◆ __hi64z()

template<typename _Tp, typename _R = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __hi64z ( _Tp __x)
constexpr

Definition at line 2360 of file simd.h.

◆ __int_for_sizeof()

template<size_t _Bytes>
auto __int_for_sizeof ( )
constexpr

Definition at line 603 of file simd.h.

◆ __intrin_bitcast()

template<typename _To, typename _From>
_GLIBCXX_SIMD_INTRINSIC constexpr _To __intrin_bitcast ( _From __v)
constexpr

Definition at line 1700 of file simd.h.

◆ __invoke_ub()

template<typename... _Args>
_GLIBCXX_SIMD_ALWAYS_INLINE void __invoke_ub ( const char * __msg,
const _Args &... __args )

Definition at line 781 of file simd.h.

◆ __is_avx512_abi()

template<typename _Abi>
bool __is_avx512_abi ( )
constexpr

Definition at line 740 of file simd.h.

◆ __is_avx_abi()

template<typename _Abi>
bool __is_avx_abi ( )
constexpr

Definition at line 729 of file simd.h.

◆ __is_builtin_bitmask_abi()

template<typename _Abi>
bool __is_builtin_bitmask_abi ( )
constexpr

Definition at line 712 of file simd.h.

◆ __is_neon_abi()

template<typename _Abi>
bool __is_neon_abi ( )
constexpr

Definition at line 750 of file simd.h.

◆ __is_scalar_abi()

template<typename _Abi>
bool __is_scalar_abi ( )
constexpr

Definition at line 689 of file simd.h.

◆ __is_sse_abi()

template<typename _Abi>
bool __is_sse_abi ( )
constexpr

Definition at line 719 of file simd.h.

◆ __is_sve_abi()

template<typename _Abi>
bool __is_sve_abi ( )
constexpr

Definition at line 760 of file simd.h.

◆ __lo128()

template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __lo128 ( _Tp __x)
constexpr

Definition at line 2372 of file simd.h.

◆ __lo256()

template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __lo256 ( _Tp __x)
constexpr

Definition at line 2387 of file simd.h.

◆ __lo64()

template<typename _Tp, typename _R = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __lo64 ( _Tp __x)
constexpr

Definition at line 2339 of file simd.h.

◆ __make_vector()

template<typename _Tp, typename... _Args>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _Tp, sizeof...(_Args)> __make_vector ( const _Args &... __args)
constexpr

Definition at line 1848 of file simd.h.

◆ __not()

template<typename _Tp, typename _TVT = _VectorTraits<_Tp>>
_GLIBCXX_SIMD_INTRINSIC constexpr _Tp __not ( _Tp __a)
constexprnoexcept

Definition at line 2069 of file simd.h.

◆ __or()

template<typename _TW>
_GLIBCXX_SIMD_INTRINSIC constexpr _TW __or ( _TW __a,
_TW __b )
constexprnoexcept

Definition at line 1922 of file simd.h.

◆ __size_or_zero_dispatch() [1/2]

template<typename _Tp, typename _Ap>
size_t __size_or_zero_dispatch ( float )
constexpr

Definition at line 806 of file simd.h.

◆ __size_or_zero_dispatch() [2/2]

template<typename _Tp, typename _Ap, size_t _Np = simd_size<_Tp, _Ap>::value>
size_t __size_or_zero_dispatch ( int )
constexpr

Definition at line 801 of file simd.h.

◆ __split_wrapper()

template<size_t... _Sizes, typename _Tp, typename... _As>
auto __split_wrapper ( _SizeList< _Sizes... > ,
const _SimdTuple< _Tp, _As... > & __x )

Definition at line 4155 of file simd.h.

◆ __store_pack_of_simd()

template<typename _Tp, typename _A0, typename... _As>
_GLIBCXX_SIMD_INTRINSIC void __store_pack_of_simd ( char * __mem,
const simd< _Tp, _A0 > & __x0,
const simd< _Tp, _As > &... __xs )

Definition at line 4393 of file simd.h.

◆ __subscript_in_pack()

template<size_t _I, typename _Tp, typename _Ap, typename... _As>
_GLIBCXX_SIMD_INTRINSIC constexpr _Tp __subscript_in_pack ( const simd< _Tp, _Ap > & __x,
const simd< _Tp, _As > &... __xs )
constexpr

Definition at line 4381 of file simd.h.

◆ __to_intrin()

template<typename _Tp, typename _TVT = _VectorTraits<_Tp>, typename _R = __intrinsic_type_t<typename _TVT::value_type, _TVT::_S_full_size>>
_GLIBCXX_SIMD_INTRINSIC constexpr _R __to_intrin ( _Tp __x)
constexpr

Definition at line 1830 of file simd.h.

◆ __to_value_type_or_member_type() [1/2]

template<typename _V>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __to_value_type_or_member_type ( const _V & __x) -> decltype(__data(__x))
constexpr

Definition at line 981 of file simd.h.

◆ __to_value_type_or_member_type() [2/2]

template<typename _V>
_GLIBCXX_SIMD_INTRINSIC constexpr const _V::value_type & __to_value_type_or_member_type ( const typename _V::value_type & __x)
constexpr

Definition at line 986 of file simd.h.

◆ __vec_shuffle() [1/2]

template<typename _T0, typename _Fun, typename _Seq>
_GLIBCXX_SIMD_INTRINSIC constexpr auto __vec_shuffle ( _T0 __x,
_Seq __seq,
_Fun __idx_perm )
constexpr

Definition at line 2141 of file simd.h.

◆ __vec_shuffle() [2/2]

template<typename _T0, typename _T1, typename _Fun, size_t... _Is>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< remove_reference_t< decltype(declval< _T0 >()[0])>, sizeof...(_Is)> __vec_shuffle ( _T0 __x,
_T1 __y,
index_sequence< _Is... > __seq,
_Fun __idx_perm )
constexpr

Definition at line 2083 of file simd.h.

◆ __vector_bitcast() [1/2]

template<typename _To, size_t _NN = 0, typename _From, typename _FromVT = _VectorTraits<_From>, size_t _Np = _NN == 0 ? sizeof(_From) / sizeof(_To) : _NN>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _To, _Np > __vector_bitcast ( _From __x)
constexpr

Definition at line 1747 of file simd.h.

◆ __vector_bitcast() [2/2]

template<typename _To, size_t _NN = 0, typename _Tp, size_t _Nx, size_t _Np = _NN == 0 ? sizeof(_SimdWrapper<_Tp, _Nx>) / sizeof(_To) : _NN>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _To, _Np > __vector_bitcast ( const _SimdWrapper< _Tp, _Nx > & __x)
constexpr

Definition at line 1757 of file simd.h.

◆ __vector_broadcast()

template<size_t _Np, typename _Tp>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _Tp, _Np > __vector_broadcast ( _Tp __x)
constexpr

Definition at line 1860 of file simd.h.

◆ __vector_broadcast_impl()

template<size_t _Np, typename _Tp, size_t... _I>
_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< _Tp, _Np > __vector_broadcast_impl ( _Tp __x,
index_sequence< _I... >  )
constexpr

Definition at line 1855 of file simd.h.

◆ __vectorized_sizeof()

template<typename _Tp>
size_t __vectorized_sizeof ( )
constexpr

Definition at line 2916 of file simd.h.

◆ __xor()

template<typename _TW>
_GLIBCXX_SIMD_INTRINSIC constexpr _TW __xor ( _TW __a,
_TW __b )
constexprnoexcept

Definition at line 1897 of file simd.h.

◆ __zero_extend()

template<typename _Tp, typename _TVT = _VectorTraits<_Tp>>
_GLIBCXX_SIMD_INTRINSIC _ZeroExtendProxy< _Tp, _TVT > __zero_extend ( _Tp __x)

Definition at line 2282 of file simd.h.

◆ all_of() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool all_of ( _ExactBool __x)
noexcept

Definition at line 5240 of file simd.h.

◆ all_of() [2/2]

template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool all_of ( const simd_mask< _Tp, _Abi > & __k)
noexcept

Definition at line 5123 of file simd.h.

◆ any_of() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool any_of ( _ExactBool __x)
noexcept

Definition at line 5244 of file simd.h.

◆ any_of() [2/2]

template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool any_of ( const simd_mask< _Tp, _Abi > & __k)
noexcept

Definition at line 5138 of file simd.h.

◆ clamp()

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd< _Tp, _Ap > clamp ( const simd< _Tp, _Ap > & __v,
const simd< _Tp, _Ap > & __lo,
const simd< _Tp, _Ap > & __hi )

Definition at line 4030 of file simd.h.

◆ concat() [1/2]

template<typename _Tp, typename _Abi, size_t _Np>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR __deduced_simd< _Tp, simd_size_v< _Tp, _Abi > *_Np > concat ( const array< simd< _Tp, _Abi >, _Np > & __x)

Definition at line 4452 of file simd.h.

◆ concat() [2/2]

template<typename _Tp, typename... _As, typename = __detail::__odr_helper>
_GLIBCXX_SIMD_CONSTEXPR simd< _Tp, simd_abi::deduce_t< _Tp,(simd_size_v< _Tp, _As >+...)> > concat ( const simd< _Tp, _As > &... __xs)
inline

Definition at line 4406 of file simd.h.

◆ find_first_set() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_first_set ( _ExactBool )

Definition at line 5260 of file simd.h.

◆ find_first_set() [2/2]

template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_first_set ( const simd_mask< _Tp, _Abi > & __k)

Definition at line 5199 of file simd.h.

◆ find_last_set() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_last_set ( _ExactBool )

Definition at line 5264 of file simd.h.

◆ find_last_set() [2/2]

template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_last_set ( const simd_mask< _Tp, _Abi > & __k)

Definition at line 5220 of file simd.h.

◆ hmax() [1/2]

template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V::value_type hmax ( const const_where_expression< _M, _V > & __x)
noexcept

Definition at line 3985 of file simd.h.

◆ hmax() [2/2]

template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp hmax ( const simd< _Tp, _Abi > & __v)
noexcept

Definition at line 3961 of file simd.h.

◆ hmin() [1/2]

template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V::value_type hmin ( const const_where_expression< _M, _V > & __x)
noexcept

Definition at line 3967 of file simd.h.

◆ hmin() [2/2]

template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp hmin ( const simd< _Tp, _Abi > & __v)
noexcept

Definition at line 3956 of file simd.h.

◆ max()

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd< _Tp, _Ap > max ( const simd< _Tp, _Ap > & __a,
const simd< _Tp, _Ap > & __b )

Definition at line 4014 of file simd.h.

◆ min()

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd< _Tp, _Ap > min ( const simd< _Tp, _Ap > & __a,
const simd< _Tp, _Ap > & __b )

Definition at line 4009 of file simd.h.

◆ minmax()

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR pair< simd< _Tp, _Ap >, simd< _Tp, _Ap > > minmax ( const simd< _Tp, _Ap > & __a,
const simd< _Tp, _Ap > & __b )

Definition at line 4020 of file simd.h.

◆ none_of() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool none_of ( _ExactBool __x)
noexcept

Definition at line 5248 of file simd.h.

◆ none_of() [2/2]

template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool none_of ( const simd_mask< _Tp, _Abi > & __k)
noexcept

Definition at line 5153 of file simd.h.

◆ popcount() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int popcount ( _ExactBool __x)
noexcept

Definition at line 5256 of file simd.h.

◆ popcount() [2/2]

template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int popcount ( const simd_mask< _Tp, _Abi > & __k)
noexcept

Definition at line 5183 of file simd.h.

◆ reduce() [1/7]

template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce ( const const_where_expression< _M, _V > & __x,
bit_and<> __binary_op )

Definition at line 3941 of file simd.h.

◆ reduce() [2/7]

template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce ( const const_where_expression< _M, _V > & __x,
bit_or<> __binary_op )

Definition at line 3946 of file simd.h.

◆ reduce() [3/7]

template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce ( const const_where_expression< _M, _V > & __x,
bit_xor<> __binary_op )

Definition at line 3951 of file simd.h.

◆ reduce() [4/7]

template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce ( const const_where_expression< _M, _V > & __x,
multiplies<> __binary_op )

Definition at line 3936 of file simd.h.

◆ reduce() [5/7]

template<typename _M, typename _V>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce ( const const_where_expression< _M, _V > & __x,
plus<> __binary_op = {} )

Definition at line 3931 of file simd.h.

◆ reduce() [6/7]

template<typename _M, typename _V, typename _BinaryOperation = plus<>>
_GLIBCXX_SIMD_INTRINSIC _V::value_type reduce ( const const_where_expression< _M, _V > & __x,
typename _V::value_type __identity_element,
_BinaryOperation __binary_op )

Definition at line 3917 of file simd.h.

◆ reduce() [7/7]

template<typename _Tp, typename _Abi, typename _BinaryOperation = plus<>>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp reduce ( const simd< _Tp, _Abi > & __v,
_BinaryOperation __binary_op = _BinaryOperation() )

Definition at line 3912 of file simd.h.

◆ simd_cast()

template<typename _Tp, typename _Up, typename _Ap, typename _To = __value_type_or_identity_t<_Tp>>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR auto simd_cast ( const simd< _ValuePreserving< _Up, _To >, _Ap > & __x) -> decltype(static_simd_cast< _Tp >(__x))

Definition at line 3349 of file simd.h.

◆ some_of() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool some_of ( _ExactBool )
noexcept

Definition at line 5252 of file simd.h.

◆ some_of() [2/2]

template<typename _Tp, typename _Abi>
_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool some_of ( const simd_mask< _Tp, _Abi > & __k)
noexcept

Definition at line 5168 of file simd.h.

◆ split() [1/3]

template<size_t... _Sizes, typename _Tp, typename _Ap, typename = enable_if_t<((_Sizes + ...) == simd<_Tp, _Ap>::size())>>
tuple< simd< _Tp, simd_abi::deduce_t< _Tp, _Sizes > >... > split ( const simd< _Tp, _Ap > & __x)
inline

Definition at line 4286 of file simd.h.

◆ split() [2/3]

template<typename _V, typename _Ap, size_t _Parts = simd_size_v<typename _V::value_type, _Ap> / _V::size()>
enable_if_t< simd_size_v< typename _V::value_type, _Ap >==_Parts *_V::size() &&is_simd_v< _V >, array< _V, _Parts > > split ( const simd< typename _V::value_type, _Ap > & __x)

Definition at line 4169 of file simd.h.

◆ split() [3/3]

template<typename _V, typename _Ap, size_t _Parts = simd_size_v<typename _V::simd_type::value_type, _Ap> / _V::size()>
enable_if_t< is_simd_mask_v< _V > &&simd_size_v< typename _V::simd_type::value_type, _Ap >==_Parts *_V::size(), array< _V, _Parts > > split ( const simd_mask< typename _V::simd_type::value_type, _Ap > & __x)

Definition at line 4249 of file simd.h.

◆ static_simd_cast()

template<typename _Tp, typename _Up, typename _Ap, typename _R = typename __static_simd_cast_return_type<_Tp, _Up, _Ap>::type>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _R static_simd_cast ( const simd< _Up, _Ap > & __x)

Definition at line 3268 of file simd.h.

◆ to_compatible() [1/2]

template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np==simd< _Tp >::size()), simd< _Tp > > to_compatible ( const simd< _Tp, simd_abi::fixed_size< _Np > > & __x)

Definition at line 3487 of file simd.h.

◆ to_compatible() [2/2]

template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np==simd_mask< _Tp >::size()), simd_mask< _Tp > > to_compatible ( const simd_mask< _Tp, simd_abi::fixed_size< _Np > > & __x)

Definition at line 3497 of file simd.h.

◆ to_fixed_size() [1/4]

template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC fixed_size_simd< _Tp, _Np > to_fixed_size ( const fixed_size_simd< _Tp, _Np > & __x)

Definition at line 3439 of file simd.h.

◆ to_fixed_size() [2/4]

template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC fixed_size_simd_mask< _Tp, _Np > to_fixed_size ( const fixed_size_simd_mask< _Tp, _Np > & __x)

Definition at line 3444 of file simd.h.

◆ to_fixed_size() [3/4]

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC fixed_size_simd< _Tp, simd_size_v< _Tp, _Ap > > to_fixed_size ( const simd< _Tp, _Ap > & __x)

Definition at line 3449 of file simd.h.

◆ to_fixed_size() [4/4]

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC fixed_size_simd_mask< _Tp, simd_size_v< _Tp, _Ap > > to_fixed_size ( const simd_mask< _Tp, _Ap > & __x)

Definition at line 3457 of file simd.h.

◆ to_native() [1/2]

template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np==native_simd< _Tp >::size()), native_simd< _Tp > > to_native ( const fixed_size_simd< _Tp, _Np > & __x)

Definition at line 3467 of file simd.h.

◆ to_native() [2/2]

template<typename _Tp, int _Np>
_GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np==native_simd_mask< _Tp >::size()), native_simd_mask< _Tp > > to_native ( const fixed_size_simd_mask< _Tp, _Np > & __x)

Definition at line 3477 of file simd.h.

◆ where() [1/6]

template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR where_expression< bool, _Tp > where ( _ExactBool __k,
_Tp & __value )

Definition at line 3810 of file simd.h.

◆ where() [2/6]

template<typename _Tp>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR const_where_expression< bool, _Tp > where ( _ExactBool __k,
const _Tp & __value )

Definition at line 3815 of file simd.h.

◆ where() [3/6]

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR const_where_expression< simd_mask< _Tp, _Ap >, simd_mask< _Tp, _Ap > > where ( const remove_const_t< simd_mask< _Tp, _Ap > > & __k,
const simd_mask< _Tp, _Ap > & __value )

Definition at line 3805 of file simd.h.

◆ where() [4/6]

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR where_expression< simd_mask< _Tp, _Ap >, simd_mask< _Tp, _Ap > > where ( const remove_const_t< simd_mask< _Tp, _Ap > > & __k,
simd_mask< _Tp, _Ap > & __value )

Definition at line 3799 of file simd.h.

◆ where() [5/6]

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR const_where_expression< simd_mask< _Tp, _Ap >, simd< _Tp, _Ap > > where ( const typename simd< _Tp, _Ap >::mask_type & __k,
const simd< _Tp, _Ap > & __value )

Definition at line 3793 of file simd.h.

◆ where() [6/6]

template<typename _Tp, typename _Ap>
_GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR where_expression< simd_mask< _Tp, _Ap >, simd< _Tp, _Ap > > where ( const typename simd< _Tp, _Ap >::mask_type & __k,
simd< _Tp, _Ap > & __value )

Definition at line 3787 of file simd.h.

Variable Documentation

◆ __abi_bytes_v

template<typename _Abi>
int __abi_bytes_v
inlineconstexpr

Definition at line 705 of file simd.h.

◆ __have_avx

bool __have_avx
inlineconstexpr

Definition at line 238 of file simd.h.

◆ __have_avx2

bool __have_avx2
inlineconstexpr

Definition at line 239 of file simd.h.

◆ __have_avx512bitalg

bool __have_avx512bitalg
inlineconstexpr

Definition at line 254 of file simd.h.

◆ __have_avx512bw

bool __have_avx512bw
inlineconstexpr

Definition at line 251 of file simd.h.

◆ __have_avx512bw_vl

bool __have_avx512bw_vl
inlineconstexpr

Definition at line 253 of file simd.h.

◆ __have_avx512cd

bool __have_avx512cd
inlineconstexpr

Definition at line 258 of file simd.h.

◆ __have_avx512dq

bool __have_avx512dq
inlineconstexpr

Definition at line 249 of file simd.h.

◆ __have_avx512dq_vl

bool __have_avx512dq_vl
inlineconstexpr

Definition at line 252 of file simd.h.

◆ __have_avx512f

bool __have_avx512f
inlineconstexpr

Definition at line 248 of file simd.h.

◆ __have_avx512ifma

bool __have_avx512ifma
inlineconstexpr

Definition at line 257 of file simd.h.

◆ __have_avx512vbmi

bool __have_avx512vbmi
inlineconstexpr

Definition at line 256 of file simd.h.

◆ __have_avx512vbmi2

bool __have_avx512vbmi2
inlineconstexpr

Definition at line 255 of file simd.h.

◆ __have_avx512vl

bool __have_avx512vl
inlineconstexpr

Definition at line 250 of file simd.h.

◆ __have_avx512vnni

bool __have_avx512vnni
inlineconstexpr

Definition at line 259 of file simd.h.

◆ __have_avx512vp2intersect

bool __have_avx512vp2intersect
inlineconstexpr

Definition at line 261 of file simd.h.

◆ __have_avx512vpopcntdq

bool __have_avx512vpopcntdq
inlineconstexpr

Definition at line 260 of file simd.h.

◆ __have_bmi

bool __have_bmi
inlineconstexpr

Definition at line 240 of file simd.h.

◆ __have_bmi2

bool __have_bmi2
inlineconstexpr

Definition at line 241 of file simd.h.

◆ __have_f16c

bool __have_f16c
inlineconstexpr

Definition at line 246 of file simd.h.

◆ __have_fma

bool __have_fma
inlineconstexpr

Definition at line 244 of file simd.h.

◆ __have_fma4

bool __have_fma4
inlineconstexpr

Definition at line 245 of file simd.h.

◆ __have_lzcnt

bool __have_lzcnt
inlineconstexpr

Definition at line 242 of file simd.h.

◆ __have_mmx

bool __have_mmx
inlineconstexpr

Definition at line 230 of file simd.h.

◆ __have_neon

bool __have_neon
inlineconstexpr

Definition at line 263 of file simd.h.

◆ __have_neon_a32

bool __have_neon_a32
inlineconstexpr

Definition at line 264 of file simd.h.

◆ __have_neon_a64

bool __have_neon_a64
inlineconstexpr

Definition at line 265 of file simd.h.

◆ __have_popcnt

bool __have_popcnt
inlineconstexpr

Definition at line 247 of file simd.h.

◆ __have_power10vec

bool __have_power10vec
inlineconstexpr

Definition at line 281 of file simd.h.

◆ __have_power8vec

bool __have_power8vec
inlineconstexpr

Definition at line 291 of file simd.h.

◆ __have_power9vec

bool __have_power9vec
inlineconstexpr

Definition at line 286 of file simd.h.

◆ __have_power_vmx

bool __have_power_vmx
inlineconstexpr

Definition at line 301 of file simd.h.

◆ __have_power_vsx

bool __have_power_vsx
inlineconstexpr

Definition at line 296 of file simd.h.

◆ __have_sse

bool __have_sse
inlineconstexpr

Definition at line 231 of file simd.h.

◆ __have_sse2

bool __have_sse2
inlineconstexpr

Definition at line 232 of file simd.h.

◆ __have_sse3

bool __have_sse3
inlineconstexpr

Definition at line 233 of file simd.h.

◆ __have_sse4_1

bool __have_sse4_1
inlineconstexpr

Definition at line 235 of file simd.h.

◆ __have_sse4_2

bool __have_sse4_2
inlineconstexpr

Definition at line 236 of file simd.h.

◆ __have_sse4a

bool __have_sse4a
inlineconstexpr

Definition at line 243 of file simd.h.

◆ __have_ssse3

bool __have_ssse3
inlineconstexpr

Definition at line 234 of file simd.h.

◆ __have_sve

bool __have_sve
inlineconstexpr

Definition at line 275 of file simd.h.

◆ __have_sve2

bool __have_sve2
inlineconstexpr

Definition at line 276 of file simd.h.

◆ __have_xop

bool __have_xop
inlineconstexpr

Definition at line 237 of file simd.h.

◆ __is_bitmask_v

template<typename _Tp>
bool __is_bitmask_v
inlineconstexpr

Definition at line 589 of file simd.h.

◆ __is_fixed_size_abi_v

template<typename _Tp>
bool __is_fixed_size_abi_v
inlineconstexpr

Definition at line 683 of file simd.h.

◆ __is_intrinsic_type_v

template<typename _Tp>
bool __is_intrinsic_type_v
inlineconstexpr

Definition at line 1599 of file simd.h.

◆ __is_simd_wrapper_v

template<typename _Tp>
bool __is_simd_wrapper_v
inlineconstexpr

Definition at line 1043 of file simd.h.

◆ __is_vector_type_v

template<typename _Tp>
bool __is_vector_type_v
inlineconstexpr

Definition at line 1578 of file simd.h.

◆ __is_vectorizable_v

template<typename _Tp>
bool __is_vectorizable_v
inlineconstexpr

Definition at line 562 of file simd.h.

◆ __min_vector_size

template<typename _Tp = void>
int __min_vector_size
inlinestaticconstexpr

Definition at line 1499 of file simd.h.

◆ __min_vector_size< void >

template<>
int __min_vector_size< void >
inlineconstexpr

Definition at line 1506 of file simd.h.

◆ __size_or_zero_v

template<typename _Tp, typename _Ap>
size_t __size_or_zero_v
inlineconstexpr

Definition at line 810 of file simd.h.

◆ __support_neon_float

bool __support_neon_float
inlineconstexpr

Definition at line 266 of file simd.h.

◆ __sve_vectorized_size_bytes

int __sve_vectorized_size_bytes
inlineconstexpr

Definition at line 98 of file simd.h.

◆ element_aligned

element_aligned_tag element_aligned
inlineconstexpr

Definition at line 219 of file simd.h.

◆ is_abi_tag_v

template<typename _Tp>
bool is_abi_tag_v
inlineconstexpr

Definition at line 3061 of file simd.h.

◆ is_simd_flag_type_v

template<typename _Tp>
bool is_simd_flag_type_v
inlineconstexpr

Definition at line 3047 of file simd.h.

◆ is_simd_mask_v

template<typename _Tp>
bool is_simd_mask_v
inlineconstexpr

Definition at line 3074 of file simd.h.

◆ is_simd_v

template<typename _Tp>
bool is_simd_v
inlineconstexpr

Definition at line 3068 of file simd.h.

◆ memory_alignment_v

template<typename _Tp, typename _Up = typename _Tp::value_type>
size_t memory_alignment_v
inlineconstexpr

Definition at line 3175 of file simd.h.

◆ overaligned

template<size_t _Np>
overaligned_tag<_Np> overaligned
inlineconstexpr

Definition at line 224 of file simd.h.

◆ simd_size_v

template<typename _Tp, typename _Abi = simd_abi::__default_abi<_Tp>>
size_t simd_size_v
inlineconstexpr

Definition at line 3090 of file simd.h.

◆ vector_aligned

vector_aligned_tag vector_aligned
inlineconstexpr

Definition at line 221 of file simd.h.