7#include "native_simd_utility.hpp"
8#include "../utility/utility.hpp"
9#include "../macros.hpp"
18hi_warning_ignore_msvc(26472);
20namespace hi {
inline namespace v1 {
40 using value_type = int8_t;
41 constexpr static size_t size = 4;
84 value_type b = value_type{0},
85 value_type c = value_type{0},
86 value_type d = value_type{0},
87 value_type e = value_type{0},
88 value_type f = value_type{0},
89 value_type g = value_type{0},
90 value_type h = value_type{0},
91 value_type i = value_type{0},
92 value_type
j = value_type{0},
93 value_type k = value_type{0},
94 value_type
l = value_type{0},
95 value_type m = value_type{0},
96 value_type n = value_type{0},
97 value_type o = value_type{0},
98 value_type p = value_type{0}
100 v(
_mm_set_epi8(p, o, n, m,
l, k,
j, i, h, g, f, e, d, c, b, a))
109 void store(value_type *out)
const noexcept
111 hi_axiom_not_null(out);
119 void store(
void *out)
const noexcept
121 hi_axiom_not_null(out);
127 hi_axiom(
other.size() >= size);
131 void store(std::span<value_type> out)
const noexcept
133 hi_axiom(out.size() >= size);
144 auto r = array_type{};
227 return (a == b).mask() == 0b1111'1111'1111'1111;
308 return (mask & a) |
not_and(mask, b);
318 return (mask & a) |
not_and(mask, b);
328 return (mask & a) |
not_and(mask, -a);
338 template<
size_t Mask>
341 static_assert(
Mask <= 0b1111);
357 template<
size_t Index>
360 static_assert(
Index < 4);
376 template<
size_t Index>
382 auto r =
static_cast<array_type
>(a);
383 return std::get<Index>(r);
@ other
The gui_event does not have associated data.
DOXYGEN BUG.
Definition algorithm.hpp:16
geometry/margins.hpp
Definition lookahead_iterator.hpp:5
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:377