https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254911
Dimitry Andric <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected], | |[email protected], | |[email protected] --- Comment #1 from Dimitry Andric <[email protected]> --- This is what happens on my system (I just set CPUTYPE=sandybridge): testing csinh(0 + 0 I) == 0 + 0 I testing csinh(0 + -0 I) == 0 + -0 I testing csinhf(0 + 0 I) == 0 + 0 I testing csinhf(0 + -0 I) == 0 + -0 I testing csinh(-0 + -0 I) == -0 + -0 I testing csinh(-0 + 0 I) == -0 + 0 I testing csinhf(-0 + -0 I) == -0 + -0 I testing csinhf(-0 + 0 I) == -0 + 0 I testing csin(0 + 0 I) == 0 + 0 I testing csin(0 + -0 I) == 0 + -0 I testing csinf(0 + 0 I) == 0 + 0 I testing csinf(0 + -0 I) == 0 + -0 I testing csin(-0 + -0 I) == -0 + -0 I testing csin(-0 + 0 I) == -0 + 0 I testing csinf(-0 + -0 I) == -0 + -0 I testing csinf(-0 + 0 I) == -0 + 0 I testing ccosh(0 + 0 I) == 1 + 0 I testing ccosh(0 + -0 I) == 1 + -0 I testing ccoshf(0 + 0 I) == 1 + 0 I testing ccoshf(0 + -0 I) == 1 + -0 I testing ccosh(-0 + -0 I) == 1 + 0 I testing ccosh(-0 + 0 I) == 1 + -0 I testing ccoshf(-0 + -0 I) == 1 + 0 I testing ccoshf(-0 + 0 I) == 1 + -0 I testing ccos(0 + 0 I) == 1 + -0 I testing ccos(0 + -0 I) == 1 + 0 I testing ccosf(0 + 0 I) == 1 + -0 I testing ccosf(0 + -0 I) == 1 + 0 I testing ccos(-0 + -0 I) == 1 + -0 I testing ccos(-0 + 0 I) == 1 + 0 I testing ccosf(-0 + -0 I) == 1 + -0 I testing ccosf(-0 + 0 I) == 1 + 0 I testing ctanh(0 + 0 I) == 0 + 0 I testing ctanh(0 + -0 I) == 0 + -0 I testing ctanhf(0 + 0 I) == 0 + 0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:147: ctanhf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) != 0 testing ctanhf(0 + -0 I) == 0 + -0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:147: ctanhf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) != 0 testing ctanh(-0 + -0 I) == -0 + -0 I testing ctanh(-0 + 0 I) == -0 + 0 I testing ctanhf(-0 + -0 I) == -0 + -0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:147: ctanhf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) != 0 testing ctanhf(-0 + 0 I) == -0 + 0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:147: ctanhf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) != 0 testing ctan(0 + 0 I) == 0 + 0 I testing ctan(0 + -0 I) == 0 + -0 I testing ctanf(0 + 0 I) == 0 + 0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:148: ctanf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) != 0 testing ctanf(0 + -0 I) == 0 + -0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:148: ctanf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) != 0 testing ctan(-0 + -0 I) == -0 + -0 I testing ctan(-0 + 0 I) == -0 + 0 I testing ctanf(-0 + -0 I) == -0 + -0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:148: ctanf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) != 0 testing ctanf(-0 + 0 I) == -0 + 0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:148: ctanf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) != 0 failed: 8 checks failed; see output for more details So it's the exception masks that don't match. IIRC Alexander recently adjusted most of these tests to print the "bad" values if they were failing, but it doesn't really print the actual exception bits. Probably there's some code in ctan and ctanh that takes a shortcut here and precalculates the result, as we've seen before. Sprinkling some volatile or compiling ctan/ctanh with -fno-builtin might help... -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "[email protected]"
