DPC++ Runtime
Runtime libraries for oneAPI DPC++
sycl::_V1::ext::oneapi::sub_group_mask Struct Reference

#include <sycl/ext/oneapi/sub_group_mask.hpp>

Collaboration diagram for sycl::_V1::ext::oneapi::sub_group_mask:

Classes

struct  reference
 

Public Types

using BitsType = uint64_t
 

Public Member Functions

bool operator[] (id< 1 > id) const
 
reference operator[] (id< 1 > id)
 
bool test (id< 1 > id) const
 
bool all () const
 
bool any () const
 
bool none () const
 
uint32_t count () const
 
uint32_t size () const
 
id< 1 > find_low () const
 
id< 1 > find_high () const
 
template<typename Type , typename = std::enable_if_t<std::is_integral_v<Type>>>
void insert_bits (Type bits, id< 1 > pos=0)
 
template<typename Type , size_t Size, typename = std::enable_if_t<std::is_integral_v<Type>>>
void insert_bits (const marray< Type, Size > &bits, id< 1 > pos=0)
 
template<typename Type , typename = std::enable_if_t<std::is_integral_v<Type>>>
void extract_bits (Type &bits, id< 1 > pos=0) const
 
template<typename Type , size_t Size, typename = std::enable_if_t<std::is_integral_v<Type>>>
void extract_bits (marray< Type, Size > &bits, id< 1 > pos=0) const
 
void set ()
 
void set (id< 1 > id, bool value=true)
 
void reset ()
 
void reset (id< 1 > id)
 
void reset_low ()
 
void reset_high ()
 
void flip ()
 
void flip (id< 1 > id)
 
bool operator== (const sub_group_mask &rhs) const
 
bool operator!= (const sub_group_mask &rhs) const
 
sub_group_maskoperator&= (const sub_group_mask &rhs)
 
sub_group_maskoperator|= (const sub_group_mask &rhs)
 
sub_group_maskoperator^= (const sub_group_mask &rhs)
 
sub_group_maskoperator<<= (size_t pos)
 
sub_group_maskoperator>>= (size_t pos)
 
sub_group_mask operator~ () const
 
sub_group_mask operator<< (size_t pos) const
 
sub_group_mask operator>> (size_t pos) const
 

Static Public Attributes

static constexpr size_t max_bits
 
static constexpr size_t word_size = sizeof(uint32_t) * CHAR_BIT
 

Friends

class sycl::detail::Builder
 
template<typename Group >
std::enable_if_t< std::is_same_v< std::decay_t< Group >, sub_group >, sub_group_maskgroup_ballot (Group g, bool predicate)
 
sub_group_mask operator& (const sub_group_mask &lhs, const sub_group_mask &rhs)
 
sub_group_mask operator| (const sub_group_mask &lhs, const sub_group_mask &rhs)
 
sub_group_mask operator^ (const sub_group_mask &lhs, const sub_group_mask &rhs)
 

Detailed Description

Definition at line 56 of file sub_group_mask.hpp.

Member Typedef Documentation

◆ BitsType

Definition at line 58 of file sub_group_mask.hpp.

Member Function Documentation

◆ all()

bool sycl::_V1::ext::oneapi::sub_group_mask::all ( ) const
inline

Definition at line 131 of file sub_group_mask.hpp.

References count().

◆ any()

bool sycl::_V1::ext::oneapi::sub_group_mask::any ( ) const
inline

Definition at line 132 of file sub_group_mask.hpp.

References count().

◆ count()

◆ extract_bits() [1/2]

template<typename Type , size_t Size, typename = std::enable_if_t<std::is_integral_v<Type>>>
void sycl::_V1::ext::oneapi::sub_group_mask::extract_bits ( marray< Type, Size > &  bits,
id< 1 >  pos = 0 
) const
inline

Definition at line 221 of file sub_group_mask.hpp.

References extract_bits(), and size().

◆ extract_bits() [2/2]

template<typename Type , typename = std::enable_if_t<std::is_integral_v<Type>>>
void sycl::_V1::ext::oneapi::sub_group_mask::extract_bits ( Type &  bits,
id< 1 >  pos = 0 
) const
inline

Definition at line 202 of file sub_group_mask.hpp.

References max_bits, and size().

Referenced by count(), extract_bits(), and sycl::_V1::detail::ExtractMask().

◆ find_high()

id<1> sycl::_V1::ext::oneapi::sub_group_mask::find_high ( ) const
inline

Definition at line 162 of file sub_group_mask.hpp.

References operator[](), and size().

Referenced by reset_high().

◆ find_low()

◆ flip() [1/2]

void sycl::_V1::ext::oneapi::sub_group_mask::flip ( )
inline

Definition at line 239 of file sub_group_mask.hpp.

Referenced by operator~().

◆ flip() [2/2]

void sycl::_V1::ext::oneapi::sub_group_mask::flip ( id< 1 >  id)
inline

Definition at line 240 of file sub_group_mask.hpp.

References operator[]().

◆ insert_bits() [1/2]

template<typename Type , size_t Size, typename = std::enable_if_t<std::is_integral_v<Type>>>
void sycl::_V1::ext::oneapi::sub_group_mask::insert_bits ( const marray< Type, Size > &  bits,
id< 1 >  pos = 0 
)
inline

Definition at line 190 of file sub_group_mask.hpp.

References insert_bits(), and size().

◆ insert_bits() [2/2]

template<typename Type , typename = std::enable_if_t<std::is_integral_v<Type>>>
void sycl::_V1::ext::oneapi::sub_group_mask::insert_bits ( Type  bits,
id< 1 >  pos = 0 
)
inline

Definition at line 171 of file sub_group_mask.hpp.

References max_bits, and size().

Referenced by insert_bits().

◆ none()

bool sycl::_V1::ext::oneapi::sub_group_mask::none ( ) const
inline

Definition at line 133 of file sub_group_mask.hpp.

References count().

◆ operator!=()

bool sycl::_V1::ext::oneapi::sub_group_mask::operator!= ( const sub_group_mask rhs) const
inline

Definition at line 243 of file sub_group_mask.hpp.

◆ operator&=()

sub_group_mask& sycl::_V1::ext::oneapi::sub_group_mask::operator&= ( const sub_group_mask rhs)
inline

Definition at line 245 of file sub_group_mask.hpp.

◆ operator<<()

sub_group_mask sycl::_V1::ext::oneapi::sub_group_mask::operator<< ( size_t  pos) const
inline

Definition at line 276 of file sub_group_mask.hpp.

◆ operator<<=()

sub_group_mask& sycl::_V1::ext::oneapi::sub_group_mask::operator<<= ( size_t  pos)
inline

Definition at line 260 of file sub_group_mask.hpp.

◆ operator==()

bool sycl::_V1::ext::oneapi::sub_group_mask::operator== ( const sub_group_mask rhs) const
inline

Definition at line 242 of file sub_group_mask.hpp.

◆ operator>>()

sub_group_mask sycl::_V1::ext::oneapi::sub_group_mask::operator>> ( size_t  pos) const
inline

Definition at line 281 of file sub_group_mask.hpp.

◆ operator>>=()

sub_group_mask& sycl::_V1::ext::oneapi::sub_group_mask::operator>>= ( size_t  pos)
inline

Definition at line 266 of file sub_group_mask.hpp.

◆ operator[]() [1/2]

reference sycl::_V1::ext::oneapi::sub_group_mask::operator[] ( id< 1 >  id)
inline

Definition at line 129 of file sub_group_mask.hpp.

◆ operator[]() [2/2]

bool sycl::_V1::ext::oneapi::sub_group_mask::operator[] ( id< 1 >  id) const
inline

Definition at line 124 of file sub_group_mask.hpp.

References sycl::_V1::get().

Referenced by find_high(), flip(), reset(), set(), and test().

◆ operator^=()

sub_group_mask& sycl::_V1::ext::oneapi::sub_group_mask::operator^= ( const sub_group_mask rhs)
inline

Definition at line 254 of file sub_group_mask.hpp.

◆ operator|=()

sub_group_mask& sycl::_V1::ext::oneapi::sub_group_mask::operator|= ( const sub_group_mask rhs)
inline

Definition at line 249 of file sub_group_mask.hpp.

◆ operator~()

sub_group_mask sycl::_V1::ext::oneapi::sub_group_mask::operator~ ( ) const
inline

Definition at line 271 of file sub_group_mask.hpp.

References flip().

◆ reset() [1/2]

void sycl::_V1::ext::oneapi::sub_group_mask::reset ( )
inline

Definition at line 235 of file sub_group_mask.hpp.

Referenced by reset_high(), and reset_low().

◆ reset() [2/2]

void sycl::_V1::ext::oneapi::sub_group_mask::reset ( id< 1 >  id)
inline

Definition at line 236 of file sub_group_mask.hpp.

References operator[]().

◆ reset_high()

void sycl::_V1::ext::oneapi::sub_group_mask::reset_high ( )
inline

Definition at line 238 of file sub_group_mask.hpp.

References find_high(), and reset().

◆ reset_low()

void sycl::_V1::ext::oneapi::sub_group_mask::reset_low ( )
inline

Definition at line 237 of file sub_group_mask.hpp.

References find_low(), and reset().

◆ set() [1/2]

void sycl::_V1::ext::oneapi::sub_group_mask::set ( )
inline

Definition at line 233 of file sub_group_mask.hpp.

◆ set() [2/2]

void sycl::_V1::ext::oneapi::sub_group_mask::set ( id< 1 >  id,
bool  value = true 
)
inline

Definition at line 234 of file sub_group_mask.hpp.

References operator[]().

◆ size()

uint32_t sycl::_V1::ext::oneapi::sub_group_mask::size ( ) const
inline

Definition at line 155 of file sub_group_mask.hpp.

Referenced by extract_bits(), find_high(), find_low(), and insert_bits().

◆ test()

bool sycl::_V1::ext::oneapi::sub_group_mask::test ( id< 1 >  id) const
inline

Definition at line 130 of file sub_group_mask.hpp.

References operator[]().

Friends And Related Function Documentation

◆ group_ballot

template<typename Group >
std::enable_if_t<std::is_same_v<std::decay_t<Group>, sub_group>, sub_group_mask> group_ballot ( Group  g,
bool  predicate = true 
)
friend

Definition at line 342 of file sub_group_mask.hpp.

◆ operator&

sub_group_mask operator& ( const sub_group_mask lhs,
const sub_group_mask rhs 
)
friend

Definition at line 292 of file sub_group_mask.hpp.

◆ operator^

sub_group_mask operator^ ( const sub_group_mask lhs,
const sub_group_mask rhs 
)
friend

Definition at line 306 of file sub_group_mask.hpp.

◆ operator|

sub_group_mask operator| ( const sub_group_mask lhs,
const sub_group_mask rhs 
)
friend

Definition at line 299 of file sub_group_mask.hpp.

◆ sycl::detail::Builder

friend class sycl::detail::Builder
friend

Definition at line 57 of file sub_group_mask.hpp.

Member Data Documentation

◆ max_bits

constexpr size_t sycl::_V1::ext::oneapi::sub_group_mask::max_bits
staticconstexpr
Initial value:
=
sizeof(BitsType) * CHAR_BIT

Definition at line 60 of file sub_group_mask.hpp.

Referenced by extract_bits(), sycl::_V1::ext::oneapi::experimental::get_ballot_group(), and insert_bits().

◆ word_size

constexpr size_t sycl::_V1::ext::oneapi::sub_group_mask::word_size = sizeof(uint32_t) * CHAR_BIT
staticconstexpr

Definition at line 62 of file sub_group_mask.hpp.


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