diff mbox series

[testsuite,applied] PR52641 Fix more fallout from sloppy tests.

Message ID a5db37f0-9e5e-471a-9ac3-16176d215e33@gjlay.de
State New
Headers show
Series [testsuite,applied] PR52641 Fix more fallout from sloppy tests. | expand

Commit Message

Georg-Johann Lay Jan. 7, 2024, 3:53 p.m. UTC
Made some tests more generic so they can pass on more targets.

Johann

--

testsuite/52641: Fix fallout from sloppy tests.

gcc/testsuite/
	PR testsuite/52641
	* gcc.dg/torture/pr110838.c: Use proper shift offset to get MSB or int.
	* gcc.dg/torture/pr112282.c: Use at least 32 bits for :20 bit-fields.
	* gcc.dg/tree-ssa/bitcmp-5.c: Use integral type with 32 bits or more.
	* gcc.dg/tree-ssa/bitcmp-6.c: Same.
	* gcc.dg/tree-ssa/cltz-complement-max.c: Same.
	* gcc.dg/tree-ssa/cltz-max.c: Same.
	* gcc.dg/tree-ssa/if-to-switch-8.c: Use literals that fit int.
	* gcc.dg/tree-ssa/if-to-switch-9.c [avr]: Set case-values-threshold=3.
	* gcc.dg/tree-ssa/negneg-3.c: Discriminate [not] large_double.
	* gcc.dg/tree-ssa/phi-opt-25b.c: Use types of correct widths for
	__builtin_bswapN.
	* gcc.dg/tree-ssa/pr55177-1.c: Same.
	* gcc.dg/tree-ssa/popcount-max.c: Use int32_t where required.
	* gcc.dg/tree-ssa/pr111583-1.c: Use intptr_t as needed.
	* gcc.dg/tree-ssa/pr111583-2.c: Same.

Comments

Jeff Law Jan. 7, 2024, 4:45 p.m. UTC | #1
On 1/7/24 08:53, Georg-Johann Lay wrote:
> Made some tests more generic so they can pass on more targets.
> 
> Johann
> 
> -- 
> 
> testsuite/52641: Fix fallout from sloppy tests.
> 
> gcc/testsuite/
>      PR testsuite/52641
>      * gcc.dg/torture/pr110838.c: Use proper shift offset to get MSB or 
> int.
>      * gcc.dg/torture/pr112282.c: Use at least 32 bits for :20 bit-fields.
>      * gcc.dg/tree-ssa/bitcmp-5.c: Use integral type with 32 bits or more.
>      * gcc.dg/tree-ssa/bitcmp-6.c: Same.
>      * gcc.dg/tree-ssa/cltz-complement-max.c: Same.
>      * gcc.dg/tree-ssa/cltz-max.c: Same.
>      * gcc.dg/tree-ssa/if-to-switch-8.c: Use literals that fit int.
>      * gcc.dg/tree-ssa/if-to-switch-9.c [avr]: Set case-values-threshold=3.
>      * gcc.dg/tree-ssa/negneg-3.c: Discriminate [not] large_double.
>      * gcc.dg/tree-ssa/phi-opt-25b.c: Use types of correct widths for
>      __builtin_bswapN.
>      * gcc.dg/tree-ssa/pr55177-1.c: Same.
>      * gcc.dg/tree-ssa/popcount-max.c: Use int32_t where required.
>      * gcc.dg/tree-ssa/pr111583-1.c: Use intptr_t as needed.
>      * gcc.dg/tree-ssa/pr111583-2.c: Same.
Are you checking this on other targets?  My tester just started 
complaining about these (ft30-elf, fr30-elf), more expected as today's 
run progresses)


> Tests that now fail, but worked before (2 tests):
> 
> ft32-sim: gcc: gcc.dg/tree-ssa/phi-opt-25b.c (test for excess errors)
> ft32-sim: gcc: gcc.dg/tree-ssa/phi-opt-25b.c (test for excess errors)

Jeff
Georg-Johann Lay Jan. 7, 2024, 5:17 p.m. UTC | #2
Am 07.01.24 um 17:45 schrieb Jeff Law:
> 
> 
> On 1/7/24 08:53, Georg-Johann Lay wrote:
>> Made some tests more generic so they can pass on more targets.
>>
>> Johann
>>
>> -- 
>>
>> testsuite/52641: Fix fallout from sloppy tests.
>>
>> gcc/testsuite/
>>      PR testsuite/52641
>>      * gcc.dg/torture/pr110838.c: Use proper shift offset to get MSB 
>> or int.
>>      * gcc.dg/torture/pr112282.c: Use at least 32 bits for :20 
>> bit-fields.
>>      * gcc.dg/tree-ssa/bitcmp-5.c: Use integral type with 32 bits or 
>> more.
>>      * gcc.dg/tree-ssa/bitcmp-6.c: Same.
>>      * gcc.dg/tree-ssa/cltz-complement-max.c: Same.
>>      * gcc.dg/tree-ssa/cltz-max.c: Same.
>>      * gcc.dg/tree-ssa/if-to-switch-8.c: Use literals that fit int.
>>      * gcc.dg/tree-ssa/if-to-switch-9.c [avr]: Set 
>> case-values-threshold=3.
>>      * gcc.dg/tree-ssa/negneg-3.c: Discriminate [not] large_double.
>>      * gcc.dg/tree-ssa/phi-opt-25b.c: Use types of correct widths for
>>      __builtin_bswapN.
>>      * gcc.dg/tree-ssa/pr55177-1.c: Same.
>>      * gcc.dg/tree-ssa/popcount-max.c: Use int32_t where required.
>>      * gcc.dg/tree-ssa/pr111583-1.c: Use intptr_t as needed.
>>      * gcc.dg/tree-ssa/pr111583-2.c: Same.
> Are you checking this on other targets?  My tester just started 
> complaining about these (ft30-elf, fr30-elf), more expected as today's 
> run progresses)
> 
> 
>> Tests that now fail, but worked before (2 tests):
>>
>> ft32-sim: gcc: gcc.dg/tree-ssa/phi-opt-25b.c (test for excess errors)
>> ft32-sim: gcc: gcc.dg/tree-ssa/phi-opt-25b.c (test for excess errors)
> 
> Jeff

Hi Jeff, thanks for fixing the typo.

It slipped through because "int short" works in that place.

Usually when going after PR52641 I used dg-require, dg-skip or
dg-xfail for tests that fail on 16-bit int etc.

The take above was more ambitious in that it tried to make some
tests work without breaking other platforms of course.

It's not always easy to get the intent of a test case and how
to make it more generic though.

Johann
Jeff Law Jan. 7, 2024, 7:10 p.m. UTC | #3
On 1/7/24 10:17, Georg-Johann Lay wrote:
> 
> 
> Am 07.01.24 um 17:45 schrieb Jeff Law:
>>
>>
>> On 1/7/24 08:53, Georg-Johann Lay wrote:
>>> Made some tests more generic so they can pass on more targets.
>>>
>>> Johann
>>>
>>> -- 
>>>
>>> testsuite/52641: Fix fallout from sloppy tests.
>>>
>>> gcc/testsuite/
>>>      PR testsuite/52641
>>>      * gcc.dg/torture/pr110838.c: Use proper shift offset to get MSB 
>>> or int.
>>>      * gcc.dg/torture/pr112282.c: Use at least 32 bits for :20 
>>> bit-fields.
>>>      * gcc.dg/tree-ssa/bitcmp-5.c: Use integral type with 32 bits or 
>>> more.
>>>      * gcc.dg/tree-ssa/bitcmp-6.c: Same.
>>>      * gcc.dg/tree-ssa/cltz-complement-max.c: Same.
>>>      * gcc.dg/tree-ssa/cltz-max.c: Same.
>>>      * gcc.dg/tree-ssa/if-to-switch-8.c: Use literals that fit int.
>>>      * gcc.dg/tree-ssa/if-to-switch-9.c [avr]: Set 
>>> case-values-threshold=3.
>>>      * gcc.dg/tree-ssa/negneg-3.c: Discriminate [not] large_double.
>>>      * gcc.dg/tree-ssa/phi-opt-25b.c: Use types of correct widths for
>>>      __builtin_bswapN.
>>>      * gcc.dg/tree-ssa/pr55177-1.c: Same.
>>>      * gcc.dg/tree-ssa/popcount-max.c: Use int32_t where required.
>>>      * gcc.dg/tree-ssa/pr111583-1.c: Use intptr_t as needed.
>>>      * gcc.dg/tree-ssa/pr111583-2.c: Same.
>> Are you checking this on other targets?  My tester just started 
>> complaining about these (ft30-elf, fr30-elf), more expected as today's 
>> run progresses)
>>
>>
>>> Tests that now fail, but worked before (2 tests):
>>>
>>> ft32-sim: gcc: gcc.dg/tree-ssa/phi-opt-25b.c (test for excess errors)
>>> ft32-sim: gcc: gcc.dg/tree-ssa/phi-opt-25b.c (test for excess errors)
>>
>> Jeff
> 
> Hi Jeff, thanks for fixing the typo.
> 
> It slipped through because "int short" works in that place.
> 
> Usually when going after PR52641 I used dg-require, dg-skip or
> dg-xfail for tests that fail on 16-bit int etc.
Yea.  We're not terribly good about keeping the testsuite 16bit clean. 
Just not that much interest in such ports.  Just to be clear -- I'm 
happy to see the testsuite improved by reducing noise, even on these 
lesser used platforms.

> 
> The take above was more ambitious in that it tried to make some
> tests work without breaking other platforms of course.
ACK.  It happens.  Just a reminder to be careful.  I've already fixed it 
on the trunk.



> 
> It's not always easy to get the intent of a test case and how
> to make it more generic though.
Absolutely true.

Thanks again,

jeff
diff mbox series

Patch

diff --git a/gcc/testsuite/gcc.dg/torture/pr110838.c b/gcc/testsuite/gcc.dg/torture/pr110838.c
index f039bd6c8ea..ae2874b6d0d 100644
--- a/gcc/testsuite/gcc.dg/torture/pr110838.c
+++ b/gcc/testsuite/gcc.dg/torture/pr110838.c
@@ -5,10 +5,12 @@  typedef __UINT8_TYPE__ uint8_t;
 typedef __INT8_TYPE__ int8_t;
 typedef uint8_t pixel;
 
+#define MSB (__CHAR_BIT__ * __SIZEOF_INT__ - 1)
+
 /* get the sign of input variable (TODO: this is a dup, make common) */
 static inline int8_t signOf(int x)
 {
-  return (x >> 31) | ((int)((((uint32_t)-x)) >> 31));
+  return (x >> MSB) | ((int)((((uint32_t)-x)) >> MSB));
 }
 
 __attribute__((noipa))
diff --git a/gcc/testsuite/gcc.dg/torture/pr112282.c b/gcc/testsuite/gcc.dg/torture/pr112282.c
index 6190b90cf66..cfe364f9a84 100644
--- a/gcc/testsuite/gcc.dg/torture/pr112282.c
+++ b/gcc/testsuite/gcc.dg/torture/pr112282.c
@@ -1,5 +1,11 @@ 
 /* { dg-do run } */
 
+#if __SIZEOF_INT__ < 4
+#define Xint __INT32_TYPE__
+#else
+#define Xint int
+#endif
+
 int printf(const char *, ...);
 void abort ();
 /* We need an abort that isn't noreturn.  */
@@ -10,8 +16,8 @@  void __attribute__((noipa)) my_abort ()
 int a, g, h, i, v, w = 2, x, y, ab, ac, ad, ae, af, ag;
 static int f, j, m, n, p, r, u, aa;
 struct b {
-  int c : 20;
-  int d : 20;
+  Xint c : 20;
+  Xint d : 20;
   int e : 10;
 };
 static struct b l, o, q = {3, 3, 5};
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/bitcmp-5.c b/gcc/testsuite/gcc.dg/tree-ssa/bitcmp-5.c
index a6be14294b4..8def5ad3cca 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/bitcmp-5.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/bitcmp-5.c
@@ -6,6 +6,9 @@ 
    of `(a & b) CMP a` and `(a | b) CMP a`
    which can be optimized to 1. */
 
+#if __SIZEOF_INT__ < 4
+#define int __INT32_TYPE__
+#endif
 
 /* For `&`, the non-negativeness of b is not taken into account. */
 int f_and_le(int len) {
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/bitcmp-6.c b/gcc/testsuite/gcc.dg/tree-ssa/bitcmp-6.c
index a86a19fbef2..cea377489eb 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/bitcmp-6.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/bitcmp-6.c
@@ -6,6 +6,10 @@ 
    of `(a & b) CMP a` and `(a | b) CMP a`
    which can be optimized to 0. */
 
+#if __SIZEOF_INT__ < 4
+#define int __INT32_TYPE__
+#endif
+
 /* For `&`, the non-negativeness of b is not taken into account. */
 int f_and_gt(int len) {
   len &= 0xfffff;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cltz-complement-max.c b/gcc/testsuite/gcc.dg/tree-ssa/cltz-complement-max.c
index 1a29ca52e42..7b3599a8a4e 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/cltz-complement-max.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/cltz-complement-max.c
@@ -3,6 +3,10 @@ 
 
 #define PREC (__CHAR_BIT__)
 
+#if __SIZEOF_INT__ < 4
+#define int __INT32_TYPE__
+#endif
+
 int clz_complement_count1 (unsigned char b) {
     int c = 0;
 
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cltz-max.c b/gcc/testsuite/gcc.dg/tree-ssa/cltz-max.c
index a6bea3d3389..78b0d017be8 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/cltz-max.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/cltz-max.c
@@ -3,6 +3,10 @@ 
 
 #define PREC (__CHAR_BIT__)
 
+#if __SIZEOF_INT__ < 4
+#define int __INT32_TYPE__
+#endif
+
 int clz_count1 (unsigned char b) {
     int c = 0;
 
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c
index f4d06fed2b6..36cb74b7279 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c
@@ -20,7 +20,7 @@  int foo(int a, int b)
     else if (a == 10)
       global2 = 12345;
     else if (a == 1)
-      global2 = 123456;
+      global2 = 23456;
   }
 }
 
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-9.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-9.c
index e67198bf8c3..ce6dc341ded 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-9.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-9.c
@@ -1,6 +1,7 @@ 
 /* PR tree-optimization/88702 */
 /* { dg-do compile } */
 /* { dg-options "-O2 -fdump-tree-iftoswitch-optimized" } */
+/* { dg-additional-options "--param=case-values-threshold=3" { target { avr-*-* } } } */
 
 int IsHTMLWhitespace(int aChar) {                         
   return aChar == 0x0009 || aChar == 0x000A ||              
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/negneg-3.c b/gcc/testsuite/gcc.dg/tree-ssa/negneg-3.c
index 9deb9f6f320..96031454832 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/negneg-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/negneg-3.c
@@ -12,4 +12,5 @@  DEF(0, unsigned, long long)
 DEF(1, unsigned, unsigned long long)
 DEF(2, double, float)
 
-/* { dg-final { scan-tree-dump-times "negate_expr" 6 "optimized"} } */
+/* { dg-final { scan-tree-dump-times "negate_expr" 6 "optimized" { target { large_double } } } } */
+/* { dg-final { scan-tree-dump-times "negate_expr" 4 "optimized" { target { ! large_double } } } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-25b.c b/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-25b.c
index 0fd9b004a03..2cb4361dc00 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-25b.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-25b.c
@@ -5,17 +5,17 @@ 
 /* Test to make sure unrelated arguments and comparisons
    don't get optimized incorrectly. */
 
-unsigned short test_bswap16(unsigned short x, unsigned short y)
+__UINT16_TYPE__ short test_bswap16(__UINT16_TYPE__ x, __UINT16_TYPE__ y)
 {
   return x ? __builtin_bswap16(y) : 0;
 }
 
-unsigned int test_bswap32(unsigned int x, unsigned int y)
+__UINT32_TYPE__ test_bswap32(__UINT32_TYPE__ x, __UINT32_TYPE__ y)
 {
   return x ? __builtin_bswap32(y) : 0;
 }
 
-unsigned long long test_bswap64(unsigned long long x, unsigned long long y)
+__UINT64_TYPE__ test_bswap64(__UINT64_TYPE__ x, __UINT64_TYPE__ y)
 {
   return x ? __builtin_bswap64(y) : 0;
 }
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/popcount-max.c b/gcc/testsuite/gcc.dg/tree-ssa/popcount-max.c
index ca7204cbc3c..8f012626f50 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/popcount-max.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/popcount-max.c
@@ -3,7 +3,7 @@ 
 
 #define PREC (__CHAR_BIT__)
 
-int count1 (unsigned char b) {
+__INT32_TYPE__ count1 (unsigned char b) {
     int c = 0;
 
     while (b) {
@@ -16,7 +16,7 @@  int count1 (unsigned char b) {
       return 34567;
 }
 
-int count2 (unsigned char b) {
+__INT32_TYPE__ count2 (unsigned char b) {
     int c = 0;
 
     while (b) {
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr111583-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr111583-1.c
index 1dd8dbcf1d8..0dda1a72b57 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr111583-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr111583-1.c
@@ -12,7 +12,7 @@  int main()
       a = 1;
       for (; a; a++) {
 	    {
-	      long b = j, d = h;
+	      __INTPTR_TYPE__ b = j, d = h;
 	      int c = 0;
 	      while (d--)
 		*(char *)b++ = c;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr111583-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr111583-2.c
index 0ee21854552..68d28116229 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr111583-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr111583-2.c
@@ -18,7 +18,7 @@  static short m(unsigned k) {
   const unsigned short *n[65];
   g = &n[4];
   k || l();
-  long a = k;
+  __INTPTR_TYPE__ a = k;
   char i = 0;
   unsigned long j = k;
   while (j--)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr55177-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr55177-1.c
index de1a264345c..2630707e061 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr55177-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr55177-1.c
@@ -1,10 +1,10 @@ 
 /* { dg-do compile } */
 /* { dg-options "-O2 -fdump-tree-optimized" } */
-extern int x;
+extern __INT32_TYPE__ x;
 
 void foo(void)
 {
-  int a = __builtin_bswap32(x);
+  __INT32_TYPE__ a = __builtin_bswap32(x);
   a &= 0x5a5b5c5d;
   x = __builtin_bswap32(a);
 }