[Mlir-commits] [mlir] [math] lower rsqrt to sqrt + fdiv (PR #91344)
Prashant Kumar
llvmlistbot at llvm.org
Tue May 7 08:44:43 PDT 2024
================
@@ -615,6 +615,24 @@ static LogicalResult convertRoundEvenOp(math::RoundEvenOp op,
return success();
}
+// Convert `math.rsqrt` into `arith.divf` + `math.sqrt`
+static LogicalResult convertRsqrtOp(math::RsqrtOp op,
+ PatternRewriter &rewriter) {
+
+ auto operand = op.getOperand();
+ auto operandTy = operand.getType();
+ auto eTy = getElementTypeOrSelf(operandTy);
+ if (!isa<FloatType>(eTy))
+ return failure();
+
+ Location loc = op->getLoc();
+ auto constOneFloat = createFloatConst(loc, operandTy, 1.0, rewriter);
+ auto sqrtOp = rewriter.create<math::SqrtOp>(loc, op->getOperand(0));
+ rewriter.replaceOpWithNewOp<arith::DivFOp>(op, operandTy,
----------------
pashu123 wrote:
Please include an integration test to verify UB. For example, the test should check the behaviour when the input value is 0.
https://github.com/llvm/llvm-project/pull/91344
More information about the Mlir-commits
mailing list