MLIR 22.0.0git
NarrowTypeEmulationConverter.h
Go to the documentation of this file.
1//===- NarrowTypeEmulationConverter.h - Type Converter for NTE -----*- C++
2//-*-===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef MLIR_DIALECT_ARITH_NARROW_TYPE_EMULATION_CONVERTER_H_
11#define MLIR_DIALECT_ARITH_NARROW_TYPE_EMULATION_CONVERTER_H_
12
14
15namespace mlir::arith {
16/// Converts narrow integer or float types that are not supported
17/// by the target hardware to wider types. Currently, we only
18/// handle power-of-two integer types and convert them to wider
19/// integers that are equal or larger than 8 bits.
21public:
22 explicit NarrowTypeEmulationConverter(unsigned targetBitwidth);
23
24 unsigned getLoadStoreBitwidth() const { return loadStoreBitwidth; }
25
26private:
27 unsigned loadStoreBitwidth;
28};
29} // namespace mlir::arith
30
31#endif // MLIR_DIALECT_ARITH_NARROW_TYPE_EMULATION_CONVERTER_H_
NarrowTypeEmulationConverter(unsigned targetBitwidth)