1//=- VectorToSPIRV.h - Vector to SPIR-V Patterns ------------------*- C++ -*-=//
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// Provides patterns to convert Vector dialect to SPIR-V dialect.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef MLIR_CONVERSION_VECTORTOSPIRV_VECTORTOSPIRV_H
14#define MLIR_CONVERSION_VECTORTOSPIRV_VECTORTOSPIRV_H
15
16#include "mlir/Transforms/DialectConversion.h"
17
18namespace mlir {
19class SPIRVTypeConverter;
20
21/// Appends to a pattern list additional patterns for translating Vector Ops to
22/// SPIR-V ops.
23void populateVectorToSPIRVPatterns(SPIRVTypeConverter &typeConverter,
24 RewritePatternSet &patterns);
25
26/// Appends patterns to convert vector reduction of the form:
27/// ```
28/// vector.reduction <add>, (muli (ext %lhs), (ext %rhs)), [%acc]
29/// ```
30///
31/// to SPIR-V integer dot product ops.
32void populateVectorReductionToSPIRVDotProductPatterns(
33 RewritePatternSet &patterns);
34
35} // namespace mlir
36
37#endif // MLIR_CONVERSION_VECTORTOSPIRV_VECTORTOSPIRV_H
38

source code of mlir/include/mlir/Conversion/VectorToSPIRV/VectorToSPIRV.h