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
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
concept @\defexposconceptnc{simd-integral}@ = // \expos
16238
16238
16239
16239
template<class V>
16240
16240
concept @\defexposconceptnc{simd-complex}@ = // \expos
16241
- @\exposconcept{simd-type}@<V> && @\libconcept{same_as}@<typename V::value_type, complex<@\exposid{simd-complex-value-type}@<V>>>;
16241
+ @\exposconcept{simd-vec- type}@<V> && @\libconcept{same_as}@<typename V::value_type, complex<@\exposid{simd-complex-value-type}@<V>>>;
16242
16242
16243
16243
template<class... Ts>
16244
16244
concept @\defexposconceptnc{math-floating-point}@ = // \expos
@@ -16605,30 +16605,30 @@
16605
16605
static constexpr @\exposid{simd-size-type}@ zero_element = @\impdefx{value of \tcode{simd::zero_element}}@;
16606
16606
static constexpr @\exposid{simd-size-type}@ uninit_element = @\impdefx{value of \tcode{simd::uninit_element}}@;
16607
16607
16608
- template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
16608
+ template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-vec- type}@ V, class IdxMap>
16609
16609
constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
16610
16610
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
16611
16611
constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
16612
16612
16613
16613
// \ref{simd.permute.dynamic}, Permute by dynamic index
16614
- template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
16614
+ template<@\exposconcept{simd-vec- type}@ V, @\exposconcept{simd-integral}@ I>
16615
16615
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
16616
16616
template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
16617
16617
constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
16618
16618
16619
16619
// \ref{simd.permute.mask}, Permute by active mask bits
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
template<@\exposconcept{simd-mask-type}@ M>
16623
16623
constexpr M compress(const M& v, const type_identity_t<M>& selector);
16624
- template<@\exposconcept{simd-type}@ V>
16624
+ template<@\exposconcept{simd-vec- type}@ V>
16625
16625
constexpr V compress(const V& v, const typename V::mask_type& selector,
16626
16626
const typename V::value_type& fill_value);
16627
16627
template<@\exposconcept{simd-mask-type}@ M>
16628
16628
constexpr M compress(const M& v, const type_identity_t<M>& selector,
16629
16629
const typename V::value_type& fill_value);
16630
16630
16631
- template<@\exposconcept{simd-type}@ V>
16631
+ template<@\exposconcept{simd-vec- type}@ V>
16632
16632
constexpr V expand(const V& v, const typename V::mask_type& selector,
16633
16633
const V& original = {});
16634
16634
template<@\exposconcept{simd-mask-type}@ M>
@@ -16659,13 +16659,13 @@
16659
16659
partial_gather_from(R&& in, const typename I::mask_type& mask,
16660
16660
const I& indices, flags<Flags...> f = {});
16661
16661
16662
- template<@\exposconcept{simd-type}@ V,
16662
+ template<@\exposconcept{simd-vec- type}@ V,
16663
16663
ranges::@\libconcept{contiguous_range}@ R,
16664
16664
@\exposconcept{simd-integral}@ I, class... Flags>
16665
16665
requires ranges::@\libconcept{sized_range}@<R>
16666
16666
constexpr void
16667
16667
unchecked_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
16668
- template<@\exposconcept{simd-type}@ V,
16668
+ template<@\exposconcept{simd-vec- type}@ V,
16669
16669
ranges::@\libconcept{contiguous_range}@ R,
16670
16670
@\exposconcept{simd-integral}@ I, class... Flags>
16671
16671
requires ranges::@\libconcept{sized_range}@<R>
@@ -16674,13 +16674,13 @@
16674
16674
const typename I::mask_type& mask,
16675
16675
const I& indices, flags<Flags...> f = {});
16676
16676
16677
- template<@\exposconcept{simd-type}@ V,
16677
+ template<@\exposconcept{simd-vec- type}@ V,
16678
16678
ranges::@\libconcept{contiguous_range}@ R,
16679
16679
@\exposconcept{simd-integral}@ I, class... Flags>
16680
16680
requires ranges::@\libconcept{sized_range}@<R>
16681
16681
constexpr void
16682
16682
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
16683
- template<@\exposconcept{simd-type}@ V,
16683
+ template<@\exposconcept{simd-vec- type}@ V,
16684
16684
ranges::@\libconcept{contiguous_range}@ R,
16685
16685
@\exposconcept{simd-integral}@ I, class... Flags>
16686
16686
requires ranges::@\libconcept{sized_range}@<R>
@@ -16940,36 +16940,36 @@
16940
16940
sph_neumann(const rebind_t<unsigned, @\exposid{deduced-simd-t}@<V>>& n, const V& x);
16941
16941
16942
16942
// \ref{simd.bit}, Bit manipulation
16943
- template<@\exposconcept{simd-type}@ V> constexpr V byteswap(const V& v) noexcept;
16944
- template<@\exposconcept{simd-type}@ V> constexpr V bit_ceil(const V& v) noexcept;
16945
- template<@\exposconcept{simd-type}@ V> constexpr V bit_floor(const V& v) noexcept;
16943
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V byteswap(const V& v) noexcept;
16944
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_ceil(const V& v) noexcept;
16945
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_floor(const V& v) noexcept;
16946
16946
16947
- template<@\exposconcept{simd-type}@ V>
16947
+ template<@\exposconcept{simd-vec- type}@ V>
16948
16948
constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
16949
16949
16950
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16950
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
16951
16951
constexpr V0 rotl(const V0& v, const V1& s) noexcept;
16952
- template<@\exposconcept{simd-type}@ V>
16952
+ template<@\exposconcept{simd-vec- type}@ V>
16953
16953
constexpr V rotl(const V& v, int s) noexcept;
16954
16954
16955
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16955
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
16956
16956
constexpr V0 rotr(const V0& v, const V1& s) noexcept;
16957
- template<@\exposconcept{simd-type}@ V>
16957
+ template<@\exposconcept{simd-vec- type}@ V>
16958
16958
constexpr V rotr(const V& v, int s) noexcept;
16959
16959
16960
- template<@\exposconcept{simd-type}@ V>
16960
+ template<@\exposconcept{simd-vec- type}@ V>
16961
16961
constexpr rebind_t<make_signed_t<typename V::value_type>, V> bit_width(const V& v) noexcept;
16962
- template<@\exposconcept{simd-type}@ V>
16962
+ template<@\exposconcept{simd-vec- type}@ V>
16963
16963
constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16964
16964
countl_zero(const V& v) noexcept;
16965
- template<@\exposconcept{simd-type}@ V>
16965
+ template<@\exposconcept{simd-vec- type}@ V>
16966
16966
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_one(const V& v) noexcept;
16967
- template<@\exposconcept{simd-type}@ V>
16967
+ template<@\exposconcept{simd-vec- type}@ V>
16968
16968
constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16969
16969
countr_zero(const V& v) noexcept;
16970
- template<@\exposconcept{simd-type}@ V>
16970
+ template<@\exposconcept{simd-vec- type}@ V>
16971
16971
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_one(const V& v) noexcept;
16972
- template<@\exposconcept{simd-type}@ V>
16972
+ template<@\exposconcept{simd-vec- type}@ V>
16973
16973
constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
16974
16974
16975
16975
// \ref{simd.complex.math}, vec complex math
18691
18691
\rSec3[simd.permute.static]{\tcode{vec} static permute}
18692
18692
18693
18693
\begin{itemdecl}
18694
- template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
18694
+ template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-vec- type}@ V, class IdxMap>
18695
18695
constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18696
18696
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
18697
18697
constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
18741
18741
\rSec3[simd.permute.dynamic]{\tcode{vec} dynamic permute}
18742
18742
18743
18743
\begin{itemdecl}
18744
- template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
18744
+ template<@\exposconcept{simd-vec- type}@ V, @\exposconcept{simd-integral}@ I>
18745
18745
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
18746
18746
template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
18747
18747
constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
18762
18762
\rSec3[simd.permute.mask]{\tcode{vec} mask permute}
18763
18763
18764
18764
\begin{itemdecl}
18765
- template<@\exposconcept{simd-type}@ V>
18765
+ template<@\exposconcept{simd-vec- type}@ V>
18766
18766
constexpr V compress(const V& v, const typename V::mask_type& selector);
18767
18767
template<@\exposconcept{simd-mask-type}@ M>
18768
18768
constexpr M compress(const M& v, const type_identity_t<M>& selector);
18789
18789
\end{itemdescr}
18790
18790
18791
18791
\begin{itemdecl}
18792
- template<@\exposconcept{simd-type}@ V>
18792
+ template<@\exposconcept{simd-vec- type}@ V>
18793
18793
constexpr V compress(const V& v, const typename V::mask_type& selector,
18794
18794
const typename V::value_type& fill_value);
18795
18795
template<@\exposconcept{simd-mask-type}@ M>
18816
18816
\end{itemdescr}
18817
18817
18818
18818
\begin{itemdecl}
18819
- template<@\exposconcept{simd-type}@ V>
18819
+ template<@\exposconcept{simd-vec- type}@ V>
18820
18820
constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
18821
18821
template<@\exposconcept{simd-mask-type}@ M>
18822
18822
constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
@@ -18934,11 +18934,11 @@
18934
18934
\end{itemdescr}
18935
18935
18936
18936
\begin{itemdecl}
18937
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18937
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18938
18938
requires ranges::@\libconcept{sized_range}@<R>
18939
18939
constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices,
18940
18940
flags<Flags...> f = {});
18941
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18941
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18942
18942
requires ranges::@\libconcept{sized_range}@<R>
18943
18943
constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
18944
18944
const I& indices, flags<Flags...> f = {});
@@ -18960,11 +18960,11 @@
18960
18960
\end{itemdescr}
18961
18961
18962
18962
\begin{itemdecl}
18963
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18963
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18964
18964
requires ranges::@\libconcept{sized_range}@<R>
18965
18965
constexpr void
18966
18966
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18967
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18967
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18968
18968
requires ranges::@\libconcept{sized_range}@<R>
18969
18969
constexpr void
18970
18970
partial_scatter_to(const V& v, R&& out,
19547
19547
\rSec3[simd.bit]{\tcode{basic_vec} bit library}
19548
19548
19549
19549
\begin{itemdecl}
19550
- template<@\exposconcept{simd-type}@ V> constexpr V byteswap(const V& v) noexcept;
19550
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V byteswap(const V& v) noexcept;
19551
19551
\end{itemdecl}
19552
19552
19553
19553
\begin{itemdescr}
19563
19563
\end{itemdescr}
19564
19564
19565
19565
\begin{itemdecl}
19566
- template<@\exposconcept{simd-type}@ V> constexpr V bit_ceil(const V& v) noexcept;
19566
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_ceil(const V& v) noexcept;
19567
19567
\end{itemdecl}
19568
19568
19569
19569
\begin{itemdescr}
19590
19590
\end{itemdescr}
19591
19591
19592
19592
\begin{itemdecl}
19593
- template<@\exposconcept{simd-type}@ V> constexpr V bit_floor(const V& v) noexcept;
19593
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_floor(const V& v) noexcept;
19594
19594
\end{itemdecl}
19595
19595
19596
19596
\begin{itemdescr}
19606
19606
\end{itemdescr}
19607
19607
19608
19608
\begin{itemdecl}
19609
- template<@\exposconcept{simd-type}@ V>
19609
+ template<@\exposconcept{simd-vec- type}@ V>
19610
19610
constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
19611
19611
\end{itemdecl}
19612
19612
19623
19623
\end{itemdescr}
19624
19624
19625
19625
\begin{itemdecl}
19626
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19626
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
19627
19627
constexpr V0 rotl(const V0& v0, const V1& v1) noexcept;
19628
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19628
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
19629
19629
constexpr V0 rotr(const V0& v0, const V1& v1) noexcept;
19630
19630
\end{itemdecl}
19631
19631
19652
19652
\end{itemdescr}
19653
19653
19654
19654
\begin{itemdecl}
19655
- template<@\exposconcept{simd-type}@ V> constexpr V rotl(const V& v, int s) noexcept;
19656
- template<@\exposconcept{simd-type}@ V> constexpr V rotr(const V& v, int s) noexcept;
19655
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V rotl(const V& v, int s) noexcept;
19656
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V rotr(const V& v, int s) noexcept;
19657
19657
\end{itemdecl}
19658
19658
19659
19659
\begin{itemdescr}
@@ -19670,17 +19670,17 @@
19670
19670
\end{itemdescr}
19671
19671
19672
19672
\begin{itemdecl}
19673
- template<@\exposconcept{simd-type}@ V>
19673
+ template<@\exposconcept{simd-vec- type}@ V>
19674
19674
constexpr rebind_t<make_signed_t<typename V::value_type>, V> bit_width(const V& v) noexcept;
19675
- template<@\exposconcept{simd-type}@ V>
19675
+ template<@\exposconcept{simd-vec- type}@ V>
19676
19676
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_zero(const V& v) noexcept;
19677
- template<@\exposconcept{simd-type}@ V>
19677
+ template<@\exposconcept{simd-vec- type}@ V>
19678
19678
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_one(const V& v) noexcept;
19679
- template<@\exposconcept{simd-type}@ V>
19679
+ template<@\exposconcept{simd-vec- type}@ V>
19680
19680
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_zero(const V& v) noexcept;
19681
- template<@\exposconcept{simd-type}@ V>
19681
+ template<@\exposconcept{simd-vec- type}@ V>
19682
19682
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_one(const V& v) noexcept;
19683
- template<@\exposconcept{simd-type}@ V>
19683
+ template<@\exposconcept{simd-vec- type}@ V>
19684
19684
constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
19685
19685
\end{itemdecl}
19686
19686
0 commit comments