1//===-- Passes.td - Vector pass definition file ------------*- tablegen -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef MLIR_DIALECT_VECTOR_TRANSFORMS_PASSES 10#define MLIR_DIALECT_VECTOR_TRANSFORMS_PASSES 11 12include "mlir/Pass/PassBase.td" 13 14def LowerVectorMaskPass : Pass<"lower-vector-mask", "func::FuncOp"> { 15 let summary = "Lower 'vector.mask' operations"; 16 let constructor = "mlir::vector::createLowerVectorMaskPass()"; 17} 18 19def LowerVectorMultiReduction : Pass<"lower-vector-multi-reduction", "func::FuncOp"> { 20 let summary = "Lower 'vector.multi_reduction' operations"; 21 let constructor = "mlir::vector::createLowerVectorMultiReductionPass()"; 22 let options = [ 23 Option<"loweringStrategy", "lowering-strategy", "mlir::vector::VectorMultiReductionLowering", 24 /*default=*/"mlir::vector::VectorMultiReductionLowering::InnerParallel", 25 "Select the strategy to control how multi_reduction is lowered.", 26 [{::llvm::cl::values( 27 clEnumValN(mlir::vector::VectorMultiReductionLowering::InnerParallel, 28 "inner-parallel", 29 "Lower multi_reduction into outer-reduction and inner-parallel ops."), 30 clEnumValN(mlir::vector::VectorMultiReductionLowering::InnerReduction, 31 "inner-reduction", 32 "Lower multi_reduction into outer-parallel and inner-reduction ops.") 33 )}]> 34 ]; 35} 36 37#endif // MLIR_DIALECT_VECTOR_TRANSFORMS_PASSES 38