aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r--gcc/testsuite/gcc.dg/20020312-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/20040622-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/20050321-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/20050321-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/20060410.c16
-rw-r--r--gcc/testsuite/gcc.dg/20060419-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/arm-vfp1.c1
-rw-r--r--gcc/testsuite/gcc.dg/asm-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/fold-cond-1.c28
-rw-r--r--gcc/testsuite/gcc.dg/fold-mod-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/fold-overflow-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/format/bitfld-1.c5
-rw-r--r--gcc/testsuite/gcc.dg/init-bad-4.c5
-rw-r--r--gcc/testsuite/gcc.dg/init-string-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/max-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/920923-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pch/struct-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr14796-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr17112-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr18241-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr18241-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr19340.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr23049.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr26961-1.c8
-rw-r--r--gcc/testsuite/gcc.dg/pr27314.c14
-rw-r--r--gcc/testsuite/gcc.dg/sibcall-7.c43
-rw-r--r--gcc/testsuite/gcc.dg/struct-parse-1.c11
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26565.c2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26587.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26630.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26869.c7
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-10.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-4.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr14341.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr23382.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr24627.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr26180.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr27236.c19
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp14.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp21.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp22.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-fold-1.c16
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-recip.c18
-rw-r--r--gcc/testsuite/gcc.dg/vmx/pr27006.c23
54 files changed, 264 insertions, 7 deletions
diff --git a/gcc/testsuite/gcc.dg/20020312-2.c b/gcc/testsuite/gcc.dg/20020312-2.c
index 211fd755ad8..6acc1e6cbb5 100644
--- a/gcc/testsuite/gcc.dg/20020312-2.c
+++ b/gcc/testsuite/gcc.dg/20020312-2.c
@@ -70,6 +70,8 @@ extern void abort (void);
# define PIC_REG "r12"
#elif defined(__x86_64__)
/* No pic register. */
+#elif defined(__m32c__)
+/* No pic register. */
#else
# error "Modify the test for your target."
#endif
diff --git a/gcc/testsuite/gcc.dg/20040622-2.c b/gcc/testsuite/gcc.dg/20040622-2.c
index 32974018d54..0be320fa4e2 100644
--- a/gcc/testsuite/gcc.dg/20040622-2.c
+++ b/gcc/testsuite/gcc.dg/20040622-2.c
@@ -1,4 +1,5 @@
/* { dg-do link } */
+/* { dg-require-effective-target ptr32plus } */
/* This validates codegen for [r1+32760] on Darwin. */
void f(char x[32688], double *y, double *z) __attribute__((noinline));
void f(char x[32688], double *y, double *z) {}
diff --git a/gcc/testsuite/gcc.dg/20050321-1.c b/gcc/testsuite/gcc.dg/20050321-1.c
index 01c68cd5ed9..5455db44304 100644
--- a/gcc/testsuite/gcc.dg/20050321-1.c
+++ b/gcc/testsuite/gcc.dg/20050321-1.c
@@ -3,6 +3,8 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fmodulo-sched" } */
+/* malloc doesn't take a long. */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
extern void * malloc (long);
struct s {
diff --git a/gcc/testsuite/gcc.dg/20050321-2.c b/gcc/testsuite/gcc.dg/20050321-2.c
index 06d87cc225b..7f7e1c09dff 100644
--- a/gcc/testsuite/gcc.dg/20050321-2.c
+++ b/gcc/testsuite/gcc.dg/20050321-2.c
@@ -6,6 +6,7 @@
/* { dg-do link { target fpic } } */
/* { dg-options "-g1 -fpic" } */
/* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
+/* { dg-require-effective-target int32plus } */
#define A(n) \
case n##1: return n##1 * 131 + 63; \
diff --git a/gcc/testsuite/gcc.dg/20060410.c b/gcc/testsuite/gcc.dg/20060410.c
new file mode 100644
index 00000000000..88253bb43f3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20060410.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-g" } */
+
+/* Make sure we didn't eliminate foo because we thought it was unused. */
+
+struct foo
+{
+ int i;
+};
+
+int bar (void)
+{
+ return ((struct foo *)0x1234)->i;
+}
+
+/* { dg-final { scan-assembler "foo" } } */
diff --git a/gcc/testsuite/gcc.dg/20060419-1.c b/gcc/testsuite/gcc.dg/20060419-1.c
new file mode 100644
index 00000000000..754774162a2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20060419-1.c
@@ -0,0 +1,4 @@
+struct T {
+ unsigned char f[1] __attribute__((packed)); /* { dg-warning "ignored for field of type.*unsigned char\\\[1\\\]" } */
+ unsigned char g[14] __attribute__((packed)); /* { dg-warning "ignored for field of type.*unsigned char\\\[14\\\]" } */
+};
diff --git a/gcc/testsuite/gcc.dg/arm-vfp1.c b/gcc/testsuite/gcc.dg/arm-vfp1.c
index 5898e8027e6..3b6a45dc23f 100644
--- a/gcc/testsuite/gcc.dg/arm-vfp1.c
+++ b/gcc/testsuite/gcc.dg/arm-vfp1.c
@@ -1,6 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
/* { dg-require-effective-target arm32 } */
+/* { dg-skip-if "" { *-*-* } { "-mcpu=iwmmxt" "-march=iwmmxt" } { "" } } */
extern float fabsf (float);
extern float sqrtf (float);
diff --git a/gcc/testsuite/gcc.dg/asm-1.c b/gcc/testsuite/gcc.dg/asm-1.c
index 3bf5c29c4cd..fecac780f69 100644
--- a/gcc/testsuite/gcc.dg/asm-1.c
+++ b/gcc/testsuite/gcc.dg/asm-1.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
struct x {
int selector;
diff --git a/gcc/testsuite/gcc.dg/fold-cond-1.c b/gcc/testsuite/gcc.dg/fold-cond-1.c
new file mode 100644
index 00000000000..e9212d1ae7b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/fold-cond-1.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-original" } */
+
+_Bool test1(int a, int b)
+{
+ return a ? b : 0;
+}
+
+_Bool test2(int c, int d)
+{
+ return c ? d : 1;
+}
+
+_Bool test3(int e, int f)
+{
+ return e ? 0 : f;
+}
+
+_Bool test4(int g, int h)
+{
+ return g ? 1 : h;
+}
+
+/* { dg-final { scan-tree-dump-times "a != 0 \&\& b != 0" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "c == 0 \\|\\| d != 0" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "e == 0 \&\& f != 0" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "\\(g \\| h\\) != 0" 1 "original" } } */
+/* { dg-final { cleanup-tree-dump "original" } } */
diff --git a/gcc/testsuite/gcc.dg/fold-mod-1.c b/gcc/testsuite/gcc.dg/fold-mod-1.c
index 4a26d0fc088..3f7696f1760 100644
--- a/gcc/testsuite/gcc.dg/fold-mod-1.c
+++ b/gcc/testsuite/gcc.dg/fold-mod-1.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-fdump-tree-gimple" } */
#define ABS(x) (x > 0 ? x : -x)
diff --git a/gcc/testsuite/gcc.dg/fold-overflow-1.c b/gcc/testsuite/gcc.dg/fold-overflow-1.c
index 5e410b9bafb..bed8aac9f9b 100644
--- a/gcc/testsuite/gcc.dg/fold-overflow-1.c
+++ b/gcc/testsuite/gcc.dg/fold-overflow-1.c
@@ -1,4 +1,5 @@
/* { dg-compile } */
+/* { dg-skip-if "consts are shorts, not longs" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-O -ftrapping-math" } */
/* There should be exactly 2 +Inf in the assembly file. */
diff --git a/gcc/testsuite/gcc.dg/format/bitfld-1.c b/gcc/testsuite/gcc.dg/format/bitfld-1.c
index 2cea5d220e5..e828ad97cd5 100644
--- a/gcc/testsuite/gcc.dg/format/bitfld-1.c
+++ b/gcc/testsuite/gcc.dg/format/bitfld-1.c
@@ -2,6 +2,7 @@
/* Origin: Joseph Myers <joseph@codesourcery.com> */
/* { dg-do compile } */
/* { dg-options "-std=gnu99 -Wformat" } */
+/* { dg-require-effective-target int32plus } */
#include "format.h"
@@ -28,8 +29,12 @@ foo (void)
printf ("%d%u", x.s15, x.s15);
printf ("%d%u", x.u16, x.u16);
printf ("%d%u", x.s16, x.s16);
+#if __INT_MAX__ > 32767
+ /* If integers are 16 bits, there doesn't seem to be a way of
+ printing these without getting an error. */
printf ("%d%u", x.u31, x.u31);
printf ("%d%u", x.s31, x.s31);
+#endif
#if __LONG_MAX__ > 2147483647 && __INT_MAX__ >= 2147483647
/* If long is wider than 32 bits, the 32-bit bit-fields are int or
unsigned int or promote to those types. Otherwise, long is 32
diff --git a/gcc/testsuite/gcc.dg/init-bad-4.c b/gcc/testsuite/gcc.dg/init-bad-4.c
new file mode 100644
index 00000000000..3f03002908a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/init-bad-4.c
@@ -0,0 +1,5 @@
+/* PR c/25875 */
+/* Origin: Richard Guenther <rguenth@gcc.gnu.org> */
+/* { dg-do compile } */
+
+struct A { } a = (struct A) {{ (X)0 }}; /* { dg-error "no members|extra brace|near|undeclared|constant|compound" } */
diff --git a/gcc/testsuite/gcc.dg/init-string-2.c b/gcc/testsuite/gcc.dg/init-string-2.c
index 828897b3ca9..9efd44b3d2f 100644
--- a/gcc/testsuite/gcc.dg/init-string-2.c
+++ b/gcc/testsuite/gcc.dg/init-string-2.c
@@ -5,6 +5,7 @@
relevant circumstances can be obtained portably; may still fail if
char, short and int do not all have distinct precisions. */
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-std=c99 -pedantic-errors -fshort-enums -fshort-wchar" } */
#include <limits.h>
diff --git a/gcc/testsuite/gcc.dg/max-1.c b/gcc/testsuite/gcc.dg/max-1.c
index 7f03edc590d..02aaa46c3b5 100644
--- a/gcc/testsuite/gcc.dg/max-1.c
+++ b/gcc/testsuite/gcc.dg/max-1.c
@@ -2,6 +2,8 @@
/* Test case reduced by Andrew Pinski <pinskia@physics.uc.edu> */
/* { dg-do run } */
/* { dg-options "-O1 -fno-tree-lrs" } */
+/* m32c has varying sized pointers */
+/* { dg-skip-if "" { "m32c-*-*" } { "*" } { "-mcpu=m32c" "-mcpu=m32cm" } } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/noncompile/920923-1.c b/gcc/testsuite/gcc.dg/noncompile/920923-1.c
index 4ff008467f5..8011f28cbb4 100644
--- a/gcc/testsuite/gcc.dg/noncompile/920923-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/920923-1.c
@@ -115,7 +115,7 @@ init_mem()
"mem_hash != (prec_t)0", 370, "b.c"),
0)));
flush_hash(mem_hash, 32);
- build_ptables(mem_base, 1024*(1<<13)); /* { dg-bogus "integer overflow" "int smaller than 32 bits" } */
+ build_ptables(mem_base, 1024*(1<<13)); /* { dg-bogus "integer overflow" "int smaller than 32 bits" { xfail int16 } } */
}
struct tm {
diff --git a/gcc/testsuite/gcc.dg/pch/struct-1.c b/gcc/testsuite/gcc.dg/pch/struct-1.c
index d6c03e7b84d..698e88b285a 100644
--- a/gcc/testsuite/gcc.dg/pch/struct-1.c
+++ b/gcc/testsuite/gcc.dg/pch/struct-1.c
@@ -1,3 +1,4 @@
+/* { dg-require-effective-target int32plus } */
#include "struct-1.h"
struct ChainSearchRecord {
diff --git a/gcc/testsuite/gcc.dg/pr14796-2.c b/gcc/testsuite/gcc.dg/pr14796-2.c
index 195530b8d93..2de5411a490 100644
--- a/gcc/testsuite/gcc.dg/pr14796-2.c
+++ b/gcc/testsuite/gcc.dg/pr14796-2.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-fdump-tree-gimple" } */
int f (int a) {
diff --git a/gcc/testsuite/gcc.dg/pr17112-1.c b/gcc/testsuite/gcc.dg/pr17112-1.c
index 09c3758abed..04d3a2e0e21 100644
--- a/gcc/testsuite/gcc.dg/pr17112-1.c
+++ b/gcc/testsuite/gcc.dg/pr17112-1.c
@@ -1,5 +1,6 @@
/* PR middle-end/17112 */
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-O2" } */
extern void abort(void);
diff --git a/gcc/testsuite/gcc.dg/pr18241-1.c b/gcc/testsuite/gcc.dg/pr18241-1.c
index 99c9e38e615..f5134d317b2 100644
--- a/gcc/testsuite/gcc.dg/pr18241-1.c
+++ b/gcc/testsuite/gcc.dg/pr18241-1.c
@@ -1,4 +1,6 @@
/* { dg-do run } */
+/* memset doesn't take unsigned long */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */
extern void *memset (void*, int, unsigned long);
diff --git a/gcc/testsuite/gcc.dg/pr18241-2.c b/gcc/testsuite/gcc.dg/pr18241-2.c
index 502dc553eeb..89221247ad0 100644
--- a/gcc/testsuite/gcc.dg/pr18241-2.c
+++ b/gcc/testsuite/gcc.dg/pr18241-2.c
@@ -1,4 +1,6 @@
/* { dg-do run } */
+/* memset doesn't take unsigned long */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */
extern void *memset (void*, int, unsigned long);
diff --git a/gcc/testsuite/gcc.dg/pr19340.c b/gcc/testsuite/gcc.dg/pr19340.c
index 89c82f6bfe2..27cd8c8cc27 100644
--- a/gcc/testsuite/gcc.dg/pr19340.c
+++ b/gcc/testsuite/gcc.dg/pr19340.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fschedule-insns2 -fsched2-use-traces" } */
-/* { dg-skip-if "No scheduling" { mmix-*-* cris-*-* m68k-*-* } { "*" } { "" } } */
+/* { dg-skip-if "No scheduling" { mmix-*-* cris-*-* m68k-*-* m32c-*-* } { "*" } { "" } } */
extern double f (double x);
diff --git a/gcc/testsuite/gcc.dg/pr23049.c b/gcc/testsuite/gcc.dg/pr23049.c
index 0a71cecb217..e58cef8fe16 100644
--- a/gcc/testsuite/gcc.dg/pr23049.c
+++ b/gcc/testsuite/gcc.dg/pr23049.c
@@ -7,6 +7,7 @@
the above expression. */
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-O3 -ftree-vectorize" } */
static unsigned short int crc_table[256];
diff --git a/gcc/testsuite/gcc.dg/pr26961-1.c b/gcc/testsuite/gcc.dg/pr26961-1.c
new file mode 100644
index 00000000000..56907d89d47
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr26961-1.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+long long foo(int i, int j)
+{
+ return i ? (long long)(!j) : 0;
+}
+
diff --git a/gcc/testsuite/gcc.dg/pr27314.c b/gcc/testsuite/gcc.dg/pr27314.c
new file mode 100644
index 00000000000..d99be5eb805
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr27314.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -ffast-math" } */
+
+extern double floor (double);
+
+inline int bar (double x)
+{
+ return (int) floor (x);
+}
+
+int foo (int i)
+{
+ return bar (i);
+}
diff --git a/gcc/testsuite/gcc.dg/sibcall-7.c b/gcc/testsuite/gcc.dg/sibcall-7.c
new file mode 100644
index 00000000000..273c2c36d21
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/sibcall-7.c
@@ -0,0 +1,43 @@
+/* Simple check that tail recursive call optimization is also
+ controlled by -foptimize-sibling-calls.
+
+ Copyright (C) 2006 Free Software Foundation Inc.
+ Original test by Hans-Peter Nilsson <hp@bitrange.com> */
+
+/* { dg-do run } */
+/* { dg-options "-O2 -fno-optimize-sibling-calls" } */
+
+
+extern void abort (void);
+
+extern void recurser_void (int);
+extern void track (int);
+
+int main (void)
+{
+ recurser_void (0);
+ return 0;
+}
+
+void recurser_void (int n)
+{
+ if (n == 0 || n == 7)
+ track (n);
+
+ if (n == 10)
+ return;
+
+ recurser_void (n + 1);
+}
+
+void *trackpoint;
+
+void track (int n)
+{
+ char stackpos[1];
+
+ if (n == 0)
+ trackpoint = stackpos;
+ else if (n != 7 || trackpoint == stackpos)
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.dg/struct-parse-1.c b/gcc/testsuite/gcc.dg/struct-parse-1.c
new file mode 100644
index 00000000000..32c115797fd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/struct-parse-1.c
@@ -0,0 +1,11 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc. */
+/* Contributed by Carlos O'Donell on 2006-03-31 */
+
+/* This code caused the C frontend to loop
+ forever exhausting all system memory, or ICE */
+/* Origin: Carlos O'Donell <carlos@codesourcery.com> */
+
+/* { dg-options "-std=c99" } */
+struct s { int a; int b; struct t c; }; /* { dg-error "error: field 'c' has incomplete type" } */
+struct s d = { .b = 0 };
+
diff --git a/gcc/testsuite/gcc.dg/torture/pr26565.c b/gcc/testsuite/gcc.dg/torture/pr26565.c
index 9b431407f44..d7620329fe4 100644
--- a/gcc/testsuite/gcc.dg/torture/pr26565.c
+++ b/gcc/testsuite/gcc.dg/torture/pr26565.c
@@ -1,4 +1,6 @@
/* { dg-do run } */
+/* m32c is already packed. */
+/* { dg-skip-if "" { "m32c-*-*" } { "*" } { "" } } */
void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n);
diff --git a/gcc/testsuite/gcc.dg/torture/pr26587.c b/gcc/testsuite/gcc.dg/torture/pr26587.c
index fd3c690e77f..ad5d60f3a8d 100644
--- a/gcc/testsuite/gcc.dg/torture/pr26587.c
+++ b/gcc/testsuite/gcc.dg/torture/pr26587.c
@@ -1,4 +1,5 @@
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
extern void abort(void);
typedef unsigned int BF_word;
diff --git a/gcc/testsuite/gcc.dg/torture/pr26630.c b/gcc/testsuite/gcc.dg/torture/pr26630.c
index 08cf5f65576..96bab36a0f7 100644
--- a/gcc/testsuite/gcc.dg/torture/pr26630.c
+++ b/gcc/testsuite/gcc.dg/torture/pr26630.c
@@ -1,4 +1,5 @@
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
extern void abort(void);
int main()
diff --git a/gcc/testsuite/gcc.dg/torture/pr26869.c b/gcc/testsuite/gcc.dg/torture/pr26869.c
new file mode 100644
index 00000000000..6743319d109
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr26869.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+
+_Complex float f (_Complex float b, _Complex float c)
+{
+ _Complex float a = 1.0 + 0.0i;
+ return a / c;
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
index 4b67c82312a..03c2ddd515d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target int32plus } */
int bar (void);
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
index afb0d16c32c..8f319594f84 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
@@ -2,6 +2,7 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target size32plus } */
/* Size of this structure should be sufficiently weird so that no memory
addressing mode applies. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
index 89d956136bb..a6c8c8fd34a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
@@ -2,6 +2,7 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target size32plus } */
/* Size of this structure should be sufficiently weird so that no memory
addressing mode applies. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
index 33b82cbb746..a3a9975c51d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
index 9cfa60d2d99..9548bf21706 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
index 0cb266f4cc4..86424ab1369 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
index 4e60eae4d51..e2d6abced60 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c b/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
index ee661a0f3a9..0287a25cc38 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
void fn_call (int);
int h(int, int);
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
index b1dd6d54822..e515417076d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-alias-vops" } */
+/* malloc doesn't take a long */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
struct a
{
int length;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c b/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
index 011410cbb37..c065eef84f4 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O" } */
+/* { dg-require-effective-target int32plus } */
extern void abort (void);
typedef unsigned int u_int32;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c b/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
index 730115b686b..13c302dea3a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2" } */
+/* { dg-require-effective-target int32plus } */
void abort(void);
int bar(int x, int y)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr27236.c b/gcc/testsuite/gcc.dg/tree-ssa/pr27236.c
new file mode 100644
index 00000000000..b623486294a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr27236.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+
+static inline int inline_read(volatile int *mem)
+{
+ return *mem;
+}
+int foo_read(volatile int *mem)
+{
+ return inline_read(mem);
+}
+unsigned int foo(volatile int *mem)
+{
+ foo_read(mem);
+ return foo_read(mem);
+}
+
+/* { dg-final { scan-tree-dump-times "foo_read" 5 "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c
index af65736661f..8802bc8bc69 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
int
t(int a)
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c
index d0bc8b9c230..9fe3af9855a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
int
t(char *a)
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c
index 4e0ca133e5d..ca727df391d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
int
t(int a)
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c
index edab9833f0f..bb43d76aca9 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
int
t(int a)
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c
index 2a0af0a714b..53a2cdb15e3 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-optimized" } */
extern void abort (void);
extern void exit (int);
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
index 833a73dcadc..a65d8a16d70 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2" } */
+/* { dg-require-effective-target int32plus } */
struct tree_decl
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
index 0e675d91147..9a4e4e783c1 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
extern void link_error ();
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
index 6120d072377..cbd4dc529dd 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
extern void link_error ();
diff --git a/gcc/testsuite/gcc.dg/vect/vect-fold-1.c b/gcc/testsuite/gcc.dg/vect/vect-fold-1.c
new file mode 100644
index 00000000000..88b68b7cf4a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-fold-1.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-dom1" } */
+
+typedef unsigned char v4qi __attribute__ ((vector_size (4)));
+
+v4qi c;
+
+void foo()
+{
+ v4qi a = { 1, 2, 3, 4 };
+ v4qi b = { 5, 6, 7, 8 };
+ c = a + b;
+}
+
+/* { dg-final { scan-tree-dump-times "c = { 6, 8, 10, 12 }" 1 "dom1" } } */
+/* { dg-final { cleanup-tree-dump "dom1" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-recip.c b/gcc/testsuite/gcc.dg/vect/vect-recip.c
new file mode 100644
index 00000000000..89af9843fef
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-recip.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target vect_float } */
+
+void f(float *__restrict__ qa, float *__restrict__ qb,
+ float *__restrict__ qc, float *__restrict__ rtrms)
+{
+ int i;
+ static float qam[600];
+ static float qbm[600];
+ static float qcm[600];
+ for(i=0;i<600;i++)
+ {
+ float a = rtrms[i];
+ qam[i] = qa[i]/a;
+ qbm[i] = qb[i]/a;
+ qcm[i] = qc[i]/a;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/vmx/pr27006.c b/gcc/testsuite/gcc.dg/vmx/pr27006.c
new file mode 100644
index 00000000000..1b92252b383
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vmx/pr27006.c
@@ -0,0 +1,23 @@
+/* { dg-do run */
+/* { dg-options "-maltivec" } */
+
+extern void abort ();
+
+typedef union
+{
+ int i[4];
+ __attribute__((altivec(vector__))) int v;
+} vec_int4;
+
+int main (void)
+{
+ vec_int4 i1;
+
+ i1.v = (__attribute__((altivec(vector__))) int){31, 31, 31, 31};
+
+ if (i1.i[0] != 31)
+ abort ();
+
+ return 0;
+}
+