diff options
Diffstat (limited to 'mlir/lib/Dialect/Complex/IR/ComplexOps.cpp')
| -rw-r--r-- | mlir/lib/Dialect/Complex/IR/ComplexOps.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/mlir/lib/Dialect/Complex/IR/ComplexOps.cpp b/mlir/lib/Dialect/Complex/IR/ComplexOps.cpp index 0390a00cf684..00dbb564481e 100644 --- a/mlir/lib/Dialect/Complex/IR/ComplexOps.cpp +++ b/mlir/lib/Dialect/Complex/IR/ComplexOps.cpp @@ -125,6 +125,20 @@ OpFoldResult AddOp::fold(ArrayRef<Attribute> operands) { } //===----------------------------------------------------------------------===// +// NegOp +//===----------------------------------------------------------------------===// + +OpFoldResult NegOp::fold(ArrayRef<Attribute> operands) { + assert(operands.size() == 1 && "unary op takes 1 operand"); + + // complex.neg(complex.neg(a)) -> a + if (auto negOp = getOperand().getDefiningOp<NegOp>()) + return negOp.getOperand(); + + return {}; +} + +//===----------------------------------------------------------------------===// // TableGen'd op method definitions //===----------------------------------------------------------------------===// |
