]> git.ipfire.org Git - thirdparty/glibc.git/blame - math/test-fpucw.c
Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472]
[thirdparty/glibc.git] / math / test-fpucw.c
CommitLineData
2b778ceb 1/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
11b34882
UD
2 This file is part of the GNU C Library.
3 Contributed by Andreas Jaeger <aj@suse.de>, 2000.
4
5 The GNU C Library is free software; you can redistribute it and/or
41bdb6e2
AJ
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
11b34882
UD
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2 13 Lesser General Public License for more details.
11b34882 14
41bdb6e2 15 You should have received a copy of the GNU Lesser General Public
59ba27a6 16 License along with the GNU C Library; if not, see
5a82c748 17 <https://www.gnu.org/licenses/>. */
11b34882
UD
18
19#include <fpu_control.h>
b24516a0 20#include <stdio.h>
11b34882 21
95e7cf29
MR
22#ifndef FPU_CONTROL
23# define FPU_CONTROL _FPU_DEFAULT
24#endif
25
0035851c
AS
26static int
27do_test (void)
11b34882
UD
28{
29#ifdef _FPU_GETCW
30/* Some architectures don't have _FPU_GETCW (e.g. Linux/Alpha). */
31 fpu_control_t cw;
32
33 _FPU_GETCW (cw);
34
497b8ef4 35 cw &= ~_FPU_RESERVED;
11b34882 36
95e7cf29 37 if (cw != (FPU_CONTROL & ~_FPU_RESERVED))
59553897 38 printf ("control word is 0x%lx but should be 0x%lx.\n",
95e7cf29 39 (long int) cw, (long int) (FPU_CONTROL & ~_FPU_RESERVED));
497b8ef4 40
95e7cf29 41 return cw != (FPU_CONTROL & ~_FPU_RESERVED);
b24516a0 42
11b34882
UD
43#else
44 return 0;
45#endif
46}
0035851c
AS
47
48#define TEST_FUNCTION do_test ()
49#include "../test-skeleton.c"