SIMD benchmark

Peter Alexander peter.alexander.au at gmail.com
Mon Jan 16 13:57:07 PST 2012


On 16/01/12 8:56 PM, Iain Buclaw wrote:
> On 16 January 2012 19:25, Walter Bright<newshound2 at digitalmars.com>  wrote:
>> On 1/16/2012 11:16 AM, Iain Buclaw wrote:
>>>>
>>>> But don't worry, I'm not planning on working on that at the moment :-)
>>>
>>> Leave that sort of optimisation for the backend to handle please. ;-)
>>
>>
>> Of course.
>>
>> I suspect Intel's compiler does that one, does gcc?
>>
>
> There's auto-vectorisation for for(), foreach(), and foreach_reverse()
> loops that I have written support for.  I am not aware of GCC
> vectorising anything else.
>
> example:
>
> int a[256], b[256], c[256];
> void foo () {
>    for (int i=0; i<256; i++)
>      a[i] = b[i] + c[i];
> }
>

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.


More information about the Digitalmars-d mailing list