1#ifndef FREE_TENSOR_GPU_LOWER_VECTOR_H
2#define FREE_TENSOR_GPU_LOWER_VECTOR_H
6#include <unordered_map>
16class LowerVector :
public Z3SimplifyWithSymbolTable {
17 typedef Z3Simplify BaseClass;
19 static constexpr int VEC_LEN[] = {4, 2};
23 int vecLen_, isIndex_ = 0;
24 bool simplifyOnly_ =
false;
26 AnalyzeLinear analyzeLinear_;
29 std::string vecType(DataType dtype)
const;
30 bool hasVectorIndices(
const std::vector<Expr> &indices,
31 const std::vector<Expr> &shape);
32 std::vector<Expr> getIndices(
const std::vector<Expr> &indices);
35 using BaseClass::visit;
37 Stmt visit(
const For &op)
override;
38 Expr visit(
const Var &op)
override;
39 Expr visit(
const Load &op)
override;
40 Stmt visit(
const Store &op)
override;
41 Stmt visit(
const ReduceTo &op)
override;
#define DEFINE_PASS_FOR_FUNC(pass)
Definition: func.h:88
Definition: allocator.h:9
Ref< VarNode > Var
Definition: expr.h:40
Ref< StmtNode > Stmt
Definition: ast.h:152
Ref< ExprNode > Expr
Definition: ast.h:184