J'écris une fonction de transposition pour des vecteurs 8x16 bits avec des intrinsèques SSE2. Comme il y a 8 arguments pour cette fonction (une matrice de taille 8x8x16bit), je ne peux rien faire d'autre que de les passer par référence. Est-ce que cela sera optimisé par le compilateur (je veux dire, ces objets __m128i seront-ils passés dans les registres au lieu de pile)?est-ce que le fait de passer des objets __m128i en référence à la fonction inline provoque le déplacement de ces objets vers la pile?
Extrait de code:
inline void transpose (__m128i &a0, __m128i &a1, __m128i &a2, __m128i &a3,
__m128i &a4, __m128i &a5, __m128i &a6, __m128i &a7) {
....
}
Je n'utilise pas MSVC –
@ ~ buratinas: OK, tout devrait bien se passer tant que vous utilisez un compilateur décent, c'est-à-dire gcc ou l'ICC d'Intel. –