Loading...
Searching...
No Matches
Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes > Struct Template Reference

`#include <IRMatch.h>`

## Classes

struct | pattern_tag

## Public Member Functions

template<uint32_t bound>
HALIDE_ALWAYS_INLINE bool | match (const BaseExprNode &e, MatcherState &state) const noexcept
HALIDE_ALWAYS_INLINE Expr | make (MatcherState &state, halide_type_t type_hint) const
HALIDE_ALWAYS_INLINE | SliceOp (Vec v, Base b, Stride s, Lanes l)

## Public Attributes

Vec | vec
Base | base
Stride | stride
Lanes | lanes

## Static Public Attributes

static constexpr uint32_t | binds = Vec::binds | Base::binds | Stride::binds | Lanes::binds
static constexpr IRNodeType | min_node_type = IRNodeType::Shuffle
static constexpr IRNodeType | max_node_type = IRNodeType::Shuffle
static constexpr bool | canonical = Vec::canonical && Base::canonical && Stride::canonical && Lanes::canonical
static constexpr bool | foldable = false

## Detailed Description

template<typename Vec, typename Base, typename Stride, typename Lanes>
struct Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >

Definition at line 2128 of file IRMatch.h.

## Constructor & Destructor Documentation

## SliceOp()

template<typename Vec, typename Base, typename Stride, typename Lanes>

HALIDE_ALWAYS_INLINE Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::SliceOp | ( | Vec | v,
|  | Base | b,
|  | Stride | s,
|  | Lanes | l )

inline

Definition at line 2171 of file IRMatch.h.

References base, lanes, stride, and vec.

## Member Function Documentation

## match()

template<typename Vec, typename Base, typename Stride, typename Lanes>
template<uint32_t bound>

HALIDE_ALWAYS_INLINE bool Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::match | ( | const BaseExprNode & | e,
|  | MatcherState & | state ) const

inline noexcept

Definition at line 2142 of file IRMatch.h.

References base, HALIDE_ALWAYS_INLINE, Halide::Internal::Shuffle::is_slice(), lanes, Halide::Type::lanes(), Halide::Internal::IRMatcher::bindings< T >::mask, match(), Halide::Internal::Shuffle, Halide::Internal::Shuffle::slice_begin(), Halide::Internal::Shuffle::slice_stride(), stride, Halide::Internal::BaseExprNode::type, vec, and Halide::Internal::Shuffle::vectors.

Referenced by match().

## make()

template<typename Vec, typename Base, typename Stride, typename Lanes>

HALIDE_ALWAYS_INLINE Expr Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::make | ( | MatcherState & | state,
|  | halide_type_t | type_hint ) const

inline

Definition at line 2156 of file IRMatch.h.

References base, halide_scalar_value_t::i64, lanes, Halide::Internal::Shuffle::make_slice(), stride, halide_scalar_value_t::u, and vec.

## Member Data Documentation

## vec

template<typename Vec, typename Base, typename Stride, typename Lanes>

Vec Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::vec

Definition at line 2130 of file IRMatch.h.

Referenced by make(), match(), Halide::Internal::IRMatcher::operator<<(), and SliceOp().

## base

template<typename Vec, typename Base, typename Stride, typename Lanes>

Base Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::base

Definition at line 2131 of file IRMatch.h.

Referenced by make(), match(), Halide::Internal::IRMatcher::operator<<(), and SliceOp().

## stride

template<typename Vec, typename Base, typename Stride, typename Lanes>

Stride Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::stride

Definition at line 2132 of file IRMatch.h.

Referenced by make(), match(), Halide::Internal::IRMatcher::operator<<(), and SliceOp().

## lanes

template<typename Vec, typename Base, typename Stride, typename Lanes>

Lanes Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::lanes

Definition at line 2133 of file IRMatch.h.

Referenced by make(), match(), Halide::Internal::IRMatcher::operator<<(), and SliceOp().

## binds

template<typename Vec, typename Base, typename Stride, typename Lanes>

uint32_t Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::binds = Vec::binds | Base::binds | Stride::binds | Lanes::binds

static constexpr

Definition at line 2135 of file IRMatch.h.

## min_node_type

template<typename Vec, typename Base, typename Stride, typename Lanes>

IRNodeType Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::min_node_type = IRNodeType::Shuffle

static constexpr

Definition at line 2137 of file IRMatch.h.

## max_node_type

template<typename Vec, typename Base, typename Stride, typename Lanes>

IRNodeType Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::max_node_type = IRNodeType::Shuffle

static constexpr

Definition at line 2138 of file IRMatch.h.

## canonical

template<typename Vec, typename Base, typename Stride, typename Lanes>

bool Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::canonical = Vec::canonical && Base::canonical && Stride::canonical && Lanes::canonical

static constexpr

Definition at line 2139 of file IRMatch.h.

## foldable

template<typename Vec, typename Base, typename Stride, typename Lanes>

bool Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::foldable = false

static constexpr

Definition at line 2168 of file IRMatch.h.

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

- src/IRMatch.h