MLIR  20.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
VectorOps.h File Reference
#include "mlir/Bytecode/BytecodeOpInterface.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Vector/Interfaces/MaskableOpInterface.h"
#include "mlir/Dialect/Vector/Interfaces/MaskingOpInterface.h"
#include "mlir/IR/AffineMap.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
#include "mlir/Interfaces/DestinationStyleOpInterface.h"
#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Interfaces/VectorInterfaces.h"
#include "mlir/Interfaces/ViewLikeInterface.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/StringExtras.h"
#include "mlir/Dialect/Vector/IR/VectorEnums.h.inc"
#include "mlir/Dialect/Vector/IR/VectorAttributes.h.inc"
#include "mlir/Dialect/Vector/IR/VectorDialect.h.inc"
#include "mlir/Dialect/Vector/IR/VectorOps.h.inc"

Go to the source code of this file.

Classes

struct  mlir::vector::VectorDim
 

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::arith
 
 mlir::vector
 
 mlir::vector::detail
 

Macros

#define GET_ATTRDEF_CLASSES
 
#define GET_OP_CLASSES
 

Enumerations

enum class  mlir::vector::ConstantMaskKind { mlir::vector::AllFalse = 0 , mlir::vector::AllTrue }
 Predefined constant_mask kinds. More...
 
enum class  mlir::vector::BroadcastableToResult { mlir::vector::Success = 0 , mlir::vector::SourceRankHigher = 1 , mlir::vector::DimensionMismatch = 2 , mlir::vector::SourceTypeNotAVector = 3 }
 Return whether srcType can be broadcast to dstVectorType under the semantics of the vector.broadcast op. More...
 

Functions

void mlir::vector::buildTerminatedBody (OpBuilder &builder, Location loc)
 Default callback to build a region with a 'vector.yield' terminator with no arguments. More...
 
BroadcastableToResult mlir::vector::isBroadcastableTo (Type srcType, VectorType dstVectorType, std::pair< VectorDim, VectorDim > *mismatchingDims=nullptr)
 
void mlir::vector::populateVectorToVectorCanonicalizationPatterns (RewritePatternSet &patterns, PatternBenefit benefit=1)
 Collect a set of vector-to-vector canonicalization patterns. More...
 
void mlir::vector::populateFoldArithExtensionPatterns (RewritePatternSet &patterns)
 Collect a set of patterns that fold arithmetic extension on floating point into vector contract for the backends with native support. More...
 
void mlir::vector::populateElementwiseToVectorOpsPatterns (RewritePatternSet &patterns)
 Collect a set of patterns that fold elementwise op on vectors to the vector dialect. More...
 
IntegerType mlir::vector::getVectorSubscriptType (Builder &builder)
 Returns the integer type required for subscripts in the vector dialect. More...
 
ArrayAttr mlir::vector::getVectorSubscriptAttr (Builder &b, ArrayRef< int64_t > values)
 Returns an integer array attribute containing the given values using the integer type required for subscripts in the vector dialect. More...
 
Value mlir::vector::getVectorReductionOp (arith::AtomicRMWKind op, OpBuilder &builder, Location loc, Value vector)
 Returns the value obtained by reducing the vector into a scalar using the operation kind associated with a binary AtomicRMWKind op. More...
 
AffineMap mlir::vector::getTransferMinorIdentityMap (ShapedType shapedType, VectorType vectorType)
 Build the default minor identity map suitable for a vector transfer. More...
 
bool mlir::vector::checkSameValueRAW (TransferWriteOp defWrite, TransferReadOp read)
 Return true if the transfer_write fully writes the data accessed by the transfer_read. More...
 
bool mlir::vector::checkSameValueWAW (TransferWriteOp write, TransferWriteOp priorWrite)
 Return true if the write op fully over-write the priorWrite transfer_write op. More...
 
bool mlir::vector::isDisjointTransferIndices (VectorTransferOpInterface transferA, VectorTransferOpInterface transferB, bool testDynamicValueUsingBounds=false)
 Return true if we can prove that the transfer operations access disjoint memory, without requring the accessed tensor/memref to be the same. More...
 
bool mlir::vector::isDisjointTransferSet (VectorTransferOpInterface transferA, VectorTransferOpInterface transferB, bool testDynamicValueUsingBounds=false)
 Return true if we can prove that the transfer operations access disjoint memory, requiring the operations to access the same tensor/memref. More...
 
Value mlir::vector::makeArithReduction (OpBuilder &b, Location loc, CombiningKind kind, Value v1, Value acc, arith::FastMathFlagsAttr fastmath=nullptr, Value mask=nullptr)
 Returns the result value of reducing two scalar/vector values with the corresponding arith operation. More...
 
bool mlir::vector::isParallelIterator (Attribute attr)
 Returns true if attr has "parallel" iterator type semantics. More...
 
bool mlir::vector::isReductionIterator (Attribute attr)
 Returns true if attr has "reduction" iterator type semantics. More...
 
SmallVector< int64_t > mlir::vector::getAsIntegers (ArrayRef< Value > values)
 Returns the integer numbers in values. More...
 
SmallVector< int64_t > mlir::vector::getAsIntegers (ArrayRef< OpFoldResult > foldResults)
 Returns the integer numbers in foldResults. More...
 
SmallVector< Valuemlir::vector::getAsValues (OpBuilder &builder, Location loc, ArrayRef< OpFoldResult > foldResults)
 Convert foldResults into Values. More...
 
std::optional< int64_t > mlir::vector::getConstantVscaleMultiplier (Value value)
 If value is a constant multiple of vector.vscale (e.g. More...
 
VectorType mlir::vector::inferTransferOpMaskType (VectorType vecType, AffineMap permMap)
 Infers the mask type for a transfer op given its vector type and permutation map. More...
 
void mlir::vector::createMaskOpRegion (OpBuilder &builder, Operation *maskableOp)
 Create the vector.yield-ended region of a vector.mask op with maskableOp as masked operation. More...
 
Operation * mlir::vector::maskOperation (OpBuilder &builder, Operation *maskableOp, Value mask, Value passthru=Value())
 Creates a vector.mask operation around a maskable operation. More...
 
Value mlir::vector::selectPassthru (OpBuilder &builder, Value mask, Value newValue, Value passthru)
 Creates a vector select operation that picks values from newValue or passthru for each result vector lane based on mask. More...
 

Macro Definition Documentation

◆ GET_ATTRDEF_CLASSES

#define GET_ATTRDEF_CLASSES

Definition at line 38 of file VectorOps.h.

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 212 of file VectorOps.h.