[Bug testsuite/89250] [9 regression] gcc.dg/vect/vect-24.c XPASSes

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Feb 8 11:54:00 GMT 2019


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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|needs-bisection             |
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
The 2nd rev looks odd.  So we do perform if-conversion here and some
if-conversion enhancement looking at array bounds / niter ranges might have
enabled that.  This also means vectorization has to support the if-converted
form:

  _1 = ib[i_360];
  _2 = ic[i_360];
  _20 = _2 != 0;
  _328 = (int) _20;
  iftmp.0_343 = _1 == 0 ? _328 : 1;
  ia[i_360] = iftmp.0_343;

so vect_condition is probably required (we fail to see we could use
a bitwise OR here).  I am going to install the following on trunk and
see what targets end up FAILing.

Index: gcc/testsuite/gcc.dg/vect/vect-24.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/vect-24.c (revision 268668)
+++ gcc/testsuite/gcc.dg/vect/vect-24.c (working copy)
@@ -122,5 +122,7 @@ int main (void)

   return main1 ();
 }
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { {
! aarch64*-*-* } && { ! arm-*-* } } } } } */
+/* The short-cutting || is if-converted using COND_EXPRs rather than
+   bitwise or.  */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { !
vect_condition } } } } */
 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0
"vect" { xfail { ! vect_align_stack_vars } } } } */


More information about the Gcc-bugs mailing list