llvm/mlir/lib/Conversion/PassDetail.h
Benoit Jacob 20daedacca 2d Arm Neon sdot op, and lowering to the intrinsic.
This adds Sdot2d op, which is similar to the usual Neon
intrinsic except that it takes 2d vector operands, reflecting the
structure of the arithmetic that it's performing: 4 separate
4-dimensional dot products, whence the vector<4x4xi8> shape.

This also adds a new pass, arm-neon-2d-to-intr, lowering
this new 2d op to the 1d intrinsic.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D102504
2021-06-10 14:36:39 -07:00

93 lines
1.8 KiB
C++

//===- PassDetail.h - Conversion Pass class details -------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef CONVERSION_PASSDETAIL_H_
#define CONVERSION_PASSDETAIL_H_
#include "mlir/Pass/Pass.h"
namespace mlir {
class AffineDialect;
class StandardOpsDialect;
// Forward declaration from Dialect.h
template <typename ConcreteDialect>
void registerDialect(DialectRegistry &registry);
namespace acc {
class OpenACCDialect;
} // end namespace acc
namespace complex {
class ComplexDialect;
} // end namespace complex
namespace gpu {
class GPUDialect;
class GPUModuleOp;
} // end namespace gpu
namespace LLVM {
class LLVMDialect;
} // end namespace LLVM
namespace NVVM {
class NVVMDialect;
} // end namespace NVVM
namespace math {
class MathDialect;
} // end namespace math
namespace memref {
class MemRefDialect;
} // end namespace memref
namespace omp {
class OpenMPDialect;
} // end namespace omp
namespace pdl_interp {
class PDLInterpDialect;
} // end namespace pdl_interp
namespace ROCDL {
class ROCDLDialect;
} // end namespace ROCDL
namespace scf {
class SCFDialect;
} // end namespace scf
namespace spirv {
class SPIRVDialect;
} // end namespace spirv
namespace tensor {
class TensorDialect;
} // end namespace tensor
namespace tosa {
class TosaDialect;
} // end namespace tosa
namespace vector {
class VectorDialect;
} // end namespace vector
namespace arm_neon {
class ArmNeonDialect;
} // end namespace arm_neon
#define GEN_PASS_CLASSES
#include "mlir/Conversion/Passes.h.inc"
} // end namespace mlir
#endif // CONVERSION_PASSDETAIL_H_