Loading...
Searching...
No Matches
Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op > 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 A2, typename B2, VectorReduce::Operator reduce_op_2>
HALIDE_ALWAYS_INLINE bool | match (const VectorReduceOp< A2, B2, reduce_op_2 > &op, MatcherState &state) const noexcept
HALIDE_ALWAYS_INLINE Expr | make (MatcherState &state, halide_type_t type_hint) const

## Public Attributes

A | a
B | lanes

## Static Public Attributes

static constexpr uint32_t | binds = bindings<A>::mask | bindings<B>::mask
static constexpr IRNodeType | min_node_type = IRNodeType::VectorReduce
static constexpr IRNodeType | max_node_type = IRNodeType::VectorReduce
static constexpr bool | canonical = A::canonical
static constexpr bool | foldable = false

## Detailed Description

template<typename A, typename B, VectorReduce::Operator reduce_op>
struct Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >

Definition at line 1873 of file IRMatch.h.

## Member Function Documentation

## match() [1/2]

template<typename A, typename B, VectorReduce::Operator reduce_op>
template<uint32_t bound>

HALIDE_ALWAYS_INLINE bool Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::match | ( | const BaseExprNode & | e,
|  | MatcherState & | state ) const

inline noexcept

Definition at line 1885 of file IRMatch.h.

References Halide::Internal::VectorReduce::_node_type, a, Halide::Expr::get(), HALIDE_ALWAYS_INLINE, lanes, Halide::Type::lanes(), Halide::Internal::IRMatcher::bindings< T >::mask, match(), Halide::Internal::VectorReduce::op, Halide::Internal::BaseExprNode::type, and Halide::Internal::VectorReduce::value.

Referenced by match(), and match().

## match() [2/2]

template<typename A, typename B, VectorReduce::Operator reduce_op>
template<uint32_t bound, typename A2, typename B2, VectorReduce::Operator reduce_op_2>

HALIDE_ALWAYS_INLINE bool Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::match | ( | const VectorReduceOp< A2, B2, reduce_op_2 > & | op,
|  | MatcherState & | state ) const

inline noexcept

Definition at line 1898 of file IRMatch.h.

References a, HALIDE_ALWAYS_INLINE, lanes, Halide::Internal::IRMatcher::bindings< T >::mask, match(), and Halide::Internal::IRMatcher::unwrap().

## make()

template<typename A, typename B, VectorReduce::Operator reduce_op>

HALIDE_ALWAYS_INLINE Expr Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::make | ( | MatcherState & | state,
|  | halide_type_t | type_hint ) const

inline

Definition at line 1905 of file IRMatch.h.

References a, halide_scalar_value_t::i64, lanes, Halide::Internal::VectorReduce::make(), and halide_scalar_value_t::u.

## Member Data Documentation

## a

template<typename A, typename B, VectorReduce::Operator reduce_op>

A Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::a

Definition at line 1875 of file IRMatch.h.

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

## lanes

template<typename A, typename B, VectorReduce::Operator reduce_op>

B Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::lanes

Definition at line 1876 of file IRMatch.h.

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

## binds

template<typename A, typename B, VectorReduce::Operator reduce_op>

uint32_t Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::binds = bindings<A>::mask | bindings<B>::mask

static constexpr

Definition at line 1878 of file IRMatch.h.

## min_node_type

template<typename A, typename B, VectorReduce::Operator reduce_op>

IRNodeType Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::min_node_type = IRNodeType::VectorReduce

static constexpr

Definition at line 1880 of file IRMatch.h.

## max_node_type

template<typename A, typename B, VectorReduce::Operator reduce_op>

IRNodeType Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::max_node_type = IRNodeType::VectorReduce

static constexpr

Definition at line 1881 of file IRMatch.h.

## canonical

template<typename A, typename B, VectorReduce::Operator reduce_op>

bool Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::canonical = A::canonical

static constexpr

Definition at line 1882 of file IRMatch.h.

## foldable

template<typename A, typename B, VectorReduce::Operator reduce_op>

bool Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::foldable = false

static constexpr

Definition at line 1913 of file IRMatch.h.

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

- src/IRMatch.h