[fpc-devel] SSE in FPC
    Dariusz Mazur 
    darekm at emadar.com
       
    Sat Nov 29 18:15:18 CET 2008
    
    
  
Florian Klaempfl pisze:
> Jonas Maebe schrieb:
>   
>> On 29 Nov 2008, at 11:11, Felipe Monteiro de Carvalho wrote:
>>
>>     
>>> You can tell FPC to do the SSE code for you:
>>>
>>>     -Cf<x>     Select fpu instruction set to use, see fpc -i for
>>> possible values
>>>       
>> That only applies to (scalar) FPU operations at this time. It won't do
>> any (auto or other) vectorisation.
>>     
>
> With -Sv -Cfsse2 you can compile things like
>   
I know this, but its hard to discover where and when is is used. Often 
is good, when compiler  make optimization itself, but some times is 
better tell them about possible vectorization.
> function f : double;
>   var
>     d1,d2,d3 : array[0..1] of double;
> begin
>   
>     d1:=d2*d3;
>   end;
>   
I would expect some thing like this
  type
     tSSEvector= packed record of
               a,b : double;
    end;
{ or }
     tSSEvector= array[0..1] of double;
function f : double;
  var
    d1,d2,d3 : tSSEVector;
begin
d1:=d2*d3;
 end;
Of course tSSEVector should be declared in System unit.
Then  any one can use SSE intentionally.
> However, it's not well tested.
>   
Is there a list of  SSE function, which can FPC use?
Darek
    
    
More information about the fpc-devel
mailing list