Construct a new vector by taking elements from another sequence of vectors.
More...
#include <IR.h>
Inherits Halide::Internal::ExprNode< Shuffle >.
Construct a new vector by taking elements from another sequence of vectors.
Definition at line 761 of file IR.h.
◆ make()
static Expr Halide::Internal::Shuffle::make |
( |
const std::vector< Expr > & |
vectors, |
|
|
const std::vector< int > & |
indices |
|
) |
| |
|
static |
◆ make_interleave()
static Expr Halide::Internal::Shuffle::make_interleave |
( |
const std::vector< Expr > & |
vectors | ) |
|
|
static |
Convenience constructor for making a shuffle representing an interleaving of vectors of the same length.
◆ make_concat()
static Expr Halide::Internal::Shuffle::make_concat |
( |
const std::vector< Expr > & |
vectors | ) |
|
|
static |
Convenience constructor for making a shuffle representing a concatenation of the vectors.
◆ make_broadcast()
static Expr Halide::Internal::Shuffle::make_broadcast |
( |
Expr |
vector, |
|
|
int |
factor |
|
) |
| |
|
static |
Convenience constructor for making a shuffle representing a broadcast of a vector.
◆ make_slice()
static Expr Halide::Internal::Shuffle::make_slice |
( |
Expr |
vector, |
|
|
int |
begin, |
|
|
int |
stride, |
|
|
int |
size |
|
) |
| |
|
static |
Convenience constructor for making a shuffle representing a contiguous subset of a vector.
◆ make_extract_element()
static Expr Halide::Internal::Shuffle::make_extract_element |
( |
Expr |
vector, |
|
|
int |
i |
|
) |
| |
|
static |
Convenience constructor for making a shuffle representing extracting a single element.
◆ is_interleave()
bool Halide::Internal::Shuffle::is_interleave |
( |
| ) |
const |
Check if this shuffle is an interleaving of the vector arguments.
◆ is_broadcast()
bool Halide::Internal::Shuffle::is_broadcast |
( |
| ) |
const |
Check if this shuffle can be represented as a broadcast.
For example: A uint8 shuffle of with 4*n lanes and indices: 0, 1, 2, 3, 0, 1, 2, 3, ....., 0, 1, 2, 3 can be represented as a uint32 broadcast with n lanes (factor = 4).
◆ broadcast_factor()
int Halide::Internal::Shuffle::broadcast_factor |
( |
| ) |
const |
◆ is_concat()
bool Halide::Internal::Shuffle::is_concat |
( |
| ) |
const |
Check if this shuffle is a concatenation of the vector arguments.
◆ is_slice()
bool Halide::Internal::Shuffle::is_slice |
( |
| ) |
const |
Check if this shuffle is a contiguous strict subset of the vector arguments, and if so, the offset and stride of the slice.
◆ slice_begin()
int Halide::Internal::Shuffle::slice_begin |
( |
| ) |
const |
|
inline |
Check if this shuffle is a contiguous strict subset of the vector arguments, and if so, the offset and stride of the slice.
Definition at line 813 of file IR.h.
References indices.
◆ slice_stride()
int Halide::Internal::Shuffle::slice_stride |
( |
| ) |
const |
|
inline |
Check if this shuffle is a contiguous strict subset of the vector arguments, and if so, the offset and stride of the slice.
Definition at line 816 of file IR.h.
References indices.
◆ is_extract_element()
bool Halide::Internal::Shuffle::is_extract_element |
( |
| ) |
const |
Check if this shuffle is extracting a scalar from the vector arguments.
◆ vectors
std::vector<Expr> Halide::Internal::Shuffle::vectors |
Definition at line 762 of file IR.h.
◆ indices
std::vector<int> Halide::Internal::Shuffle::indices |
Indices indicating which vector element to place into the result.
The elements are numbered by their position in the concatenation of the vector arguments.
Definition at line 767 of file IR.h.
Referenced by slice_begin(), and slice_stride().
◆ _node_type
Definition at line 825 of file IR.h.
The documentation for this struct was generated from the following file:
- /build/halide-EhXYQ7/halide-12.0.1/src/IR.h