SIMD benchmark

Manu turkeyman at gmail.com
Mon Jan 16 13:54:47 PST 2012


On 16 January 2012 23:57, Peter Alexander <peter.alexander.au at gmail.com>wrote:

> On 16/01/12 8:56 PM, Iain Buclaw wrote:
>
>> On 16 January 2012 19:25, Walter Bright<newshound2 at digitalmars.**com<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.
>

This is why D needs a __restrict attribute! ;)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20120116/b021461d/attachment.html>


More information about the Digitalmars-d mailing list