#include "mlir/Analysis/SliceAnalysis.h"
#include "mlir/Dialect/Affine/Analysis/AffineAnalysis.h"
#include "mlir/Dialect/Affine/Analysis/NestedMatcher.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Affine/LoopUtils.h"
#include "mlir/Dialect/Affine/Utils.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/Utils/IndexingUtils.h"
#include "mlir/Dialect/Vector/IR/VectorOps.h"
#include "mlir/Dialect/Vector/Utils/VectorUtils.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Diagnostics.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Transforms/Passes.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#define DEBUG_TYPE …
usingnamespacemlir;
usingnamespacemlir::affine;
static llvm::cl::OptionCategory clOptionsCategory(DEBUG_TYPE " options");
namespace {
struct VectorizerTestPass
: public PassWrapper<VectorizerTestPass, OperationPass<func::FuncOp>> { … };
}
void VectorizerTestPass::testVectorShapeRatio(llvm::raw_ostream &outs) { … }
static NestedPattern patternTestSlicingOps() { … }
void VectorizerTestPass::testBackwardSlicing(llvm::raw_ostream &outs) { … }
void VectorizerTestPass::testForwardSlicing(llvm::raw_ostream &outs) { … }
void VectorizerTestPass::testSlicing(llvm::raw_ostream &outs) { … }
static bool customOpWithAffineMapAttribute(Operation &op) { … }
void VectorizerTestPass::testComposeMaps(llvm::raw_ostream &outs) { … }
void VectorizerTestPass::testVecAffineLoopNest(llvm::raw_ostream &outs) { … }
void VectorizerTestPass::runOnOperation() { … }
namespace mlir {
void registerVectorizerTestPass() { … }
}