[testuite] : Fix some fllout for small targets.
diff mbox series

Message ID 49393fac-670e-1e04-8077-663d0ce925b3@gjlay.de
State New
Headers show
Series
  • [testuite] : Fix some fllout for small targets.
Related show

Commit Message

Georg-Johann Lay Oct. 17, 2019, 3:32 p.m. UTC
Hi, this fixes some FAILs for small targets, fixed or skipped by 
size32plus, double64[plus] etc.

Ok to apply?

Johann

	Fix some fallout for small targets.

	* 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.

Comments

Jeff Law Oct. 17, 2019, 9:42 p.m. UTC | #1
On 10/17/19 9:32 AM, Georg-Johann Lay wrote:
> Hi, this fixes some FAILs for small targets, fixed or skipped by
> size32plus, double64[plus] etc.
> 
> Ok to apply?
> 
> Johann
> 
>     Fix some fallout for small targets.
> 
>     * 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.
OK
jeff

Patch
diff mbox series

Index: gcc.c-torture/execute/20190820-1.c
===================================================================
--- gcc.c-torture/execute/20190820-1.c	(revision 277097)
+++ gcc.c-torture/execute/20190820-1.c	(working copy)
@@ -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;
Index: gcc.c-torture/execute/20190901-1.c
===================================================================
--- gcc.c-torture/execute/20190901-1.c	(revision 277097)
+++ gcc.c-torture/execute/20190901-1.c	(working copy)
@@ -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
 {
Index: gcc.c-torture/execute/fprintf-2.c
===================================================================
--- gcc.c-torture/execute/fprintf-2.c	(revision 277097)
+++ gcc.c-torture/execute/fprintf-2.c	(working copy)
@@ -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>
Index: gcc.c-torture/execute/ieee/20041213-1.c
===================================================================
--- gcc.c-torture/execute/ieee/20041213-1.c	(revision 277097)
+++ gcc.c-torture/execute/ieee/20041213-1.c	(working copy)
@@ -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;
 
Index: gcc.c-torture/execute/pr85331.c
===================================================================
--- gcc.c-torture/execute/pr85331.c	(revision 277097)
+++ gcc.c-torture/execute/pr85331.c	(working copy)
@@ -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))));
Index: gcc.c-torture/execute/pr90025.c
===================================================================
--- gcc.c-torture/execute/pr90025.c	(revision 277097)
+++ gcc.c-torture/execute/pr90025.c	(working copy)
@@ -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);
 }
 
Index: gcc.c-torture/execute/printf-2.c
===================================================================
--- gcc.c-torture/execute/printf-2.c	(revision 277097)
+++ gcc.c-torture/execute/printf-2.c	(working copy)
@@ -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>
Index: gcc.c-torture/execute/user-printf.c
===================================================================
--- gcc.c-torture/execute/user-printf.c	(revision 277097)
+++ gcc.c-torture/execute/user-printf.c	(working copy)
@@ -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>
Index: gcc.dg/Wlarger-than3.c
===================================================================
--- gcc.dg/Wlarger-than3.c	(revision 277097)
+++ gcc.dg/Wlarger-than3.c	(working copy)
@@ -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 */
Index: gcc.dg/complex-7.c
===================================================================
--- gcc.dg/complex-7.c	(revision 277097)
+++ gcc.dg/complex-7.c	(working copy)
@@ -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)
Index: gcc.dg/loop-versioning-1.c
===================================================================
--- gcc.dg/loop-versioning-1.c	(revision 277097)
+++ gcc.dg/loop-versioning-1.c	(working copy)
@@ -1,4 +1,5 @@ 
 /* { dg-options "-O3 -fdump-tree-lversion-details" } */
+/* { dg-require-effective-target size32plus } */
 
 /* The simplest IV case.  */
 
Index: gcc.dg/loop-versioning-2.c
===================================================================
--- gcc.dg/loop-versioning-2.c	(revision 277097)
+++ gcc.dg/loop-versioning-2.c	(working copy)
@@ -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.  */
Index: gcc.dg/pow-sqrt-1.c
===================================================================
--- gcc.dg/pow-sqrt-1.c	(revision 277097)
+++ gcc.dg/pow-sqrt-1.c	(working copy)
@@ -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))
 
Index: gcc.dg/pow-sqrt-2.c
===================================================================
--- gcc.dg/pow-sqrt-2.c	(revision 277097)
+++ gcc.dg/pow-sqrt-2.c	(working copy)
@@ -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"
Index: gcc.dg/pow-sqrt-3.c
===================================================================
--- gcc.dg/pow-sqrt-3.c	(revision 277097)
+++ gcc.dg/pow-sqrt-3.c	(working copy)
@@ -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"
Index: gcc.dg/pr36017.c
===================================================================
--- gcc.dg/pr36017.c	(revision 277097)
+++ gcc.dg/pr36017.c	(working copy)
@@ -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