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.
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);
}