https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71264

--- Comment #22 from rguenther at suse dot de <rguenther at suse dot de> ---
On Mon, 24 Oct 2016, ebotcazou at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71264
> 
> --- Comment #21 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> > It is supposed to be vectorized on targets w/o V4QImode support.
> > Not sure if the list of targets that FAIL the testcase would be smaller
> > if I change the scan to an explicit list of targets (x86)?
> 
> Not sure indeed, it passes on PowerPC & PowerPC64 too for example.
> 
> > Meanwhile just add more targets to the xfail -- it really is a missed
> > optimization as I guess for example arm also has V4SImode.
> 
> There is no XFAIL currently but we can certainly add one.

Ah, right ... my tree has local changes:

Index: gcc/testsuite/gcc.dg/vect/pr71264.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/pr71264.c (revision 241395)
+++ gcc/testsuite/gcc.dg/vect/pr71264.c (working copy)
@@ -7,6 +7,8 @@ typedef uint8_t footype __attribute__((v
 void test(uint8_t *ptr, uint8_t *mask)
 {
   footype mv;
+  ptr = __builtin_assume_aligned (ptr, __alignof__ (footype));
+  mask = __builtin_assume_aligned (mask, __alignof__ (footype));
   __builtin_memcpy(&mv, mask, sizeof(mv));
   for (unsigned i = 0; i < 16; i += 4)
     {
@@ -17,4 +19,4 @@ void test(uint8_t *ptr, uint8_t *mask)
     }
 }

-/* { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" } 
} */
+/* { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" { 
xfail sparc*-*-* } } } */

Reply via email to