|
MLIR
22.0.0git
|
#include "mlir/Dialect/MemRef/IR/MemRef.h"#include "mlir/Dialect/UB//IR/UBOps.h"#include "mlir/Dialect/Vector/IR/VectorOps.h"#include "mlir/Dialect/Vector/Transforms/LoweringPatterns.h"#include "mlir/Dialect/Vector/Transforms/VectorRewritePatterns.h"#include "mlir/Dialect/Vector/Utils/VectorUtils.h"#include "mlir/IR/BuiltinTypes.h"#include "mlir/IR/Location.h"#include "mlir/IR/PatternMatch.h"#include "mlir/IR/TypeUtilities.h"#include "llvm/ADT/STLExtras.h"#include <numeric>Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "vector-shape-cast-lowering" |
Functions | |
| static void | inplaceAdd (int64_t lhs, ArrayRef< int64_t > base, MutableArrayRef< int64_t > rhs) |
| Perform the inplace update rhs <- lhs + rhs. More... | |
| #define DEBUG_TYPE "vector-shape-cast-lowering" |
Definition at line 27 of file LowerVectorShapeCast.cpp.
|
static |
Perform the inplace update rhs <- lhs + rhs.
where rhs is a number expressed in mixed base base with most signficant dimensions on the left. For example if rhs is {a,b,c} and base is {5,3,2} then rhs has value a*3*2 + b*2 + c.
Some examples where base is {5,3,2}: rhs = {0,0,0}, lhs = 1 --> rhs = {0,0,1} rhs = {0,0,1}, lhs = 1 --> rhs = {0,1,0} rhs = {0,0,0}, lhs = 25 --> rhs = {4,0,1}
Invalid: rhs = {0,0,2}, lhs = 1 : rhs not in base {5,3,2}
Overflows not handled correctly: rhs = {4,2,1}, lhs = 2 --> rhs = {0,0,0} (not {0,0,1})
Definition at line 48 of file LowerVectorShapeCast.cpp.