Halide 19.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
Halide::Internal::IRMatcher::CmpOp< Op, A, B > 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 Op2 , typename A2 , typename B2 >
HALIDE_ALWAYS_INLINE bool match (const CmpOp< Op2, A2, B2 > &op, MatcherState &state) const noexcept
 
HALIDE_ALWAYS_INLINE void make_folded_const (halide_scalar_value_t &val, halide_type_t &ty, MatcherState &state) const noexcept
 
HALIDE_ALWAYS_INLINE Expr make (MatcherState &state, halide_type_t type_hint) const
 

Public Attributes

a
 
b
 

Static Public Attributes

static constexpr uint32_t binds = bindings<A>::mask | bindings<B>::mask
 
static constexpr IRNodeType min_node_type = Op::_node_type
 
static constexpr IRNodeType max_node_type = Op::_node_type
 
static constexpr bool canonical
 
static constexpr bool foldable = A::foldable && B::foldable
 

Detailed Description

template<typename Op, typename A, typename B>
struct Halide::Internal::IRMatcher::CmpOp< Op, A, B >

Definition at line 731 of file IRMatch.h.

Member Function Documentation

◆ match() [1/2]

◆ match() [2/2]

template<typename Op , typename A , typename B >
template<uint32_t bound, typename Op2 , typename A2 , typename B2 >
HALIDE_ALWAYS_INLINE bool Halide::Internal::IRMatcher::CmpOp< Op, A, B >::match ( const CmpOp< Op2, A2, B2 > & op,
MatcherState & state ) const
inlinenoexcept

◆ make_folded_const()

◆ make()

template<typename Op , typename A , typename B >
HALIDE_ALWAYS_INLINE Expr Halide::Internal::IRMatcher::CmpOp< Op, A, B >::make ( MatcherState & state,
halide_type_t type_hint ) const
inline

Member Data Documentation

◆ a

◆ b

◆ binds

template<typename Op , typename A , typename B >
uint32_t Halide::Internal::IRMatcher::CmpOp< Op, A, B >::binds = bindings<A>::mask | bindings<B>::mask
staticconstexpr

Definition at line 736 of file IRMatch.h.

◆ min_node_type

template<typename Op , typename A , typename B >
IRNodeType Halide::Internal::IRMatcher::CmpOp< Op, A, B >::min_node_type = Op::_node_type
staticconstexpr

Definition at line 738 of file IRMatch.h.

◆ max_node_type

template<typename Op , typename A , typename B >
IRNodeType Halide::Internal::IRMatcher::CmpOp< Op, A, B >::max_node_type = Op::_node_type
staticconstexpr

Definition at line 739 of file IRMatch.h.

◆ canonical

template<typename Op , typename A , typename B >
bool Halide::Internal::IRMatcher::CmpOp< Op, A, B >::canonical
staticconstexpr
Initial value:
= (A::canonical &&
B::canonical &&
(!commutative(Op::_node_type) || A::max_node_type >= B::min_node_type) &&
(Op::_node_type != IRNodeType::GE) &&
(Op::_node_type != IRNodeType::GT))
constexpr bool commutative(IRNodeType t)
Definition IRMatch.h:615

Definition at line 740 of file IRMatch.h.

◆ foldable

template<typename Op , typename A , typename B >
bool Halide::Internal::IRMatcher::CmpOp< Op, A, B >::foldable = A::foldable && B::foldable
staticconstexpr

Definition at line 763 of file IRMatch.h.


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