This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/32824] Missed reduction vectorizer after store to global is LIM'd



------- Comment #5 from dorit at gcc dot gnu dot org  2007-08-14 20:47 -------
Additional testcases:

(1) see  loop in lines 23 and 32 in 
http://gcc.gnu.org/ml/gcc-help/2007-08/msg00171.html

(2)
>       SUBROUTINE SUSCEP(L,Iz)
>       IMPLICIT NONE
>       INTEGER L , Iz(L,L) , iznum, ix, iy
>       iznum = 0
>       DO ix = 1 , L
>          DO iy = 1 , L
>             iznum = iznum + Iz(iy,ix)
>          ENDDO
>       ENDDO
>       PRINT* iznum
>       END subroutine
>       end
> 

The above is a slightly modified testcase taken from Polyhedron test suite
(ac.f90).
We get:
b.f90:6: note: Analyze phi: iznum_lsm.74_31 = PHI <iznum_lsm.74_32(4),
iznum_lsm.74_12(6)>
b.f90:6: note: reduction: not commutative/associative: iznum.10_37
tobias2b.f90:6: note: Unknown def-use cycle pattern.
...
b.f90:6: note: worklist: examine stmt: iznum.9_36 = iznum_lsm.74_31
b.f90:6: note: vect_is_simple_use: operand iznum_lsm.74_31
b.f90:6: note: def_stmt: iznum_lsm.74_31 = PHI <iznum_lsm.74_32(4),
iznum_lsm.74_12(6)>
b.f90:6: note: Unsupported pattern.
b.f90:6: note: not vectorized: unsupported use in stmt.
2b.f90:6: note: unexpected pattern.

This happens because we get the following pattern:
  # iznum_lsm.74_31 = PHI <iznum_lsm.74_32(4), iznum_lsm.74_12(6)>
  ...
  iznum.9_36 = iznum_lsm.74_31;
  iznum.10_37 = D.1420_35 + iznum.9_36;
  iznum_lsm.74_12 = iznum.10_37;
  ...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32824


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]