Files
gps/tools/local/circt/include/mlir/Dialect/Math/IR/MathOpsDialect.h.inc
T
2026-07-12 11:01:51 +03:00

56 lines
2.5 KiB
C++

/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Dialect Declarations *|
|* *|
|* Automatically generated file, do not edit! *|
|* From: MathOps.td *|
|* *|
\*===----------------------------------------------------------------------===*/
namespace mlir::math {
/// The math dialect is intended to hold mathematical operations on integer and
/// floating types beyond simple arithmetics. Each operation works on scalar, vector
/// or tensor type. On vector and tensor type operations apply elementwise unless
/// explicitly specified otherwise. As an example, the floating point absolute value
/// can be expressed as:
///
/// ```mlir
/// // Scalar absolute value.
/// %a = math.absf %b : f64
///
/// // Vector elementwise absolute value.
/// %f = math.absf %g : vector<4xf32>
///
/// // Tensor elementwise absolute value.
/// %x = math.absf %y : tensor<4x?xf8>
/// ```
///
/// Some floating-point operations may specify rounding modes and/or fast-math
/// flags. In the absence of an explicit rounding mode, the math dialect uses
/// this default round mode for internal purposes such as constant folding and
/// canonicalization: round-to-nearest, ties-to-even. The runtime behavior of
/// operations without an explicit rounding mode is deferred to the target
/// backend and may differ from the default math rounding mode.
class MathDialect : public ::mlir::Dialect {
explicit MathDialect(::mlir::MLIRContext *context);
void initialize();
friend class ::mlir::MLIRContext;
public:
~MathDialect() override;
static constexpr ::llvm::StringLiteral getDialectNamespace() {
return ::llvm::StringLiteral("math");
}
/// Materialize a single constant operation from a given attribute value with
/// the desired resultant type.
::mlir::Operation *materializeConstant(::mlir::OpBuilder &builder,
::mlir::Attribute value,
::mlir::Type type,
::mlir::Location loc) override;
};
} // namespace mlir::math
MLIR_DECLARE_EXPLICIT_TYPE_ID(::mlir::math::MathDialect)