https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106574
Bug ID: 106574
Summary: gcc 12 with O3 leads to failures in glibc's y1f128
tests
Product: gcc
Version: 12.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: michael.hudson at canonical dot com
Target Milestone: ---
Initially reported here, but more likely to be a gcc issue: if I build glibc
with gcc 12 and -O3 (as is the default in Debian/Ubuntu) I get this failure:
(kinetic-amd64)root@anduril:/build/glibc-EA2Jch/glibc-2.36/build-tree/amd64-libc#
./elf/ld-linux-x86-64.so.2 --library-path .:./elf:./math
./math/test-float128-y1
testing _Float128 (without inline functions)
Failure: Test: y1_downward (0x1.c1badep+0)
Result:
is: -2.49850711930108135145795303826944004e-01
-0x1.ffb1bae4fa20118544b142160f5fp-3
should be: -2.49850711930108135145795303826943836e-01
-0x1.ffb1bae4fa20118544b142160f58p-3
difference: 1.68518870133883137142398069976181140e-34
0x1.c000000000000000000000000000p-113
ulp : 7.0000
max.ulp : 5.0000
Maximal error of `y1_downward'
is : 7 ulp
accepted: 5 ulp
Test suite completed:
216 test cases plus 212 tests for exception flags and
212 tests for errno executed.
2 errors occurred.
Building the e_j1f128.os object with -O2 or with gcc-11 fixes the failure.
Not sure how to reduce this to a smaller test case, but I'm happy to try
things.