Data parallel extensions
Technical Specifications » Parallelism TS
Collaboration diagram for Data parallel extensions:

## Macros

#define | __cpp_lib_experimental_parallel_simd
using | __m128 = float
using | __m128d = double
using | __m128i = long long
using | __m256 = float
using | __m256d = double
using | __m256i = long long
using | __m512 = float
using | __m512d = double
using | __m512i = long long
template<size_t _Xp>
using | _SizeConstant = integral_constant< size_t, _Xp >
using | _UChar = unsigned char
using | _SChar = signed char
using | _UShort = unsigned short
using | _UInt = unsigned int
using | _ULong = unsigned long
using | _ULLong = unsigned long long
using | _LLong = long long
template<typename... _Ts>
using | __first_of_pack_t = typename __first_of_pack< _Ts... >::type
template<typename _Tp >
using | __value_type_or_identity_t = decltype(__value_type_or_identity_impl< _Tp >(int()))
template<typename _Tp , typename = enable_if_t<__is_vectorizable_v<_Tp>>>
using | _Vectorizable = _Tp
template<typename _Ptr , typename _ValueType , typename = enable_if_t< __is_possible_loadstore_conversion<_Ptr, _ValueType>::value>>
using | _LoadStorePtr = _Ptr
template<typename _Tp >
using | __int_for_sizeof_t = decltype(__int_for_sizeof< sizeof(_Tp)>())
template<size_t _Np>
using | __int_with_sizeof_t = decltype(__int_for_sizeof< _Np >())
template<typename _Tp , typename _Up >
using | __make_dependent_t = typename __make_dependent< _Tp, _Up >::type
template<typename _Tp >
using | __may_alias = _Tp
template<size_t _Size>
using | __bool_storage_member_type_t = typename __bool_storage_member_type< _Size >::type
template<typename _Tp , int _Np>
using | __fixed_size_storage_t = typename __fixed_size_storage< _Tp, _Np >::type
template<typename _Tp >
using | _SimdWrapper8 = _SimdWrapper< _Tp, 8/sizeof(_Tp)>
template<typename _Tp >
using | _SimdWrapper16 = _SimdWrapper< _Tp, 16/sizeof(_Tp)>
template<typename _Tp >
using | _SimdWrapper32 = _SimdWrapper< _Tp, 32/sizeof(_Tp)>
template<typename _Tp >
using | _SimdWrapper64 = _SimdWrapper< _Tp, 64/sizeof(_Tp)>
template<typename _From , typename _To , typename = enable_if_t<negation< __is_narrowing_conversion<__remove_cvref_t<_From>, _To>>::value>>
using | _ValuePreserving = _From
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 = _From
template<typename _Tp , size_t _Size>
using | __intrinsic_type_t = typename __intrinsic_type< _Tp, _Size *sizeof(_Tp)>::type
template<typename _Tp >
using | __intrinsic_type2_t = typename __intrinsic_type< _Tp, 2 >::type
template<typename _Tp >
using | __intrinsic_type4_t = typename __intrinsic_type< _Tp, 4 >::type
template<typename _Tp >
using | __intrinsic_type8_t = typename __intrinsic_type< _Tp, 8 >::type
template<typename _Tp >
using | __intrinsic_type16_t = typename __intrinsic_type< _Tp, 16 >::type
template<typename _Tp >
using | __intrinsic_type32_t = typename __intrinsic_type< _Tp, 32 >::type
template<typename _Tp >
using | __intrinsic_type64_t = typename __intrinsic_type< _Tp, 64 >::type
template<size_t _Np>
using | _SanitizedBitMask = _BitMask< _Np, true >
template<typename _Tp , size_t _Size>
using | __vector_type_t = typename __vector_type_n< _Tp, _Size >::type
template<typename _Tp >
using | __vector_type2_t = typename __vector_type< _Tp, 2 >::type
template<typename _Tp >
using | __vector_type4_t = typename __vector_type< _Tp, 4 >::type
template<typename _Tp >
using | __vector_type8_t = typename __vector_type< _Tp, 8 >::type
template<typename _Tp >
using | __vector_type16_t = typename __vector_type< _Tp, 16 >::type
template<typename _Tp >
using | __vector_type32_t = typename __vector_type< _Tp, 32 >::type
template<typename _Tp >
using | __vector_type64_t = typename __vector_type< _Tp, 64 >::type
template<typename _Tp , typename = typename _VectorTraitsImpl<_Tp>::type>
using | _VectorTraits = _VectorTraitsImpl< _Tp >
using | _Tp = remove_reference_t< decltype(declval< _T0 >()[0])>
using | _RV = __vector_type_t< _Tp, sizeof...(_Is)>
template<typename _Tp , typename = enable_if_t<is_simd_flag_type_v<_Tp>>>
using | _IsSimdFlagType = _Tp
template<typename _Tp , typename _V >
using | rebind_simd_t = typename rebind_simd< _Tp, _V >::type
template<int _Np, typename _V >
using | resize_simd_t = typename resize_simd< _Np, _V >::type
template<typename _Tp >
using | native_simd = simd< _Tp, simd_abi::native< _Tp > >
template<typename _Tp , int _Np>
using | fixed_size_simd = simd< _Tp, simd_abi::fixed_size< _Np > >
template<typename _Tp , size_t _Np>
using | __deduced_simd = simd< _Tp, simd_abi::deduce_t< _Tp, _Np > >
template<typename _Tp >
using | native_simd_mask = simd_mask< _Tp, simd_abi::native< _Tp > >
template<typename _Tp , int _Np>
using | fixed_size_simd_mask = simd_mask< _Tp, simd_abi::fixed_size< _Np > >
template<typename _Tp , size_t _Np>
using | __deduced_simd_mask = simd_mask< _Tp, simd_abi::deduce_t< _Tp, _Np > >
template<typename _Tp >
using | safe_make_signed_t = typename __safe_make_signed< _Tp >::type
typedef _GLIBCXX_SIMD_INTRINSIC constexpr _T1 index_sequence< _Is... > | __seq
typedef _GLIBCXX_SIMD_INTRINSIC constexpr _T1 index_sequence< _Is... > _Fun | __idx_perm
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 _T0 , typename _T1 , typename _Fun , size_t... _Is>
_GLIBCXX_SIMD_INTRINSIC constexpr | __vector_type_t< remove_reference_t< decltype(declval< _T0 >()[0])>
_GLIBCXX_SIMD_INTRINSIC constexpr _T1 | __y
constexpr int | _N1
return | __r
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
_GLIBCXX_SIMD_INTRINSIC constexpr | sizeof (_Is)> __vec_shuffle(_T0 __x
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 = typename __bool_storage_member_type<_Size>::type

Definition at line 996 of file simd.h.

## __deduced_simd

template<typename _Tp , size_t _Np>

using __deduced_simd = simd<_Tp, simd_abi::deduce_t<_Tp, _Np> >

Definition at line 3190 of file simd.h.

## __deduced_simd_mask

template<typename _Tp , size_t _Np>

using __deduced_simd_mask = simd_mask<_Tp, simd_abi::deduce_t<_Tp, _Np> >

Definition at line 3206 of file simd.h.

## __first_of_pack_t

template<typename... _Ts>

using __first_of_pack_t = typename __first_of_pack<_Ts...>::type

Definition at line 538 of file simd.h.

## __fixed_size_storage_t

template<typename _Tp , int _Np>

using __fixed_size_storage_t = typename __fixed_size_storage<_Tp, _Np>::type

Definition at line 1016 of file simd.h.

## __idx_perm

_GLIBCXX_SIMD_INTRINSIC constexpr _T1 index_sequence<_Is...> _Fun __idx_perm

Definition at line 2084 of file simd.h.

## __int_for_sizeof_t

template<typename _Tp >

using __int_for_sizeof_t = decltype(__int_for_sizeof<sizeof(_Tp)>())

Definition at line 670 of file simd.h.

## __int_with_sizeof_t

template<size_t _Np>

using __int_with_sizeof_t = decltype(__int_for_sizeof<_Np>())

Definition at line 673 of file simd.h.

## __intrinsic_type16_t

template<typename _Tp >

using __intrinsic_type16_t = typename __intrinsic_type<_Tp, 16>::type

Definition at line 1132 of file simd.h.

## __intrinsic_type2_t

template<typename _Tp >

using __intrinsic_type2_t = typename __intrinsic_type<_Tp, 2>::type

Definition at line 1126 of file simd.h.

## __intrinsic_type32_t

template<typename _Tp >

using __intrinsic_type32_t = typename __intrinsic_type<_Tp, 32>::type

Definition at line 1134 of file simd.h.

## __intrinsic_type4_t

template<typename _Tp >

using __intrinsic_type4_t = typename __intrinsic_type<_Tp, 4>::type

Definition at line 1128 of file simd.h.

## __intrinsic_type64_t

template<typename _Tp >

using __intrinsic_type64_t = typename __intrinsic_type<_Tp, 64>::type

Definition at line 1136 of file simd.h.

## __intrinsic_type8_t

template<typename _Tp >

using __intrinsic_type8_t = typename __intrinsic_type<_Tp, 8>::type

Definition at line 1130 of file simd.h.

## __intrinsic_type_t

template<typename _Tp , size_t _Size>

using __intrinsic_type_t = typename __intrinsic_type<_Tp, _Size * sizeof(_Tp)>::type

Definition at line 1122 of file simd.h.

## __m128

using __m128 = float

Definition at line 84 of file simd.h.

## __m128d

using __m128d = double

Definition at line 85 of file simd.h.

## __m128i

using __m128i = long long

Definition at line 86 of file simd.h.

## __m256

using __m256 = float

Definition at line 87 of file simd.h.

## __m256d

using __m256d = double

Definition at line 88 of file simd.h.

## __m256i

using __m256i = long long

Definition at line 89 of file simd.h.

## __m512

using __m512 = float

Definition at line 90 of file simd.h.

## __m512d

using __m512d = double

Definition at line 91 of file simd.h.

## __m512i

using __m512i = long long

Definition at line 92 of file simd.h.

## __make_dependent_t

template<typename _Tp , typename _Up >

using __make_dependent_t = typename __make_dependent<_Tp, _Up>::type

Definition at line 774 of file simd.h.

## __may_alias

template<typename _Tp >

using __may_alias = _Tp

Definition at line 845 of file simd.h.

## __seq

_GLIBCXX_SIMD_INTRINSIC constexpr _T1 index_sequence<_Is...> __seq

Definition at line 2084 of file simd.h.

## __value_type_or_identity_t

template<typename _Tp >

using __value_type_or_identity_t = decltype(__value_type_or_identity_impl<_Tp>(int()))

Definition at line 551 of file simd.h.

## __vector_type16_t

template<typename _Tp >

using __vector_type16_t = typename __vector_type<_Tp, 16>::type

Definition at line 1559 of file simd.h.

## __vector_type2_t

template<typename _Tp >

using __vector_type2_t = typename __vector_type<_Tp, 2>::type

Definition at line 1553 of file simd.h.

## __vector_type32_t

template<typename _Tp >

using __vector_type32_t = typename __vector_type<_Tp, 32>::type

Definition at line 1561 of file simd.h.

## __vector_type4_t

template<typename _Tp >

using __vector_type4_t = typename __vector_type<_Tp, 4>::type

Definition at line 1555 of file simd.h.

## __vector_type64_t

template<typename _Tp >

using __vector_type64_t = typename __vector_type<_Tp, 64>::type

Definition at line 1563 of file simd.h.

## __vector_type8_t

template<typename _Tp >

using __vector_type8_t = typename __vector_type<_Tp, 8>::type

Definition at line 1557 of file simd.h.

## __vector_type_t

template<typename _Tp , size_t _Size>

using __vector_type_t = typename __vector_type_n<_Tp, _Size>::type

Definition at line 1550 of file simd.h.

## _IsSimdFlagType

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

using _IsSimdFlagType = _Tp

Definition at line 3049 of file simd.h.

## _LLong

using _LLong = long long

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 = _Ptr

Definition at line 582 of file simd.h.

## _RV

using _RV = __vector_type_t<_Tp, sizeof...(_Is)>

Definition at line 2089 of file simd.h.

## _SanitizedBitMask

template<size_t _Np>

using _SanitizedBitMask = _BitMask<_Np, true>

Definition at line 1147 of file simd.h.

## _SChar

using _SChar = signed char

Definition at line 524 of file simd.h.

## _SimdWrapper16

template<typename _Tp >

using _SimdWrapper16 = _SimdWrapper<_Tp, 16 / sizeof(_Tp)>

Definition at line 1026 of file simd.h.

## _SimdWrapper32

template<typename _Tp >

using _SimdWrapper32 = _SimdWrapper<_Tp, 32 / sizeof(_Tp)>

Definition at line 1028 of file simd.h.

## _SimdWrapper64

template<typename _Tp >

using _SimdWrapper64 = _SimdWrapper<_Tp, 64 / sizeof(_Tp)>

Definition at line 1030 of file simd.h.

## _SimdWrapper8

template<typename _Tp >

using _SimdWrapper8 = _SimdWrapper<_Tp, 8 / sizeof(_Tp)>

Definition at line 1024 of file simd.h.

## _SizeConstant

template<size_t _Xp>

using _SizeConstant = integral_constant<size_t, _Xp>

Definition at line 228 of file simd.h.

## _Tp

using _Tp = remove_reference_t<decltype(declval<_T0>()[0])>

Definition at line 2088 of file simd.h.

## _UChar

using _UChar = unsigned char

Definition at line 523 of file simd.h.

## _UInt

using _UInt = unsigned int

Definition at line 526 of file simd.h.

## _ULLong

using _ULLong = unsigned long long

Definition at line 528 of file simd.h.

## _ULong

using _ULong = unsigned long

Definition at line 527 of file simd.h.

## _UShort

using _UShort = unsigned short

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 = _From

Definition at line 1104 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 = _From

Definition at line 1114 of file simd.h.

## _Vectorizable

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

using _Vectorizable = _Tp

Definition at line 567 of file simd.h.

## _VectorTraits

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

using _VectorTraits = _VectorTraitsImpl<_Tp>

Definition at line 1636 of file simd.h.

## fixed_size_simd

template<typename _Tp , int _Np>

using fixed_size_simd = simd<_Tp, simd_abi::fixed_size<_Np> >

Definition at line 3187 of file simd.h.

## fixed_size_simd_mask

template<typename _Tp , int _Np>

using fixed_size_simd_mask = simd_mask<_Tp, simd_abi::fixed_size<_Np> >

Definition at line 3203 of file simd.h.

## native_simd

template<typename _Tp >

using native_simd = simd<_Tp, simd_abi::native<_Tp> >

Definition at line 3184 of file simd.h.

## native_simd_mask

template<typename _Tp >

using native_simd_mask = simd_mask<_Tp, simd_abi::native<_Tp> >

Definition at line 3200 of file simd.h.

## rebind_simd_t

template<typename _Tp , typename _V >

using rebind_simd_t = typename rebind_simd<_Tp, _V>::type

Definition at line 3150 of file simd.h.

## resize_simd_t

template<int _Np, typename _V >

using resize_simd_t = typename resize_simd<_Np, _V>::type

Definition at line 3165 of file simd.h.

## safe_make_signed_t

template<typename _Tp >

using safe_make_signed_t = typename __safe_make_signed<_Tp>::type

Definition at line 3243 of file simd.h.

## Function Documentation

## __abi_bytes_impl() [1/2]

template<template< int > class _Abi, int _Bytes>

constexpr int __abi_bytes_impl | ( | _Abi< _Bytes > * |  | ) |

constexpr

Definition at line 697 of file simd.h.

## __abi_bytes_impl() [2/2]

template<typename _Tp >

constexpr int __abi_bytes_impl | ( | _Tp * |  | ) |

constexpr

Definition at line 702 of file simd.h.

## __and()

template<typename _TW >

_GLIBCXX_SIMD_INTRINSIC constexpr _TW __and | ( | _TW | __a,
|  | _TW | __b
| ) |  |

constexpr noexcept

Definition at line 1948 of file simd.h.

## __andnot()

template<typename _TW >

_GLIBCXX_SIMD_INTRINSIC constexpr _TW __andnot | ( | _TW | __a,
|  | _TW | __b
| ) |  |

constexpr noexcept

Definition at line 2035 of file simd.h.

## __as_vector()

template<typename _V >

_GLIBCXX_SIMD_INTRINSIC constexpr auto __as_vector | ( | _V | __x | ) |

constexpr

Definition at line 1642 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 1680 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 2424 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 2418 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 1788 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>>

constexpr _R __concat | ( | _Tp | a_,
|  | _Tp | b_
| ) |  |

constexpr

Definition at line 2150 of file simd.h.

## __div_roundup()

constexpr size_t __div_roundup | ( | size_t | __a,
|  | size_t | __b
| ) |  |

inline constexpr

Definition at line 817 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 2294 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 4095 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 4142 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 1873 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 1868 of file simd.h.

## __hi128()

template<typename _Tp >

_GLIBCXX_SIMD_INTRINSIC constexpr auto __hi128 | ( | _Tp | __x | ) |

constexpr

Definition at line 2378 of file simd.h.

## __hi256()

template<typename _Tp >

_GLIBCXX_SIMD_INTRINSIC constexpr auto __hi256 | ( | _Tp | __x | ) |

constexpr

Definition at line 2396 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 2350 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 2361 of file simd.h.

## __int_for_sizeof()

template<size_t _Bytes>

constexpr auto __int_for_sizeof | ( |  | ) |

constexpr

Definition at line 604 of file simd.h.

## __intrin_bitcast()

template<typename _To , typename _From >

_GLIBCXX_SIMD_INTRINSIC constexpr _To __intrin_bitcast | ( | _From | __v | ) |

constexpr

Definition at line 1701 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 782 of file simd.h.

## __is_avx512_abi()

template<typename _Abi >

constexpr bool __is_avx512_abi | ( |  | ) |

constexpr

Definition at line 741 of file simd.h.

## __is_avx_abi()

template<typename _Abi >

constexpr bool __is_avx_abi | ( |  | ) |

constexpr

Definition at line 730 of file simd.h.

## __is_builtin_bitmask_abi()

template<typename _Abi >

constexpr bool __is_builtin_bitmask_abi | ( |  | ) |

constexpr

Definition at line 713 of file simd.h.

## __is_neon_abi()

template<typename _Abi >

constexpr bool __is_neon_abi | ( |  | ) |

constexpr

Definition at line 751 of file simd.h.

## __is_scalar_abi()

template<typename _Abi >

constexpr bool __is_scalar_abi | ( |  | ) |

constexpr

Definition at line 690 of file simd.h.

## __is_sse_abi()

template<typename _Abi >

constexpr bool __is_sse_abi | ( |  | ) |

constexpr

Definition at line 720 of file simd.h.

## __is_sve_abi()

template<typename _Abi >

constexpr bool __is_sve_abi | ( |  | ) |

constexpr

Definition at line 761 of file simd.h.

## __lo128()

template<typename _Tp >

_GLIBCXX_SIMD_INTRINSIC constexpr auto __lo128 | ( | _Tp | __x | ) |

constexpr

Definition at line 2373 of file simd.h.

## __lo256()

template<typename _Tp >

_GLIBCXX_SIMD_INTRINSIC constexpr auto __lo256 | ( | _Tp | __x | ) |

constexpr

Definition at line 2388 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 2340 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 1849 of file simd.h.

## __not()

template<typename _Tp , typename _TVT = _VectorTraits<_Tp>>

_GLIBCXX_SIMD_INTRINSIC constexpr _Tp __not | ( | _Tp | __a | ) |

constexpr noexcept

Definition at line 2070 of file simd.h.

## __or()

template<typename _TW >

_GLIBCXX_SIMD_INTRINSIC constexpr _TW __or | ( | _TW | __a,
|  | _TW | __b
| ) |  |

constexpr noexcept

Definition at line 1923 of file simd.h.

## __size_or_zero_dispatch() [1/2]

template<typename _Tp , typename _Ap >

constexpr size_t __size_or_zero_dispatch | ( | float |  | ) |

constexpr

Definition at line 807 of file simd.h.

## __size_or_zero_dispatch() [2/2]

template<typename _Tp , typename _Ap , size_t _Np = simd_size<_Tp, _Ap>::value>

constexpr size_t __size_or_zero_dispatch | ( | int |  | ) |

constexpr

Definition at line 802 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 4154 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 4392 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 4380 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 1831 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 982 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 987 of file simd.h.

## __vec_shuffle()

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 2142 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 1748 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 1758 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 1861 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 1856 of file simd.h.

## __vectorized_sizeof()

template<typename _Tp >

constexpr size_t __vectorized_sizeof | ( |  | ) |

constexpr

Definition at line 2915 of file simd.h.

## __xor()

template<typename _TW >

_GLIBCXX_SIMD_INTRINSIC constexpr _TW __xor | ( | _TW | __a,
|  | _TW | __b
| ) |  |

constexpr noexcept

Definition at line 1898 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 2283 of file simd.h.

## all_of() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool all_of | ( | _ExactBool | __x | ) |

noexcept

Definition at line 5239 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 5122 of file simd.h.

## any_of() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool any_of | ( | _ExactBool | __x | ) |

noexcept

Definition at line 5243 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 5137 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 4029 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 4451 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 4405 of file simd.h.

## find_first_set() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_first_set | ( | _ExactBool |  | ) |

Definition at line 5259 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 5198 of file simd.h.

## find_last_set() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int find_last_set | ( | _ExactBool |  | ) |

Definition at line 5263 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 5219 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 3984 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 3960 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 3966 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 3955 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 4013 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 4008 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 4019 of file simd.h.

## none_of() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool none_of | ( | _ExactBool | __x | ) |

noexcept

Definition at line 5247 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 5152 of file simd.h.

## popcount() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR int popcount | ( | _ExactBool | __x | ) |

noexcept

Definition at line 5255 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 5182 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 3940 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 3945 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 3950 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 3935 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 3930 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 3916 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 3911 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 3348 of file simd.h.

## some_of() [1/2]

_GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bool some_of | ( | _ExactBool |  | ) |

noexcept

Definition at line 5251 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 5167 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 4285 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 4168 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 4248 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 3267 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 3486 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 3496 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 3438 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 3443 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 3448 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 3456 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 3466 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 3476 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 3809 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 3814 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 3804 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 3798 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 3792 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 3786 of file simd.h.

## Variable Documentation

## __abi_bytes_v

template<typename _Abi >

constexpr int __abi_bytes_v

inline constexpr

Definition at line 706 of file simd.h.

## __have_avx

constexpr bool __have_avx

inline constexpr

Definition at line 238 of file simd.h.

## __have_avx2

constexpr bool __have_avx2

inline constexpr

Definition at line 239 of file simd.h.

## __have_avx512bitalg

constexpr bool __have_avx512bitalg

inline constexpr

Definition at line 254 of file simd.h.

## __have_avx512bw

constexpr bool __have_avx512bw

inline constexpr

Definition at line 251 of file simd.h.

## __have_avx512bw_vl

constexpr bool __have_avx512bw_vl

inline constexpr

Definition at line 253 of file simd.h.

## __have_avx512cd

constexpr bool __have_avx512cd

inline constexpr

Definition at line 258 of file simd.h.

## __have_avx512dq

constexpr bool __have_avx512dq

inline constexpr

Definition at line 249 of file simd.h.

## __have_avx512dq_vl

constexpr bool __have_avx512dq_vl

inline constexpr

Definition at line 252 of file simd.h.

## __have_avx512f

constexpr bool __have_avx512f

inline constexpr

Definition at line 248 of file simd.h.

## __have_avx512ifma

constexpr bool __have_avx512ifma

inline constexpr

Definition at line 257 of file simd.h.

## __have_avx512vbmi

constexpr bool __have_avx512vbmi

inline constexpr

Definition at line 256 of file simd.h.

## __have_avx512vbmi2

constexpr bool __have_avx512vbmi2

inline constexpr

Definition at line 255 of file simd.h.

## __have_avx512vl

constexpr bool __have_avx512vl

inline constexpr

Definition at line 250 of file simd.h.

## __have_avx512vnni

constexpr bool __have_avx512vnni

inline constexpr

Definition at line 259 of file simd.h.

## __have_avx512vp2intersect

constexpr bool __have_avx512vp2intersect

inline constexpr

Definition at line 261 of file simd.h.

## __have_avx512vpopcntdq

constexpr bool __have_avx512vpopcntdq

inline constexpr

Definition at line 260 of file simd.h.

## __have_bmi

constexpr bool __have_bmi

inline constexpr

Definition at line 240 of file simd.h.

## __have_bmi2

constexpr bool __have_bmi2

inline constexpr

Definition at line 241 of file simd.h.

## __have_f16c

constexpr bool __have_f16c

inline constexpr

Definition at line 246 of file simd.h.

## __have_fma

constexpr bool __have_fma

inline constexpr

Definition at line 244 of file simd.h.

## __have_fma4

constexpr bool __have_fma4

inline constexpr

Definition at line 245 of file simd.h.

## __have_lzcnt

constexpr bool __have_lzcnt

inline constexpr

Definition at line 242 of file simd.h.

## __have_mmx

constexpr bool __have_mmx

inline constexpr

Definition at line 230 of file simd.h.

## __have_neon

constexpr bool __have_neon

inline constexpr

Definition at line 263 of file simd.h.

## __have_neon_a32

constexpr bool __have_neon_a32

inline constexpr

Definition at line 264 of file simd.h.

## __have_neon_a64

constexpr bool __have_neon_a64

inline constexpr

Definition at line 265 of file simd.h.

## __have_popcnt

constexpr bool __have_popcnt

inline constexpr

Definition at line 247 of file simd.h.

## __have_power10vec

constexpr bool __have_power10vec

inline constexpr

Definition at line 281 of file simd.h.

## __have_power8vec

constexpr bool __have_power8vec

inline constexpr

Definition at line 291 of file simd.h.

## __have_power9vec

constexpr bool __have_power9vec

inline constexpr

Definition at line 286 of file simd.h.

## __have_power_vmx

constexpr bool __have_power_vmx

inline constexpr

Definition at line 301 of file simd.h.

## __have_power_vsx

constexpr bool __have_power_vsx

inline constexpr

Definition at line 296 of file simd.h.

## __have_sse

constexpr bool __have_sse

inline constexpr

Definition at line 231 of file simd.h.

## __have_sse2

constexpr bool __have_sse2

inline constexpr

Definition at line 232 of file simd.h.

## __have_sse3

constexpr bool __have_sse3

inline constexpr

Definition at line 233 of file simd.h.

## __have_sse4_1

constexpr bool __have_sse4_1

inline constexpr

Definition at line 235 of file simd.h.

## __have_sse4_2

constexpr bool __have_sse4_2

inline constexpr

Definition at line 236 of file simd.h.

## __have_sse4a

constexpr bool __have_sse4a

inline constexpr

Definition at line 243 of file simd.h.

## __have_ssse3

constexpr bool __have_ssse3

inline constexpr

Definition at line 234 of file simd.h.

## __have_sve

constexpr bool __have_sve

inline constexpr

Definition at line 275 of file simd.h.

## __have_sve2

constexpr bool __have_sve2

inline constexpr

Definition at line 276 of file simd.h.

## __have_xop

constexpr bool __have_xop

inline constexpr

Definition at line 237 of file simd.h.

## __is_bitmask_v

template<typename _Tp >

constexpr bool __is_bitmask_v

inline constexpr

Definition at line 590 of file simd.h.

## __is_fixed_size_abi_v

template<typename _Tp >

constexpr bool __is_fixed_size_abi_v

inline constexpr

Definition at line 684 of file simd.h.

## __is_intrinsic_type_v

template<typename _Tp >

constexpr bool __is_intrinsic_type_v

inline constexpr

Definition at line 1600 of file simd.h.

## __is_simd_wrapper_v

template<typename _Tp >

constexpr bool __is_simd_wrapper_v

inline constexpr

Definition at line 1044 of file simd.h.

## __is_vector_type_v

template<typename _Tp >

constexpr bool __is_vector_type_v

inline constexpr

Definition at line 1579 of file simd.h.

## __is_vectorizable_v

template<typename _Tp >

constexpr bool __is_vectorizable_v

inline constexpr

Definition at line 563 of file simd.h.

## __min_vector_size

template<typename _Tp = void>

constexpr int __min_vector_size

inline static constexpr

Definition at line 1500 of file simd.h.

## __min_vector_size< void >

template<>

constexpr int __min_vector_size< void >

inline constexpr

Definition at line 1507 of file simd.h.

## __r

return __r

Definition at line 2121 of file simd.h.

## __size_or_zero_v

template<typename _Tp , typename _Ap >

constexpr size_t __size_or_zero_v

inline constexpr

Definition at line 811 of file simd.h.

## __support_neon_float

constexpr bool __support_neon_float

inline constexpr

Definition at line 266 of file simd.h.

## __sve_vectorized_size_bytes

constexpr int __sve_vectorized_size_bytes

inline constexpr

Definition at line 98 of file simd.h.

## __vector_type_t< remove_reference_t< decltype(declval< _T0 >()[0])>

template<typename _T0 , typename _T1 , typename _Fun , size_t... _Is>

_GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t< remove_reference_t< decltype(declval< _T0 >()[0])>

constexpr

Definition at line 2082 of file simd.h.

## __y

_GLIBCXX_SIMD_INTRINSIC constexpr _T1 __y

Definition at line 2084 of file simd.h.

## _N1

constexpr int _N1

constexpr

Definition at line 2087 of file simd.h.

## element_aligned

constexpr element_aligned_tag element_aligned

inline constexpr

Definition at line 219 of file simd.h.

## is_abi_tag_v

template<typename _Tp >

constexpr bool is_abi_tag_v

inline constexpr

Definition at line 3060 of file simd.h.

## is_simd_flag_type_v

template<typename _Tp >

constexpr bool is_simd_flag_type_v

inline constexpr

Definition at line 3046 of file simd.h.

## is_simd_mask_v

template<typename _Tp >

constexpr bool is_simd_mask_v

inline constexpr

Definition at line 3073 of file simd.h.

## is_simd_v

template<typename _Tp >

constexpr bool is_simd_v

inline constexpr

Definition at line 3067 of file simd.h.

## memory_alignment_v

template<typename _Tp , typename _Up = typename _Tp::value_type>

constexpr size_t memory_alignment_v

inline constexpr

Definition at line 3174 of file simd.h.

## overaligned

template<size_t _Np>

constexpr overaligned_tag<_Np> overaligned

inline constexpr

Definition at line 224 of file simd.h.

## simd_size_v

template<typename _Tp , typename _Abi = simd_abi::__default_abi<_Tp>>

constexpr size_t simd_size_v

inline constexpr

Definition at line 3089 of file simd.h.

## vector_aligned

constexpr vector_aligned_tag vector_aligned

inline constexpr

Definition at line 221 of file simd.h.