Speed kills

Basile B. via Digitalmars-d digitalmars-d at puremagic.com
Wed Feb 17 11:01:38 PST 2016


On Wednesday, 17 February 2016 at 18:50:45 UTC, Jack Stouffer 
wrote:
> On Wednesday, 17 February 2016 at 18:26:47 UTC, Basile B. wrote:
>> Anyway, not good for phobos, why? When looking for 
>> documentation yesterday night I've landed on a post by Walter 
>> who explained that the library for a system programming 
>> language shouldn't be specific to an architecture.
>
> While I don't know about the post you're talking about, I don't 
> think what Walter says applies to internal version blocks in a 
> function. You could make it so on AMD lround and friends are 
> much faster by using those ASM routines. Also, std.math is 
> already chock full of architecture specific code.

That's more subtile than that.

The oldest 64 bit processor (AMD64) supports SSE, always. So when 
we do "cast(int) 0.1;" on X86_64, the backend always generate SSE 
instructions.

The oldest 32 bit processor (X86) doesn't support SSE, maybe MMX 
(not sure). So when we do "cast(int) 0.1;" on X86, the backend 
always generate FPU instructions.

This is how I understand the post 'I've landed onto'.
My current works always use SSE so it's not conform with the "at 
least available" feature.


More information about the Digitalmars-d mailing list