[Mlir-commits] [mlir] [mlir][spirv] Update math.powf lowering (PR #111388)
Jakub Kuderski
llvmlistbot at llvm.org
Mon Oct 7 08:03:04 PDT 2024
================
@@ -389,7 +389,31 @@ struct PowFOpPattern final : public OpConversionPattern<math::PowFOp> {
spirv::ConstantOp::getZero(adaptor.getLhs().getType(), loc, rewriter);
Value lessThan =
rewriter.create<spirv::FOrdLessThanOp>(loc, adaptor.getLhs(), zero);
- Value abs = rewriter.create<spirv::GLFAbsOp>(loc, adaptor.getLhs());
+
+ // Per C/CPP spec:
+ // "pow(base, exponent) returns NaN (and raises FE_INVALID) if base is "
+ // " finite and negative and exponent is finite and non-integer. "
+ // Calculae calc reminder from exponent and check whether it is zero
+ Value floatOne =
+ spirv::ConstantOp::getOne(adaptor.getRhs().getType(), loc, rewriter);
----------------
kuhar wrote:
Can you use a local variable for operand type?
https://github.com/llvm/llvm-project/pull/111388
More information about the Mlir-commits
mailing list