1623216232template<class V, class T> using @\exposidnc{make-compatible-simd-t} = \seebelownc@; // \expos
1623316233
1623416234template<class V>
16235- concept @\defexposconceptnc{simd-type}@ = // \expos
16235+ concept @\defexposconceptnc{simd-vec- type}@ = // \expos
1623616236 @\libconcept{same_as}@<V, basic_vec<typename V::value_type, typename V::abi_type>> &&
1623716237 is_default_constructible_v<V>;
1623816238
1624316243
1624416244template<class V>
1624516245 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>;
1624716247
1624816248template<class V>
1624916249 concept @\defexposconceptnc{simd-integral}@ = // \expos
1625416254
1625516255template<class V>
1625616256 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>>>;
1625816258
1625916259template<class... Ts>
1626016260 concept @\defexposconceptnc{math-floating-point}@ = // \expos
@@ -16626,30 +16626,30 @@
1662616626 static constexpr @\exposid{simd-size-type}@ zero_element = @\impdefx{value of \tcode{simd::zero_element}}@;
1662716627 static constexpr @\exposid{simd-size-type}@ uninit_element = @\impdefx{value of \tcode{simd::uninit_element}}@;
1662816628
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>
1663016630 constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
1663116631 template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
1663216632 constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
1663316633
1663416634 // \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>
1663616636 constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
1663716637 template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
1663816638 constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
1663916639
1664016640 // \ref{simd.permute.mask}, Permute by active mask bits
16641- template<@\exposconcept{simd-type}@ V>
16641+ template<@\exposconcept{simd-vec- type}@ V>
1664216642 constexpr V compress(const V& v, const typename V::mask_type& selector);
1664316643 template<@\exposconcept{simd-mask-type}@ M>
1664416644 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>
1664616646 constexpr V compress(const V& v, const typename V::mask_type& selector,
1664716647 const typename V::value_type& fill_value);
1664816648 template<@\exposconcept{simd-mask-type}@ M>
1664916649 constexpr M compress(const M& v, const type_identity_t<M>& selector,
1665016650 const typename V::value_type& fill_value);
1665116651
16652- template<@\exposconcept{simd-type}@ V>
16652+ template<@\exposconcept{simd-vec- type}@ V>
1665316653 constexpr V expand(const V& v, const typename V::mask_type& selector,
1665416654 const V& original = {});
1665516655 template<@\exposconcept{simd-mask-type}@ M>
@@ -16680,13 +16680,13 @@
1668016680 partial_gather_from(R&& in, const typename I::mask_type& mask,
1668116681 const I& indices, flags<Flags...> f = {});
1668216682
16683- template<@\exposconcept{simd-type}@ V,
16683+ template<@\exposconcept{simd-vec- type}@ V,
1668416684 ranges::@\libconcept{contiguous_range}@ R,
1668516685 @\exposconcept{simd-integral}@ I, class... Flags>
1668616686 requires ranges::@\libconcept{sized_range}@<R>
1668716687 constexpr void
1668816688 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,
1669016690 ranges::@\libconcept{contiguous_range}@ R,
1669116691 @\exposconcept{simd-integral}@ I, class... Flags>
1669216692 requires ranges::@\libconcept{sized_range}@<R>
@@ -16695,13 +16695,13 @@
1669516695 const typename I::mask_type& mask,
1669616696 const I& indices, flags<Flags...> f = {});
1669716697
16698- template<@\exposconcept{simd-type}@ V,
16698+ template<@\exposconcept{simd-vec- type}@ V,
1669916699 ranges::@\libconcept{contiguous_range}@ R,
1670016700 @\exposconcept{simd-integral}@ I, class... Flags>
1670116701 requires ranges::@\libconcept{sized_range}@<R>
1670216702 constexpr void
1670316703 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,
1670516705 ranges::@\libconcept{contiguous_range}@ R,
1670616706 @\exposconcept{simd-integral}@ I, class... Flags>
1670716707 requires ranges::@\libconcept{sized_range}@<R>
@@ -16961,36 +16961,36 @@
1696116961 sph_neumann(const rebind_t<unsigned, @\exposid{deduced-simd-t}@<V>>& n, const V& x);
1696216962
1696316963 // \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;
1696716967
16968- template<@\exposconcept{simd-type}@ V>
16968+ template<@\exposconcept{simd-vec- type}@ V>
1696916969 constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
1697016970
16971- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16971+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
1697216972 constexpr V0 rotl(const V0& v, const V1& s) noexcept;
16973- template<@\exposconcept{simd-type}@ V>
16973+ template<@\exposconcept{simd-vec- type}@ V>
1697416974 constexpr V rotl(const V& v, int s) noexcept;
1697516975
16976- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16976+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
1697716977 constexpr V0 rotr(const V0& v, const V1& s) noexcept;
16978- template<@\exposconcept{simd-type}@ V>
16978+ template<@\exposconcept{simd-vec- type}@ V>
1697916979 constexpr V rotr(const V& v, int s) noexcept;
1698016980
16981- template<@\exposconcept{simd-type}@ V>
16981+ template<@\exposconcept{simd-vec- type}@ V>
1698216982 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>
1698416984 constexpr rebind_t<make_signed_t<typename V::value_type>, V>
1698516985 countl_zero(const V& v) noexcept;
16986- template<@\exposconcept{simd-type}@ V>
16986+ template<@\exposconcept{simd-vec- type}@ V>
1698716987 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>
1698916989 constexpr rebind_t<make_signed_t<typename V::value_type>, V>
1699016990 countr_zero(const V& v) noexcept;
16991- template<@\exposconcept{simd-type}@ V>
16991+ template<@\exposconcept{simd-vec- type}@ V>
1699216992 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>
1699416994 constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
1699516995
1699616996 // \ref{simd.complex.math}, vec complex math
1871018710\rSec3[simd.permute.static]{\tcode{vec} static permute}
1871118711
1871218712\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>
1871418714 constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
1871518715template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
1871618716 constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
1876018760\rSec3[simd.permute.dynamic]{\tcode{vec} dynamic permute}
1876118761
1876218762\begin{itemdecl}
18763- template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
18763+ template<@\exposconcept{simd-vec- type}@ V, @\exposconcept{simd-integral}@ I>
1876418764 constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
1876518765template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
1876618766 constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
1878118781\rSec3[simd.permute.mask]{\tcode{vec} mask permute}
1878218782
1878318783\begin{itemdecl}
18784- template<@\exposconcept{simd-type}@ V>
18784+ template<@\exposconcept{simd-vec- type}@ V>
1878518785 constexpr V compress(const V& v, const typename V::mask_type& selector);
1878618786template<@\exposconcept{simd-mask-type}@ M>
1878718787 constexpr M compress(const M& v, const type_identity_t<M>& selector);
1880818808\end{itemdescr}
1880918809
1881018810\begin{itemdecl}
18811- template<@\exposconcept{simd-type}@ V>
18811+ template<@\exposconcept{simd-vec- type}@ V>
1881218812 constexpr V compress(const V& v, const typename V::mask_type& selector,
1881318813 const typename V::value_type& fill_value);
1881418814template<@\exposconcept{simd-mask-type}@ M>
1883518835\end{itemdescr}
1883618836
1883718837\begin{itemdecl}
18838- template<@\exposconcept{simd-type}@ V>
18838+ template<@\exposconcept{simd-vec- type}@ V>
1883918839 constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
1884018840template<@\exposconcept{simd-mask-type}@ M>
1884118841 constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
@@ -18953,11 +18953,11 @@
1895318953\end{itemdescr}
1895418954
1895518955\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>
1895718957 requires ranges::@\libconcept{sized_range}@<R>
1895818958 constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices,
1895918959 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>
1896118961 requires ranges::@\libconcept{sized_range}@<R>
1896218962 constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
1896318963 const I& indices, flags<Flags...> f = {});
@@ -18979,11 +18979,11 @@
1897918979\end{itemdescr}
1898018980
1898118981\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>
1898318983 requires ranges::@\libconcept{sized_range}@<R>
1898418984 constexpr void
1898518985 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>
1898718987 requires ranges::@\libconcept{sized_range}@<R>
1898818988 constexpr void
1898918989 partial_scatter_to(const V& v, R&& out,
1956619566\rSec3[simd.bit]{\tcode{basic_vec} bit library}
1956719567
1956819568\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;
1957019570\end{itemdecl}
1957119571
1957219572\begin{itemdescr}
1958219582\end{itemdescr}
1958319583
1958419584\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;
1958619586\end{itemdecl}
1958719587
1958819588\begin{itemdescr}
1960919609\end{itemdescr}
1961019610
1961119611\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;
1961319613\end{itemdecl}
1961419614
1961519615\begin{itemdescr}
1962519625\end{itemdescr}
1962619626
1962719627\begin{itemdecl}
19628- template<@\exposconcept{simd-type}@ V>
19628+ template<@\exposconcept{simd-vec- type}@ V>
1962919629 constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
1963019630\end{itemdecl}
1963119631
1964219642\end{itemdescr}
1964319643
1964419644\begin{itemdecl}
19645- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19645+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
1964619646 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>
1964819648 constexpr V0 rotr(const V0& v0, const V1& v1) noexcept;
1964919649\end{itemdecl}
1965019650
1967119671\end{itemdescr}
1967219672
1967319673\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;
1967619676\end{itemdecl}
1967719677
1967819678\begin{itemdescr}
@@ -19689,17 +19689,17 @@
1968919689\end{itemdescr}
1969019690
1969119691\begin{itemdecl}
19692- template<@\exposconcept{simd-type}@ V>
19692+ template<@\exposconcept{simd-vec- type}@ V>
1969319693 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>
1969519695 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>
1969719697 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>
1969919699 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>
1970119701 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>
1970319703 constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
1970419704\end{itemdecl}
1970519705
0 commit comments