native 0.0.1
Vectors, masks and wide register packs for C++26
Loading...
Searching...
No Matches
constant_lanes.h
1// SPDX-License-Identifier: BSD-2-Clause OR Apache-2.0
2#pragma once
3#include <array>
4namespace native::detail::x86_constant {
5 template<class V> constexpr auto lanes(V value) noexcept {
6 std::array<typename V::value_type, V::lanes> result{};
7 value.store(result.data());
8 return result;
9 }
10 template<class V, class T, std::size_t N>
11 constexpr V pack(std::array<T, N> const & values) noexcept {
12 static_assert(V::lanes == N);
13 return V::load(values.data());
14 }
15}