public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran)
@ 2022-10-13 16:28 bartoldeman at users dot sourceforge.net
  2022-10-13 16:31 ` [Bug tree-optimization/107254] [11 Regression] " pinskia at gcc dot gnu.org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: bartoldeman at users dot sourceforge.net @ 2022-10-13 16:28 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 107254
           Summary: Wrong vectorizer code (GCC 11 only, Fortran)
           Product: gcc
           Version: 11.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bartoldeman at users dot sourceforge.net
  Target Milestone: ---

Created attachment 53703
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53703&action=edit
Test case

The following code gives the wrong result (-1.0000000000000000 instead of
0.0000000000000000) with gfortran 11.3 (also tested with the 11.3.1 20221007
prerelease) when given the options
`-O2 -ftree-vectorize -march=core-avx`
for x86_64.

There's no issue with GCC 9,10, and 12. It could be related to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107212 except that bug also
affects GCC 12.

This issue came up from testing the reference LAPACK with -ftree-vectorize
enabled, where many more tests failed with recent GCC (11/12), see
https://github.com/easybuilders/easybuild-easyconfigs/issues/16380

$ gfortran -O2 -ftree-vectorize -march=core-avx2 dhgeqz2.f90; ./a.out 
  -1.0000000000000000     
$ gfortran -Wall -O2 dhgeqz2.f90; ./a.out 
   0.0000000000000000


subroutine dlartg( f, g, s, r )
  implicit none
  double precision :: f, g, r, s
  double precision :: d, p

  d = sqrt( f*f + g*g )
  p = 1.d0 / d
  if( abs( f ) > 1 ) then
     s = g*sign( p, f )
     r = sign( d, f )
  else
     s = g*sign( p, f )
     r = sign( d, f )
  end if
end subroutine

subroutine dhgeqz( n, h, t )
  implicit none
  integer            n
  double precision   h( n, * ), t( n, * )
  integer            jc
  double precision   c, s, temp, temp2, tempr
  temp2 = 10d0
  call dlartg( 10d0, temp2, s, tempr )
  c = 0.9d0
  s = 1.d0
  do jc = 1, n
     temp = c*h( 1, jc ) + s*h( 2, jc )
     h( 2, jc ) = -s*h( 1, jc ) + c*h( 2, jc )
     h( 1, jc ) = temp
     temp2 = c*t( 1, jc ) + s*t( 2, jc )
     ! t(2,2)=-s*t(1,2)+c*t(2,2)=-0.9*0+1*0=0
     t( 2, jc ) = -s*t( 1, jc ) + c*t( 2, jc )
     t( 1, jc ) = temp2
  enddo
end subroutine dhgeqz

program test
  implicit none
  double precision h(2,2), t(2,2)  
  h = 0
  t(1,1) = 1
  t(2,1) = 0
  t(1,2) = 0
  t(2,2) = 0
  call dhgeqz( 2, h, t )
  print *,t(2,2)
end program test

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

* [Bug tree-optimization/107254] [11 Regression] Wrong vectorizer code (GCC 11 only, Fortran)
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
@ 2022-10-13 16:31 ` pinskia at gcc dot gnu.org
  2022-10-13 18:56 ` marxin at gcc dot gnu.org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-10-13 16:31 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |11.1.0, 11.3.0
            Summary|Wrong vectorizer code (GCC  |[11 Regression] Wrong
                   |11 only, Fortran)           |vectorizer code (GCC 11
                   |                            |only, Fortran)
           Keywords|                            |wrong-code
      Known to work|                            |10.4.0, 12.1.0
   Target Milestone|---                         |11.4
             Target|                            |x86_64-linux-gnu

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

* [Bug tree-optimization/107254] [11 Regression] Wrong vectorizer code (GCC 11 only, Fortran)
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
  2022-10-13 16:31 ` [Bug tree-optimization/107254] [11 Regression] " pinskia at gcc dot gnu.org
@ 2022-10-13 18:56 ` marxin at gcc dot gnu.org
  2022-10-13 19:02 ` pinskia at gcc dot gnu.org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: marxin at gcc dot gnu.org @ 2022-10-13 18:56 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|needs-bisection             |
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-10-13
     Ever confirmed|0                           |1
                 CC|                            |marxin at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Fixed with r12-2051-g7d810646d421f697 and started with
r11-2453-gc89366b12ff4f362.

@Richi: Can you please take a look?

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

* [Bug tree-optimization/107254] [11 Regression] Wrong vectorizer code (GCC 11 only, Fortran)
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
  2022-10-13 16:31 ` [Bug tree-optimization/107254] [11 Regression] " pinskia at gcc dot gnu.org
  2022-10-13 18:56 ` marxin at gcc dot gnu.org
@ 2022-10-13 19:02 ` pinskia at gcc dot gnu.org
  2022-10-14  6:34 ` rguenth at gcc dot gnu.org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-10-13 19:02 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #1)
> Fixed with r12-2051-g7d810646d421f697 and started with
> r11-2453-gc89366b12ff4f362.

If so there might be a latent bug still ....

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

* [Bug tree-optimization/107254] [11 Regression] Wrong vectorizer code (GCC 11 only, Fortran)
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (2 preceding siblings ...)
  2022-10-13 19:02 ` pinskia at gcc dot gnu.org
@ 2022-10-14  6:34 ` rguenth at gcc dot gnu.org
  2022-10-14  7:50 ` [Bug tree-optimization/107254] [11/12/13 " rguenth at gcc dot gnu.org
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-10-14  6:34 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |needs-bisection

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #1)
> Fixed with r12-2051-g7d810646d421f697 and started with
> r11-2453-gc89366b12ff4f362.
> 
> @Richi: Can you please take a look?

Can you bisect with -fno-vect-cost-model?  The r11-2453-gc89366b12ff4f362 just
affects cost modeling.

And yes, the "fix" eventually just hides a SLP pattern bug.

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

* [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (GCC 11 only, Fortran)
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (3 preceding siblings ...)
  2022-10-14  6:34 ` rguenth at gcc dot gnu.org
@ 2022-10-14  7:50 ` rguenth at gcc dot gnu.org
  2022-10-14  8:31 ` [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) marxin at gcc dot gnu.org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-10-14  7:50 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[11 Regression] Wrong       |[11/12/13 Regression] Wrong
                   |vectorizer code (GCC 11     |vectorizer code (GCC 11
                   |only, Fortran)              |only, Fortran)
           Priority|P3                          |P2
      Known to work|12.1.0                      |

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Btw, the testcase still fails with -O2 -ftree-vectorize -mavx2 -mno-fma
-fno-vect-cost-model on the GCC 12 branch and trunk but works with these flags
on the GCC 10 branch.

Interestingly it doesn't fail with -mprefer-vector-width=128 (which doesn't
require versioning for aliasing).

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

* [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran)
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (4 preceding siblings ...)
  2022-10-14  7:50 ` [Bug tree-optimization/107254] [11/12/13 " rguenth at gcc dot gnu.org
@ 2022-10-14  8:31 ` marxin at gcc dot gnu.org
  2022-10-14  8:52 ` [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d rguenth at gcc dot gnu.org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: marxin at gcc dot gnu.org @ 2022-10-14  8:31 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #3)
> (In reply to Martin Liška from comment #1)
> > Fixed with r12-2051-g7d810646d421f697 and started with
> > r11-2453-gc89366b12ff4f362.
> > 
> > @Richi: Can you please take a look?
> 
> Can you bisect with -fno-vect-cost-model?  The r11-2453-gc89366b12ff4f362
> just
> affects cost modeling.

Sure, it started with r11-1501-gda2b7c7f0a136b4d.

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

* [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (5 preceding siblings ...)
  2022-10-14  8:31 ` [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) marxin at gcc dot gnu.org
@ 2022-10-14  8:52 ` rguenth at gcc dot gnu.org
  2022-10-14  8:52 ` rguenth at gcc dot gnu.org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-10-14  8:52 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
So I think the issue is that we have a live operation:

  <bb 3> [local count: 955630225]:
  # jc_42 = PHI <jc_36(7), 1(6)>
  _2 = (integer(kind=8)) jc_42;
  _3 = _2 * stride.1_23;
  _4 = _3 + offset.2_24;
  _5 = _4 + 1;
  _6 = (*h_28(D))[_5];
  _7 = _6 * 9.0000000000000002220446049250313080847263336181640625e-1;
  _8 = _4 + 2;
  _9 = (*h_28(D))[_8];
  temp_29 = _7 + _9;
  _10 = _9 * 9.0000000000000002220446049250313080847263336181640625e-1;
  _11 = _10 - _6;
  (*h_28(D))[_8] = _11;
  (*h_28(D))[_5] = temp_29;
  _12 = (*t_32(D))[_5];
  _13 = _12 * 9.0000000000000002220446049250313080847263336181640625e-1;
  _14 = (*t_32(D))[_8];
  _15 = _13 + _14;
  _16 = _14 * 9.0000000000000002220446049250313080847263336181640625e-1;
  _17 = _16 - _12;
  (*t_32(D))[_8] = _17;
  (*t_32(D))[_5] = _15;
  jc_36 = jc_42 + 1;
  if (_1 < jc_36)
    goto <bb 4>; [11.00%]
  else
    goto <bb 7>; [89.00%]

  <bb 7> [local count: 850510901]:
  goto <bb 3>; [100.00%]

  <bb 4> [local count: 105119324]:
  # _72 = PHI <_15(3)>
  # _71 = PHI <_17(3)>
^^^

that we fail to vectorize which keeps the _12 and _14 loads live but
those are from the wrong iteration.  The out-of loop stores are
caused by invariant motion of 'temp2' (it's memory because it's passed
to dlartg) and which we apperantly cannot disambiguate against the
stores to t so we re-materialize them on the loop exit.

The vectorizer sees

t.f90:27:9: note:   init: stmt relevant? _15 = _13 + _14;
t.f90:27:9: note:   vec_stmt_relevant_p: used out of loop.
t.f90:27:9: note:   vect_is_simple_use: operand _12 *
9.0000000000000002220446049250313080847263336181640625e-1, type of def:
internal
t.f90:27:9: note:   vec_stmt_relevant_p: stmt live but not relevant.
t.f90:27:9: note:   mark relevant 1, live 1: _15 = _13 + _14;

and later

t.f90:27:9: note:   op: VEC_PERM_EXPR
t.f90:27:9: note:       stmt 0 _15 = _13 + _14;
t.f90:27:9: note:       stmt 1 _17 = _16 - _12;
t.f90:27:9: note:       lane permutation { 0[0] 1[1] }
t.f90:27:9: note:       children 0x3358e90 0x3358f18
t.f90:27:9: note:   node 0x3358e90 (max_nunits=1, refcnt=1) vector(4)
real(kind=8)
t.f90:27:9: note:   op template: _15 = _13 + _14;
t.f90:27:9: note:       { }
t.f90:27:9: note:       children 0x3358c70 0x3358e08
...
t.f90:27:9: note:   node 0x3358f18 (max_nunits=1, refcnt=1) vector(4)
real(kind=8)
t.f90:27:9: note:   op template: _17 = _16 - _12;
t.f90:27:9: note:       { }
t.f90:27:9: note:       children 0x3358c70 0x3358e08

investigating further.

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

* [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (6 preceding siblings ...)
  2022-10-14  8:52 ` [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d rguenth at gcc dot gnu.org
@ 2022-10-14  8:52 ` rguenth at gcc dot gnu.org
  2022-10-14  9:19 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-10-14  8:52 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

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

* [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (7 preceding siblings ...)
  2022-10-14  8:52 ` rguenth at gcc dot gnu.org
@ 2022-10-14  9:19 ` rguenth at gcc dot gnu.org
  2022-10-14 10:00 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-10-14  9:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
I have a patch in testing.

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

* [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (8 preceding siblings ...)
  2022-10-14  9:19 ` rguenth at gcc dot gnu.org
@ 2022-10-14 10:00 ` cvs-commit at gcc dot gnu.org
  2022-10-14 10:01 ` [Bug tree-optimization/107254] [11/12 " rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-10-14 10:00 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 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:9ed4a849afb5b18b462bea311e7eee454c2c9f68

commit r13-3297-g9ed4a849afb5b18b462bea311e7eee454c2c9f68
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Oct 14 11:14:59 2022 +0200

    tree-optimization/107254 - check and support live lanes from permutes

    The following fixes an omission from adding SLP permute nodes which
    is live lanes originating from those.  We have to check that we
    can extract the lane and have to actually code generate them.

            PR tree-optimization/107254
            * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
            For permutes also analyze live lanes.
            (vect_schedule_slp_node): For permutes also code generate
            live lane extracts.

            * gfortran.dg/vect/pr107254.f90: New testcase.

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

* [Bug tree-optimization/107254] [11/12 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (9 preceding siblings ...)
  2022-10-14 10:00 ` cvs-commit at gcc dot gnu.org
@ 2022-10-14 10:01 ` rguenth at gcc dot gnu.org
  2022-10-17 12:23 ` bartoldeman at users dot sourceforge.net
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-10-14 10:01 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[11/12/13 Regression] Wrong |[11/12 Regression] Wrong
                   |vectorizer code (Fortran)   |vectorizer code (Fortran)
                   |since                       |since
                   |r11-1501-gda2b7c7f0a136b4d  |r11-1501-gda2b7c7f0a136b4d
      Known to work|                            |13.0

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed on trunk sofar.

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

* [Bug tree-optimization/107254] [11/12 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (10 preceding siblings ...)
  2022-10-14 10:01 ` [Bug tree-optimization/107254] [11/12 " rguenth at gcc dot gnu.org
@ 2022-10-17 12:23 ` bartoldeman at users dot sourceforge.net
  2022-10-17 13:11 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: bartoldeman at users dot sourceforge.net @ 2022-10-17 12:23 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from bartoldeman at users dot sourceforge.net ---
Thanks for the fix! I can confirm that, when applied to 11.3 (with files
renamed from .cc to .c), it fixes the issue, and with it, thousands of test
failures in the reference LAPACK test suite.

My findings for LAPACK are in this issue here:
https://github.com/Reference-LAPACK/lapack/issues/732

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

* [Bug tree-optimization/107254] [11/12 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (11 preceding siblings ...)
  2022-10-17 12:23 ` bartoldeman at users dot sourceforge.net
@ 2022-10-17 13:11 ` cvs-commit at gcc dot gnu.org
  2023-01-24 15:22 ` [Bug tree-optimization/107254] [11 " cvs-commit at gcc dot gnu.org
  2023-01-24 15:23 ` rguenth at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-10-17 13:11 UTC (permalink / raw)
  To: gcc-bugs

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

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

https://gcc.gnu.org/g:fe7d74313736b8e1c30812bc49419f419bdf1c53

commit r12-8841-gfe7d74313736b8e1c30812bc49419f419bdf1c53
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Oct 14 11:14:59 2022 +0200

    tree-optimization/107254 - check and support live lanes from permutes

    The following fixes an omission from adding SLP permute nodes which
    is live lanes originating from those.  We have to check that we
    can extract the lane and have to actually code generate them.

            PR tree-optimization/107254
            * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
            For permutes also analyze live lanes.
            (vect_schedule_slp_node): For permutes also code generate
            live lane extracts.

            * gfortran.dg/vect/pr107254.f90: New testcase.

    (cherry picked from commit 9ed4a849afb5b18b462bea311e7eee454c2c9f68)

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

* [Bug tree-optimization/107254] [11 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (12 preceding siblings ...)
  2022-10-17 13:11 ` cvs-commit at gcc dot gnu.org
@ 2023-01-24 15:22 ` cvs-commit at gcc dot gnu.org
  2023-01-24 15:23 ` rguenth at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-01-24 15:22 UTC (permalink / raw)
  To: gcc-bugs

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

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

https://gcc.gnu.org/g:fb335c938bbd54e83af2d281f0ccf79df1c342b3

commit r11-10481-gfb335c938bbd54e83af2d281f0ccf79df1c342b3
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Oct 14 11:14:59 2022 +0200

    tree-optimization/107254 - check and support live lanes from permutes

    The following fixes an omission from adding SLP permute nodes which
    is live lanes originating from those.  We have to check that we
    can extract the lane and have to actually code generate them.

            PR tree-optimization/107254
            * tree-vect-slp.c (vect_slp_analyze_node_operations_1):
            For permutes also analyze live lanes.
            (vect_schedule_slp_node): For permutes also code generate
            live lane extracts.

            * gfortran.dg/vect/pr107254.f90: New testcase.

    (cherry picked from commit 9ed4a849afb5b18b462bea311e7eee454c2c9f68)

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

* [Bug tree-optimization/107254] [11 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d
  2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
                   ` (13 preceding siblings ...)
  2023-01-24 15:22 ` [Bug tree-optimization/107254] [11 " cvs-commit at gcc dot gnu.org
@ 2023-01-24 15:23 ` rguenth at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-01-24 15:23 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
      Known to work|                            |11.3.1
             Status|ASSIGNED                    |RESOLVED

--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.

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

end of thread, other threads:[~2023-01-24 15:23 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-13 16:28 [Bug tree-optimization/107254] New: Wrong vectorizer code (GCC 11 only, Fortran) bartoldeman at users dot sourceforge.net
2022-10-13 16:31 ` [Bug tree-optimization/107254] [11 Regression] " pinskia at gcc dot gnu.org
2022-10-13 18:56 ` marxin at gcc dot gnu.org
2022-10-13 19:02 ` pinskia at gcc dot gnu.org
2022-10-14  6:34 ` rguenth at gcc dot gnu.org
2022-10-14  7:50 ` [Bug tree-optimization/107254] [11/12/13 " rguenth at gcc dot gnu.org
2022-10-14  8:31 ` [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) marxin at gcc dot gnu.org
2022-10-14  8:52 ` [Bug tree-optimization/107254] [11/12/13 Regression] Wrong vectorizer code (Fortran) since r11-1501-gda2b7c7f0a136b4d rguenth at gcc dot gnu.org
2022-10-14  8:52 ` rguenth at gcc dot gnu.org
2022-10-14  9:19 ` rguenth at gcc dot gnu.org
2022-10-14 10:00 ` cvs-commit at gcc dot gnu.org
2022-10-14 10:01 ` [Bug tree-optimization/107254] [11/12 " rguenth at gcc dot gnu.org
2022-10-17 12:23 ` bartoldeman at users dot sourceforge.net
2022-10-17 13:11 ` cvs-commit at gcc dot gnu.org
2023-01-24 15:22 ` [Bug tree-optimization/107254] [11 " cvs-commit at gcc dot gnu.org
2023-01-24 15:23 ` 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).