* [patch, testsuite] Fix vectorizer testsuite failures on ARM
@ 2011-06-09 10:07 Ira Rosen
2011-06-13 9:22 ` Ira Rosen
2011-06-15 17:30 ` Steve Ellcey
0 siblings, 2 replies; 5+ messages in thread
From: Ira Rosen @ 2011-06-09 10:07 UTC (permalink / raw)
To: gcc-patches; +Cc: Patch Tracking
[-- Attachment #1: Type: text/plain, Size: 1135 bytes --]
Hi,
This patch fixes several vectorizer testsuite failures on ARM:
- vect-16.c checks that the vectorization fails without -ffast-math,
but -ffast-math is a default flag for vector tests on ARM. I renamed
the test to no-fast-math-vect-16.c to avoid the use of the flag for
it.
- vect-peel-3.c and vect-peel-4.c test vectorizer's peeling heuristics
ignoring double-word vectors. This patch changes the misalignment
values of the data-refs.
- bb-slp-10.c contains a misaligned store supported not only on
vect_hw_misalign targets, but also on vect_element_align targets. The
patch fixes that.
Tested on arm-linux-gnueabi, powerpc64-suse-linux and x86_64-suse-linux.
OK for mainline?
Thanks,
Ira
testsuite/ChangeLog:
* 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.
[-- Attachment #2: tests.txt --]
[-- Type: text/plain, Size: 4597 bytes --]
Index: gcc.dg/vect/vect-16.c
===================================================================
--- gcc.dg/vect/vect-16.c (revision 174836)
+++ gcc.dg/vect/vect-16.c (working copy)
@@ -1,38 +0,0 @@
-/* { 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" } } */
Index: gcc.dg/vect/vect-peel-3.c
===================================================================
--- gcc.dg/vect/vect-peel-3.c (revision 174836)
+++ gcc.dg/vect/vect-peel-3.c (working copy)
@@ -4,9 +4,7 @@
#include "tree-vect.h"
#define N 128
-#define RES 21888
-
-/* unaligned store. */
+#define RES 21640
int ib[N+10];
int ia[N+10];
@@ -18,11 +16,11 @@ int main1 ()
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: */
Index: gcc.dg/vect/vect-peel-4.c
===================================================================
--- gcc.dg/vect/vect-peel-4.c (revision 174836)
+++ gcc.dg/vect/vect-peel-4.c (working copy)
@@ -16,13 +16,13 @@ int main1 ()
/* 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 ();
}
Index: gcc.dg/vect/no-fast-math-vect16.c
===================================================================
--- gcc.dg/vect/no-fast-math-vect16.c (revision 0)
+++ gcc.dg/vect/no-fast-math-vect16.c (revision 0)
@@ -0,0 +1,38 @@
+/* { 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" } } */
Index: gcc.dg/vect/bb-slp-10.c
===================================================================
--- gcc.dg/vect/bb-slp-10.c (revision 174836)
+++ gcc.dg/vect/bb-slp-10.c (working copy)
@@ -49,7 +49,7 @@ int main (void)
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" } } */
Index: gcc.dg/vect/vect.exp
===================================================================
--- gcc.dg/vect/vect.exp (revision 174836)
+++ gcc.dg/vect/vect.exp (working copy)
@@ -107,6 +107,12 @@ lappend DEFAULT_VECTCFLAGS "-ffast-math"
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"
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch, testsuite] Fix vectorizer testsuite failures on ARM
2011-06-09 10:07 [patch, testsuite] Fix vectorizer testsuite failures on ARM Ira Rosen
@ 2011-06-13 9:22 ` Ira Rosen
2011-06-15 17:30 ` Steve Ellcey
1 sibling, 0 replies; 5+ messages in thread
From: Ira Rosen @ 2011-06-13 9:22 UTC (permalink / raw)
To: gcc-patches; +Cc: Patch Tracking
On 9 June 2011 13:00, Ira Rosen <ira.rosen@linaro.org> wrote:
> Hi,
>
> This patch fixes several vectorizer testsuite failures on ARM:
> - vect-16.c checks that the vectorization fails without -ffast-math,
> but -ffast-math is a default flag for vector tests on ARM. I renamed
> the test to no-fast-math-vect-16.c to avoid the use of the flag for
> it.
> - vect-peel-3.c and vect-peel-4.c test vectorizer's peeling heuristics
> ignoring double-word vectors. This patch changes the misalignment
> values of the data-refs.
> - bb-slp-10.c contains a misaligned store supported not only on
> vect_hw_misalign targets, but also on vect_element_align targets. The
> patch fixes that.
>
> Tested on arm-linux-gnueabi, powerpc64-suse-linux and x86_64-suse-linux.
> OK for mainline?
>
I'll commit this patch tomorrow if nobody objects.
Thanks,
Ira
> Thanks,
> Ira
>
> testsuite/ChangeLog:
>
> * 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.
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch, testsuite] Fix vectorizer testsuite failures on ARM
2011-06-09 10:07 [patch, testsuite] Fix vectorizer testsuite failures on ARM Ira Rosen
2011-06-13 9:22 ` Ira Rosen
@ 2011-06-15 17:30 ` Steve Ellcey
2011-06-16 6:00 ` Ira Rosen
1 sibling, 1 reply; 5+ messages in thread
From: Steve Ellcey @ 2011-06-15 17:30 UTC (permalink / raw)
To: Ira Rosen; +Cc: gcc-patches
> testsuite/ChangeLog:
>
> * 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.
Ira,
This change broke vect-peel-3.c and vect-peel-4.c on IA64 HP-UX.
I get these failures:
FAIL: gcc.dg/vect/vect-peel-3.c -flto scan-tree-dump-times vect "Alignment of access forced using peeling" 1
FAIL: gcc.dg/vect/vect-peel-3.c -flto scan-tree-dump-times vect "vectorized 1 loops" 1
FAIL: gcc.dg/vect/vect-peel-3.c scan-tree-dump-times vect "Alignment of access forced using peeling" 1
FAIL: gcc.dg/vect/vect-peel-3.c scan-tree-dump-times vect "vectorized 1 loops" 1
FAIL: gcc.dg/vect/vect-peel-4.c -flto scan-tree-dump-times vect "vectorized 1 loops" 1
FAIL: gcc.dg/vect/vect-peel-4.c scan-tree-dump-times vect "vectorized 1 loops" 1
I think that changing i+6 and i+2 to i+5 and i+1 broke things on HP-UX
because we are big-endian and the old values may not have worked on ARM
because it is little-endian (just guessing).
I am not sure what we want to do to make this test work on both platforms.
Do you have any ideas?
Steve Ellcey
sje@cup.hp.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch, testsuite] Fix vectorizer testsuite failures on ARM
2011-06-15 17:30 ` Steve Ellcey
@ 2011-06-16 6:00 ` Ira Rosen
2011-06-16 16:26 ` Steve Ellcey
0 siblings, 1 reply; 5+ messages in thread
From: Ira Rosen @ 2011-06-16 6:00 UTC (permalink / raw)
To: Steve Ellcey; +Cc: gcc-patches
Steve Ellcey <sje@cup.hp.com> wrote on 15/06/2011 08:15:27 PM:
>
> > testsuite/ChangeLog:
> >
> > * 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.
>
> Ira,
>
> This change broke vect-peel-3.c and vect-peel-4.c on IA64 HP-UX.
> I get these failures:
>
> FAIL: gcc.dg/vect/vect-peel-3.c -flto scan-tree-dump-times vect
> "Alignment of access forced using peeling" 1
> FAIL: gcc.dg/vect/vect-peel-3.c -flto scan-tree-dump-times vect
> "vectorized 1 loops" 1
> FAIL: gcc.dg/vect/vect-peel-3.c scan-tree-dump-times vect
> "Alignment of access forced using peeling" 1
> FAIL: gcc.dg/vect/vect-peel-3.c scan-tree-dump-times vect
> "vectorized 1 loops" 1
> FAIL: gcc.dg/vect/vect-peel-4.c -flto scan-tree-dump-times vect
> "vectorized 1 loops" 1
> FAIL: gcc.dg/vect/vect-peel-4.c scan-tree-dump-times vect
> "vectorized 1 loops" 1
>
> I think that changing i+6 and i+2 to i+5 and i+1 broke things on HP-UX
> because we are big-endian and the old values may not have worked on ARM
> because it is little-endian (just guessing).
>
> I am not sure what we want to do to make this test work on both
platforms.
> Do you have any ideas?
I don't think it is related to endianess.
Could you please send me the dump files (created with
-fdump-tree-vect-details)?
Thanks,
Ira
>
> Steve Ellcey
> sje@cup.hp.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch, testsuite] Fix vectorizer testsuite failures on ARM
2011-06-16 6:00 ` Ira Rosen
@ 2011-06-16 16:26 ` Steve Ellcey
0 siblings, 0 replies; 5+ messages in thread
From: Steve Ellcey @ 2011-06-16 16:26 UTC (permalink / raw)
To: Ira Rosen; +Cc: gcc-patches
On Thu, 2011-06-16 at 08:48 +0300, Ira Rosen wrote:
> > I am not sure what we want to do to make this test work on both
> platforms.
> > Do you have any ideas?
>
> I don't think it is related to endianess.
> Could you please send me the dump files (created with
> -fdump-tree-vect-details)?
>
> Thanks,
> Ira
>
> >
> > Steve Ellcey
> > sje@cup.hp.com
I went ahead and created a bug report (PR 49443) and added the dump file
to that report as an attachment.
Steve Ellcey
sje@cup.hp.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-06-16 16:14 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-09 10:07 [patch, testsuite] Fix vectorizer testsuite failures on ARM Ira Rosen
2011-06-13 9:22 ` Ira Rosen
2011-06-15 17:30 ` Steve Ellcey
2011-06-16 6:00 ` Ira Rosen
2011-06-16 16:26 ` Steve Ellcey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).