Date: Fri, 09 Apr 2021 19:58:25 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: =?UTF-8?B?W0J1ZyAyNTQ5MTFdIGxpYi9tc3VuL2N0cmlnX3Rlc3QgZmFpbHMg?= =?UTF-8?B?aWYgY29tcGlsZWQgd2l0aCBBVljCoCgtbWF2eCkgb3IgYW55IENQVVNFVCBl?= =?UTF-8?B?bmFibGluZyBBVlg=?= Message-ID: <bug-254911-227-Cko0pIkxAs@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-254911-227@https.bugs.freebsd.org/bugzilla/> References: <bug-254911-227@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D254911 Dimitry Andric <dim@FreeBSD.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |arichardson@FreeBSD.org, | |dim@FreeBSD.org, | |emaste@freebsd.org --- Comment #1 from Dimitry Andric <dim@FreeBSD.org> --- This is what happens on my system (I just set CPUTYPE=3Dsandybridge): testing csinh(0 + 0 I) =3D=3D 0 + 0 I testing csinh(0 + -0 I) =3D=3D 0 + -0 I testing csinhf(0 + 0 I) =3D=3D 0 + 0 I testing csinhf(0 + -0 I) =3D=3D 0 + -0 I testing csinh(-0 + -0 I) =3D=3D -0 + -0 I testing csinh(-0 + 0 I) =3D=3D -0 + 0 I testing csinhf(-0 + -0 I) =3D=3D -0 + -0 I testing csinhf(-0 + 0 I) =3D=3D -0 + 0 I testing csin(0 + 0 I) =3D=3D 0 + 0 I testing csin(0 + -0 I) =3D=3D 0 + -0 I testing csinf(0 + 0 I) =3D=3D 0 + 0 I testing csinf(0 + -0 I) =3D=3D 0 + -0 I testing csin(-0 + -0 I) =3D=3D -0 + -0 I testing csin(-0 + 0 I) =3D=3D -0 + 0 I testing csinf(-0 + -0 I) =3D=3D -0 + -0 I testing csinf(-0 + 0 I) =3D=3D -0 + 0 I testing ccosh(0 + 0 I) =3D=3D 1 + 0 I testing ccosh(0 + -0 I) =3D=3D 1 + -0 I testing ccoshf(0 + 0 I) =3D=3D 1 + 0 I testing ccoshf(0 + -0 I) =3D=3D 1 + -0 I testing ccosh(-0 + -0 I) =3D=3D 1 + 0 I testing ccosh(-0 + 0 I) =3D=3D 1 + -0 I testing ccoshf(-0 + -0 I) =3D=3D 1 + 0 I testing ccoshf(-0 + 0 I) =3D=3D 1 + -0 I testing ccos(0 + 0 I) =3D=3D 1 + -0 I testing ccos(0 + -0 I) =3D=3D 1 + 0 I testing ccosf(0 + 0 I) =3D=3D 1 + -0 I testing ccosf(0 + -0 I) =3D=3D 1 + 0 I testing ccos(-0 + -0 I) =3D=3D 1 + -0 I testing ccos(-0 + 0 I) =3D=3D 1 + 0 I testing ccosf(-0 + -0 I) =3D=3D 1 + -0 I testing ccosf(-0 + 0 I) =3D=3D 1 + 0 I testing ctanh(0 + 0 I) =3D=3D 0 + 0 I testing ctanh(0 + -0 I) =3D=3D 0 + -0 I testing ctanhf(0 + 0 I) =3D=3D 0 + 0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:147: ctanhf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) !=3D 0 testing ctanhf(0 + -0 I) =3D=3D 0 + -0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:147: ctanhf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) !=3D 0 testing ctanh(-0 + -0 I) =3D=3D -0 + -0 I testing ctanh(-0 + 0 I) =3D=3D -0 + 0 I testing ctanhf(-0 + -0 I) =3D=3D -0 + -0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:147: ctanhf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) !=3D 0 testing ctanhf(-0 + 0 I) =3D=3D -0 + 0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:147: ctanhf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) !=3D 0 testing ctan(0 + 0 I) =3D=3D 0 + 0 I testing ctan(0 + -0 I) =3D=3D 0 + -0 I testing ctanf(0 + 0 I) =3D=3D 0 + 0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:148: ctanf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) !=3D 0 testing ctanf(0 + -0 I) =3D=3D 0 + -0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:148: ctanf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) !=3D 0 testing ctan(-0 + -0 I) =3D=3D -0 + -0 I testing ctan(-0 + 0 I) =3D=3D -0 + 0 I testing ctanf(-0 + -0 I) =3D=3D -0 + -0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:148: ctanf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) !=3D 0 testing ctanf(-0 + 0 I) =3D=3D -0 + 0 I *** Check failed: /usr/src/lib/msun/tests/ctrig_test.c:148: ctanf fetestexcept((0x04 | 0x20 | 0x01 | 0x08 | 0x10)) (0x1) !=3D 0 failed: 8 checks failed; see output for more details So it's the exception masks that don't match. IIRC Alexander recently adjus= ted 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... --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-254911-227-Cko0pIkxAs>