16232
16232
template<class V, class T> using @\exposidnc{make-compatible-simd-t} = \seebelownc@; // \expos
16233
16233
16234
16234
template<class V>
16235
- concept @\defexposconceptnc{simd-type}@ = // \expos
16235
+ concept @\defexposconceptnc{simd-vec- type}@ = // \expos
16236
16236
@\libconcept{same_as}@<V, basic_simd<typename V::value_type, typename V::abi_type>> &&
16237
16237
is_default_constructible_v<V>;
16238
16238
16243
16243
16244
16244
template<class V>
16245
16245
concept @\defexposconceptnc{simd-floating-point}@ = // \expos
16246
- @\exposconcept{simd-type}@<V> && @\libconcept{floating_point}@<typename V::value_type>;
16246
+ @\exposconcept{simd-vec- type}@<V> && @\libconcept{floating_point}@<typename V::value_type>;
16247
16247
16248
16248
template<class V>
16249
16249
concept @\defexposconceptnc{simd-integral}@ = // \expos
16254
16254
16255
16255
template<class V>
16256
16256
concept @\defexposconceptnc{simd-complex}@ = // \expos
16257
- @\exposconcept{simd-type}@<V> && @\libconcept{same_as}@<typename V::value_type, complex<@\exposid{simd-complex-value-type}@<V>>>;
16257
+ @\exposconcept{simd-vec- type}@<V> && @\libconcept{same_as}@<typename V::value_type, complex<@\exposid{simd-complex-value-type}@<V>>>;
16258
16258
16259
16259
template<class... Ts>
16260
16260
concept @\defexposconceptnc{math-floating-point}@ = // \expos
@@ -16626,30 +16626,30 @@
16626
16626
static constexpr @\exposid{simd-size-type}@ zero_element = @\impdefx{value of \tcode{simd::zero_element}}@;
16627
16627
static constexpr @\exposid{simd-size-type}@ uninit_element = @\impdefx{value of \tcode{simd::uninit_element}}@;
16628
16628
16629
- template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
16629
+ template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-vec- type}@ V, class IdxMap>
16630
16630
constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
16631
16631
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
16632
16632
constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
16633
16633
16634
16634
// \ref{simd.permute.dynamic}, Permute by dynamic index
16635
- template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
16635
+ template<@\exposconcept{simd-vec- type}@ V, @\exposconcept{simd-integral}@ I>
16636
16636
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
16637
16637
template<@\exposconcept{simd-mask-type}@ V, @\exposconcept{simd-integral}@ I>
16638
16638
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
16639
16639
16640
16640
// \ref{simd.permute.mask}, Permute by active mask bits
16641
- template<@\exposconcept{simd-type}@ V>
16641
+ template<@\exposconcept{simd-vec- type}@ V>
16642
16642
constexpr V compress(const V& v, const typename V::mask_type& selector);
16643
16643
template<@\exposconcept{simd-mask-type}@ V>
16644
16644
constexpr V compress(const V& v, const type_identity_t<V>& selector);
16645
- template<@\exposconcept{simd-type}@ V>
16645
+ template<@\exposconcept{simd-vec- type}@ V>
16646
16646
constexpr V compress(const V& v, const typename V::mask_type& selector,
16647
16647
const typename V::value_type& fill_value);
16648
16648
template<@\exposconcept{simd-mask-type}@ V>
16649
16649
constexpr V compress(const V& v, const type_identity_t<V>& selector,
16650
16650
const typename V::value_type& fill_value);
16651
16651
16652
- template<@\exposconcept{simd-type}@ V>
16652
+ template<@\exposconcept{simd-vec- type}@ V>
16653
16653
constexpr V expand(const V& v, const typename V::mask_type& selector,
16654
16654
const V& original = {});
16655
16655
template<@\exposconcept{simd-mask-type}@ V>
@@ -16683,23 +16683,23 @@
16683
16683
partial_gather_from(R&& in, const typename I::mask_type& mask,
16684
16684
const I& indices, flags<Flags...> f = {});
16685
16685
16686
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
16686
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
16687
16687
requires ranges::@\libconcept{sized_range}@<R>
16688
16688
constexpr void
16689
16689
unchecked_scatter_to(const V& v, R&& out,
16690
16690
const I& indices, flags<Flags...> f = {});
16691
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
16691
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
16692
16692
requires ranges::@\libconcept{sized_range}@<R>
16693
16693
constexpr void
16694
16694
unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
16695
16695
const I& indices, flags<Flags...> f = {});
16696
16696
16697
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
16697
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
16698
16698
requires ranges::@\libconcept{sized_range}@<R>
16699
16699
constexpr void
16700
16700
partial_scatter_to(const V& v, R&& out,
16701
16701
const I& indices, flags<Flags...> f = {});
16702
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
16702
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
16703
16703
requires ranges::@\libconcept{sized_range}@<R>
16704
16704
constexpr void
16705
16705
partial_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
@@ -16956,36 +16956,36 @@
16956
16956
sph_neumann(const rebind_t<unsigned, @\exposid{deduced-simd-t}@<V>>& n, const V& x);
16957
16957
16958
16958
// \ref{simd.bit}, Bit manipulation
16959
- template<@\exposconcept{simd-type}@ V> constexpr V byteswap(const V& v) noexcept;
16960
- template<@\exposconcept{simd-type}@ V> constexpr V bit_ceil(const V& v) noexcept;
16961
- template<@\exposconcept{simd-type}@ V> constexpr V bit_floor(const V& v) noexcept;
16959
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V byteswap(const V& v) noexcept;
16960
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_ceil(const V& v) noexcept;
16961
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_floor(const V& v) noexcept;
16962
16962
16963
- template<@\exposconcept{simd-type}@ V>
16963
+ template<@\exposconcept{simd-vec- type}@ V>
16964
16964
constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
16965
16965
16966
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16966
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
16967
16967
constexpr V0 rotl(const V0& v, const V1& s) noexcept;
16968
- template<@\exposconcept{simd-type}@ V>
16968
+ template<@\exposconcept{simd-vec- type}@ V>
16969
16969
constexpr V rotl(const V& v, int s) noexcept;
16970
16970
16971
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16971
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
16972
16972
constexpr V0 rotr(const V0& v, const V1& s) noexcept;
16973
- template<@\exposconcept{simd-type}@ V>
16973
+ template<@\exposconcept{simd-vec- type}@ V>
16974
16974
constexpr V rotr(const V& v, int s) noexcept;
16975
16975
16976
- template<@\exposconcept{simd-type}@ V>
16976
+ template<@\exposconcept{simd-vec- type}@ V>
16977
16977
constexpr rebind_t<make_signed_t<typename V::value_type>, V> bit_width(const V& v) noexcept;
16978
- template<@\exposconcept{simd-type}@ V>
16978
+ template<@\exposconcept{simd-vec- type}@ V>
16979
16979
constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16980
16980
countl_zero(const V& v) noexcept;
16981
- template<@\exposconcept{simd-type}@ V>
16981
+ template<@\exposconcept{simd-vec- type}@ V>
16982
16982
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_one(const V& v) noexcept;
16983
- template<@\exposconcept{simd-type}@ V>
16983
+ template<@\exposconcept{simd-vec- type}@ V>
16984
16984
constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16985
16985
countr_zero(const V& v) noexcept;
16986
- template<@\exposconcept{simd-type}@ V>
16986
+ template<@\exposconcept{simd-vec- type}@ V>
16987
16987
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_one(const V& v) noexcept;
16988
- template<@\exposconcept{simd-type}@ V>
16988
+ template<@\exposconcept{simd-vec- type}@ V>
16989
16989
constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
16990
16990
16991
16991
// \ref{simd.complex.math}, simd complex math
18709
18709
\rSec3[simd.permute.static]{\tcode{simd} static permute}
18710
18710
18711
18711
\begin{itemdecl}
18712
- template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
18712
+ template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-vec- type}@ V, class IdxMap>
18713
18713
constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18714
18714
18715
18715
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ V, class IdxMap>
18766
18766
\rSec3[simd.permute.dynamic]{\tcode{simd} dynamic permute}
18767
18767
18768
18768
\begin{itemdecl}
18769
- template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
18769
+ template<@\exposconcept{simd-vec- type}@ V, @\exposconcept{simd-integral}@ I>
18770
18770
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
18771
18771
18772
18772
template<@\exposconcept{simd-mask-type}@ V, @\exposconcept{simd-integral}@ I>
18788
18788
\rSec3[simd.permute.mask]{\tcode{simd} mask permute}
18789
18789
18790
18790
\begin{itemdecl}
18791
- template<@\exposconcept{simd-type}@ V>
18791
+ template<@\exposconcept{simd-vec- type}@ V>
18792
18792
constexpr V compress(const V& v, const typename V::mask_type& selector);
18793
18793
18794
18794
template<@\exposconcept{simd-mask-type}@ V>
18820
18820
\end{itemdescr}
18821
18821
18822
18822
\begin{itemdecl}
18823
- template<@\exposconcept{simd-type}@ V>
18823
+ template<@\exposconcept{simd-vec- type}@ V>
18824
18824
constexpr V compress(const V& v, const typename V::mask_type& selector,
18825
18825
const typename V::value_type& fill_value);
18826
18826
18850
18850
\end{itemdescr}
18851
18851
18852
18852
\begin{itemdecl}
18853
- template<@\exposconcept{simd-type}@ V>
18853
+ template<@\exposconcept{simd-vec- type}@ V>
18854
18854
constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
18855
18855
18856
18856
template<@\exposconcept{simd-mask-type}@ V>
@@ -18985,12 +18985,12 @@
18985
18985
\end{itemdescr}
18986
18986
18987
18987
\begin{itemdecl}
18988
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18988
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18989
18989
requires ranges::@\libconcept{sized_range}@<R>
18990
18990
constexpr void unchecked_scatter_to(const V& v, R&& out,
18991
18991
const I& indices, flags<Flags...> f = {});
18992
18992
18993
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18993
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18994
18994
requires ranges::@\libconcept{sized_range}@<R>
18995
18995
constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
18996
18996
const I& indices, flags<Flags...> f = {});
@@ -19012,12 +19012,12 @@
19012
19012
\end{itemdescr}
19013
19013
19014
19014
\begin{itemdecl}
19015
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
19015
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
19016
19016
requires ranges::@\libconcept{sized_range}@<R>
19017
19017
constexpr void partial_scatter_to(const V& v, R&& out,
19018
19018
const I& indices, flags<Flags...> f = {});
19019
19019
19020
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
19020
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
19021
19021
requires ranges::@\libconcept{sized_range}@<R>
19022
19022
constexpr void partial_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
19023
19023
const I& indices, flags<Flags...> f = {});
19602
19602
\rSec3[simd.bit]{\tcode{basic_simd} bit library}
19603
19603
19604
19604
\begin{itemdecl}
19605
- template<@\exposconcept{simd-type}@ V> constexpr V byteswap(const V& v) noexcept;
19605
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V byteswap(const V& v) noexcept;
19606
19606
\end{itemdecl}
19607
19607
19608
19608
\begin{itemdescr}
19618
19618
\end{itemdescr}
19619
19619
19620
19620
\begin{itemdecl}
19621
- template<@\exposconcept{simd-type}@ V> constexpr V bit_ceil(const V& v) noexcept;
19621
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_ceil(const V& v) noexcept;
19622
19622
\end{itemdecl}
19623
19623
19624
19624
\begin{itemdescr}
19645
19645
\end{itemdescr}
19646
19646
19647
19647
\begin{itemdecl}
19648
- template<@\exposconcept{simd-type}@ V> constexpr V bit_floor(const V& v) noexcept;
19648
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_floor(const V& v) noexcept;
19649
19649
\end{itemdecl}
19650
19650
19651
19651
\begin{itemdescr}
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 typename V::mask_type has_single_bit(const V& v) noexcept;
19666
19666
\end{itemdecl}
19667
19667
19678
19678
\end{itemdescr}
19679
19679
19680
19680
\begin{itemdecl}
19681
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19681
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
19682
19682
constexpr V0 rotl(const V0& v0, const V1& v1) noexcept;
19683
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19683
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
19684
19684
constexpr V0 rotr(const V0& v0, const V1& v1) noexcept;
19685
19685
\end{itemdecl}
19686
19686
19707
19707
\end{itemdescr}
19708
19708
19709
19709
\begin{itemdecl}
19710
- template<@\exposconcept{simd-type}@ V> constexpr V rotl(const V& v, int s) noexcept;
19711
- template<@\exposconcept{simd-type}@ V> constexpr V rotr(const V& v, int s) noexcept;
19710
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V rotl(const V& v, int s) noexcept;
19711
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V rotr(const V& v, int s) noexcept;
19712
19712
\end{itemdecl}
19713
19713
19714
19714
\begin{itemdescr}
@@ -19725,17 +19725,17 @@
19725
19725
\end{itemdescr}
19726
19726
19727
19727
\begin{itemdecl}
19728
- template<@\exposconcept{simd-type}@ V>
19728
+ template<@\exposconcept{simd-vec- type}@ V>
19729
19729
constexpr rebind_t<make_signed_t<typename V::value_type>, V> bit_width(const V& v) noexcept;
19730
- template<@\exposconcept{simd-type}@ V>
19730
+ template<@\exposconcept{simd-vec- type}@ V>
19731
19731
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_zero(const V& v) noexcept;
19732
- template<@\exposconcept{simd-type}@ V>
19732
+ template<@\exposconcept{simd-vec- type}@ V>
19733
19733
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_one(const V& v) noexcept;
19734
- template<@\exposconcept{simd-type}@ V>
19734
+ template<@\exposconcept{simd-vec- type}@ V>
19735
19735
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_zero(const V& v) noexcept;
19736
- template<@\exposconcept{simd-type}@ V>
19736
+ template<@\exposconcept{simd-vec- type}@ V>
19737
19737
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_one(const V& v) noexcept;
19738
- template<@\exposconcept{simd-type}@ V>
19738
+ template<@\exposconcept{simd-vec- type}@ V>
19739
19739
constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
19740
19740
\end{itemdecl}
19741
19741
0 commit comments