On Mon, 16 Jan 2012 23:06:12 +0100, Manu <turkey...@gmail.com> wrote:

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?

If they are, that's your fault and your problem.

"The lvalue slice and any rvalue slices must not overlap."

Reply via email to