16216
16216
template<class V, class T> using @\exposidnc{make-compatible-simd-t} = \seebelownc@; // \expos
16217
16217
16218
16218
template<class V>
16219
- concept @\defexposconceptnc{simd-type}@ = // \expos
16219
+ concept @\defexposconceptnc{simd-vec- type}@ = // \expos
16220
16220
@\libconcept{same_as}@<V, basic_vec<typename V::value_type, typename V::abi_type>> &&
16221
16221
is_default_constructible_v<V>;
16222
16222
@@ -16227,14 +16227,14 @@
16227
16227
16228
16228
template<class V>
16229
16229
concept @\defexposconceptnc{simd-floating-point}@ = // \expos
16230
- @\exposconcept{simd-type}@<V> && @\libconcept{floating_point}@<typename V::value_type>;
16230
+ @\exposconcept{simd-vec- type}@<V> && @\libconcept{floating_point}@<typename V::value_type>;
16231
16231
16232
16232
template<class V>
16233
16233
using @\exposidnc{simd-complex-value-type}@ = typename V::value_type::value_type; // \expos
16234
16234
16235
16235
template<class V>
16236
16236
concept @\defexposconceptnc{simd-complex}@ = // \expos
16237
- @\exposconcept{simd-type}@<V> && @\libconcept{same_as}@<typename V::value_type, complex<@\exposid{simd-complex-value-type}@<V>>>;
16237
+ @\exposconcept{simd-vec- type}@<V> && @\libconcept{same_as}@<typename V::value_type, complex<@\exposid{simd-complex-value-type}@<V>>>;
16238
16238
16239
16239
template<class... Ts>
16240
16240
concept @\defexposconceptnc{math-floating-point}@ = // \expos
@@ -16601,30 +16601,30 @@
16601
16601
static constexpr @\exposid{simd-size-type}@ zero_element = @\impdefx{value of \tcode{simd::zero_element}}@;
16602
16602
static constexpr @\exposid{simd-size-type}@ uninit_element = @\impdefx{value of \tcode{simd::uninit_element}}@;
16603
16603
16604
- template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
16604
+ template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-vec- type}@ V, class IdxMap>
16605
16605
constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
16606
16606
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
16607
16607
constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
16608
16608
16609
16609
// \ref{simd.permute.dynamic}, Permute by dynamic index
16610
- template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
16610
+ template<@\exposconcept{simd-vec- type}@ V, @\exposconcept{simd-integral}@ I>
16611
16611
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
16612
16612
template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
16613
16613
constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
16614
16614
16615
16615
// \ref{simd.permute.mask}, Permute by active mask bits
16616
- template<@\exposconcept{simd-type}@ V>
16616
+ template<@\exposconcept{simd-vec- type}@ V>
16617
16617
constexpr V compress(const V& v, const typename V::mask_type& selector);
16618
16618
template<@\exposconcept{simd-mask-type}@ M>
16619
16619
constexpr M compress(const M& v, const type_identity_t<M>& selector);
16620
- template<@\exposconcept{simd-type}@ V>
16620
+ template<@\exposconcept{simd-vec- type}@ V>
16621
16621
constexpr V compress(const V& v, const typename V::mask_type& selector,
16622
16622
const typename V::value_type& fill_value);
16623
16623
template<@\exposconcept{simd-mask-type}@ M>
16624
16624
constexpr M compress(const M& v, const type_identity_t<M>& selector,
16625
16625
const typename V::value_type& fill_value);
16626
16626
16627
- template<@\exposconcept{simd-type}@ V>
16627
+ template<@\exposconcept{simd-vec- type}@ V>
16628
16628
constexpr V expand(const V& v, const typename V::mask_type& selector,
16629
16629
const V& original = {});
16630
16630
template<@\exposconcept{simd-mask-type}@ M>
@@ -16655,13 +16655,13 @@
16655
16655
partial_gather_from(R&& in, const typename I::mask_type& mask,
16656
16656
const I& indices, flags<Flags...> f = {});
16657
16657
16658
- template<@\exposconcept{simd-type}@ V,
16658
+ template<@\exposconcept{simd-vec- type}@ V,
16659
16659
ranges::@\libconcept{contiguous_range}@ R,
16660
16660
@\exposconcept{simd-integral}@ I, class... Flags>
16661
16661
requires ranges::@\libconcept{sized_range}@<R>
16662
16662
constexpr void
16663
16663
unchecked_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
16664
- template<@\exposconcept{simd-type}@ V,
16664
+ template<@\exposconcept{simd-vec- type}@ V,
16665
16665
ranges::@\libconcept{contiguous_range}@ R,
16666
16666
@\exposconcept{simd-integral}@ I, class... Flags>
16667
16667
requires ranges::@\libconcept{sized_range}@<R>
@@ -16670,13 +16670,13 @@
16670
16670
const typename I::mask_type& mask,
16671
16671
const I& indices, flags<Flags...> f = {});
16672
16672
16673
- template<@\exposconcept{simd-type}@ V,
16673
+ template<@\exposconcept{simd-vec- type}@ V,
16674
16674
ranges::@\libconcept{contiguous_range}@ R,
16675
16675
@\exposconcept{simd-integral}@ I, class... Flags>
16676
16676
requires ranges::@\libconcept{sized_range}@<R>
16677
16677
constexpr void
16678
16678
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
16679
- template<@\exposconcept{simd-type}@ V,
16679
+ template<@\exposconcept{simd-vec- type}@ V,
16680
16680
ranges::@\libconcept{contiguous_range}@ R,
16681
16681
@\exposconcept{simd-integral}@ I, class... Flags>
16682
16682
requires ranges::@\libconcept{sized_range}@<R>
@@ -16936,36 +16936,36 @@
16936
16936
sph_neumann(const rebind_t<unsigned, @\exposid{deduced-simd-t}@<V>>& n, const V& x);
16937
16937
16938
16938
// \ref{simd.bit}, Bit manipulation
16939
- template<@\exposconcept{simd-type}@ V> constexpr V byteswap(const V& v) noexcept;
16940
- template<@\exposconcept{simd-type}@ V> constexpr V bit_ceil(const V& v) noexcept;
16941
- template<@\exposconcept{simd-type}@ V> constexpr V bit_floor(const V& v) noexcept;
16939
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V byteswap(const V& v) noexcept;
16940
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_ceil(const V& v) noexcept;
16941
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_floor(const V& v) noexcept;
16942
16942
16943
- template<@\exposconcept{simd-type}@ V>
16943
+ template<@\exposconcept{simd-vec- type}@ V>
16944
16944
constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
16945
16945
16946
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16946
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
16947
16947
constexpr V0 rotl(const V0& v, const V1& s) noexcept;
16948
- template<@\exposconcept{simd-type}@ V>
16948
+ template<@\exposconcept{simd-vec- type}@ V>
16949
16949
constexpr V rotl(const V& v, int s) noexcept;
16950
16950
16951
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16951
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
16952
16952
constexpr V0 rotr(const V0& v, const V1& s) noexcept;
16953
- template<@\exposconcept{simd-type}@ V>
16953
+ template<@\exposconcept{simd-vec- type}@ V>
16954
16954
constexpr V rotr(const V& v, int s) noexcept;
16955
16955
16956
- template<@\exposconcept{simd-type}@ V>
16956
+ template<@\exposconcept{simd-vec- type}@ V>
16957
16957
constexpr rebind_t<make_signed_t<typename V::value_type>, V> bit_width(const V& v) noexcept;
16958
- template<@\exposconcept{simd-type}@ V>
16958
+ template<@\exposconcept{simd-vec- type}@ V>
16959
16959
constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16960
16960
countl_zero(const V& v) noexcept;
16961
- template<@\exposconcept{simd-type}@ V>
16961
+ template<@\exposconcept{simd-vec- type}@ V>
16962
16962
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_one(const V& v) noexcept;
16963
- template<@\exposconcept{simd-type}@ V>
16963
+ template<@\exposconcept{simd-vec- type}@ V>
16964
16964
constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16965
16965
countr_zero(const V& v) noexcept;
16966
- template<@\exposconcept{simd-type}@ V>
16966
+ template<@\exposconcept{simd-vec- type}@ V>
16967
16967
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_one(const V& v) noexcept;
16968
- template<@\exposconcept{simd-type}@ V>
16968
+ template<@\exposconcept{simd-vec- type}@ V>
16969
16969
constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
16970
16970
16971
16971
// \ref{simd.complex.math}, vec complex math
18687
18687
\rSec3[simd.permute.static]{\tcode{vec} static permute}
18688
18688
18689
18689
\begin{itemdecl}
18690
- template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
18690
+ template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-vec- type}@ V, class IdxMap>
18691
18691
constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18692
18692
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
18693
18693
constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
18737
18737
\rSec3[simd.permute.dynamic]{\tcode{vec} dynamic permute}
18738
18738
18739
18739
\begin{itemdecl}
18740
- template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
18740
+ template<@\exposconcept{simd-vec- type}@ V, @\exposconcept{simd-integral}@ I>
18741
18741
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
18742
18742
template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
18743
18743
constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
18758
18758
\rSec3[simd.permute.mask]{\tcode{vec} mask permute}
18759
18759
18760
18760
\begin{itemdecl}
18761
- template<@\exposconcept{simd-type}@ V>
18761
+ template<@\exposconcept{simd-vec- type}@ V>
18762
18762
constexpr V compress(const V& v, const typename V::mask_type& selector);
18763
18763
template<@\exposconcept{simd-mask-type}@ M>
18764
18764
constexpr M compress(const M& v, const type_identity_t<M>& selector);
18785
18785
\end{itemdescr}
18786
18786
18787
18787
\begin{itemdecl}
18788
- template<@\exposconcept{simd-type}@ V>
18788
+ template<@\exposconcept{simd-vec- type}@ V>
18789
18789
constexpr V compress(const V& v, const typename V::mask_type& selector,
18790
18790
const typename V::value_type& fill_value);
18791
18791
template<@\exposconcept{simd-mask-type}@ M>
18812
18812
\end{itemdescr}
18813
18813
18814
18814
\begin{itemdecl}
18815
- template<@\exposconcept{simd-type}@ V>
18815
+ template<@\exposconcept{simd-vec- type}@ V>
18816
18816
constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
18817
18817
template<@\exposconcept{simd-mask-type}@ M>
18818
18818
constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
@@ -18925,11 +18925,11 @@
18925
18925
\end{itemdescr}
18926
18926
18927
18927
\begin{itemdecl}
18928
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18928
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18929
18929
requires ranges::@\libconcept{sized_range}@<R>
18930
18930
constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices,
18931
18931
flags<Flags...> f = {});
18932
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18932
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18933
18933
requires ranges::@\libconcept{sized_range}@<R>
18934
18934
constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
18935
18935
const I& indices, flags<Flags...> f = {});
@@ -18951,11 +18951,11 @@
18951
18951
\end{itemdescr}
18952
18952
18953
18953
\begin{itemdecl}
18954
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18954
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18955
18955
requires ranges::@\libconcept{sized_range}@<R>
18956
18956
constexpr void
18957
18957
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18958
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18958
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18959
18959
requires ranges::@\libconcept{sized_range}@<R>
18960
18960
constexpr void
18961
18961
partial_scatter_to(const V& v, R&& out,
19538
19538
\rSec3[simd.bit]{\tcode{basic_vec} bit library}
19539
19539
19540
19540
\begin{itemdecl}
19541
- template<@\exposconcept{simd-type}@ V> constexpr V byteswap(const V& v) noexcept;
19541
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V byteswap(const V& v) noexcept;
19542
19542
\end{itemdecl}
19543
19543
19544
19544
\begin{itemdescr}
19554
19554
\end{itemdescr}
19555
19555
19556
19556
\begin{itemdecl}
19557
- template<@\exposconcept{simd-type}@ V> constexpr V bit_ceil(const V& v) noexcept;
19557
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_ceil(const V& v) noexcept;
19558
19558
\end{itemdecl}
19559
19559
19560
19560
\begin{itemdescr}
19581
19581
\end{itemdescr}
19582
19582
19583
19583
\begin{itemdecl}
19584
- template<@\exposconcept{simd-type}@ V> constexpr V bit_floor(const V& v) noexcept;
19584
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_floor(const V& v) noexcept;
19585
19585
\end{itemdecl}
19586
19586
19587
19587
\begin{itemdescr}
19597
19597
\end{itemdescr}
19598
19598
19599
19599
\begin{itemdecl}
19600
- template<@\exposconcept{simd-type}@ V>
19600
+ template<@\exposconcept{simd-vec- type}@ V>
19601
19601
constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
19602
19602
\end{itemdecl}
19603
19603
19614
19614
\end{itemdescr}
19615
19615
19616
19616
\begin{itemdecl}
19617
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19617
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
19618
19618
constexpr V0 rotl(const V0& v0, const V1& v1) noexcept;
19619
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19619
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
19620
19620
constexpr V0 rotr(const V0& v0, const V1& v1) noexcept;
19621
19621
\end{itemdecl}
19622
19622
19643
19643
\end{itemdescr}
19644
19644
19645
19645
\begin{itemdecl}
19646
- template<@\exposconcept{simd-type}@ V> constexpr V rotl(const V& v, int s) noexcept;
19647
- template<@\exposconcept{simd-type}@ V> constexpr V rotr(const V& v, int s) noexcept;
19646
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V rotl(const V& v, int s) noexcept;
19647
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V rotr(const V& v, int s) noexcept;
19648
19648
\end{itemdecl}
19649
19649
19650
19650
\begin{itemdescr}
@@ -19661,17 +19661,17 @@
19661
19661
\end{itemdescr}
19662
19662
19663
19663
\begin{itemdecl}
19664
- template<@\exposconcept{simd-type}@ V>
19664
+ template<@\exposconcept{simd-vec- type}@ V>
19665
19665
constexpr rebind_t<make_signed_t<typename V::value_type>, V> bit_width(const V& v) noexcept;
19666
- template<@\exposconcept{simd-type}@ V>
19666
+ template<@\exposconcept{simd-vec- type}@ V>
19667
19667
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_zero(const V& v) noexcept;
19668
- template<@\exposconcept{simd-type}@ V>
19668
+ template<@\exposconcept{simd-vec- type}@ V>
19669
19669
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_one(const V& v) noexcept;
19670
- template<@\exposconcept{simd-type}@ V>
19670
+ template<@\exposconcept{simd-vec- type}@ V>
19671
19671
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_zero(const V& v) noexcept;
19672
- template<@\exposconcept{simd-type}@ V>
19672
+ template<@\exposconcept{simd-vec- type}@ V>
19673
19673
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_one(const V& v) noexcept;
19674
- template<@\exposconcept{simd-type}@ V>
19674
+ template<@\exposconcept{simd-vec- type}@ V>
19675
19675
constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
19676
19676
\end{itemdecl}
19677
19677
0 commit comments