Halide 22.0.0 Halide compiler and libraries

Classes | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
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 2189 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 2232 of file IRMatch.h.

## 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
| inlinenoexcept

Definition at line 2203 of file IRMatch.h.

References Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::base, Halide::Internal::Shuffle::is_slice(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::lanes, Halide::Type::lanes(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::match(), Halide::Internal::Shuffle, Halide::Internal::Shuffle::slice_begin(), Halide::Internal::Shuffle::slice_stride(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::stride, Halide::Internal::BaseExprNode::type, Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::vec, and Halide::Internal::Shuffle::vectors.

Referenced by Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::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 2217 of file IRMatch.h.

References Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::base, halide_scalar_value_t::i64, Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::lanes, Halide::Internal::Shuffle::make_slice(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::stride, halide_scalar_value_t::u, and Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::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 2191 of file IRMatch.h.

Referenced by Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::make(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::match(), and Halide::Internal::IRMatcher::operator<<().

## ◆ base

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

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

Definition at line 2192 of file IRMatch.h.

Referenced by Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::make(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::match(), and Halide::Internal::IRMatcher::operator<<().

## ◆ stride

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

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

Definition at line 2193 of file IRMatch.h.

Referenced by Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::make(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::match(), and Halide::Internal::IRMatcher::operator<<().

## ◆ lanes

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

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

Definition at line 2194 of file IRMatch.h.

Referenced by Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::make(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::match(), and Halide::Internal::IRMatcher::operator<<().

## ◆ binds

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

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

Definition at line 2196 of file IRMatch.h.

## ◆ min_node_type

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

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

Definition at line 2198 of file IRMatch.h.

## ◆ max_node_type

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

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

Definition at line 2199 of file IRMatch.h.

## ◆ canonical

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

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

Definition at line 2200 of file IRMatch.h.

## ◆ foldable

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

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

Definition at line 2229 of file IRMatch.h.

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

- src/IRMatch.h