On 1/16/2012 1:54 PM, Manu wrote:
Unfortunately, if the function was this:void foo(int[] a, int[] b, int[] c) { for (int i=0; i<256; i++) a[i] = b[i] + c[i]; } Then it can't vectorize due to aliasing. This is why D needs a __restrict attribute! ;)
That's why D has: a[] = b[] + c[]; because the language requires the arrays to be distinct.