Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Splat x, y, z and w
- Vector vX = Permute<0, 0, 0, 0>(vector);
- Vector vY = Permute<1, 1, 1, 1>(vector);
- Vector vZ = Permute<2, 2, 2, 2>(vector);
- Vector vW = Permute<3, 3, 3, 3>(vector);
- // Mul by the matrix
- vX = _mm_mul_ps(vX, matrix[0]);
- vY = _mm_mul_ps(vY, matrix[1]);
- vZ = _mm_mul_ps(vZ, matrix[2]);
- vW = _mm_mul_ps(vW, matrix[3]);
- // Add them all together
- vX = _mm_add_ps(vX, vY);
- vZ = _mm_add_ps(vZ, vW);
- vX = _mm_add_ps(vX, vZ);
- return vX;
- // COMPILES INTO //
- shufps xmm2,xmm4,0FFh
- mulps xmm2,xmmword ptr [rbp+90h]
- shufps xmm0,xmm4,0AAh
- shufps xmm1,xmm4,55h
- mulps xmm0,xmmword ptr [rbp+80h]
- mulps xmm1,xmmword ptr [rbp+70h]
- shufps xmm3,xmm3,0
- addps xmm2,xmm0
- mulps xmm3,xmmword ptr [rbp+60h]
- addps xmm1,xmm3
- addps xmm2,xmm1
- movaps xmmword ptr [rbp-70h],xmm2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement