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