native 0.0.1
Vectors, masks and wide register packs for C++26
Loading...
Searching...
No Matches
native::predicate< N, Arch > Struct Template Reference

#include <simd_family.h>

Collaboration diagram for native::predicate< N, Arch >:
[legend]

Public Member Functions

constexpr predicate () noexcept=default
 Initialize every logical lane to false.
constexpr predicate (bool value) noexcept
 Broadcast the supplied truth value to every logical lane.
constexpr native_type to_native () const noexcept
 Return the native storage representation.
constexpr std::uint64_t to_bitset () const noexcept
 Pack lane truth into low bits, with lane zero in bit zero.
constexpr predicate & operator&= (predicate b) noexcept
 Apply the corresponding lane-wise AND operation in place and return *this.
constexpr predicate & operator|= (predicate b) noexcept
 Apply the corresponding lane-wise OR operation in place and return *this.
constexpr predicate & operator^= (predicate b) noexcept
 Apply the corresponding lane-wise XOR operation in place and return *this.

Static Public Member Functions

static constexpr predicate from_native (native_type value) noexcept
 Import compact mask bits and clear bits above the lane count.
static constexpr predicate unsafe_from_native (native_type value) noexcept
 Import compact bits and clear bits above the lane count, just like from_native.
static constexpr predicate from_bitset (std::uint64_t value) noexcept
 Import lane truth from the low logical-lane bits.

Friends

constexpr predicate operator~ (predicate a) noexcept
 Invert each lane truth value, preserving the mask representation.
constexpr predicate operator! (predicate a) noexcept
 Return the lane-wise logical complement, retaining this mask type.
constexpr predicate operator& (predicate a, predicate b) noexcept
 Bitwise AND of corresponding lane representations.
constexpr predicate operator| (predicate a, predicate b) noexcept
 Bitwise OR of corresponding lane representations.
constexpr predicate operator^ (predicate a, predicate b) noexcept
 Bitwise XOR of corresponding lane representations.
constexpr predicate operator== (predicate a, predicate b) noexcept
 Return a mask whose lanes are true where a == b holds.
constexpr predicate operator!= (predicate a, predicate b) noexcept
 Return a mask whose lanes are true where a != b holds.
constexpr bool any (predicate a) noexcept
 Return whether at least one logical lane is true.
constexpr bool all (predicate a) noexcept
 Return whether every logical lane is true.
constexpr bool none (predicate a) noexcept
 Return true exactly when no logical lane is true.
constexpr predicate select (predicate p, predicate a, predicate b) noexcept
 Choose a in true lanes and b in false lanes; both values are already evaluated.

Detailed Description

template<std::size_t N, ::native::isa<> Arch>
requires (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::predicate_shape<N>
struct native::predicate< N, Arch >

Compact comparison storage. Every import clears bits above the lane count, including the compatibility unsafe_from_native spelling.

Definition at line 705 of file simd_family.h.


The documentation for this struct was generated from the following file: