|
MLIR 22.0.0git
|
Converts integer types that are too wide for the target by splitting them in two halves and thus turning into supported ones, i.e., i2*N --> iN, where N is the widest integer bitwidth supported by the target. More...
#include "mlir/Dialect/Arith/Transforms/WideIntEmulationConverter.h"
Public Member Functions | |
| WideIntEmulationConverter (unsigned widestIntSupportedByTarget) | |
| unsigned | getMaxTargetIntBitWidth () const |
Converts integer types that are too wide for the target by splitting them in two halves and thus turning into supported ones, i.e., i2*N --> iN, where N is the widest integer bitwidth supported by the target.
Currently, we only handle power-of-two integer types and support conversions of integers twice as wide as the maximum supported by the target. Wide integers are represented as vectors, e.g., i64 --> vector<2xi32>, where the first element is the low half of the original integer, and the second element the high half.
Definition at line 23 of file WideIntEmulationConverter.h.
|
explicit |
Definition at line 1228 of file EmulateWideInt.cpp.
References mlir::Type::getContext().
|
inline |
Definition at line 27 of file WideIntEmulationConverter.h.
Referenced by mlir::memref::populateMemRefWideIntEmulationConversions().