template<class T, class Abi>
constexpr auto chunk(const basic_simd<typename T::value_type, Abi>& x) noexcept;
template<class T, class Abi>
constexpr auto chunk(const basic_simd_mask<mask-element-size<T>, Abi>& x) noexcept;
template<size_t N, class T, class Abi>
constexpr auto chunk(const basic_simd<T, Abi>& x) noexcept;
template<size_t N, size_t Bytes, class Abi>
constexpr auto chunk(const basic_simd_mask<Bytes, Abi>& x) noexcept;
template<class T, class... Abis>
constexpr simd<T, (basic_simd<T, Abis>::size() + ...)>
cat(const basic_simd<T, Abis>&... xs) noexcept;
template<size_t Bytes, class... Abis>
constexpr basic_simd_mask<Bytes, deduce-abi-t<integer-from<Bytes>,
(basic_simd_mask<Bytes, Abis>::size() + ...)>>
cat(const basic_simd_mask<Bytes, Abis>&... xs) noexcept;