Halide
Halide::Internal::IRMatcher::Intrin< Args > Struct Template Reference

#include <IRMatch.h>

Classes

struct  pattern_tag
 

Public Member Functions

template<int i, uint32_t bound, typename = typename std::enable_if<(i < sizeof...(Args))>::type>
HALIDE_ALWAYS_INLINE bool match_args (int, const Call &c, MatcherState &state) const noexcept
 
template<int i, uint32_t binds>
HALIDE_ALWAYS_INLINE bool match_args (double, const Call &c, MatcherState &state) const noexcept
 
template<uint32_t bound>
HALIDE_ALWAYS_INLINE bool match (const BaseExprNode &e, MatcherState &state) const noexcept
 
template<int i, typename = typename std::enable_if<(i < sizeof...(Args))>::type>
HALIDE_ALWAYS_INLINE void print_args (int, std::ostream &s) const
 
template<int i>
HALIDE_ALWAYS_INLINE void print_args (double, std::ostream &s) const
 
HALIDE_ALWAYS_INLINE void print_args (std::ostream &s) const
 
HALIDE_ALWAYS_INLINE Expr make (MatcherState &state, halide_type_t type_hint) const
 
HALIDE_ALWAYS_INLINE Intrin (Call::IntrinsicOp intrin, Args... args) noexcept
 

Public Attributes

Call::IntrinsicOp intrin
 
std::tuple< Args... > args
 

Static Public Attributes

static constexpr uint32_t binds = bitwise_or_reduce((bindings<Args>::mask)...)
 
constexpr static IRNodeType min_node_type = IRNodeType::Call
 
constexpr static IRNodeType max_node_type = IRNodeType::Call
 
constexpr static bool canonical = and_reduce((Args::canonical)...)
 
constexpr static bool foldable = false
 

Detailed Description

template<typename... Args>
struct Halide::Internal::IRMatcher::Intrin< Args >

Definition at line 1312 of file IRMatch.h.

Constructor & Destructor Documentation

◆ Intrin()

template<typename... Args>
HALIDE_ALWAYS_INLINE Halide::Internal::IRMatcher::Intrin< Args >::Intrin ( Call::IntrinsicOp  intrin,
Args...  args 
)
inlinenoexcept

Definition at line 1379 of file IRMatch.h.

Member Function Documentation

◆ match_args() [1/2]

template<typename... Args>
template<int i, uint32_t bound, typename = typename std::enable_if<(i < sizeof...(Args))>::type>
HALIDE_ALWAYS_INLINE bool Halide::Internal::IRMatcher::Intrin< Args >::match_args ( int  ,
const Call c,
MatcherState state 
) const
inlinenoexcept

Definition at line 1326 of file IRMatch.h.

References Halide::Internal::IRMatcher::Intrin< Args >::args.

◆ match_args() [2/2]

template<typename... Args>
template<int i, uint32_t binds>
HALIDE_ALWAYS_INLINE bool Halide::Internal::IRMatcher::Intrin< Args >::match_args ( double  ,
const Call c,
MatcherState state 
) const
inlinenoexcept

Definition at line 1333 of file IRMatch.h.

◆ match()

template<typename... Args>
template<uint32_t bound>
HALIDE_ALWAYS_INLINE bool Halide::Internal::IRMatcher::Intrin< Args >::match ( const BaseExprNode e,
MatcherState state 
) const
inlinenoexcept

◆ print_args() [1/3]

template<typename... Args>
template<int i, typename = typename std::enable_if<(i < sizeof...(Args))>::type>
HALIDE_ALWAYS_INLINE void Halide::Internal::IRMatcher::Intrin< Args >::print_args ( int  ,
std::ostream &  s 
) const
inline

◆ print_args() [2/3]

template<typename... Args>
template<int i>
HALIDE_ALWAYS_INLINE void Halide::Internal::IRMatcher::Intrin< Args >::print_args ( double  ,
std::ostream &  s 
) const
inline

Definition at line 1357 of file IRMatch.h.

◆ print_args() [3/3]

template<typename... Args>
HALIDE_ALWAYS_INLINE void Halide::Internal::IRMatcher::Intrin< Args >::print_args ( std::ostream &  s) const
inline

Definition at line 1361 of file IRMatch.h.

◆ make()

Member Data Documentation

◆ intrin

◆ args

◆ binds

template<typename... Args>
constexpr uint32_t Halide::Internal::IRMatcher::Intrin< Args >::binds = bitwise_or_reduce((bindings<Args>::mask)...)
staticconstexpr

Definition at line 1317 of file IRMatch.h.

◆ min_node_type

template<typename... Args>
constexpr static IRNodeType Halide::Internal::IRMatcher::Intrin< Args >::min_node_type = IRNodeType::Call
staticconstexpr

Definition at line 1319 of file IRMatch.h.

◆ max_node_type

template<typename... Args>
constexpr static IRNodeType Halide::Internal::IRMatcher::Intrin< Args >::max_node_type = IRNodeType::Call
staticconstexpr

Definition at line 1320 of file IRMatch.h.

◆ canonical

template<typename... Args>
constexpr static bool Halide::Internal::IRMatcher::Intrin< Args >::canonical = and_reduce((Args::canonical)...)
staticconstexpr

Definition at line 1321 of file IRMatch.h.

◆ foldable

template<typename... Args>
constexpr static bool Halide::Internal::IRMatcher::Intrin< Args >::foldable = false
staticconstexpr

Definition at line 1376 of file IRMatch.h.


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