[mlir] Add RSqrt tp ComplexOps.td.
authorAlexander Belyaev <pifon@google.com>
Mon, 23 May 2022 14:10:20 +0000 (16:10 +0200)
committerAlexander Belyaev <pifon@google.com>
Mon, 23 May 2022 14:12:05 +0000 (16:12 +0200)
Differential Revision: https://reviews.llvm.org/D126202

mlir/include/mlir/Dialect/Complex/IR/ComplexOps.td
mlir/test/Dialect/Complex/ops.mlir

index a87af6f..3073d4e 100644 (file)
@@ -388,6 +388,25 @@ def ReOp : ComplexUnaryOp<"re",
 }
 
 //===----------------------------------------------------------------------===//
+// RsqrtOp
+//===----------------------------------------------------------------------===//
+
+def RsqrtOp : ComplexUnaryOp<"rsqrt", [SameOperandsAndResultType]> {
+  let summary = "complex reciprocal of square root";
+  let description = [{
+    The `rsqrt` operation computes reciprocal of square root.
+
+    Example:
+
+    ```mlir
+    %a = complex.rsqrt %b : complex<f32>
+    ```
+  }];
+
+  let results = (outs Complex<AnyFloat>:$result);
+}
+
+//===----------------------------------------------------------------------===//
 // SignOp
 //===----------------------------------------------------------------------===//
 
index 6c2ed8b..f0f80e0 100644 (file)
@@ -61,5 +61,18 @@ func.func @ops(%f: f32) {
 
   // CHECK: complex.sub %[[C]], %[[C]] : complex<f32>
   %diff = complex.sub %complex, %complex : complex<f32>
+
+  // CHECK: complex.tanh %[[C]] : complex<f32>
+  %tanh = complex.tanh %complex : complex<f32>
+
+  // CHECK: complex.pow %[[C]], %[[C]] : complex<f32>
+  %pow = complex.pow %complex, %complex : complex<f32>
+
+  // CHECK: complex.sqrt %[[C]] : complex<f32>
+  %sqrt = complex.sqrt %complex : complex<f32>
+
+  // CHECK: complex.rsqrt %[[C]] : complex<f32>
+  %rsqrt = complex.rsqrt %complex : complex<f32>
+
   return
 }