From: Georg-Johann Lay Date: Sun, 7 Jan 2024 15:53:21 +0000 (+0100) Subject: testsuite/52641: Fix fallout from sloppy tests. X-Git-Tag: basepoints/gcc-15~3157 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c765016557eb8d4c576bfe22c10abf0b398fbab;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/testsuite/gcc.dg/torture/pr110838.c b/gcc/testsuite/gcc.dg/torture/pr110838.c index f039bd6c8ea2..ae2874b6d0d9 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 6190b90cf66f..cfe364f9a841 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 a6be14294b4e..8def5ad3cca4 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 a86a19fbef2a..cea377489eb3 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 1a29ca52e42e..7b3599a8a4e7 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 a6bea3d33894..78b0d017be8e 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 f4d06fed2b6a..36cb74b72794 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 e67198bf8c38..ce6dc341deda 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 9deb9f6f3201..960314548320 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 0fd9b004a038..2cb4361dc001 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 ca7204cbc3ce..8f012626f500 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 1dd8dbcf1d81..0dda1a72b576 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 0ee218545526..68d28116229d 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 de1a264345cd..2630707e061d 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); }