aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.0/gcc/testsuite/gcc.dg
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.0/gcc/testsuite/gcc.dg')
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/20090902-1.c3
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c25
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c9
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c5
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c5
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c5
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c5
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/mlt1.c32
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr26570.c9
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr32773.c11
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-1.c22
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-2.c22
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c33
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c11
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c24
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c1
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr26570.c13
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr32773.c17
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c30
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-21.c26
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-26.c27
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c8
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_a.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_b.c29
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_c.c48
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_a.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_b.c33
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_c.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_d.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_e.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_a.c43
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_b.c40
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_a.c41
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_b.c41
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_a.c40
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_b.c46
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_c.c46
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_d.c24
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_e.c43
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_a.c54
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_b.c23
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_c.c33
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_a.c45
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_b.c45
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_c.c39
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_a.c23
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_b.c44
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c11
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c13
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c8
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c9
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c12
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c12
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c13
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c11
69 files changed, 1266 insertions, 128 deletions
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/20090902-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/20090902-1.c
new file mode 100644
index 000000000..6120ee907
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/20090902-1.c
@@ -0,0 +1,3 @@
+/* { dg-do compile } */
+#define STRING(x) #x
+char buf[] = STRING(L'\x123');
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c
index bbb5bea65..53da38392 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c
@@ -26,10 +26,10 @@ int* f(void) {
a[ 9] = 0;
a[10] = 0; /* { dg-warning "array subscript" } */
a[11] = 0; /* { dg-warning "array subscript" } */
- a[2 * n() - 11] = 0; /* { dg-warning "array subscript" } */
- a[2 * n() - 10] = 0;
- a[2 * n() - 1] = 0;
- a[2 * n() - 0] = 0; /* { dg-warning "array subscript" } */
+ a[2 * n() - 11] = 1; /* { dg-warning "array subscript" } */
+ a[2 * n() - 10] = 1;
+ a[2 * n() - 1] = 1;
+ a[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
b[-1] = 0; /* { dg-warning "array subscript" } */
b[ 0] = 0;
@@ -37,10 +37,10 @@ int* f(void) {
b[ 9] = 0;
b[10] = 0; /* { dg-warning "array subscript" } */
b[11] = 0; /* { dg-warning "array subscript" } */
- b[2 * n() - 11] = 0; /* { dg-warning "array subscript" } */
- b[2 * n() - 10] = 0;
- b[2 * n() - 1] = 0;
- b[2 * n() - 0] = 0; /* { dg-warning "array subscript" } */
+ b[2 * n() - 11] = 1; /* { dg-warning "array subscript" } */
+ b[2 * n() - 10] = 1;
+ b[2 * n() - 1] = 1;
+ b[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
c.c[-1] = 0; /* { dg-warning "array subscript" } */
c.c[ 0] = 0;
@@ -48,10 +48,10 @@ int* f(void) {
c.c[ 9] = 0;
c.c[10] = 0; /* { dg-warning "array subscript" } */
c.c[11] = 0; /* { dg-warning "array subscript" } */
- c.c[2 * n() - 11] = 0; /* { dg-warning "array subscript" } */
- c.c[2 * n() - 10] = 0;
- c.c[2 * n() - 1] = 0;
- c.c[2 * n() - 0] = 0; /* { dg-warning "array subscript" } */
+ c.c[2 * n() - 11] = 1; /* { dg-warning "array subscript" } */
+ c.c[2 * n() - 10] = 1;
+ c.c[2 * n() - 1] = 1;
+ c.c[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
g(&a[8]);
g(&a[9]);
@@ -90,4 +90,3 @@ int* f(void) {
return a;
}
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c
new file mode 100644
index 000000000..333ddea4f
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c
@@ -0,0 +1,9 @@
+/* PR c/39889 */
+/* { dg-do compile } */
+/* { dg-options "-Wunused-value" } */
+
+int x;
+int foo (void)
+{
+ return (1 ? x = 0 : (void) 0), 0; /* { dg-bogus "value computed is not used" } */
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c
new file mode 100644
index 000000000..dd4617405
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c
@@ -0,0 +1,5 @@
+/* Test that missing user headers are fatal errors with -MD. */
+/* { dg-do compile } */
+/* { dg-options "-MD" } */
+
+#include "nonexistent.h" /* { dg-error "nonexistent.h" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c
new file mode 100644
index 000000000..e87cc6ee2
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c
@@ -0,0 +1,5 @@
+/* Test that missing user headers are fatal errors with -MMD. */
+/* { dg-do compile } */
+/* { dg-options "-MMD" } */
+
+#include "nonexistent.h" /* { dg-error "nonexistent.h" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c
new file mode 100644
index 000000000..ca2b98905
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c
@@ -0,0 +1,5 @@
+/* Test that missing system headers are fatal errors with -MD. */
+/* { dg-do compile } */
+/* { dg-options "-MD" } */
+
+#include <nonexistent.h> /* { dg-error "nonexistent.h" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c
new file mode 100644
index 000000000..67f649f6e
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c
@@ -0,0 +1,5 @@
+/* Test that missing system headers are fatal errors with -MMD. */
+/* { dg-do compile } */
+/* { dg-options "-MMD" } */
+
+#include <nonexistent.h> /* { dg-error "nonexistent.h" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c
index 8bd34b2fe..873188fe8 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c
@@ -2,8 +2,10 @@
section if nothing went in there. */
/* Origin: Joseph Myers <joseph@codesourcery.com> */
/* { dg-do compile } */
-/* { dg-options "-gdwarf-2 -ffunction-sections -w" } */
+/* { dg-options "-gdwarf-2 -ffunction-sections -w -dA" } */
/* { dg-final { scan-assembler-not "\\.Letext0-\\.Ltext0" } } */
+/* { dg-final { scan-assembler-not "\\.Ltext0\[^\n\r\]*Offset 0x0" } } */
+/* { dg-final { scan-assembler "DW_AT_ranges" } } */
int
f (void)
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/mlt1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/mlt1.c
new file mode 100644
index 000000000..7b0b2e994
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/mlt1.c
@@ -0,0 +1,32 @@
+/* Test that -gmlt includes line tables and inlined subroutine entries,
+ and excludes types and variables. */
+/* Origin: Cary Coutant <ccoutant@google.com> */
+/* { dg-do compile } */
+/* { dg-options "-O2 -gdwarf-2 -dA -gmlt" } */
+/* { dg-final { scan-assembler "DW_AT_stmt_list" } } */
+/* { dg-final { scan-assembler "DW_TAG_subprogram" } } */
+/* { dg-final { scan-assembler "DW_TAG_inlined_subroutine" } } */
+/* { dg-final { scan-assembler-not "DW_TAG_variable" } } */
+/* { dg-final { scan-assembler-not "DW_TAG_formal_parameter" } } */
+/* { dg-final { scan-assembler-not "DW_TAG_base_type" } } */
+
+static inline __attribute__((always_inline)) int
+a(int i, int j)
+{
+ return (i << 5) + j;
+}
+
+int
+b(int i, int j)
+{
+ return (i >> 5) + (j << 27);
+}
+
+int
+c(int i, int j)
+{
+ int r = a(i, j);
+ r = b(r, i);
+ r = b(r, j);
+ return r;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr26570.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr26570.c
deleted file mode 100644
index 5f67c0073..000000000
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr26570.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -fprofile-generate -fprofile-use" } */
-
-unsigned test (unsigned a, unsigned b)
-{
- return a / b;
-} /* { dg-message "note: \[^\n\]*execution counts estimated" } */
-
-/* { dg-final { cleanup-coverage-files } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr32773.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr32773.c
deleted file mode 100644
index ca5dd53fd..000000000
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr32773.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O -fprofile-use" } */
-/* { dg-options "-O -m4 -fprofile-use" { target sh-*-* } } */
-
-void foo (int *p)
-{
- if (p)
- *p = 0;
-} /* { dg-message "note: \[^\n\]*execution counts estimated" } */
-
-/* { dg-final { cleanup-coverage-files } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-1.c
new file mode 100644
index 000000000..f1ba499c3
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-1.c
@@ -0,0 +1,22 @@
+/* PR middle-end/39666 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wuninitialized" } */
+
+int
+foo (int i)
+{
+ int j;
+ switch (i)
+ {
+ case -__INT_MAX__ - 1 ... -1:
+ j = 6;
+ break;
+ case 0:
+ j = 5;
+ break;
+ case 1 ... __INT_MAX__:
+ j = 4;
+ break;
+ }
+ return j;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-2.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-2.c
new file mode 100644
index 000000000..3a853e60b
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-2.c
@@ -0,0 +1,22 @@
+/* PR middle-end/39666 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wuninitialized" } */
+
+int
+foo (int i)
+{
+ int j;
+ switch (i)
+ {
+ case -__INT_MAX__ - 1 ... -1:
+ j = 6;
+ break;
+ case 0:
+ j = 5;
+ break;
+ case 2 ... __INT_MAX__:
+ j = 4;
+ break;
+ }
+ return j;
+} /* { dg-warning "may be used uninitialized" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c
new file mode 100644
index 000000000..2702ba79a
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c
@@ -0,0 +1,33 @@
+/* PR rtl-optimization/39794 */
+/* { dg-do run } */
+/* { dg-options "-O2 -funroll-loops" } */
+
+extern void abort ();
+
+void
+foo (int *a, int n)
+{
+ int i;
+ for (i = 0; i < n; i++)
+ {
+ a[i] *= 2;
+ a[i + 1] = a[i - 1] + a[i - 2];
+ }
+}
+
+int a[16];
+int ref[16] = { 0, 1, 4, 2, 10, 12, 24, 44,
+ 72, 136, 232, 416, 736, 1296, 2304, 2032 };
+
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 16; i++)
+ a[i] = i;
+ foo (a + 2, 16 - 3);
+ for (i = 0; i < 16; i++)
+ if (ref[i] != a[i])
+ abort ();
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c
new file mode 100644
index 000000000..8f0dbe5ee
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c
@@ -0,0 +1,11 @@
+/* { dg-do link } */
+/* { dg-options "-O2" } */
+
+int main (void)
+{
+ int exp = -1;
+ /* Wrong folding of the LHS to an unsigned MAX leads to 4294967295 != 2. */
+ if ((exp < 2 ? 2U : (unsigned int) exp) != 2)
+ link_error ();
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c
new file mode 100644
index 000000000..6d75c38a9
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c
@@ -0,0 +1,24 @@
+/* PR c/39855 */
+/* { dg-do run { target { int32plus } } } */
+
+extern void abort (void);
+
+int i, j, k;
+
+int
+foo (void)
+{
+ return ++i;
+}
+
+int
+main ()
+{
+ if (__CHAR_BIT__ != 8 || sizeof (int) != 4)
+ return 0;
+ j = foo () << 30 << 2;
+ k = (unsigned) foo () >> 16 >> 16;
+ if (i != 2 || j != 0 || k != 0)
+ abort ();
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c
index 28dc6106d..8b0ff4aff 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c
@@ -1,5 +1,6 @@
/* PR tree-optimization/20076 */
/* { dg-do run } */
+/* { dg-xfail-run-if "b/2070963" { { i?86-*-* x86_64-*-* } && { ilp32 } } { "*" } { "" } } */
extern void abort (void);
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr26570.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr26570.c
new file mode 100644
index 000000000..5dd78e3d1
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr26570.c
@@ -0,0 +1,13 @@
+/* { dg-options "-O2" } */
+
+unsigned test (unsigned a, unsigned b)
+{
+ return a / b;
+}
+
+int main()
+{
+ return test (6, 3) - 2;
+}
+
+/* { dg-final { cleanup-coverage-files } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr32773.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr32773.c
new file mode 100644
index 000000000..24ed96030
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr32773.c
@@ -0,0 +1,17 @@
+/* { dg-options "-O" } */
+/* { dg-options "-O -m4" { target sh-*-* } } */
+
+void foo (int *p)
+{
+ if (p)
+ *p = 0;
+}
+
+int main()
+{
+ int x;
+ foo (&x);
+ return 0;
+}
+
+/* { dg-final { cleanup-coverage-files } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c
index 12e42b749..54153966a 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c
@@ -24,5 +24,5 @@ int foo (int n, int m)
outermost "k" loop: the 4 comes from the instantiation of the
number of iterations of loop "j". */
-/* { dg-final { scan-tree-dump-times "4, \\+, 1" 0 "ltrans" } } */
+/* { dg-final { scan-tree-dump-times "\\\{4, \\+, 1\\\}" 0 "ltrans" } } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
index 63c4b5d98..736a4d955 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
@@ -18,6 +18,6 @@ int foo(int N, int *res)
}
*res = sum + N;
}
-/* { dg-final { scan-tree-dump-times "converted loop nest to perfect loop nest" 1 "ltrans" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "converted loop nest to perfect loop nest" 1 "ltrans"} } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
index 5f2f5ca13..51508f98a 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
@@ -17,5 +17,5 @@ int foo(int N, int *res)
*res = sum + N;
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" } } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
index 46a5f6624..e2d6abced 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
@@ -16,5 +16,5 @@ int foo(int N, int *res)
*res = sum + N;
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c
index 95429315d..2f64925e9 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c
@@ -13,5 +13,5 @@ int foo ()
return A[10][10];
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c
index e082e2876..edf30a3d5 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c
@@ -17,5 +17,5 @@ int medium_loop_interchange(int A[100][200])
return A[1][1];
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c
index 3aec1e3e7..21f8ffafc 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c
@@ -10,5 +10,5 @@ double foo(double *a)
return r;
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
new file mode 100644
index 000000000..22e2b629e
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
@@ -0,0 +1,30 @@
+/* { dg-do run } */
+/* { dg-options "-O1 " } */
+
+extern void abort (void);
+
+static void __attribute__((always_inline))
+reverse(int *first, int *last)
+{
+ if (first == last--)
+ return;
+ while (first != last)
+ {
+ int t = *first;
+ *first = *last;
+ *last = t;
+ if (++first == last--)
+ break;
+ }
+}
+
+int main()
+{
+ int seq[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
+
+ reverse(seq, seq + 8);
+ if (seq[3] != 5 || seq[4] != 4)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c
index bd66bc2a7..6e13e1875 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c
@@ -6,13 +6,13 @@ void foo(int *p)
{
while (1)
{
- *p = 0;
+ *p = 1;
*p = 0;
}
}
void bar(int *p)
{
- *p = 0;
+ *p = 1;
*p = 0;
abort ();
}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-21.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-21.c
new file mode 100644
index 000000000..aadf32e21
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-21.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-fre" } */
+
+struct f {
+ float a;
+ float b;
+ float c;
+ float d;
+};
+
+struct f a;
+
+void h(float, float, float, float);
+
+void g(void)
+{
+ float a1 = a.a, b = a.b, c = a.c, d = a.d;
+ a.a = a1;
+ a.b = b;
+ a.c = c;
+ a.d = d;
+ h(a1, b, c, d);
+}
+
+/* { dg-final { scan-tree-dump-not "a\\\.? = " "fre" } } */
+/* { dg-final { cleanup-tree-dump "fre" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-26.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-26.c
new file mode 100644
index 000000000..65c75ede3
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-26.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-options "-Os -fdump-tree-pre-details" } */
+
+typedef union
+{
+ int* data;
+} SA;
+
+typedef struct
+{
+ int reserved;
+ char* array;
+}SB;
+
+typedef struct
+{
+ int status;
+}SC;
+
+void foo(SA* pResult, SB* method, SC* self)
+{
+ if (method->array[0] == 'L' && !self->status && pResult->data != 0)
+ pResult->data = pResult->data;
+}
+
+/* { dg-final { scan-tree-dump "Deleted dead store" "pre" } } */
+/* { dg-final { cleanup-tree-dump "pre" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c
index 16548c259..d99408967 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c
@@ -31,16 +31,16 @@ int f(int x)
/* Test that x and y are never compared to 0 -- they're always known to be
0 or 1. */
/* xfail: PR middle-end/38219 */
-/* { dg-final { scan-tree-dump-times "\[xy\]\[^ \]* !=" 0 "vrp1" { xfail *-*-* }} } */
+/* { dg-final { scan-tree-dump-times "\[xy\]\[^ \]* !=" 0 "vrp1" { xfail powerpc*-*-* }} } */
/* This one needs more copy propagation that only happens in dom1. */
/* xfail: PR middle-end/38219 */
-/* { dg-final { scan-tree-dump-times "x\[^ \]* & y" 1 "dom1" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "x\[^ \]* & y" 1 "dom1" { xfail powerpc*-*-* } } } */
/* { dg-final { scan-tree-dump-times "x\[^ \]* & y" 1 "vrp1" { xfail *-*-* } } } */
/* These two are fully simplified by VRP. */
-/* { dg-final { scan-tree-dump-times "x\[^ \]* \[|\] y" 1 "vrp1" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "x\[^ \]* \\^ 1" 1 "vrp1" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "x\[^ \]* \[|\] y" 1 "vrp1" } } */
+/* { dg-final { scan-tree-dump-times "x\[^ \]* \\^ 1" 1 "vrp1" } } */
/* { dg-final { cleanup-tree-dump "vrp\[0-9\]" } } */
/* { dg-final { cleanup-tree-dump "dom\[0-9\]" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c
index 5251f0a2a..2730534e9 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c
@@ -17,10 +17,10 @@ void f2(void)
void f3(int p)
{
- int x; /* { dg-warning "may be used" "conditional" } */
+ int x;
if (p)
x = p;
- sink = x;
+ sink = x; /* { dg-warning "may be used" "conditional" } */
}
void f4(int p)
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c
index ae7a8de76..df2a27c44 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c
@@ -1,7 +1,7 @@
/* Spurious uninitialized-variable warnings. */
-
+/* Disable jump threading, etc to test compiler analysis. */
/* { dg-do compile } */
-/* { dg-options "-O -Wuninitialized" } */
+/* { dg-options "-O -Wuninitialized -fno-tree-dce -fno-tree-vrp -fno-tree-dominator-opts" } */
extern void use(int);
extern void foo(void);
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c
index 7be60d786..2bed232c2 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c
@@ -3,6 +3,6 @@
int sys_msgctl (void)
{
- struct { int mode; } setbuf; /* { dg-warning "'setbuf\.mode' is used" } */
+ struct { int mode; } setbuf;
return setbuf.mode;
-}
+} /* { dg-warning "'setbuf\.mode' is used" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c
index ecf9c0096..19b5105b8 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c
@@ -18,10 +18,10 @@ foo (int i)
int foo2( void ) {
- int rc; /* { dg-warning "'rc' is used uninitialized in this function" } */
+ int rc;
return rc;
*&rc = 0;
-}
+} /* { dg-warning "'rc' is used uninitialized in this function" } */
extern int printf(const char *, ...);
void frob(int *pi);
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c
index e13910bec..23c21b957 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c
@@ -18,7 +18,7 @@ int bar ()
int j;
if (1 == i)
- return j; /* { dg-warning "uninitialized" "uninitialized" { target *-*-* } 18 } */
+ return j; /* { dg-warning "uninitialized" "uninitialized" { target *-*-* } 24 } */
return 0;
}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_a.c
new file mode 100644
index 000000000..5edf21d30
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_a.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar (void);
+void blah (int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (flag)
+ blah(v); /* { dg-bogus "uninitialized" "bogus uninitialized var warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_b.c
new file mode 100644
index 000000000..ac7697e3c
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_b.c
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar (void);
+void blah (int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ /* Wrong guard */
+ if (!flag)
+ blah(v); /* { dg-warning "uninitialized" "real uninitialized var warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_c.c
new file mode 100644
index 000000000..941f6328d
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_c.c
@@ -0,0 +1,48 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar (void);
+void blah (int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m) g++;
+ else bar();
+
+ if (flag)
+ blah(v); /* { dg-bogus "uninitialized" "bogus uninitialized var warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m) g++;
+ else bar();
+
+ if (flag)
+ blah(v); /* { dg-bogus "uninitialized" "bogus uninitialized var warning" } */
+ else
+ blah(v); /* { dg-warning "uninitialized" "real uninitialized var warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_a.c
new file mode 100644
index 000000000..0ef0650ae
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_a.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ if (flag)
+ blah(v); /* {dg-bogus "uninitialized" "bogus warning" } */
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_b.c
new file mode 100644
index 000000000..978210d50
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_b.c
@@ -0,0 +1,33 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ goto use;
+ if (flag)
+ {
+use:
+ blah(v); /* { dg-warning "uninitialized" "real warning" } */
+ }
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_c.c
new file mode 100644
index 000000000..130979078
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_c.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = -1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ if (flag < 0)
+ blah(v); /* {dg-bogus "uninitialized" "bogus warning" } */
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_d.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_d.c
new file mode 100644
index 000000000..9f938763c
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_d.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = -1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ if (flag == -1)
+ blah(v); /* {dg-bogus "uninitialized" "bogus warning" } */
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_e.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_e.c
new file mode 100644
index 000000000..66e2a3a93
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_e.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = -1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ if (flag <= 0 )
+ blah(v); /* { dg-warning "uninitialized" "real warning" } */
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_a.c
new file mode 100644
index 000000000..7b2d291a6
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_a.c
@@ -0,0 +1,43 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+int foo (int n, int m, int r, int t)
+{
+ int flag = 0;
+ int v;
+
+ if (t)
+ {
+ if (n)
+ {
+ v = r; /* init path 1 */
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (flag) /* properly guarded */
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+ }
+ else
+ {
+ v = r+1; /* init path 2 */
+ flag = 2;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (flag) /* properly guarded */
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_b.c
new file mode 100644
index 000000000..376639588
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_b.c
@@ -0,0 +1,40 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+int foo (int n, int m, int r, int t)
+{
+ int flag = 0;
+ int v;
+
+ if (t)
+ {
+ if (n)
+ {
+ v = r; /* init path 1 */
+ flag = 1;
+ }
+
+ if (m) g++;
+ else bar();
+
+ if (flag) /* properly guarded */
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+ }
+ else
+ {
+ v = r+1; /* init path 2 */
+ flag = 2;
+ }
+
+ if (m) g++;
+ else bar();
+
+ if (g) /* guard can not be determined statically to be safe */
+ blah(v); /* { dg-warning "uninitialized" "real warning" } */
+
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_a.c
new file mode 100644
index 000000000..845f3c461
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_a.c
@@ -0,0 +1,41 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+int bar();
+int blah(int);
+void t(int);
+
+__attribute__((always_inline))
+int foo (int n, int* v, int r)
+{
+ int flag = 0;
+ if (r > n)
+ {
+ *v = bar();
+ flag = 1;
+ }
+
+ if (n > g)
+ g++;
+ else
+ bar();
+
+ return flag;
+}
+
+int a[100];
+int b[100];
+int blah(int n)
+{
+ int i;
+ for (i = 0 ; i < n; i++)
+ {
+ int v;
+ if (!foo (n, &v, b[i]))
+ return 0;
+ t (v); /* { dg-bogus "uninitialized" "bogus warning" } */
+ }
+ return 1;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_b.c
new file mode 100644
index 000000000..13f1e31f8
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_b.c
@@ -0,0 +1,41 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+int bar();
+int blah(int);
+void t(int);
+
+__attribute__((always_inline))
+int foo (int n, int* v, int r)
+{
+ int flag = 0;
+ if (r > n)
+ {
+ *v = bar();
+ flag = 1;
+ }
+
+ if (n > g)
+ g++;
+ else
+ bar();
+
+ return flag;
+}
+
+int a[100];
+int b[100];
+int blah(int n)
+{
+ int i;
+ for (i = 0 ; i < n; i++)
+ {
+ int v;
+ if (foo (n, &v, b[i]))
+ return 0;
+ t (v); /* { dg-warning "uninitialized" "real warning" } */
+ }
+ return 1;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_a.c
new file mode 100644
index 000000000..aa44f7616
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_a.c
@@ -0,0 +1,40 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n && l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n && l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (n)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_b.c
new file mode 100644
index 000000000..dcc9a14a3
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_b.c
@@ -0,0 +1,46 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n)
+ if (l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if (l)
+ if (n)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n)
+ if (l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (n || l)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_c.c
new file mode 100644
index 000000000..f60868dad
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_c.c
@@ -0,0 +1,46 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ if (l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( (n > 10) && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if (l)
+ if (n > 12)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ if (l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (n > 8 )
+ if (l)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_d.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_d.c
new file mode 100644
index 000000000..704c3e6e1
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_d.c
@@ -0,0 +1,24 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_e.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_e.c
new file mode 100644
index 000000000..21f429daf
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_e.c
@@ -0,0 +1,43 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( (n > 10) && (l < 100))
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n > 100 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n < 10)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_a.c
new file mode 100644
index 000000000..c2ba2a424
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_a.c
@@ -0,0 +1,54 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( l )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if (m || l)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ if ( l )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_b.c
new file mode 100644
index 000000000..338d18c95
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_b.c
@@ -0,0 +1,23 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (( n > 10) || (l != 100))
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_c.c
new file mode 100644
index 000000000..1bbe5014d
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_c.c
@@ -0,0 +1,33 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (n )
+ {
+ if (l)
+ g++;
+ else
+ goto l;
+ }
+ else
+ {
+l:
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+ }
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_a.c
new file mode 100644
index 000000000..1b7c47242
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_a.c
@@ -0,0 +1,45 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n || m || r || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n || m || r || l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( l )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n || m || r )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n || m || r || l)
+ blah(v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_b.c
new file mode 100644
index 000000000..06e2eba27
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_b.c
@@ -0,0 +1,45 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n < 10 || m > 100 || r < 20 || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n < 10 || m > 100 || r < 20 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n < 10 || m > 100 || r < 10 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n < 10 || m > 100 || r < 20 || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n < 10 || m > 100 || r < 20 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n < 10 || m > 100 || r < 30 )
+ blah(v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_c.c
new file mode 100644
index 000000000..39d1bcd93
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_c.c
@@ -0,0 +1,39 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n < 10 && m > 100 && r < 20 )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n <= 8 && m > 101 && r < 19 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n < 10 && m > 100 && r < 20 )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n <= 8 && m > 99 && r < 19 )
+ blah(v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_a.c
new file mode 100644
index 000000000..67fb8ab97
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_a.c
@@ -0,0 +1,23 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if ( (n < 10) && (m == l) && (r < 20) )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( (n <= 8) && (m == l) && (r < 19) )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
new file mode 100644
index 000000000..d9ae75e07
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
@@ -0,0 +1,44 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if ( (n < 10) && (m != 100) && (r < 20) )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (l > 100)
+ if ( (n <= 9) && (m < 100) && (r < 19) )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( (n <= 8) && (m < 99) && (r < 19) )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if ( (n < 10) && (m != 100) && (r < 20) )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (l > 100)
+ if ( (n <= 8) && (m < 101) && (r < 19) )
+ blah(v); /* { dg-warning "uninitialized" "real warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
index b4ed282d0..a60420b41 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
@@ -5,8 +5,9 @@
#define N 64
-short X[N] __attribute__ ((__aligned__(16)));
-short Y[N] __attribute__ ((__aligned__(16)));
+short X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+short Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
+
int result[N];
/* short->int widening-mult */
@@ -26,11 +27,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- }
-
foo1 (N);
for (i=0; i<N; i++) {
@@ -44,4 +40,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_hi_to_si || vect_unpack } } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { vect_widen_mult_hi_to_si || vect_unpack } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
index 16bf57816..bba1a8e92 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
@@ -5,8 +5,9 @@
#define N 64
-unsigned char X[N] __attribute__ ((__aligned__(16)));
-unsigned char Y[N] __attribute__ ((__aligned__(16)));
+unsigned char X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+unsigned char Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
+
unsigned short result[N];
/* char->short widening-mult */
@@ -26,13 +27,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- if (i % 5)
- X[i] = i;
- }
-
foo1 (N);
for (i=0; i<N; i++) {
@@ -46,4 +40,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_qi_to_hi || vect_unpack } } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { vect_widen_mult_hi_to_si || vect_unpack } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c
index d75308f22..c6c3bf338 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c
@@ -17,9 +17,7 @@ int main1 ()
/* Initialization. */
for (i = 0; i < N; i++)
{
- s.b[i] = 3*i;
- if (i%3 == 0)
- s.b[i] = 3*i;
+ s.b[i] = i;
}
/* Dependence analysis fails cause s.a and s.b may overlap.
@@ -32,7 +30,7 @@ int main1 ()
/* check results: */
for (i = 0; i < N; i++)
{
- if (s.a[i] != 3*i + 1)
+ if (s.a[i] != i + 1)
abort ();
}
@@ -47,6 +45,6 @@ int main (void)
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "can't determine dependence between" 1 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c
index b5347ebec..d7a121c5a 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c
@@ -5,7 +5,7 @@
#define N 64
-char x[N] __attribute__ ((__aligned__(16)));
+char x[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
__attribute__ ((noinline)) int
foo (int len, long long *z) {
@@ -24,12 +24,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- x[i] = i;
- if (i % 5)
- x[i] = i;
- }
-
foo (N,z+2);
for (i=0; i<N; i++) {
@@ -43,4 +37,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_unpack } } } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_unpack } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c
index 61670e699..ffa1d5ac4 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c
@@ -5,9 +5,9 @@
#define N 64
-unsigned char uX[N] __attribute__ ((__aligned__(16)));
+unsigned char uX[N] __attribute__ ((__aligned__(16))) = {16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
unsigned char uresultX[N];
-unsigned long long uY[N] __attribute__ ((__aligned__(16)));
+unsigned long long uY[N] __attribute__ ((__aligned__(16))) = {16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
unsigned char uresultY[N];
/* Unsigned type demotion (si->qi) */
@@ -28,13 +28,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- uX[i] = 16-i;
- uY[i] = 16-i;
- if (i%5 == 0)
- uX[i] = 16-i;
- }
-
foo1 (N);
for (i=0; i<N; i++) {
@@ -49,4 +42,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_pack_trunc } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
index d8aefdad1..2931b4f52 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
@@ -7,8 +7,8 @@
#define DOT 43680
-unsigned char X[N] __attribute__ ((__aligned__(16)));
-unsigned char Y[N] __attribute__ ((__aligned__(16)));
+unsigned char X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+unsigned char Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
/* char->short->int dot product.
Detected as a dot-product pattern.
@@ -41,13 +41,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- if (i%5 == 0)
- X[i] = i;
- }
-
dot = foo (N);
if (dot != DOT)
abort ();
@@ -60,4 +53,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_qi_to_hi && vect_widen_sum_qi_to_si } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
index 5496f6af9..e7156de48 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
@@ -7,8 +7,8 @@
#define DOT 43680
-unsigned char X[N] __attribute__ ((__aligned__(16)));
-unsigned char Y[N] __attribute__ ((__aligned__(16)));
+unsigned char X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+unsigned char Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
/* char->short->short dot product.
Detected as a dot-product pattern.
@@ -36,14 +36,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- /* Avoid vectorization. */
- if (i%100 == 0)
- X[i] = i;
- }
-
dot = foo (N);
if (dot != DOT)
abort ();
@@ -60,4 +52,3 @@ dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_udot
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {target { vect_widen_mult_qi_to_hi || vect_unpack } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
index 31eb3f620..7fc00e21a 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
@@ -7,8 +7,8 @@
#define DOT -21856
-signed char X[N] __attribute__ ((__aligned__(16)));
-signed char Y[N] __attribute__ ((__aligned__(16)));
+signed char X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+signed char Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
/* char->short->short dot product.
The dot-product pattern should be detected.
@@ -37,13 +37,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- if (i%5 == 0)
- X[i] = i;
- }
-
dot = foo (N);
if (dot != DOT)
abort ();