Palito | Salut, Je me joint a la reflexion ...
J'ai trouvédu code sse qui fait (bien ?) le travail.
Code :
- movaps xmm2, xmm0
- mulps xmm0, xmm0
- movaps xmm1, xmm0
- shufps xmm0, xmm1, 0x4e
- addps xmm0, xmm1
- movaps xmm1, xmm0
- shufps xmm1, xmm1, 0x11
- addps xmm0, xmm1
- rsqrtps xmm0, xmm0
- mulps xmm2, xmm0
|
Le probleme c'est qu'il faut de je donne a manger a xmm0.
Comme 'st une fonction de la classe, j'ai codé ca:
Code :
- inline void float4::NormalizeSSE()
- {
- cVector *p=this;
- __asm {
- movups xmm0, [p]
- movaps xmm2, xmm0
- mulps xmm0, xmm0
- movaps xmm1, xmm0
- shufps xmm0, xmm1, 0x4e
- addps xmm0, xmm1
- movaps xmm1, xmm0
- shufps xmm1, xmm1, 0x11
- addps xmm0, xmm1
- rsqrtps xmm0, xmm0
- mulps xmm2, xmm0
- movups [p], xmm2
- }
- }
|
Cependant je me doute bien qe c'est pas optimal mais je ne sais pas comme mette this dans xmm0 ...
Et c'est super long aussi
Allez, Salut tous Message édité par Palito le 12-06-2006 à 10:44:16
|