diff mbox

Fix half of PR63439

Message ID alpine.LSU.2.11.1501231155010.12482@zhemvz.fhfr.qr
State New
Headers show

Commit Message

Richard Biener Jan. 23, 2015, 10:58 a.m. UTC
The following should fix gcc.dg/vect/vect-33.c failing on arm
by properly guarding the scan-tree-dumps for vect64 tagets that
also can vectorize with v16qi.  I've choosen to use
vect_multiple_sizes for that, hoping we don't have targets
that do vect32.

Reliably writing vectorizer testcases gets harder and harder... :/

For the second half we really need to fix SPARC to be a vect64
target (the testcase is vectorized with v8qi).

Applied to trunk.

Richard.

2015-01-23  Richard Biener  <rguenther@suse.de>

	PR testsuite/63439
	* gcc.dg/vect/vect-33.c: Adjust target selectors for v16qi
	vectorization on vect64 targets.

Comments

Eric Botcazou Jan. 26, 2015, 9:15 a.m. UTC | #1
> For the second half we really need to fix SPARC to be a vect64
> target (the testcase is vectorized with v8qi).

Yes, that makes sense in conjunction with the options used for vectorization.
Richard Biener Jan. 26, 2015, 9:20 a.m. UTC | #2
On Mon, 26 Jan 2015, Eric Botcazou wrote:

> > For the second half we really need to fix SPARC to be a vect64
> > target (the testcase is vectorized with v8qi).
> 
> Yes, that makes sense in conjunction with the options used for vectorization.

As I can't test sparc can you or rainer do the change and see if it
works fine?

Thanks,
Richard.
diff mbox

Patch

Index: gcc/testsuite/gcc.dg/vect/vect-33.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/vect-33.c	(revision 220030)
+++ gcc/testsuite/gcc.dg/vect/vect-33.c	(working copy)
@@ -38,7 +38,7 @@  int main (void)
 
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
-/* { dg-final { scan-tree-dump "Vectorizing an unaligned access" "vect" { target { vect_hw_misalign && { ! vect64 } } } } } */
-/* { dg-final { scan-tree-dump "Alignment of access forced using peeling" "vect" { target { vector_alignment_reachable && vect64 } } } } */
+/* { dg-final { scan-tree-dump "Vectorizing an unaligned access" "vect" { target { vect_hw_misalign && { {! vect64} || vect_multiple_sizes } } } } } */
+/* { dg-final { scan-tree-dump "Alignment of access forced using peeling" "vect" { target { vector_alignment_reachable && { vect64 && {! vect_multiple_sizes} } } } } } */
 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target { { {! vector_alignment_reachable} || {! vect64} } && {! vect_hw_misalign} } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */