This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFA: Revamp fortran array types
Looking more carefully the induct test the critical loops at lines 1660,
1772, 2077, and 2220 are no longer vectorized with the patch. this explain
the factor almost two on a Core2Duo. Looking at some differences of the output
of -fdump-tree-vect-details, I see:
induct.f90:1660: note: Access function of PHI: {9, +, 4294967295}_3
induct.f90:1660: note: step: 4294967295, init: 9
induct.f90:1660: note: Detected induction.
induct.f90:1660: note: Analyze phi: l12_lower_10 = PHI <l12_lower_9(13), l12_lower_442(15)>
induct.f90:1660: note: detected reduction: l12_lower_442 = D.8621_441 + l12_lower_10;
without the patch and
induct.f90:1660: note: Access function of PHI: {9, +, 4294967295}_3
induct.f90:1660: note: step: 4294967295, init: 9
induct.f90:1660: note: Detected induction.
induct.f90:1660: note: Analyze phi: l12_lower_10 = PHI <l12_lower_9(13), l12_lower_442(15)>
induct.f90:1660: note: reduction: multiple types: operation type: real(kind=8), operands types: real(kind=8),real(kind=8)
induct.f90:1660: note: Unknown def-use cycle pattern.
with it. Is this enough to explain the missed vectorizations with
"not vectorized: unsupported use in stmt."?
It would also be nice to understand why the vectorization is not profitable
on an AMD Athlon64 X2 dual core 4800+ x86-64 (64bit) openSUSE to explain
why Tobias sees a speed-up.
Cheers
Dominique