On 2/11/2011 7:30 AM, Bingfeng Mei wrote:
Thanks. Another question. Is there any plan to vectorize
the loops like the following ones?

     for (i=127; i>=0; i--) {
        x[i] = y[i] + z[i];
     }


When I last tried, the Sun compilers could vectorize such loops efficiently (for fairly short loops), with appropriate data definitions. The Sun compilers didn't peel for alignment, to improve performance on longer loops, as gcc and others do. For a case with no data overlaps (float * __restrict__ x, ....,y,z, or Fortran), loop reversal can do the job. gcc has some loop reversal machinery, but I haven't seen it used for vectorization. In a simple case like this, some might argue there's no reason to write a backward loop when it could easily be reversed in source code, and compilers have been seen to make mistakes in reversal.

--
Tim Prince

Reply via email to