@@ -16623,14 +16623,14 @@
1662316623 constexpr M compress(const M& v, const type_identity_t<M>& selector);
1662416624 template<@\exposconcept{simd-type}@ V>
1662516625 constexpr V compress(const V& v, const typename V::mask_type& selector,
16626- const typename V::value_type& fill_value);
16626+ const typename V::value_type& fill_value);
1662716627 template<@\exposconcept{simd-mask-type}@ M>
1662816628 constexpr M compress(const M& v, const type_identity_t<M>& selector,
16629- const typename V::value_type& fill_value);
16629+ const typename V::value_type& fill_value);
1663016630
1663116631 template<@\exposconcept{simd-type}@ V>
16632- constexpr V expand(const V& v, const typename V::mask_type& selector,
16633- const V& original = {});
16632+ constexpr V expand(const V& v, const typename V::mask_type& selector,
16633+ const V& original = {});
1663416634 template<@\exposconcept{simd-mask-type}@ M>
1663516635 constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
1663616636
1869218692
1869318693\begin{itemdecl}
1869418694template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
18695- constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18696-
18695+ constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
1869718696template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
18698- constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
18697+ constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
1869918698\end{itemdecl}
1870018699
1870118700\begin{itemdescr}
1871918718\pnum
1872018719\constraints
1872118720\tcode{integral<invoke_result_t<IdxMap\&, \exposid{simd-size-type}>> ||
18722- integral<invoke_result_t <IdxMap\&, \exposid{simd-size-type},
18721+ integral<invoke_re\-sult_t <IdxMap\&, \exposid{simd-size-type},
1872318722\exposid{simd-size-type}>>} is \tcode{true}.
1872418723
1872518724\pnum
1874418743\begin{itemdecl}
1874518744template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
1874618745 constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
18747-
1874818746template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
1874918747 constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
1875018748\end{itemdecl}
1876618764\begin{itemdecl}
1876718765template<@\exposconcept{simd-type}@ V>
1876818766 constexpr V compress(const V& v, const typename V::mask_type& selector);
18769-
1877018767template<@\exposconcept{simd-mask-type}@ M>
1877118768 constexpr M compress(const M& v, const type_identity_t<M>& selector);
1877218769\end{itemdecl}
1879518792template<@\exposconcept{simd-type}@ V>
1879618793 constexpr V compress(const V& v, const typename V::mask_type& selector,
1879718794 const typename V::value_type& fill_value);
18798-
1879918795template<@\exposconcept{simd-mask-type}@ M>
1880018796 constexpr M compress(const M& v, const type_identity_t<M>& selector,
1880118797 const typename M::value_type& fill_value);
1882118817
1882218818\begin{itemdecl}
1882318819template<@\exposconcept{simd-type}@ V>
18824- constexpr V expand(const V& v, const typename V::mask_type& selector,
18825- const V& original = {});
18826-
18820+ constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
1882718821template<@\exposconcept{simd-mask-type}@ M>
1882818822 constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
1882918823\end{itemdecl}
@@ -18851,13 +18845,10 @@
1885118845\rSec3[simd.permute.memory]{\tcode{simd} memory permute}
1885218846
1885318847\begin{itemdecl}
18854- template<class V = @\seebelow@,
18855- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18848+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
1885618849 requires ranges::@\libconcept{sized_range}@<R>
1885718850 constexpr V unchecked_gather_from(R&& in, const I& indices, flags<Flags...> f = {});
18858-
18859- template<class V = @\seebelow@,
18860- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18851+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
1886118852 requires ranges::@\libconcept{sized_range}@<R>
1886218853 constexpr V unchecked_gather_from(R&& in, const typename I::mask_type& mask,
1886318854 const I& indices, flags<Flags...> f = {});
@@ -18884,13 +18875,10 @@
1888418875\end{itemdescr}
1888518876
1888618877\begin{itemdecl}
18887- template<class V = @\seebelow@,
18888- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18878+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
1888918879 requires ranges::@\libconcept{sized_range}@<R>
1889018880 constexpr V partial_gather_from(R&& in, const I& indices, flags<Flags...> f = {});
18891-
18892- template<class V = @\seebelow@,
18893- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18881+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
1889418882 requires ranges::@\libconcept{sized_range}@<R>
1889518883 constexpr V partial_gather_from(R&& in, const typename I::mask_type& mask,
1889618884 const I& indices, flags<Flags...> f = {});
1892918917\returns
1893018918A \tcode{basic_simd} or \tcode{basic_simd_mask} object where the $i^\text{th}$
1893118919element is initialized to the result of \tcode{mask[$i$] \&\& indices[$i$] <
18932- ranges::size(in) ? static_cast<V::value_type>(ranges::data(in)[indices[$i$]]) :
18933- typename V::value_type()} for all $i$ in the range \range{0}{I::size()}.
18920+ ranges::size(in) ? static_cast<typename
18921+ V::value_type>(range::\brk{}data(in)[indices[$i$]]) : typename
18922+ V::value_type()} for all $i$ in the range \range{0}{I::size()}.
18923+ % FIXME: the above \tcode{...} is too long => Overfull \hbox. codeblock?
1893418924
1893518925\pnum
1893618926\remarks
@@ -18939,18 +18929,14 @@
1893918929\end{itemdescr}
1894018930
1894118931\begin{itemdecl}
18942- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18943- @\exposconcept{simd-integral}@ I, class... Flags>
18932+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
1894418933 requires ranges::@\libconcept{sized_range}@<R>
18945- constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18946-
18947- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18948- @\exposconcept{simd-integral}@ I, class... Flags>
18934+ constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices,
18935+ flags<Flags...> f = {});
18936+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
1894918937 requires ranges::@\libconcept{sized_range}@<R>
18950- constexpr void
18951- unchecked_scatter_to(const V& v, R&& out,
18952- const typename I::mask_type& mask,
18953- const I& indices, flags<Flags...> f = {});
18938+ constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
18939+ const I& indices, flags<Flags...> f = {});
1895418940\end{itemdecl}
1895518941
1895618942\begin{itemdescr}
@@ -18969,15 +18955,11 @@
1896918955\end{itemdescr}
1897018956
1897118957\begin{itemdecl}
18972- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18973- @\exposconcept{simd-integral}@ I, class... Flags>
18958+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
1897418959 requires ranges::@\libconcept{sized_range}@<R>
1897518960 constexpr void
1897618961 partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18977-
18978- template<@\exposconcept{simd-type}@ V,
18979- ranges::@\libconcept{contiguous_range}@ R,
18980- @\exposconcept{simd-integral}@ I, class... Flags>
18962+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
1898118963 requires ranges::@\libconcept{sized_range}@<R>
1898218964 constexpr void
1898318965 partial_scatter_to(const V& v, R&& out,
0 commit comments