Great, now that gcc has become more aggressive with vectorization, for example.
extern "C" __attribute__((optimize("no-tree-vectorize"))) int s111_ (integer * ntimes, integer * ld, integer * n, real * ctime, real * dtime, real * __restrict a, real * b, real * c__, real * d__, real * e, real * aa, real * bb, real * cc) { .... for (i__ = 2; i__ <= i__2; i__ += 2) a[i__] = a[i__ - 1] + b[i__]; ....
In the above case, the removal of restrict
used to complete the task, but now g ++ 6.0 cannot be stopped from vectorization by removing __restrict
.
tim18 source share