aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2013-08-14 18:39:59 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2013-08-14 19:39:59 +0100
commit9fdb9c918de22529df3e680adcc80cc39677f368 (patch)
treec254f1e8330e5c12533f0f55b055ccd6b3acdb56 /gcc
parentc466cffbaa504b542e6bb367ec59957e7f618120 (diff)
downloadgcc-9fdb9c918de22529df3e680adcc80cc39677f368.zip
gcc-9fdb9c918de22529df3e680adcc80cc39677f368.tar.gz
gcc-9fdb9c918de22529df3e680adcc80cc39677f368.tar.bz2
re PR testsuite/52641 (Test cases fail for 16-bit int targets)
PR testsuite/52641 * c-c++-common/simulate-thread/bitfields-2.c: Run test only for target { ! int16 }. * gcc.dg/tree-ssa/pr54245.c: Do slsr scan only for target { ! int16 }. * gcc.dg/tree-ssa/slsr-1.c: Adjust multiplicators to scan for for target { int16 }. Restrict existing tests to target { int32 } where appropriate. * gcc.dg/tree-ssa/slsr-2.c, gcc.dg/tree-ssa/slsr-27.c: Likewise. * gcc.dg/tree-ssa/slsr-28.c, gcc.dg/tree-ssa/slsr-29.c: Likewise. * gcc.dg/tree-ssa/slsr-3.c, gcc.dg/tree-ssa/ssa-ccp-23.c: Likewise. * lib/target-supports.exp (check_effective_target_int32): New proc. From-SVN: r201743
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog13
-rw-r--r--gcc/testsuite/c-c++-common/simulate-thread/bitfields-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr54245.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/slsr-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/slsr-2.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/slsr-27.c3
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/slsr-28.c3
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/slsr-29.c3
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/slsr-3.c9
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-23.c3
-rw-r--r--gcc/testsuite/lib/target-supports.exp9
11 files changed, 46 insertions, 13 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 60ab9dd..35bd4e8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -64,6 +64,19 @@
* c-c++-common/scal-to-vec1.c: Add !int16 and large_double conditions
to tests that assume int/double are larger than short/float.
+ PR testsuite/52641
+ * c-c++-common/simulate-thread/bitfields-2.c: Run test only for
+ target { ! int16 }.
+ * gcc.dg/tree-ssa/pr54245.c: Do slsr scan only for target { ! int16 }.
+ * gcc.dg/tree-ssa/slsr-1.c: Adjust multiplicators to scan for for
+ target { int16 }. Restrict existing tests to target { int32 }
+ where appropriate.
+ * gcc.dg/tree-ssa/slsr-2.c, gcc.dg/tree-ssa/slsr-27.c: Likewise.
+ * gcc.dg/tree-ssa/slsr-28.c, gcc.dg/tree-ssa/slsr-29.c: Likewise.
+ * gcc.dg/tree-ssa/slsr-3.c, gcc.dg/tree-ssa/ssa-ccp-23.c: Likewise.
+ * lib/target-supports.exp (check_effective_target_int32): New proc.
+
+
2013-08-14 Janis Johnson <janisjo@codesourcery.com>
* gcc.target/arm/pr19599.c: Skip for -mthumb.
diff --git a/gcc/testsuite/c-c++-common/simulate-thread/bitfields-2.c b/gcc/testsuite/c-c++-common/simulate-thread/bitfields-2.c
index 392f779..0b29ffb 100644
--- a/gcc/testsuite/c-c++-common/simulate-thread/bitfields-2.c
+++ b/gcc/testsuite/c-c++-common/simulate-thread/bitfields-2.c
@@ -1,4 +1,4 @@
-/* { dg-do link } */
+/* { dg-do link { target { ! int16 } } } */
/* { dg-options "--param allow-store-data-races=0" } */
/* { dg-final { simulate-thread } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr54245.c b/gcc/testsuite/gcc.dg/tree-ssa/pr54245.c
index 0e11d06..daca042 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr54245.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr54245.c
@@ -45,5 +45,5 @@ int main(void)
/* For now, disable inserting an initializer when the multiplication will
take place in a smaller type than originally. This test may be deleted
in future when this case is handled more precisely. */
-/* { dg-final { scan-tree-dump-times "Inserting initializer" 0 "slsr" } } */
+/* { dg-final { scan-tree-dump-times "Inserting initializer" 0 "slsr" { target { ! int16 } } } } */
/* { dg-final { cleanup-tree-dump "slsr" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/slsr-1.c b/gcc/testsuite/gcc.dg/tree-ssa/slsr-1.c
index 38da179..e8c0ff0 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/slsr-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/slsr-1.c
@@ -14,7 +14,9 @@ f (int *p, unsigned int n)
foo (*(p + 48 + n * 4));
}
-/* { dg-final { scan-tree-dump-times "\\+ 128|\\, 128>" 1 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\\+ 128|\\, 128>" 1 "optimized" { target { int32plus } } } } */
/* { dg-final { scan-tree-dump-times "\\+ 64|\\, 64>" 1 "optimized" } } */
-/* { dg-final { scan-tree-dump-times "\\+ 192|\\, 192>" 1 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\\+ 32|\\, 32>" 1 "optimized" { target { int16 } } } } */
+/* { dg-final { scan-tree-dump-times "\\+ 192|\\, 192>" 1 "optimized" { target { int32 } } } } */
+/* { dg-final { scan-tree-dump-times "\\+ 96|\\, 96>" 1 "optimized" { target { int16 } } } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/slsr-2.c b/gcc/testsuite/gcc.dg/tree-ssa/slsr-2.c
index c6bb3e0..56697ff 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/slsr-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/slsr-2.c
@@ -11,6 +11,8 @@ f (int *p, int n)
foo (*(p + 16 + n * 4));
}
-/* { dg-final { scan-tree-dump-times "\\+ 144|\\, 144>" 1 "optimized" } } */
-/* { dg-final { scan-tree-dump-times "\\+ 96|\\, 96>" 1 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\\+ 144|\\, 144>" 1 "optimized" { target { int32 } } } } */
+/* { dg-final { scan-tree-dump-times "\\+ 72|\\, 72>" 1 "optimized" { target { int16 } } } } */
+/* { dg-final { scan-tree-dump-times "\\+ 96|\\, 96>" 1 "optimized" { target { int32 } } } } */
+/* { dg-final { scan-tree-dump-times "\\+ 48|\\, 48>" 1 "optimized" { target { int16 } } } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/slsr-27.c b/gcc/testsuite/gcc.dg/tree-ssa/slsr-27.c
index eb5734a..c664262 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/slsr-27.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/slsr-27.c
@@ -16,7 +16,8 @@ f (struct x *p, unsigned int n)
foo (p->a[n], p->c[n], p->b[n]);
}
-/* { dg-final { scan-tree-dump-times "\\* 4;" 1 "dom2" } } */
+/* { dg-final { scan-tree-dump-times "\\* 4;" 1 "dom2" { target { int32 } } } } */
+/* { dg-final { scan-tree-dump-times "\\* 2;" 1 "dom2" { target { int16 } } } } */
/* { dg-final { scan-tree-dump-times "p_\\d\+\\(D\\) \\+ \[^\r\n\]*_\\d\+;" 1 "dom2" } } */
/* { dg-final { scan-tree-dump-times "MEM\\\[\\(struct x \\*\\)\[^\r\n\]*_\\d\+" 3 "dom2" } } */
/* { dg-final { cleanup-tree-dump "dom2" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/slsr-28.c b/gcc/testsuite/gcc.dg/tree-ssa/slsr-28.c
index 7e7c751..c4dbf54 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/slsr-28.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/slsr-28.c
@@ -20,7 +20,8 @@ f (struct x *p, unsigned int n)
foo (p->b[n], p->a[n], p->c[n]);
}
-/* { dg-final { scan-tree-dump-times "\\* 4;" 1 "dom2" } } */
+/* { dg-final { scan-tree-dump-times "\\* 4;" 1 "dom2" { target { int32 } } } } */
+/* { dg-final { scan-tree-dump-times "\\* 2;" 1 "dom2" { target { int16 } } } } */
/* { dg-final { scan-tree-dump-times "p_\\d\+\\(D\\) \\+ \[^\r\n\]*_\\d\+" 1 "dom2" } } */
/* { dg-final { scan-tree-dump-times "MEM\\\[\\(struct x \\*\\)\[^\r\n\]*_\\d\+" 9 "dom2" } } */
/* { dg-final { cleanup-tree-dump "dom2" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/slsr-29.c b/gcc/testsuite/gcc.dg/tree-ssa/slsr-29.c
index 2a8fe0e..c8e7a5e 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/slsr-29.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/slsr-29.c
@@ -22,7 +22,8 @@ f (struct x *p, unsigned int n)
}
}
-/* { dg-final { scan-tree-dump-times "\\* 4;" 1 "dom2" } } */
+/* { dg-final { scan-tree-dump-times "\\* 4;" 1 "dom2" { target { int32 } } } } */
+/* { dg-final { scan-tree-dump-times "\\* 2;" 1 "dom2" { target { int16 } } } } */
/* { dg-final { scan-tree-dump-times "p_\\d\+\\(D\\) \\+ \[^\r\n\]*_\\d\+" 1 "dom2" } } */
/* { dg-final { scan-tree-dump-times "MEM\\\[\\(struct x \\*\\)\[^\r\n\]*_\\d\+" 9 "dom2" } } */
/* { dg-final { cleanup-tree-dump "dom2" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/slsr-3.c b/gcc/testsuite/gcc.dg/tree-ssa/slsr-3.c
index 32edf2b..89d1d2e 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/slsr-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/slsr-3.c
@@ -15,8 +15,11 @@ foo (int a[], int b[], int i)
return i;
}
-/* { dg-final { scan-tree-dump-times "\\* 4" 1 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\\* 4" 1 "optimized" { target { int32 } } } } */
+/* { dg-final { scan-tree-dump-times "\\* 2" 1 "optimized" { target { int16 } } } } */
+/* { dg-final { scan-tree-dump-times "\\+ 2|\\, 2>" 5 "optimized" { target { int16 } } } } */
/* { dg-final { scan-tree-dump-times "\\+ 4|\\, 4>" 2 "optimized" } } */
-/* { dg-final { scan-tree-dump-times "\\+ 8|\\, 8>" 1 "optimized" } } */
-/* { dg-final { scan-tree-dump-times "\\+ 12|\\, 12>" 1 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\\+ 8|\\, 8>" 1 "optimized" { target { int32plus } } } } */
+/* { dg-final { scan-tree-dump-times "\\+ 6|\\, 6>" 1 "optimized" { target { int16 } } } } */
+/* { dg-final { scan-tree-dump-times "\\+ 12|\\, 12>" 1 "optimized" { target { int32 } } } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-23.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-23.c
index fb4af2d..8b95b0c 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-23.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-23.c
@@ -15,5 +15,6 @@ int foo (void)
return *x;
}
-/* { dg-final { scan-tree-dump "MEM\\\[\\\(int \\\*\\\)&a \\\+ 4B\\\]" "ccp1" } } */
+/* { dg-final { scan-tree-dump "MEM\\\[\\\(int \\\*\\\)&a \\\+ 2B\\\]" "ccp1" { target { int16 } } } } */
+/* { dg-final { scan-tree-dump "MEM\\\[\\\(int \\\*\\\)&a \\\+ 4B\\\]" "ccp1" { target { int32 } } } } */
/* { dg-final { cleanup-tree-dump "ccp1" } } */
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 0fb135c..bcf060f 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1723,6 +1723,15 @@ proc check_effective_target_x32 { } {
}]
}
+# Return 1 if we're generating 32-bit integers using default
+# options, 0 otherwise.
+
+proc check_effective_target_int32 { } {
+ return [check_no_compiler_messages int32 object {
+ int dummy[sizeof (int) == 4 ? 1 : -1];
+ }]
+}
+
# Return 1 if we're generating 32-bit or larger integers using default
# options, 0 otherwise.