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_vec<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}@ M, @\exposconcept{simd-integral}@ I>
16638
16638
constexpr resize_t<I::size(), M> permute(const M& 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}@ M>
16644
16644
constexpr M compress(const M& v, const type_identity_t<M>& 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}@ M>
16649
16649
constexpr M compress(const M& v, const type_identity_t<M>& 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}@ M>
@@ -16680,13 +16680,13 @@
16680
16680
partial_gather_from(R&& in, const typename I::mask_type& mask,
16681
16681
const I& indices, flags<Flags...> f = {});
16682
16682
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>
16687
16687
constexpr void
16688
16688
unchecked_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
16689
- template<@\exposconcept{simd-type}@ V,
16689
+ template<@\exposconcept{simd-vec- type}@ V,
16690
16690
ranges::@\libconcept{contiguous_range}@ R,
16691
16691
@\exposconcept{simd-integral}@ I, class... Flags>
16692
16692
requires ranges::@\libconcept{sized_range}@<R>
@@ -16695,13 +16695,13 @@
16695
16695
const typename I::mask_type& mask,
16696
16696
const I& indices, flags<Flags...> f = {});
16697
16697
16698
- template<@\exposconcept{simd-type}@ V,
16698
+ template<@\exposconcept{simd-vec- type}@ V,
16699
16699
ranges::@\libconcept{contiguous_range}@ R,
16700
16700
@\exposconcept{simd-integral}@ I, class... Flags>
16701
16701
requires ranges::@\libconcept{sized_range}@<R>
16702
16702
constexpr void
16703
16703
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
16704
- template<@\exposconcept{simd-type}@ V,
16704
+ template<@\exposconcept{simd-vec- type}@ V,
16705
16705
ranges::@\libconcept{contiguous_range}@ R,
16706
16706
@\exposconcept{simd-integral}@ I, class... Flags>
16707
16707
requires ranges::@\libconcept{sized_range}@<R>
@@ -16961,36 +16961,36 @@
16961
16961
sph_neumann(const rebind_t<unsigned, @\exposid{deduced-simd-t}@<V>>& n, const V& x);
16962
16962
16963
16963
// \ref{simd.bit}, Bit manipulation
16964
- template<@\exposconcept{simd-type}@ V> constexpr V byteswap(const V& v) noexcept;
16965
- template<@\exposconcept{simd-type}@ V> constexpr V bit_ceil(const V& v) noexcept;
16966
- template<@\exposconcept{simd-type}@ V> constexpr V bit_floor(const V& v) noexcept;
16964
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V byteswap(const V& v) noexcept;
16965
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_ceil(const V& v) noexcept;
16966
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_floor(const V& v) noexcept;
16967
16967
16968
- template<@\exposconcept{simd-type}@ V>
16968
+ template<@\exposconcept{simd-vec- type}@ V>
16969
16969
constexpr typename V::mask_type has_single_bit(const V& v) 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 rotl(const V0& v, const V1& s) noexcept;
16973
- template<@\exposconcept{simd-type}@ V>
16973
+ template<@\exposconcept{simd-vec- type}@ V>
16974
16974
constexpr V rotl(const V& v, int s) noexcept;
16975
16975
16976
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16976
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
16977
16977
constexpr V0 rotr(const V0& v, const V1& s) noexcept;
16978
- template<@\exposconcept{simd-type}@ V>
16978
+ template<@\exposconcept{simd-vec- type}@ V>
16979
16979
constexpr V rotr(const V& v, int s) noexcept;
16980
16980
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> bit_width(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
countl_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> countl_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>
16990
16990
countr_zero(const V& v) noexcept;
16991
- template<@\exposconcept{simd-type}@ V>
16991
+ template<@\exposconcept{simd-vec- type}@ V>
16992
16992
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_one(const V& v) noexcept;
16993
- template<@\exposconcept{simd-type}@ V>
16993
+ template<@\exposconcept{simd-vec- type}@ V>
16994
16994
constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
16995
16995
16996
16996
// \ref{simd.complex.math}, vec complex math
18710
18710
\rSec3[simd.permute.static]{\tcode{vec} static permute}
18711
18711
18712
18712
\begin{itemdecl}
18713
- template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
18713
+ template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-vec- type}@ V, class IdxMap>
18714
18714
constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18715
18715
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
18716
18716
constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
18760
18760
\rSec3[simd.permute.dynamic]{\tcode{vec} dynamic permute}
18761
18761
18762
18762
\begin{itemdecl}
18763
- template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
18763
+ template<@\exposconcept{simd-vec- type}@ V, @\exposconcept{simd-integral}@ I>
18764
18764
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
18765
18765
template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
18766
18766
constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
18781
18781
\rSec3[simd.permute.mask]{\tcode{vec} mask permute}
18782
18782
18783
18783
\begin{itemdecl}
18784
- template<@\exposconcept{simd-type}@ V>
18784
+ template<@\exposconcept{simd-vec- type}@ V>
18785
18785
constexpr V compress(const V& v, const typename V::mask_type& selector);
18786
18786
template<@\exposconcept{simd-mask-type}@ M>
18787
18787
constexpr M compress(const M& v, const type_identity_t<M>& selector);
18808
18808
\end{itemdescr}
18809
18809
18810
18810
\begin{itemdecl}
18811
- template<@\exposconcept{simd-type}@ V>
18811
+ template<@\exposconcept{simd-vec- type}@ V>
18812
18812
constexpr V compress(const V& v, const typename V::mask_type& selector,
18813
18813
const typename V::value_type& fill_value);
18814
18814
template<@\exposconcept{simd-mask-type}@ M>
18835
18835
\end{itemdescr}
18836
18836
18837
18837
\begin{itemdecl}
18838
- template<@\exposconcept{simd-type}@ V>
18838
+ template<@\exposconcept{simd-vec- type}@ V>
18839
18839
constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
18840
18840
template<@\exposconcept{simd-mask-type}@ M>
18841
18841
constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
@@ -18953,11 +18953,11 @@
18953
18953
\end{itemdescr}
18954
18954
18955
18955
\begin{itemdecl}
18956
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18956
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18957
18957
requires ranges::@\libconcept{sized_range}@<R>
18958
18958
constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices,
18959
18959
flags<Flags...> f = {});
18960
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18960
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18961
18961
requires ranges::@\libconcept{sized_range}@<R>
18962
18962
constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
18963
18963
const I& indices, flags<Flags...> f = {});
@@ -18979,11 +18979,11 @@
18979
18979
\end{itemdescr}
18980
18980
18981
18981
\begin{itemdecl}
18982
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18982
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18983
18983
requires ranges::@\libconcept{sized_range}@<R>
18984
18984
constexpr void
18985
18985
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18986
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18986
+ template<@\exposconcept{simd-vec- type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18987
18987
requires ranges::@\libconcept{sized_range}@<R>
18988
18988
constexpr void
18989
18989
partial_scatter_to(const V& v, R&& out,
19566
19566
\rSec3[simd.bit]{\tcode{basic_vec} bit library}
19567
19567
19568
19568
\begin{itemdecl}
19569
- template<@\exposconcept{simd-type}@ V> constexpr V byteswap(const V& v) noexcept;
19569
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V byteswap(const V& v) noexcept;
19570
19570
\end{itemdecl}
19571
19571
19572
19572
\begin{itemdescr}
19582
19582
\end{itemdescr}
19583
19583
19584
19584
\begin{itemdecl}
19585
- template<@\exposconcept{simd-type}@ V> constexpr V bit_ceil(const V& v) noexcept;
19585
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_ceil(const V& v) noexcept;
19586
19586
\end{itemdecl}
19587
19587
19588
19588
\begin{itemdescr}
19609
19609
\end{itemdescr}
19610
19610
19611
19611
\begin{itemdecl}
19612
- template<@\exposconcept{simd-type}@ V> constexpr V bit_floor(const V& v) noexcept;
19612
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V bit_floor(const V& v) noexcept;
19613
19613
\end{itemdecl}
19614
19614
19615
19615
\begin{itemdescr}
19625
19625
\end{itemdescr}
19626
19626
19627
19627
\begin{itemdecl}
19628
- template<@\exposconcept{simd-type}@ V>
19628
+ template<@\exposconcept{simd-vec- type}@ V>
19629
19629
constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
19630
19630
\end{itemdecl}
19631
19631
19642
19642
\end{itemdescr}
19643
19643
19644
19644
\begin{itemdecl}
19645
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19645
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
19646
19646
constexpr V0 rotl(const V0& v0, const V1& v1) noexcept;
19647
- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19647
+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
19648
19648
constexpr V0 rotr(const V0& v0, const V1& v1) noexcept;
19649
19649
\end{itemdecl}
19650
19650
19671
19671
\end{itemdescr}
19672
19672
19673
19673
\begin{itemdecl}
19674
- template<@\exposconcept{simd-type}@ V> constexpr V rotl(const V& v, int s) noexcept;
19675
- template<@\exposconcept{simd-type}@ V> constexpr V rotr(const V& v, int s) noexcept;
19674
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V rotl(const V& v, int s) noexcept;
19675
+ template<@\exposconcept{simd-vec- type}@ V> constexpr V rotr(const V& v, int s) noexcept;
19676
19676
\end{itemdecl}
19677
19677
19678
19678
\begin{itemdescr}
@@ -19689,17 +19689,17 @@
19689
19689
\end{itemdescr}
19690
19690
19691
19691
\begin{itemdecl}
19692
- template<@\exposconcept{simd-type}@ V>
19692
+ template<@\exposconcept{simd-vec- type}@ V>
19693
19693
constexpr rebind_t<make_signed_t<typename V::value_type>, V> bit_width(const V& v) noexcept;
19694
- template<@\exposconcept{simd-type}@ V>
19694
+ template<@\exposconcept{simd-vec- type}@ V>
19695
19695
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_zero(const V& v) noexcept;
19696
- template<@\exposconcept{simd-type}@ V>
19696
+ template<@\exposconcept{simd-vec- type}@ V>
19697
19697
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_one(const V& v) noexcept;
19698
- template<@\exposconcept{simd-type}@ V>
19698
+ template<@\exposconcept{simd-vec- type}@ V>
19699
19699
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_zero(const V& v) noexcept;
19700
- template<@\exposconcept{simd-type}@ V>
19700
+ template<@\exposconcept{simd-vec- type}@ V>
19701
19701
constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_one(const V& v) noexcept;
19702
- template<@\exposconcept{simd-type}@ V>
19702
+ template<@\exposconcept{simd-vec- type}@ V>
19703
19703
constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
19704
19704
\end{itemdecl}
19705
19705
0 commit comments