[Bug math/33563] New: powf() fails for 0x1p+8192 ^ 1.0

siddhesh at sourceware dot org sourceware-bugzilla@sourceware.org
Tue Oct 21 16:42:20 GMT 2025


https://sourceware.org/bugzilla/show_bug.cgi?id=33563

            Bug ID: 33563
           Summary: powf() fails for 0x1p+8192 ^ 1.0
           Product: glibc
           Version: 2.41
            Status: NEW
          Severity: normal
          Priority: P2
         Component: math
          Assignee: unassigned at sourceware dot org
          Reporter: siddhesh at sourceware dot org
                CC: adhemerval.zanella at linaro dot org,
                    siddhesh at sourceware dot org, tydeman.fred at gmail dot com,
                    unassigned at sourceware dot org, zimmerma+gcc at loria dot fr
        Depends on: 33411
  Target Milestone: ---

+++ This bug was initially created as a clone of Bug #33411 +++

Adding this input to auto-libm-test-in results in the test failing for 32-bit
float and _Float32.  It looks like the code in sysdeps/ieee754/flt-32/e_powf.c
tries to do a exp2(y*ln(x)), which incorrectly rounds the result to inf.  Maybe
the logic should just special-case 1.0 and return y untouched.

Leaving this as an exercise for someone else to try out.


Referenced Bugs:

https://sourceware.org/bugzilla/show_bug.cgi?id=33411
[Bug 33411] powl() raises spurious overflow
-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Glibc-bugs mailing list