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_simd<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}@ V, @\exposconcept{simd-integral}@ I>
1663816638 constexpr resize_t<I::size(), V> permute(const V& 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}@ V>
1664416644 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>
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}@ V>
1664916649 constexpr V compress(const V& v, const type_identity_t<V>& 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}@ V>
@@ -16683,23 +16683,23 @@
1668316683 partial_gather_from(R&& in, const typename I::mask_type& mask,
1668416684 const I& indices, flags<Flags...> f = {});
1668516685
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>
1668716687 requires ranges::@\libconcept{sized_range}@<R>
1668816688 constexpr void
1668916689 unchecked_scatter_to(const V& v, R&& out,
1669016690 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>
1669216692 requires ranges::@\libconcept{sized_range}@<R>
1669316693 constexpr void
1669416694 unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
1669516695 const I& indices, flags<Flags...> f = {});
1669616696
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>
1669816698 requires ranges::@\libconcept{sized_range}@<R>
1669916699 constexpr void
1670016700 partial_scatter_to(const V& v, R&& out,
1670116701 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>
1670316703 requires ranges::@\libconcept{sized_range}@<R>
1670416704 constexpr void
1670516705 partial_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
@@ -16956,36 +16956,36 @@
1695616956 sph_neumann(const rebind_t<unsigned, @\exposid{deduced-simd-t}@<V>>& n, const V& x);
1695716957
1695816958 // \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;
1696216962
16963- template<@\exposconcept{simd-type}@ V>
16963+ template<@\exposconcept{simd-vec- type}@ V>
1696416964 constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
1696516965
16966- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
16966+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
1696716967 constexpr V0 rotl(const V0& v, const V1& s) noexcept;
16968- template<@\exposconcept{simd-type}@ V>
16968+ template<@\exposconcept{simd-vec- type}@ V>
1696916969 constexpr V rotl(const V& v, int s) 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 rotr(const V0& v, const V1& s) noexcept;
16973- template<@\exposconcept{simd-type}@ V>
16973+ template<@\exposconcept{simd-vec- type}@ V>
1697416974 constexpr V rotr(const V& v, int s) noexcept;
1697516975
16976- template<@\exposconcept{simd-type}@ V>
16976+ template<@\exposconcept{simd-vec- type}@ V>
1697716977 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>
1697916979 constexpr rebind_t<make_signed_t<typename V::value_type>, V>
1698016980 countl_zero(const V& v) noexcept;
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> countl_one(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 countr_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> countr_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> popcount(const V& v) noexcept;
1699016990
1699116991 // \ref{simd.complex.math}, simd complex math
1870918709\rSec3[simd.permute.static]{\tcode{simd} static permute}
1871018710
1871118711\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>
1871318713 constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
1871418714
1871518715template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ V, class IdxMap>
1876618766\rSec3[simd.permute.dynamic]{\tcode{simd} dynamic permute}
1876718767
1876818768\begin{itemdecl}
18769- template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
18769+ template<@\exposconcept{simd-vec- type}@ V, @\exposconcept{simd-integral}@ I>
1877018770 constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
1877118771
1877218772template<@\exposconcept{simd-mask-type}@ V, @\exposconcept{simd-integral}@ I>
1878818788\rSec3[simd.permute.mask]{\tcode{simd} mask permute}
1878918789
1879018790\begin{itemdecl}
18791- template<@\exposconcept{simd-type}@ V>
18791+ template<@\exposconcept{simd-vec- type}@ V>
1879218792 constexpr V compress(const V& v, const typename V::mask_type& selector);
1879318793
1879418794template<@\exposconcept{simd-mask-type}@ V>
1882018820\end{itemdescr}
1882118821
1882218822\begin{itemdecl}
18823- template<@\exposconcept{simd-type}@ V>
18823+ template<@\exposconcept{simd-vec- type}@ V>
1882418824 constexpr V compress(const V& v, const typename V::mask_type& selector,
1882518825 const typename V::value_type& fill_value);
1882618826
1885018850\end{itemdescr}
1885118851
1885218852\begin{itemdecl}
18853- template<@\exposconcept{simd-type}@ V>
18853+ template<@\exposconcept{simd-vec- type}@ V>
1885418854 constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
1885518855
1885618856template<@\exposconcept{simd-mask-type}@ V>
@@ -18985,12 +18985,12 @@
1898518985\end{itemdescr}
1898618986
1898718987\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>
1898918989 requires ranges::@\libconcept{sized_range}@<R>
1899018990 constexpr void unchecked_scatter_to(const V& v, R&& out,
1899118991 const I& indices, flags<Flags...> f = {});
1899218992
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>
1899418994 requires ranges::@\libconcept{sized_range}@<R>
1899518995 constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
1899618996 const I& indices, flags<Flags...> f = {});
@@ -19012,12 +19012,12 @@
1901219012\end{itemdescr}
1901319013
1901419014\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>
1901619016 requires ranges::@\libconcept{sized_range}@<R>
1901719017 constexpr void partial_scatter_to(const V& v, R&& out,
1901819018 const I& indices, flags<Flags...> f = {});
1901919019
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>
1902119021 requires ranges::@\libconcept{sized_range}@<R>
1902219022 constexpr void partial_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
1902319023 const I& indices, flags<Flags...> f = {});
1960219602\rSec3[simd.bit]{\tcode{basic_simd} bit library}
1960319603
1960419604\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;
1960619606\end{itemdecl}
1960719607
1960819608\begin{itemdescr}
1961819618\end{itemdescr}
1961919619
1962019620\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;
1962219622\end{itemdecl}
1962319623
1962419624\begin{itemdescr}
1964519645\end{itemdescr}
1964619646
1964719647\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;
1964919649\end{itemdecl}
1965019650
1965119651\begin{itemdescr}
1966119661\end{itemdescr}
1966219662
1966319663\begin{itemdecl}
19664- template<@\exposconcept{simd-type}@ V>
19664+ template<@\exposconcept{simd-vec- type}@ V>
1966519665 constexpr typename V::mask_type has_single_bit(const V& v) noexcept;
1966619666\end{itemdecl}
1966719667
1967819678\end{itemdescr}
1967919679
1968019680\begin{itemdecl}
19681- template<@\exposconcept{simd-type}@ V0, @\exposconcept{simd-type}@ V1>
19681+ template<@\exposconcept{simd-vec- type}@ V0, @\exposconcept{simd-vec -type}@ V1>
1968219682 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>
1968419684 constexpr V0 rotr(const V0& v0, const V1& v1) noexcept;
1968519685\end{itemdecl}
1968619686
1970719707\end{itemdescr}
1970819708
1970919709\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;
1971219712\end{itemdecl}
1971319713
1971419714\begin{itemdescr}
@@ -19725,17 +19725,17 @@
1972519725\end{itemdescr}
1972619726
1972719727\begin{itemdecl}
19728- template<@\exposconcept{simd-type}@ V>
19728+ template<@\exposconcept{simd-vec- type}@ V>
1972919729 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>
1973119731 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>
1973319733 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>
1973519735 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>
1973719737 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>
1973919739 constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
1974019740\end{itemdecl}
1974119741
0 commit comments