14 #ifndef MLIR_EDSC_INTRINSICS_H_ 15 #define MLIR_EDSC_INTRINSICS_H_ 40 "Expected index type");
44 "Expected index type");
48 "Expected index type");
66 pivs.reserve(ivs.size());
67 for (
auto &iv : ivs) {
76 vals.reserve(ivs.size());
77 for (
auto &iv : ivs) {
78 vals.push_back(iv.getValue());
86 namespace intrinsics {
94 values.append(vals.begin(), vals.end());
97 values.append(vals.begin(), vals.end());
101 values.append(tmp.begin(), tmp.end());
110 template <
typename T>
inline T
unpack(T value) {
return value; }
127 template <
typename... Args>
132 template <
typename... Args>
135 detail::
unpack(args)...)) {}
136 template <
typename T,
typename... Args>
140 template <
typename T1,
typename T2,
typename... Args>
144 detail::
unpack(args)...)) {}
147 template <
typename... Args>
152 template <
typename... Args>
155 detail::
unpack(args)...)) {}
156 template <
typename T,
typename... Args>
161 detail::
unpack(args)...)) {}
162 template <
typename T1,
typename T2,
typename... Args>
167 detail::
unpack(args)...)) {}
173 template <
typename... Args>
178 template <
typename... Args>
181 detail::
unpack(args)...)) {}
182 template <
typename T,
typename... Args>
186 template <
typename T1,
typename T2,
typename... Args>
190 detail::
unpack(args)...)) {}
276 #endif // MLIR_EDSC_INTRINSICS_H_ IndexHandle(Value v)
Definition: Intrinsics.h:38
Definition: InferTypeOpInterface.cpp:20
SmallVector< ValueHandle *, 8 > makeHandlePointers(MutableArrayRef< T > ivs)
Entry point to build multiple ValueHandle* from a mutable list ivs of T.
Definition: Intrinsics.h:64
OperationHandle cond_br(ValueHandle cond, BlockHandle *trueBranch, ArrayRef< ValueHandle *> trueCaptures, ArrayRef< ValueHandle > trueOperands, BlockHandle *falseBranch, ArrayRef< ValueHandle *> falseCaptures, ArrayRef< ValueHandle > falseOperands)
Definition: Intrinsics.cpp:61
ValueBuilder(OperationFolder *folder, Args... args)
Folder-based.
Definition: Intrinsics.h:148
Definition: Attributes.h:139
Value getValue() const
Definition: Builders.h:358
Definition: Builders.h:431
ValueBuilder(ArrayRef< ValueHandle > vs)
Definition: Intrinsics.h:130
Definition: Builders.h:290
ValueBuilder(Args... args)
Definition: Intrinsics.h:128
Definition: Intrinsics.h:125
IndexHandle & operator=(const ValueHandle &v)
Definition: Intrinsics.h:46
static ValueHandle create(Args... args)
Definition: Builders.h:478
ValueBuilder()
Definition: Intrinsics.h:169
Type getType() const
Definition: Builders.h:363
OperationBuilder()
Definition: Intrinsics.h:191
detail::ValueHandleArray unpack(ArrayRef< ValueHandle > values)
Definition: Intrinsics.h:112
Definition: Intrinsics.h:172
ValueHandleArray(ArrayRef< index_t > vals)
Definition: Intrinsics.h:99
SmallVector< Value, 8 > extractValues(ArrayRef< IndexHandle > ivs)
Returns a vector of the underlying Value from ivs.
Definition: Intrinsics.h:74
Type getType() const
Return the type of this value.
Definition: Value.cpp:34
ValueHandleArray(ArrayRef< ValueHandle > vals)
Definition: Intrinsics.h:93
OperationHandle br(BlockHandle *bh, ArrayRef< ValueHandle *> captures, ArrayRef< ValueHandle > operands)
Definition: Intrinsics.cpp:40
OperationBuilder(ArrayRef< ValueHandle > vs)
Definition: Intrinsics.h:176
OperationBuilder(T t, ArrayRef< ValueHandle > vs, Args... args)
Definition: Intrinsics.h:183
Definition: Builders.h:27
OperationBuilder(T1 t1, T2 t2, ArrayRef< ValueHandle > vs, Args... args)
Definition: Intrinsics.h:187
ValueHandleArray(ArrayRef< IndexHandle > vals)
Definition: Intrinsics.h:96
ValueBuilder(T t, ArrayRef< ValueHandle > vs, Args... args)
Definition: Intrinsics.h:137
IndexHandle()
Definition: Intrinsics.h:35
ValueBuilder(OperationFolder *folder, T1 t1, T2 t2, ArrayRef< ValueHandle > vs, Args... args)
Definition: Intrinsics.h:163
Definition: Builders.h:385
ValueBuilder(T1 t1, T2 t2, ArrayRef< ValueHandle > vs, Args... args)
Definition: Intrinsics.h:141
Definition: FoldUtils.h:50
Value v
Definition: Builders.h:375
ValueBuilder(ArrayRef< ValueHandle > vs, Args... args)
Definition: Intrinsics.h:133
Definition: Intrinsics.h:34
Definition: Intrinsics.h:91
Definition: Builders.h:43
IndexType getIndexType()
Definition: Builders.cpp:54
Type t
Definition: Builders.h:374
OperationBuilder(Args... args)
Definition: Intrinsics.h:174
SmallVector< IndexHandle, 8 > makeIndexHandles(unsigned rank)
Definition: Intrinsics.h:57
Definition: OpDefinition.h:949
ValueBuilder(OperationFolder *folder, ArrayRef< ValueHandle > vs)
Definition: Intrinsics.h:150
static OpBuilder & getBuilder()
Definition: Builders.cpp:52
IndexHandle(ValueHandle v)
Definition: Intrinsics.h:42
ValueBuilder(OperationFolder *folder, ArrayRef< ValueHandle > vs, Args... args)
Definition: Intrinsics.h:153
ValueBuilder(OperationFolder *folder, T t, ArrayRef< ValueHandle > vs, Args... args)
Definition: Intrinsics.h:157
IndexHandle(index_t v)
Definition: Intrinsics.h:37
OperationBuilder(ArrayRef< ValueHandle > vs, Args... args)
Definition: Intrinsics.h:179