* gcc.dg/vect/vect-16.c: Rename to...
* gcc.dg/vect/no-fast-math-vect16.c: ...this.
* gcc.dg/vect/vect-peel-3.c: Adjust misalignment values
for double-word vectors.
* gcc.dg/vect/vect-peel-4.c: Likewise.
* gcc.dg/vect/bb-slp-10.c: Replace vect_hw_misalign with
vect_element_align.
* gcc.dg/vect/vect.exp: Run no-fast-math-* tests with
-fno-fast-math.
From-SVN: r175009
+2011-06-14 Ira Rosen <ira.rosen@linaro.org>
+
+ * gcc.dg/vect/vect-16.c: Rename to...
+ * gcc.dg/vect/no-fast-math-vect16.c: ...this.
+ * gcc.dg/vect/vect-peel-3.c: Adjust misalignment values
+ for double-word vectors.
+ * gcc.dg/vect/vect-peel-4.c: Likewise.
+ * gcc.dg/vect/bb-slp-10.c: Replace vect_hw_misalign with
+ vect_element_align.
+ * gcc.dg/vect/vect.exp: Run no-fast-math-* tests with
+ -fno-fast-math.
+
2011-06-13 Edmar Wienskoski <edmar@freescale.com>
* gcc.target/powerpc/outofline_rnreg.c: New testcase.
return 0;
}
-/* { dg-final { scan-tree-dump-times "unsupported alignment in basic block." 1 "slp" { xfail vect_hw_misalign } } } */
-/* { dg-final { scan-tree-dump-times "basic block vectorized using SLP" 1 "slp" { target vect_hw_misalign } } } */
+/* { dg-final { scan-tree-dump-times "unsupported alignment in basic block." 1 "slp" { xfail vect_element_align } } } */
+/* { dg-final { scan-tree-dump-times "basic block vectorized using SLP" 1 "slp" { target vect_element_align } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */
--- /dev/null
+/* { dg-require-effective-target vect_float } */
+
+#include <stdarg.h>
+#include "tree-vect.h"
+
+#define N 16
+#define DIFF 240
+
+__attribute__ ((noinline))
+int main1 ()
+{
+ int i;
+ float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+ float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+ float diff;
+
+ diff = 0;
+ for (i = 0; i < N; i++) {
+ diff += (b[i] - c[i]);
+ }
+
+ /* check results: */
+ if (diff != DIFF)
+ abort ();
+
+ return 0;
+}
+
+int main (void)
+{
+ check_vect ();
+
+ return main1 ();
+}
+
+/* Requires fast-math. */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
+++ /dev/null
-/* { dg-require-effective-target vect_float } */
-
-#include <stdarg.h>
-#include "tree-vect.h"
-
-#define N 16
-#define DIFF 240
-
-__attribute__ ((noinline))
-int main1 ()
-{
- int i;
- float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
- float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
- float diff;
-
- diff = 0;
- for (i = 0; i < N; i++) {
- diff += (b[i] - c[i]);
- }
-
- /* check results: */
- if (diff != DIFF)
- abort ();
-
- return 0;
-}
-
-int main (void)
-{
- check_vect ();
-
- return main1 ();
-}
-
-/* Requires fast-math. */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { cleanup-tree-dump "vect" } } */
#include "tree-vect.h"
#define N 128
-#define RES 21888
-
-/* unaligned store. */
+#define RES 21640
int ib[N+10];
int ia[N+10];
int i, suma = 0, sumb = 0, sumc = 0;
/* ib and ic have same misalignment, we peel to align them. */
- for (i = 1; i <= N; i++)
+ for (i = 0; i <= N; i++)
{
suma += ia[i];
- sumb += ib[i+6];
- sumc += ic[i+2];
+ sumb += ib[i+5];
+ sumc += ic[i+1];
}
/* check results: */
/* Don't peel keeping one load and the store aligned. */
for (i = 0; i <= N; i++)
{
- ia[i] = ib[i] + ib[i+6];
+ ia[i] = ib[i] + ib[i+5];
}
/* check results: */
for (i = 1; i <= N; i++)
{
- if (ia[i] != ib[i] + ib[i+6])
+ if (ia[i] != ib[i] + ib[i+5])
abort ();
}
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/fast-math-*.\[cS\]]] \
"" $DEFAULT_VECTCFLAGS
+# -fno-fast-math tests
+set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
+lappend DEFAULT_VECTCFLAGS "-fno-fast-math"
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/no-fast-math-*.\[cS\]]] \
+ "" $DEFAULT_VECTCFLAGS
+
# -fno-math-errno tests
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
lappend DEFAULT_VECTCFLAGS "-fno-math-errno"