Halide 22.0.0 Halide compiler and libraries

Classes | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
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 1731 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
| inlinenoexcept

Definition at line 1745 of file IRMatch.h.

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

Referenced by Halide::Internal::IRMatcher::SelectOp< C, T, F >::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
| inlinenoexcept

Definition at line 1755 of file IRMatch.h.

References Halide::Internal::IRMatcher::SelectOp< C, T, F >::c, Halide::Internal::IRMatcher::SelectOp< C, T, F >::f, Halide::Internal::IRMatcher::SelectOp< C, T, F >::match(), Halide::Internal::IRMatcher::SelectOp< C, T, F >::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 1762 of file IRMatch.h.

References Halide::Internal::IRMatcher::SelectOp< C, T, F >::c, Halide::Internal::IRMatcher::SelectOp< C, T, F >::f, Halide::Internal::Select::make(), and Halide::Internal::IRMatcher::SelectOp< C, T, F >::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
| inlinenoexcept

Definition at line 1769 of file IRMatch.h.

References Halide::Internal::IRMatcher::SelectOp< C, T, F >::c, Halide::Internal::IRMatcher::SelectOp< C, T, F >::f, halide_type_t::lanes, Halide::Internal::IRMatcher::MatcherState::special_values_mask, Halide::Internal::IRMatcher::SelectOp< C, T, F >::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 1733 of file IRMatch.h.

Referenced by Halide::Internal::IRMatcher::SelectOp< C, T, F >::make(), Halide::Internal::IRMatcher::SelectOp< C, T, F >::make_folded_const(), Halide::Internal::IRMatcher::SelectOp< C, T, F >::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 1734 of file IRMatch.h.

Referenced by Halide::Internal::IRMatcher::SelectOp< C, T, F >::make(), Halide::Internal::IRMatcher::SelectOp< C, T, F >::make_folded_const(), Halide::Internal::IRMatcher::SelectOp< C, T, F >::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 1735 of file IRMatch.h.

Referenced by Halide::Internal::IRMatcher::SelectOp< C, T, F >::make(), Halide::Internal::IRMatcher::SelectOp< C, T, F >::make_folded_const(), Halide::Internal::IRMatcher::SelectOp< C, T, F >::match(), and Halide::Internal::IRMatcher::operator<<().

## ◆ binds

template<typename C , typename T , typename F >

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

Definition at line 1737 of file IRMatch.h.

## ◆ min_node_type

template<typename C , typename T , typename F >

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

Definition at line 1739 of file IRMatch.h.

## ◆ max_node_type

template<typename C , typename T , typename F >

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

Definition at line 1740 of file IRMatch.h.

## ◆ canonical

template<typename C , typename T , typename F >

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

Definition at line 1742 of file IRMatch.h.

## ◆ foldable

template<typename C , typename T , typename F >

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

Definition at line 1766 of file IRMatch.h.

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

- src/IRMatch.h