This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: PR29335 evaluate transcendentals at compile-time using MPFR [take 3]

On Fri, 20 Oct 2006, Kaveh R. GHAZI wrote:

> Also, I'll figure out a testcase for vanilla 2.2.0 as a followup.

And here is the testcase for buggy MPFR.  I believe the results are only
valid when sizeof(double)==8, so I verified that in the test.

Tested on sparc-sun-solaris2.10 with the sin/cos/tan patch:
using vanilla MPFR 2.2.0 (where it fails as expected) and patched MPFR
2.2.0 (where it passes).

Is the testcase okay for mainline assuming that the sin/cos/tan patch is


2006-10-23  Kaveh R. Ghazi  <>

        * gcc.dg/torture/builtin-sin-mpfr-1.c: New test.

/* Version 2.2.0 of MPFR had bugs in sin rounding.  This test checks
   to see if that buggy version was installed.  The problem is fixed
   in the MPFR cumulative patch and
   presumably later MPFR versions.

   Origin: Kaveh R. Ghazi 10/23/2006.  */

/* { dg-do link } */

extern void link_error (int, double, double);

#define TESTIT(ARG,RES) do { \
  if (sizeof (double) == 8 && __builtin_sin(ARG) != RES) \
    link_error(__LINE__, __builtin_sin(ARG), RES); \
  } while (0);

int main()
  TESTIT (-0x1.c0016155c4da3p-1, -0x1.88fc58bcf030dp-1);

  TESTIT (0x1.30654d85c2756p-2, 0x1.2beeb9de27a79p-2);

  TESTIT (0x1.fe68ccaa8e201p+2, 0x1.fc3f0c54e97a7p-1);

  /* This case should always pass.  */
  TESTIT (0.0, 0.0);

  return 0;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]