7#include "array_intrinsic.hpp"
8#include "float_to_half.hpp"
10#include "../macros.hpp"
23hi_export_module(hikogui.SIMD.array_intrinsic_f32x4);
25hi_export
namespace hi {
28#if defined(HI_HAS_SSE2)
31 using value_type =
half;
80 [[
nodiscard]] hi_force_inline
static array_type inv(array_type a)
noexcept
82 return _xor(set_all_ones(), a);
85 [[
nodiscard]] hi_force_inline
static bool test(array_type a, array_type b)
noexcept
87#if defined(HI_HAS_SSE4_1)
94 [[
nodiscard]] hi_force_inline
static array_type _or(array_type a, array_type b)
noexcept
99 [[
nodiscard]] hi_force_inline
static array_type _and(array_type a, array_type b)
noexcept
104 [[
nodiscard]] hi_force_inline
static array_type _xor(array_type a, array_type b)
noexcept
109 [[
nodiscard]] hi_force_inline
static array_type andnot(array_type a, array_type b)
noexcept
114 [[
nodiscard]] hi_force_inline
static array_type sll(array_type a,
unsigned int b)
noexcept
120 [[
nodiscard]] hi_force_inline
static array_type srl(array_type a,
unsigned int b)
noexcept
126 [[
nodiscard]] hi_force_inline
static array_type sra(array_type a,
unsigned int b)
noexcept
132#if defined(HI_HAS_SSE4_1)
133 template<
size_t Mask>
134 [[
nodiscard]] hi_force_inline
static array_type blend(array_type a, array_type b)
noexcept
DOXYGEN BUG.
Definition algorithm_misc.hpp:20
The HikoGUI namespace.
Definition recursive_iterator.hpp:15
hi_inline bool has_f16c() noexcept
This CPU has float-16 conversion instructions.
Definition cpu_id_x86.hpp:752
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:378
Intrinsic operations on arrays.
Definition array_intrinsic.hpp:16
static hi_force_inline array_type S(register_type a) noexcept
Store a register into an array.
Definition array_intrinsic_f16x4.hpp:44
static hi_force_inline register_type L(array_type a) noexcept
Load an array into a register.
Definition array_intrinsic_f16x4.hpp:37