On 17 January 2012 00:03, Walter Bright <newshou...@digitalmars.com> wrote:
> 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. > Surely it would be possible for them to be overlapping slices?