This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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] | |
L.S.,
This code:
SUBROUTINE S(A, B, N) DIMENSION A(N), B(N) READ*,Z,B DO I = 1, N A(I) = Z * B(I) ENDDO PRINT*,A END
when compiled thusly:
The problem here is not really related to the vectorizer but the tree aliasing code. The loop looks like this at -O2 in the tree dumps: # z_49 = PHI <z_86(1), z_124(3)>; # i_1 = PHI <1(1), i_48(3)>; <L8>:; D.982_41 = i_1 + -1; # VUSE <z_49>; D.983_43 = (*b_20)[D.982_41]; # VUSE <z_49>; z.4_45 = z; D.985_46 = D.983_43 * z.4_45; # z_124 = V_MAY_DEF <z_49>; (*a_36)[D.982_41] = D.985_46; i_48 = i_1 + 1; if (i_1 == D.972_25) goto <L4>; else goto <L13>;
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |