MLIR 22.0.0git
X86VectorUtils.h
Go to the documentation of this file.
1//===- X86VectorUtils.h - X86Vector Utilities -------------------*- 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#ifndef MLIR_DIALECT_X86VECTOR_UTILS_X86VECTORUTILS_H_
10#define MLIR_DIALECT_X86VECTOR_UTILS_X86VECTORUTILS_H_
11
13#include "llvm/ADT/ArrayRef.h"
14#include <cstdint>
15#include <optional>
16#include <string>
17
18namespace mlir {
19class AffineMap;
20class Operation;
21
22namespace x86vector {
23
24// Return true if the operation is in VNNI layout.
25// Optionally, the check can be constrained to a specific VNNI blocking factor.
26bool isInVnniLayout(Operation *op, llvm::ArrayRef<AffineMap> indexingMaps,
27 std::optional<unsigned> blockingFactor = std::nullopt);
28
29} // namespace x86vector
30} // namespace mlir
31
32#endif // MLIR_DIALECT_X86VECTOR_UTILS_X86VECTORUTILS_H_
A multi-dimensional affine map Affine map's are immutable like Type's, and they are uniqued.
Definition AffineMap.h:46
Operation is the basic unit of execution within MLIR.
Definition Operation.h:88
bool isInVnniLayout(Operation *op, llvm::ArrayRef< AffineMap > indexingMaps, std::optional< unsigned > blockingFactor=std::nullopt)
Include the generated interface declarations.