On Wed, Dec 7, 2011 at 11:31 AM, Benoit Jacob <
jacob.benoit.1@xxxxxxxxx> wrote:
> 2011/12/7 Rhys Ulerich <
rhys.ulerich@xxxxxxxxx>:
>>> W.r.t porting to AVX: Be aware that there might be some pitfalls with
>>> AVX-performance:
>>>
http://www.agner.org/optimize/blog/read.php?i=142
>>
>> Interesting tidbit from that link "If the programmer inadvertently
>> mixes AVX and non-AVX vector instructions in the same code then there
>> is a penalty of 70 clock cycles for each transition between the two
>> forms."
>
> Between this, and the fact that we can't 32-byte-align Vector4d
> without breaking the ABI, I'm starting to wonder if maybe we should
> treat AVX as a dynamic-size-only thing and completely give up on AVX
> for fixed-size objects? For dynamic-size objects, the situation is
> much simpler, we can increase the alignment without breaking the ABI
> and we can assume that objects are large so that AVX is always better
> than SSE.
That is a good idea. The fixed size objects would be very small