Fix some fallout for small targets.

gcc/testsuite/
	Fix some fallout for small targets.

	PR testsuite/52641
	* gcc.c-torture/execute/20190820-1.c:
	Add dg-require-effective-target int32plus.
	* gcc.c-torture/execute/pr85331.c
	Add dg-require-effective-target double64plus.
	* gcc.dg/pow-sqrt-1.c: Same.
	* gcc.dg/pow-sqrt-2.c: Same.
	* gcc.dg/pow-sqrt-3.c: Same.
	* gcc.c-torture/execute/20190901-1.c: Same.
	* gcc.c-torture/execute/user-printf.c [avr]: Skip.
	* gcc.c-torture/execute/fprintf-2.c [avr]: Skip.
	* gcc.c-torture/execute/printf-2.c [avr]: Skip.
	* gcc.dg/Wlarger-than3.c [avr]: Skip.
	* gcc.c-torture/execute/ieee/20041213-1.c (sqrt)
	[avr,double=float]: Provide custom prototype.
	* gcc.dg/pr36017.c: Same.
	* gcc.c-torture/execute/pr90025.c: Use 32-bit int.
	* gcc.dg/complex-7.c: Add dg-require-effective-target double64.
	* gcc.dg/loop-versioning-1.c:
	Add dg-require-effective-target size32plus.
	* gcc.dg/loop-versioning-2.c: Same.

From-SVN: r277142
This commit is contained in:
Georg-Johann Lay 2019-10-18 06:46:03 +00:00 committed by Georg-Johann Lay
parent cc1facefe3
commit 8d1a718e06
17 changed files with 53 additions and 3 deletions

View file

@ -1,3 +1,29 @@
2019-10-18 Georg-Johann Lay <avr@gjlay.de>
Fix some fallout for small targets.
PR testsuite/52641
* gcc.c-torture/execute/20190820-1.c:
Add dg-require-effective-target int32plus.
* gcc.c-torture/execute/pr85331.c
Add dg-require-effective-target double64plus.
* gcc.dg/pow-sqrt-1.c: Same.
* gcc.dg/pow-sqrt-2.c: Same.
* gcc.dg/pow-sqrt-3.c: Same.
* gcc.c-torture/execute/20190901-1.c: Same.
* gcc.c-torture/execute/user-printf.c [avr]: Skip.
* gcc.c-torture/execute/fprintf-2.c [avr]: Skip.
* gcc.c-torture/execute/printf-2.c [avr]: Skip.
* gcc.dg/Wlarger-than3.c [avr]: Skip.
* gcc.c-torture/execute/ieee/20041213-1.c (sqrt)
[avr,double=float]: Provide custom prototype.
* gcc.dg/pr36017.c: Same.
* gcc.c-torture/execute/pr90025.c: Use 32-bit int.
* gcc.dg/complex-7.c: Add dg-require-effective-target double64.
* gcc.dg/loop-versioning-1.c:
Add dg-require-effective-target size32plus.
* gcc.dg/loop-versioning-2.c: Same.
2019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
Richard Sandiford <richard.sandiford@arm.com>

View file

@ -1,5 +1,6 @@
/* PR rtl-optimization/91347 */
/* Reported by John David Anglin <danglin@gcc.gnu.org> */
/* { dg-require-effective-target int32plus } */
typedef unsigned short __u16;
typedef __signed__ int __s32;

View file

@ -1,7 +1,12 @@
/* PR target/91472 */
/* Reported by John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> */
/* { dg-require-effective-target double64plus } */
#if __SIZEOF_INT__ >= 4
typedef unsigned int gmp_uint_least32_t;
#else
typedef __UINT_LEAST32_TYPE__ gmp_uint_least32_t;
#endif
union ieee_double_extract
{

View file

@ -1,6 +1,7 @@
/* Verify that calls to fprintf don't get eliminated even if their
result on success can be computed at compile time (they can fail).
The calls can still be transformed into those of other functions.
{ dg-skip-if "requires io" { avr-*-* } }
{ dg-skip-if "requires io" { freestanding } } */
#include <stdio.h>

View file

@ -1,4 +1,8 @@
#if defined (__AVR__) && (__SIZEOF_DOUBLE__ == __SIZEOF_FLOAT__)
extern double sqrt (double) __asm ("sqrtf");
#else
extern double sqrt (double);
#endif
extern void abort (void);
int once;

View file

@ -1,4 +1,5 @@
/* PR tree-optimization/85331 */
/* { dg-require-effective-target double64plus } */
typedef double V __attribute__((vector_size (2 * sizeof (double))));
typedef long long W __attribute__((vector_size (2 * sizeof (long long))));

View file

@ -13,10 +13,10 @@ bar (char *p)
}
__attribute__((noipa)) void
foo (unsigned int x)
foo (__UINT32_TYPE__ x)
{
char s[32] = { 'f', 'o', 'o', 'b', 'a', 'r', 0 };
((unsigned int *) s)[2] = __builtin_bswap32 (x);
((__UINT32_TYPE__ *) s)[2] = __builtin_bswap32 (x);
bar (s);
}

View file

@ -2,6 +2,7 @@
result on success can be computed at compile time (they can fail).
The calls can still be transformed into those of other functions.
{ dg-require-effective-target unwrapped }
{ dg-skip-if "requires io" { avr-*-* } }
{ dg-skip-if "requires io" { freestanding } } */
#include <stdio.h>

View file

@ -2,6 +2,7 @@
don't get eliminated even if their result on success can be computed at
compile time (they can fail).
{ dg-require-effective-target unwrapped }
{ dg-skip-if "requires io" { avr-*-* } }
{ dg-skip-if "requires io" { freestanding } } */
#include <stdarg.h>

View file

@ -1,6 +1,6 @@
/* Exercise -Wlarger-than= with a byte-size suffix.
{ dg-do compile }
{ dg-skip-if "small address space" { "pdp11-*-*" } }
{ dg-skip-if "small address space" { "pdp11-*-*" } { "avr-*-*" } }
{ dg-options "-Wlarger-than=1MiB" } */
#define MB (1000 * 1000) /* MegaByte */

View file

@ -2,6 +2,7 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-cplxlower" } */
/* { dg-require-effective-target double64 } */
__complex double
foo (__complex double a, __complex double b)

View file

@ -1,4 +1,5 @@
/* { dg-options "-O3 -fdump-tree-lversion-details" } */
/* { dg-require-effective-target size32plus } */
/* The simplest IV case. */

View file

@ -1,4 +1,5 @@
/* { dg-options "-O3 -fdump-tree-lversion-details" } */
/* { dg-require-effective-target size32plus } */
/* Versioning for step == 1 in these loops would allow loop interchange,
but otherwise isn't worthwhile. At the moment we decide not to version. */

View file

@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2 -ffast-math --param max-pow-sqrt-depth=5" } */
/* { dg-require-effective-target double64plus } */
#define EXPN (-6 * (0.5*0.5*0.5*0.5))

View file

@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2 -ffast-math --param max-pow-sqrt-depth=5" } */
/* { dg-require-effective-target double64plus } */
#define EXPN (-5.875)
#include "pow-sqrt.x"

View file

@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2 -ffast-math --param max-pow-sqrt-depth=3" } */
/* { dg-require-effective-target double64plus } */
#define EXPN (1.25)
#include "pow-sqrt.x"

View file

@ -2,7 +2,11 @@
/* { dg-do run } */
/* { dg-options "-O2" } */
#if defined (__AVR__) && (__SIZEOF_DOUBLE__ == __SIZEOF_FLOAT__)
extern double sqrt (double) __asm ("sqrtf");
#else
extern double sqrt (double);
#endif
extern void abort (void);
__attribute__((noinline)) double