|
| template<class Tp, class Abi> |
| using | simd = stdx::simd<Tp, Abi> |
| template<class Tp, std::size_t Np> |
| using | deduced_abi = stdx::simd_abi::deduce_t<Tp, Np> |
| template<class Tp, std::size_t Np> |
| using | deduced_simd = simd<Tp, deduced_abi<Tp, Np>> |
| template<class Tp, class Abi> |
| using | simd_size = stdx::simd_size<Tp, Abi> |
| template<class Tp, class Abi> |
| using | simd_align = stdx::memory_alignment<simd<Tp, Abi>> |
| template<class T, class V> |
| using | rebind_simd_t = stdx::rebind_simd_t<T, V> |
| template<class Tp> |
| using | scalar_abi = deduced_abi<Tp, 1> |
|
| template<class V> |
| V | unaligned_load (const typename V::value_type *p) |
| template<class V> |
| V | aligned_load (const typename V::value_type *p) |
| template<class V> |
| void | unaligned_store (V v, typename V::value_type *p) |
| template<class V> |
| void | aligned_store (V v, typename V::value_type *p) |
| template<class V> |
| V | masked_aligned_load (const typename V::value_type *p, typename V::mask_type m) |
| template<class V> |
| V | masked_unaligned_load (const typename V::value_type *p, typename V::mask_type m) |
| template<class V> |
| void | masked_aligned_store (V v, typename V::mask_type m, typename V::value_type *p) |
| template<class V> |
| void | masked_unaligned_store (V v, typename V::mask_type m, typename V::value_type *p) |
| template<class V, size_t I, bool Value = true> |
| auto | generate_mask () |
| template<class V, bool Value = true> |
| auto | generate_mask (size_t i) |
| template<class V, size_t N, bool Value = true> |
| auto | generate_mask_until () |
| template<class V, size_t N> |
| V | partial_load (const typename V::value_type *p) |
| template<class V> |
| auto | to_intrin (V v) |
| auto | reduce_count (auto v) |
| auto | select (auto cond, auto t, auto f) |
| template<class V> |
| constexpr V | from_values (auto... values) |