[PATCH] D139319: ValueTracking: Teach isKnownNeverInfinity about llvm.log*

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 9 06:13:28 PST 2022


spatel added inline comments.


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:3844
+      return isKnownNeverInfinity(Inst->getOperand(0), TLI, Depth + 1) &&
+             cannotBeOrderedLessThanZeroImpl(Inst->getOperand(0), TLI,
+                                             /*SignBitOnly=*/false, Depth + 1);
----------------
Don't we need to check that the input is non-zero to guard against log(0) --> -inf?

This should not fold?


```
define i1 @isKnownNeverNegInfinity_log(double %x) {
  %a = call ninf double @llvm.sqrt.f64(double %x) ; could be 0.0
  %e = call double @llvm.log.f64(double %a) ; log(0.0) --> -inf
  %r = fcmp une double %e, 0xfff0000000000000
  ret i1 %r
}

```



CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139319/new/

https://reviews.llvm.org/D139319



More information about the llvm-commits mailing list