From: Uros Bizjak Date: Wed, 1 Nov 2017 07:47:19 +0000 (+0100) Subject: sqrt.c: New test. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6e0cb45f0c11d30f03498039b2f650ead28658bd;p=gcc.git sqrt.c: New test. * gcc.target/alpha/sqrt.c: New test. From-SVN: r254289 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 68c4b2651a5..a8143ade842 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,8 +1,12 @@ +2017-11-01 Uros Bizjak + + * gcc.target/alpha/sqrt.c: New test. + 2017-10-31 Daniel Santos - gcc.target/i386/pr82002-1.c: New test. - gcc.target/i386/pr82002-2a.c: New xfail test. - gcc.target/i386/pr82002-2b.c: New xfail test. + * gcc.target/i386/pr82002-1.c: New test. + * gcc.target/i386/pr82002-2a.c: New xfail test. + * gcc.target/i386/pr82002-2b.c: New xfail test. 2017-10-31 Martin Jambor @@ -16,8 +20,7 @@ 2017-10-31 David Malcolm - * g++.dg/cpp0x/auto21.C: Update dg-error to reflect addition of - quotes. + * g++.dg/cpp0x/auto21.C: Update dg-error to reflect addition of quotes. * g++.dg/cpp0x/missing-initializer_list-include.C: Likewise. 2017-10-31 David Malcolm @@ -35,8 +38,7 @@ 2017-10-31 Martin Liska * g++.dg/gcov/ternary.C: New test. - * g++.dg/gcov/gcov-threads-1.C (main): Update expected line - count. + * g++.dg/gcov/gcov-threads-1.C (main): Update expected line count. * lib/gcov.exp: Support new format for intermediate file format. 2017-11-01 Julia Koval diff --git a/gcc/testsuite/gcc.target/alpha/sqrt.c b/gcc/testsuite/gcc.target/alpha/sqrt.c new file mode 100644 index 00000000000..a3c8b243ae4 --- /dev/null +++ b/gcc/testsuite/gcc.target/alpha/sqrt.c @@ -0,0 +1,25 @@ +/* glibc bug, https://sourceware.org/ml/libc-alpha/2017-04/msg00256.html + When using software completions, we have to prevent assembler to match + input and output operands of sqrtt/sqrtf insn. Fixed in glibc 2.26. */ +/* { dg-do run } */ +/* { dg-options "-O2 -fno-builtin-sqrt -mieee" } */ + +double sqrt (double); + +static double +float64frombits (unsigned long b) +{ + union { unsigned long __b; double __d; } u = { .__b = b }; + return u.__d; +} + +int +main (void) +{ + double a = float64frombits (2); + + if (sqrt (a) != 3.1434555694052576e-162) + __builtin_abort (); + + return 0; +}