MLIR 22.0.0git
mlir::arith::WideIntEmulationConverter Class Reference

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"

Inheritance diagram for mlir::arith::WideIntEmulationConverter:

Public Member Functions

 WideIntEmulationConverter (unsigned widestIntSupportedByTarget)
unsigned getMaxTargetIntBitWidth () const

Detailed Description

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.

Constructor & Destructor Documentation

◆ WideIntEmulationConverter()

arith::WideIntEmulationConverter::WideIntEmulationConverter ( unsigned widestIntSupportedByTarget)
explicit

Definition at line 1228 of file EmulateWideInt.cpp.

References mlir::Type::getContext().

Member Function Documentation

◆ getMaxTargetIntBitWidth()

unsigned mlir::arith::WideIntEmulationConverter::getMaxTargetIntBitWidth ( ) const
inline

The documentation for this class was generated from the following files: