public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb
@ 2020-07-29 15:50 clyon at gcc dot gnu.org
  2020-07-30  6:02 ` [Bug tree-optimization/96376] " rguenth at gcc dot gnu.org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: clyon at gcc dot gnu.org @ 2020-07-29 15:50 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 96376
           Summary: [11 regression] vect/vect-alias-check.c and
                    vect/vect-live-5.c fail on armeb
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: clyon at gcc dot gnu.org
  Target Milestone: ---

I've noticed regressions on target armeb-none-linux-gnueabihf --with-mode arm
--with-cpu cortex-a9 --with-fpu neon-fp16:
gcc.dg/vect/vect-alias-check.c -flto -ffat-lto-objects  scan-tree-dump-times
vect "vectorized 1 loops" 1
gcc.dg/vect/vect-alias-check.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/vect-live-5.c -flto -ffat-lto-objects  scan-tree-dump-times vect
"vectorized 1 loops" 1
gcc.dg/vect/vect-live-5.c scan-tree-dump-times vect "vectorized 1 loops" 1

In my logs I can see:
PASS: gcc.dg/vect/vect-live-5.c execution test
gcc.dg/vect/vect-live-5.c: pattern found 0 times
FAIL: gcc.dg/vect/vect-live-5.c scan-tree-dump-times vect "vectorized 1 loops"
1

PASS: gcc.dg/vect/vect-alias-check.c (test for excess errors)
gcc.dg/vect/vect-alias-check.c: pattern found 0 times
FAIL: gcc.dg/vect/vect-alias-check.c scan-tree-dump-times vect "vectorized 1
loops" 1

This appeared between r11-1908 and r11-1952.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/96376] [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb
  2020-07-29 15:50 [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb clyon at gcc dot gnu.org
@ 2020-07-30  6:02 ` rguenth at gcc dot gnu.org
  2020-07-30 12:13 ` clyon at gcc dot gnu.org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-07-30  6:02 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|unknown                     |11.0
   Target Milestone|---                         |11.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/96376] [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb
  2020-07-29 15:50 [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb clyon at gcc dot gnu.org
  2020-07-30  6:02 ` [Bug tree-optimization/96376] " rguenth at gcc dot gnu.org
@ 2020-07-30 12:13 ` clyon at gcc dot gnu.org
  2020-10-16 11:59 ` rguenth at gcc dot gnu.org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: clyon at gcc dot gnu.org @ 2020-07-30 12:13 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Christophe Lyon <clyon at gcc dot gnu.org> ---
Bisect identified commit g30fdaead5b7880c4e9f140618e26ad1c545642d5

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/96376] [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb
  2020-07-29 15:50 [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb clyon at gcc dot gnu.org
  2020-07-30  6:02 ` [Bug tree-optimization/96376] " rguenth at gcc dot gnu.org
  2020-07-30 12:13 ` clyon at gcc dot gnu.org
@ 2020-10-16 11:59 ` rguenth at gcc dot gnu.org
  2020-10-16 12:05 ` clyon at gcc dot gnu.org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-10-16 11:59 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
           Priority|P3                          |P1
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2020-10-16
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
I will have a look.  How do I need to configure to reproduce with a cc1 cross?

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/96376] [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb
  2020-07-29 15:50 [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb clyon at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2020-10-16 11:59 ` rguenth at gcc dot gnu.org
@ 2020-10-16 12:05 ` clyon at gcc dot gnu.org
  2020-10-21  7:56 ` linkw at gcc dot gnu.org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: clyon at gcc dot gnu.org @ 2020-10-16 12:05 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Christophe Lyon <clyon at gcc dot gnu.org> ---
I mentioned the configuration flags above:
--target armeb-none-linux-gnueabihf --with-mode arm --with-cpu cortex-a9
--with-fpu neon-fp16

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/96376] [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb
  2020-07-29 15:50 [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb clyon at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2020-10-16 12:05 ` clyon at gcc dot gnu.org
@ 2020-10-21  7:56 ` linkw at gcc dot gnu.org
  2020-10-21  8:20 ` linkw at gcc dot gnu.org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: linkw at gcc dot gnu.org @ 2020-10-21  7:56 UTC (permalink / raw)
  To: gcc-bugs

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

Kewen Lin <linkw at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ro at gcc dot gnu.org

--- Comment #4 from Kewen Lin <linkw at gcc dot gnu.org> ---
*** Bug 96129 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/96376] [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb
  2020-07-29 15:50 [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb clyon at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2020-10-21  7:56 ` linkw at gcc dot gnu.org
@ 2020-10-21  8:20 ` linkw at gcc dot gnu.org
  2021-01-15 14:07 ` cvs-commit at gcc dot gnu.org
  2021-01-15 14:08 ` rguenth at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: linkw at gcc dot gnu.org @ 2020-10-21  8:20 UTC (permalink / raw)
  To: gcc-bugs

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

Kewen Lin <linkw at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |linkw at gcc dot gnu.org

--- Comment #5 from Kewen Lin <linkw at gcc dot gnu.org> ---
By checking the case vect-alias-check.c on the sparc machine, although
vectorizer does the versioning for the alignment requirement and is able to set
the misaligned flag off for misaligned DRs, it bypasses the DRs *b_20(D) and
MEM[(int *)b_20(D) + 4B], as they satisfy the condition check
!vect_relevant_for_alignment_p.

   if (aligned_access_p (dr_info)
       || !vect_relevant_for_alignment_p (dr_info))
            continue;

More specific, it's due to these two DR's steps are unchanged in the loop (b[0]
and b[1]).

   /* Scatter-gather and invariant accesses continue to address individual
     scalars, so vector-level alignment is irrelevant.  */
  if (STMT_VINFO_GATHER_SCATTER_P (stmt_info)
      || integer_zerop (DR_STEP (dr_info->dr)))
    return false;

A simple fix seems to be:

  diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 2b4421b5fb4..d5f52929f89 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -1186,7 +1186,7 @@ vect_update_misalignment_for_peel (dr_vec_info *dr_info,

 /* Return true if alignment is relevant for DR_INFO.  */

-static bool
+bool
 vect_relevant_for_alignment_p (dr_vec_info *dr_info)
 {
   stmt_vec_info stmt_info = dr_info->stmt;
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index cec5c601268..8a04f55fdb1 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -2369,7 +2369,8 @@ get_load_store_type (vec_info  *vinfo, stmt_vec_info
stmt_info,
       return false;
     }

-  if (*alignment_support_scheme == dr_unaligned_unsupported)
+  if (*alignment_support_scheme == dr_unaligned_unsupported
+      && vect_relevant_for_alignment_p (STMT_VINFO_DR_INFO (stmt_info)))
     {
       if (dump_enabled_p ())
        dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index 7c6de8397b3..067222ffe39 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -1935,6 +1935,7 @@ extern tree vect_get_new_ssa_name (tree, enum
vect_var_kind,
 extern tree vect_create_addr_base_for_vector_ref (vec_info *,
                                                  stmt_vec_info, gimple_seq *,
                                                  tree, tree = NULL_TREE);
+bool vect_relevant_for_alignment_p (dr_vec_info *dr_info);

 /* In tree-vect-loop.c.  */
 extern widest_int vect_iv_limit_for_partial_vectors (loop_vec_info
loop_vinfo);

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/96376] [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb
  2020-07-29 15:50 [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb clyon at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2020-10-21  8:20 ` linkw at gcc dot gnu.org
@ 2021-01-15 14:07 ` cvs-commit at gcc dot gnu.org
  2021-01-15 14:08 ` rguenth at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-01-15 14:07 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:446703ccc2ce09e9710964f781a21030bf3c2d54

commit r11-6717-g446703ccc2ce09e9710964f781a21030bf3c2d54
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Jan 15 14:20:43 2021 +0100

    tree-optimization/96376 - do not check alignment for invariant loads

    The testcases show that we fail to disregard alignment for invariant
    loads.  The patch handles them like we handle gather and scatter.

    2021-01-15  Richard Biener  <rguenther@suse.de>

            PR tree-optimization/96376
            * tree-vect-stmts.c (get_load_store_type): Disregard alignment
            for VMAT_INVARIANT.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/96376] [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb
  2020-07-29 15:50 [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb clyon at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-01-15 14:07 ` cvs-commit at gcc dot gnu.org
@ 2021-01-15 14:08 ` rguenth at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-01-15 14:08 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Should be fixed now.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-01-15 14:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-29 15:50 [Bug tree-optimization/96376] New: [11 regression] vect/vect-alias-check.c and vect/vect-live-5.c fail on armeb clyon at gcc dot gnu.org
2020-07-30  6:02 ` [Bug tree-optimization/96376] " rguenth at gcc dot gnu.org
2020-07-30 12:13 ` clyon at gcc dot gnu.org
2020-10-16 11:59 ` rguenth at gcc dot gnu.org
2020-10-16 12:05 ` clyon at gcc dot gnu.org
2020-10-21  7:56 ` linkw at gcc dot gnu.org
2020-10-21  8:20 ` linkw at gcc dot gnu.org
2021-01-15 14:07 ` cvs-commit at gcc dot gnu.org
2021-01-15 14:08 ` rguenth at gcc dot gnu.org

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).