This class represents a reference to a sub-region of a base simd object. More...
#include <sycl/ext/intel/esimd/simd_view.hpp>
Public Types | |
using | region_type = RegionTy |
The region type of this class. More... | |
using | element_type = typename ShapeTy::element_type |
The element type of this class, which could be different from the element type of the base object type. More... | |
using | value_type = get_simd_t< element_type, length > |
The simd type if reading the object. More... | |
using | raw_vector_type = detail::vector_type_t< detail::__raw_t< element_type >, length > |
The underlying builtin value type. More... | |
Public Types inherited from sycl::_V1::ext::intel::esimd::detail::simd_view_impl< BaseTy, region1d_t< typename BaseTy::element_type, BaseTy::length, 1 > > | |
using | Derived = simd_view< BaseTy, region1d_t< typename BaseTy::element_type, BaseTy::length, 1 > > |
The only type which is supposed to extend this one and be used in user code. More... | |
using | element_type = typename ShapeTy::element_type |
Element type of this view, may differ from the element type of the target object. More... | |
using | raw_element_type = __raw_t< element_type > |
Corresponding "raw" (storage) type for the element type. More... | |
using | value_type = get_simd_t< element_type, length > |
The simd type of the viewed region of the target object. More... | |
using | raw_vector_type = vector_type_t< __raw_t< element_type >, length > |
The underlying builtin vector type of the the viewed region. More... | |
Public Member Functions | |
simd_view (const simd_view &Other)=default | |
Default copy and move constructors for simd_view. More... | |
simd_view (simd_view &&Other)=default | |
simd_view (BaseTy &Base) | |
Construct a complete view of a vector. More... | |
simd_view & | operator= (const simd_view &Other) |
Copy assignment operator. More... | |
Public Member Functions inherited from sycl::_V1::ext::intel::esimd::detail::simd_view_impl< BaseTy, region1d_t< typename BaseTy::element_type, BaseTy::length, 1 > > | |
simd_view_impl (const simd_view_impl &Other)=default | |
Default copy constructor. More... | |
simd_view_impl (simd_view_impl &&Other)=default | |
Default move constructor. More... | |
operator simd< ToTy, length > () const | |
Implicit conversion to a simd object with potentially different element type. More... | |
operator simd_mask_type< length > () const | |
Implicit conversion to a simd_mask object. More... | |
constexpr uint16_t | getOffsetX () const |
Get the offset of the first element of the view within the parent object along X dimension. More... | |
constexpr uint16_t | getOffsetY () const |
Get the offset of the first element of the view within the parent object along Y dimension. More... | |
value_type | read () const |
Reads the viewed region from the target w/o any conversion and returns as an object of the value_type type. More... | |
value_type::raw_vector_type | data () const |
Derived & | write (const value_type &Val) |
Assigns a new value to the viewed target's region. More... | |
void | merge (const value_type &Val, const simd_mask_type< length > &Mask) |
"Merges" the viewed target's region with given value according to a per-element mask. More... | |
void | merge (const value_type &Val1, value_type Val2, const simd_mask_type< length > &Mask) |
"Merges" given values according to a per-element mask and writes the result to the viewed target's region. More... | |
auto | bit_cast_view () |
Create a 1-dimensional view of the target region. More... | |
auto | bit_cast_view () |
Create a 2-dimensional view of the target region. More... | |
auto | select (uint16_t Offset=0) |
1D region select. More... | |
auto | select (uint16_t OffsetY=0, uint16_t OffsetX=0) |
2D region select. More... | |
Derived & | operator^= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator^= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator^= (T1 RHS) |
Derived & | operator|= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator|= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator|= (T1 RHS) |
Derived & | operator&= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator&= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator&= (T1 RHS) |
Derived & | operator%= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator%= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator%= (T1 RHS) |
Derived & | operator<<= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator<<= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator<<= (T1 RHS) |
Derived & | operator>>= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator>>= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator>>= (T1 RHS) |
Derived & | operator+= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator+= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator+= (T1 RHS) |
Derived & | operator-= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator-= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator-= (T1 RHS) |
Derived & | operator*= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator*= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator*= (T1 RHS) |
Derived & | operator/= (const simd_obj_impl< T1, N1, SimdT1 > &RHS) |
Derived & | operator/= (const simd_view_impl< SimdT1, RegionT1 > &RHS) |
Derived & | operator/= (T1 RHS) |
auto | operator! () |
Unary logical negeation operator. Applies only to integer element types. More... | |
simd_view_impl & | operator= (const simd_view_impl &Other) |
Copy assignment. More... | |
Derived & | operator= (const Derived &Other) |
Assignment from an object of the derived class. More... | |
Derived & | operator= (const value_type &Val) |
Assignment from a value_type object - simd or simd_mask . More... | |
Derived & | operator= (Derived &&Other) |
Assignment from an rvalue object of the derived class. More... | |
simd_view_impl & | operator= (simd_view_impl &&Other) |
Move assignment operator. Updates the target region viewed by this object. More... | |
Derived & | operator= (const simd_obj_impl< T, N, SimdT > &Other) |
Assignment with element type conversion from a vector object. More... | |
Derived & | operator= (T1 RHS) |
Broadcast assignment of a scalar with conversion. More... | |
Derived & | operator++ () |
Prefix increment. More... | |
value_type | operator++ (int) |
Postfix increment. More... | |
Derived & | operator-- () |
Prefix decrement. More... | |
value_type | operator-- (int) |
Postfix decrement. More... | |
auto | row (int i) |
Reference a row from a 2D region. More... | |
auto | column (int i) |
Reference a column from a 2D region. More... | |
element_type | operator[] (int i) const |
Read a single element from the target 1D region. More... | |
auto | operator[] (int i) |
Return a writeable view of a single element in the target 1D region. More... | |
get_simd_t< element_type, Rep > | replicate () |
Applies simd_obj_impl::replicate to the target region. More... | |
get_simd_t< element_type, Rep *W > | replicate_w (uint16_t OffsetX) |
Shortcut to replicate_vs_w<int Rep, int Vs, int W>(uint16_t) with with Vs = 0. More... | |
get_simd_t< element_type, Rep *W > | replicate_w (uint16_t OffsetY, uint16_t OffsetX) |
Shortcut to replicate_vs_w<int Rep, int Vs, int W>(uint16_t, uint16_t) with Vs = 0. More... | |
get_simd_t< element_type, Rep *W > | replicate_vs_w (uint16_t OffsetX) |
Shortcut to replicate_vs_w_hs<int Rep, int VS, int W, int Hs>(uint16_t OffsetY, uint16_t OffsetX) with Hs = 1 and OffsetY = 0. More... | |
get_simd_t< element_type, Rep *W > | replicate_vs_w (uint16_t OffsetY, uint16_t OffsetX) |
Shortcut to replicate_vs_w_hs<int Rep, int VS, int W, int Hs>(uint16_t OffsetY, uint16_t OffsetX) with Hs = 1. More... | |
get_simd_t< element_type, Rep *W > | replicate_vs_w_hs (uint16_t OffsetX) |
Applies simd_obj_impl::replicate_vs_w_hs<int Rep, int VS, int W, int HS> to the target region. More... | |
get_simd_t< element_type, Rep *W > | replicate_vs_w_hs (uint16_t OffsetY, uint16_t OffsetX) |
Applies simd_obj_impl::replicate_vs_w_hs<int Rep, int VS, int W, int HS> to the target region. More... | |
uint16_t | any () |
Applies simd_obj_impl::any operation to the target region. More... | |
uint16_t | all () |
Applies simd_obj_impl::all operation to the target region. More... | |
Static Public Attributes | |
static constexpr int | length = ShapeTy::Size_x * ShapeTy::Size_y |
Additional Inherited Members | |
Static Public Member Functions inherited from sycl::_V1::ext::intel::esimd::detail::simd_view_impl< BaseTy, region1d_t< typename BaseTy::element_type, BaseTy::length, 1 > > | |
static constexpr bool | is1D () |
Tells whether this view is 1-dimensional. More... | |
static constexpr bool | is2D () |
Tells whether this view is 2-dimensional. More... | |
static constexpr int | getSizeX () |
Get number of elements in the view along X dimension. More... | |
static constexpr int | getStrideX () |
Get element stride of the view along X dimension. More... | |
static constexpr int | getSizeY () |
Get number of elements in the view along Y dimension. More... | |
static constexpr int | getStrideY () |
Get element stride of the view along Y dimension. More... | |
This class represents a reference to a sub-region of a base simd object.
The referenced sub-region of the base object can be read from and written to via an instance of this class. Derives from detail::simd_view_impl, which defines the majority of available APIs for view classes.
User code is never supposed to explicitly provide actual template parameters for this class. They are always auto-deduced or provided by APIs.
BaseTy | The base type - type of the object viewed by this one. |
RegionTy | Describes the viewed region - its shape and element type. Regions can be 1D and 2D. |
Definition at line 37 of file simd_view.hpp.
using sycl::_V1::ext::intel::esimd::simd_view< BaseTy, RegionTy >::element_type = typename ShapeTy::element_type |
The element type of this class, which could be different from the element type of the base object type.
Definition at line 64 of file simd_view.hpp.
using sycl::_V1::ext::intel::esimd::simd_view< BaseTy, RegionTy >::raw_vector_type = detail::vector_type_t<detail::__raw_t<element_type>, length> |
The underlying builtin value type.
Definition at line 70 of file simd_view.hpp.
using sycl::_V1::ext::intel::esimd::simd_view< BaseTy, RegionTy >::region_type = RegionTy |
The region type of this class.
Definition at line 60 of file simd_view.hpp.
using sycl::_V1::ext::intel::esimd::simd_view< BaseTy, RegionTy >::value_type = get_simd_t<element_type, length> |
The simd type if reading the object.
Definition at line 67 of file simd_view.hpp.
|
default |
Default copy and move constructors for simd_view.
|
default |
|
inline |
Construct a complete view of a vector.
Base | The vector to construct a view of. |
Definition at line 86 of file simd_view.hpp.
|
inline |
Copy assignment operator.
Definition at line 89 of file simd_view.hpp.
References sycl::_V1::ext::oneapi::experimental::operator=().
|
staticconstexpr |
Definition at line 57 of file simd_view.hpp.