Loading...
Searching...
No Matches
Halide::Internal::IRMatcher::SelectOp< C, T, F > 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
template<uint32_t bound, typename C2, typename T2, typename F2>
HALIDE_ALWAYS_INLINE bool | match (const SelectOp< C2, T2, F2 > &instance, MatcherState &state) const noexcept
HALIDE_ALWAYS_INLINE Expr | make (MatcherState &state, halide_type_t type_hint) const
template<typename C1 = C>
HALIDE_ALWAYS_INLINE void | make_folded_const (halide_scalar_value_t &val, halide_type_t &ty, MatcherState &state) const noexcept

## Public Attributes

C | c
T | t
F | f

## Static Public Attributes

static constexpr uint32_t | binds = bindings<C>::mask | bindings<T>::mask | bindings<F>::mask
static constexpr IRNodeType | min_node_type = IRNodeType::Select
static constexpr IRNodeType | max_node_type = IRNodeType::Select
static constexpr bool | canonical = C::canonical && T::canonical && F::canonical
static constexpr bool | foldable = C::foldable && T::foldable && F::foldable

## Detailed Description

template<typename C, typename T, typename F>
struct Halide::Internal::IRMatcher::SelectOp< C, T, F >

Definition at line 1670 of file IRMatch.h.

## Member Function Documentation

## match() [1/2]

template<typename C, typename T, typename F>
template<uint32_t bound>

HALIDE_ALWAYS_INLINE bool Halide::Internal::IRMatcher::SelectOp< C, T, F >::match | ( | const BaseExprNode & | e,
|  | MatcherState & | state ) const

inline noexcept

Definition at line 1684 of file IRMatch.h.

References Halide::Internal::Select::_node_type, c, Halide::Internal::Select::condition, f, Halide::Internal::Select::false_value, Halide::Expr::get(), HALIDE_ALWAYS_INLINE, Halide::Internal::IRMatcher::bindings< T >::mask, match(), t, and Halide::Internal::Select::true_value.

Referenced by match(), and match().

## match() [2/2]

template<typename C, typename T, typename F>
template<uint32_t bound, typename C2, typename T2, typename F2>

HALIDE_ALWAYS_INLINE bool Halide::Internal::IRMatcher::SelectOp< C, T, F >::match | ( | const SelectOp< C2, T2, F2 > & | instance,
|  | MatcherState & | state ) const

inline noexcept

Definition at line 1694 of file IRMatch.h.

References c, f, HALIDE_ALWAYS_INLINE, Halide::Internal::IRMatcher::bindings< T >::mask, match(), t, and Halide::Internal::IRMatcher::unwrap().

## make()

template<typename C, typename T, typename F>

HALIDE_ALWAYS_INLINE Expr Halide::Internal::IRMatcher::SelectOp< C, T, F >::make | ( | MatcherState & | state,
|  | halide_type_t | type_hint ) const

inline

Definition at line 1701 of file IRMatch.h.

References c, f, Halide::Internal::Select::make(), and t.

## make_folded_const()

template<typename C, typename T, typename F>
template<typename C1 = C>

HALIDE_ALWAYS_INLINE void Halide::Internal::IRMatcher::SelectOp< C, T, F >::make_folded_const | ( | halide_scalar_value_t & | val,
|  | halide_type_t & | ty,
|  | MatcherState & | state ) const

inline noexcept

Definition at line 1708 of file IRMatch.h.

References c, f, HALIDE_ALWAYS_INLINE, halide_type_t::lanes, Halide::Internal::IRMatcher::MatcherState::special_values_mask, t, halide_scalar_value_t::u, and halide_scalar_value_t::u64.

## Member Data Documentation

## c

template<typename C, typename T, typename F>

C Halide::Internal::IRMatcher::SelectOp< C, T, F >::c

Definition at line 1672 of file IRMatch.h.

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

## t

template<typename C, typename T, typename F>

T Halide::Internal::IRMatcher::SelectOp< C, T, F >::t

Definition at line 1673 of file IRMatch.h.

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

## f

template<typename C, typename T, typename F>

F Halide::Internal::IRMatcher::SelectOp< C, T, F >::f

Definition at line 1674 of file IRMatch.h.

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

## binds

template<typename C, typename T, typename F>

uint32_t Halide::Internal::IRMatcher::SelectOp< C, T, F >::binds = bindings<C>::mask | bindings<T>::mask | bindings<F>::mask

static constexpr

Definition at line 1676 of file IRMatch.h.

## min_node_type

template<typename C, typename T, typename F>

IRNodeType Halide::Internal::IRMatcher::SelectOp< C, T, F >::min_node_type = IRNodeType::Select

static constexpr

Definition at line 1678 of file IRMatch.h.

## max_node_type

template<typename C, typename T, typename F>

IRNodeType Halide::Internal::IRMatcher::SelectOp< C, T, F >::max_node_type = IRNodeType::Select

static constexpr

Definition at line 1679 of file IRMatch.h.

## canonical

template<typename C, typename T, typename F>

bool Halide::Internal::IRMatcher::SelectOp< C, T, F >::canonical = C::canonical && T::canonical && F::canonical

static constexpr

Definition at line 1681 of file IRMatch.h.

## foldable

template<typename C, typename T, typename F>

bool Halide::Internal::IRMatcher::SelectOp< C, T, F >::foldable = C::foldable && T::foldable && F::foldable

static constexpr

Definition at line 1705 of file IRMatch.h.

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

- src/IRMatch.h