diff --git a/mlir/include/mlir/Dialect/Complex/IR/ComplexOps.td b/mlir/include/mlir/Dialect/Complex/IR/ComplexOps.td --- a/mlir/include/mlir/Dialect/Complex/IR/ComplexOps.td +++ b/mlir/include/mlir/Dialect/Complex/IR/ComplexOps.td @@ -222,6 +222,31 @@ let results = (outs Complex:$result); } +//===----------------------------------------------------------------------===// +// Expm1Op +//===----------------------------------------------------------------------===// + +def Expm1Op : ComplexUnaryOp<"expm1", [SameOperandsAndResultType]> { + let summary = "computes exponential of a complex number minus 1"; + let description = [{ + Syntax: + + ``` + operation ::= ssa-id `=` `complex.expm1` ssa-use `:` type + ``` + + complex.expm1(x) := complex.exp(x) - 1 + + Example: + + ```mlir + %a = complex.expm1 %b : complex + ``` + }]; + + let results = (outs Complex:$result); +} + //===----------------------------------------------------------------------===// // ImOp //===----------------------------------------------------------------------===// diff --git a/mlir/test/Dialect/Complex/ops.mlir b/mlir/test/Dialect/Complex/ops.mlir --- a/mlir/test/Dialect/Complex/ops.mlir +++ b/mlir/test/Dialect/Complex/ops.mlir @@ -38,6 +38,9 @@ // CHECK: complex.exp %[[C]] : complex %exp = complex.exp %complex : complex + // CHECK: complex.expm1 %[[C]] : complex + %expm1 = complex.expm1 %complex : complex + // CHECK: complex.log %[[C]] : complex %log = complex.log %complex : complex