[llvm] [InstCombine] Add log-pow simplification for FP exponent edge case. (PR #76641)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 4 06:44:29 PST 2024


================
@@ -34,6 +34,38 @@ define double @log_powi_nonconst(double %x, i32 %y) {
   ret double %log
 }
 
+define float @logf_powfi_const(float %x) {
+; CHECK-LABEL: @logf_powfi_const(
+; CHECK-NEXT:    [[LOG1:%.*]] = call fast float @llvm.log.f32(float [[X:%.*]])
+; CHECK-NEXT:    [[MUL:%.*]] = fmul fast float [[LOG1]], -3.000000e+00
+; CHECK-NEXT:    ret float [[MUL]]
+  %pow = call fast float @llvm.powi.f32.i32(float %x, i32 -3)
+  %log = call fast float @logf(float %pow)
----------------
arsenm wrote:

what about llvm.powi + llvm.log, not the lib call?

https://github.com/llvm/llvm-project/pull/76641


More information about the llvm-commits mailing list