[Mlir-commits] [mlir] 180455a - [MLIR][LLVM] Expose powi intrinsic to MLIR
William S. Moses
llvmlistbot at llvm.org
Wed Dec 29 10:09:39 PST 2021
Author: William S. Moses
Date: 2021-12-29T13:09:35-05:00
New Revision: 180455ae5ecd813ad1acacaa555342cf53013d4e
URL: https://github.com/llvm/llvm-project/commit/180455ae5ecd813ad1acacaa555342cf53013d4e
DIFF: https://github.com/llvm/llvm-project/commit/180455ae5ecd813ad1acacaa555342cf53013d4e.diff
LOG: [MLIR][LLVM] Expose powi intrinsic to MLIR
Expose the powi intrinsic to the LLVM dialect within MLIR
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D116364
Added:
Modified:
mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
mlir/test/Dialect/LLVMIR/roundtrip.mlir
Removed:
################################################################################
diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
index f671c3ca1dae8..a2a1f7a57f43e 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
@@ -1395,6 +1395,12 @@ class LLVM_BinarySameArgsIntrinsicOp<string func, list<OpTrait> traits = []> :
let arguments = (ins LLVM_Type:$a, LLVM_Type:$b);
}
+class LLVM_BinaryIntrinsicOp<string func, list<OpTrait> traits = []> :
+ LLVM_OneResultIntrOp<func, [], [0,1],
+ !listconcat([NoSideEffect], traits)> {
+ let arguments = (ins LLVM_Type:$a, LLVM_Type:$b);
+}
+
class LLVM_TernarySameArgsIntrinsicOp<string func, list<OpTrait> traits = []> :
LLVM_OneResultIntrOp<func, [], [0],
!listconcat([NoSideEffect, SameOperandsAndResultType], traits)> {
@@ -1426,6 +1432,7 @@ def LLVM_Prefetch : LLVM_ZeroResultIntrOp<"prefetch", [0]> {
def LLVM_SinOp : LLVM_UnaryIntrinsicOp<"sin">;
def LLVM_SqrtOp : LLVM_UnaryIntrinsicOp<"sqrt">;
def LLVM_PowOp : LLVM_BinarySameArgsIntrinsicOp<"pow">;
+def LLVM_PowIOp : LLVM_BinaryIntrinsicOp<"powi">;
def LLVM_BitReverseOp : LLVM_UnaryIntrinsicOp<"bitreverse">;
def LLVM_CountLeadingZerosOp : LLVM_CountZerosIntrinsicOp<"ctlz">;
def LLVM_CountTrailingZerosOp : LLVM_CountZerosIntrinsicOp<"cttz">;
diff --git a/mlir/test/Dialect/LLVMIR/roundtrip.mlir b/mlir/test/Dialect/LLVMIR/roundtrip.mlir
index b931c9bb69e86..9e504e7fe0816 100644
--- a/mlir/test/Dialect/LLVMIR/roundtrip.mlir
+++ b/mlir/test/Dialect/LLVMIR/roundtrip.mlir
@@ -146,6 +146,9 @@ func @ops(%arg0: i32, %arg1: f32,
// CHECK: "llvm.intr.pow"(%[[FLOAT]], %[[FLOAT]]) : (f32, f32) -> f32
%31 = "llvm.intr.pow"(%arg1, %arg1) : (f32, f32) -> f32
+// CHECK: "llvm.intr.powi"(%[[FLOAT]], %[[I32]]) : (f32, i32) -> f32
+ %a31 = "llvm.intr.powi"(%arg1, %arg0) : (f32, i32) -> f32
+
// CHECK: "llvm.intr.bitreverse"(%{{.*}}) : (i32) -> i32
%32 = "llvm.intr.bitreverse"(%arg0) : (i32) -> i32
More information about the Mlir-commits
mailing list