On 17 January 2012 00:03, Walter Bright <newshound2@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?