Abt SIMD Emulation

Paolo Bonzini paolo.bonzini@lu.unisi.ch
Fri Oct 13 16:21:00 GMT 2006


>> For targets which doesn't have simd hardware support like fr30 ,  simd stuff is emulated?
>> Is there some flags/macros in gcc to indicate that?
> 
> To indicate what?

I guess to indicate that the vector is emulated.  The TYPE_MODE of the 
vector type, in that case, is BLKmode or an integer mode.

>> How is it done in other targets which deosnt have the hardware support?
> 
> In the obvious tedious way: as a loop over the elements.

With the additional optimization that & | ^ ~ can be done word-by-word, 
+ - can use bit-twiddling if there are at least 4 elements by word 
(otherwise it is not profitable), and that smaller SIMD instructions 
(e.g. 2 8-byte SIMD instructions to emulate a 16-byte vector) may be 
used if supported.

See tree-ssa-vect-generic.c for the gory details.

Paolo



More information about the Gcc mailing list