
Untitled
By: a guest on
May 7th, 2012 | syntax:
None | size: 1.91 KB | hits: 12 | expires: Never
## Intrinsics Multiply
template<>
__forceinline void MultiplyInstance(const Vector4<float>& other) {
_mm_store_ps(this->Elements, _mm_mul_ps(_mm_load_ps(this->Elements), _mm_load_ps(other.Elements)));
}
## Regular Multiply
template <typename T>
__forceinline void MultiplyInstance(const Vector4<T>& other) {
this->X *= other.X;
this->Y *= other.Y;
this->Z *= other.Z;
this->W *= other.W;
}
## Win32 Release ASM
00B11F94 fld dword ptr [esp+10h]
00B11F98 inc ecx
00B11F99 fmul st,st(2)
00B11F9B mov dword ptr [esp+8],ecx
00B11F9F fstp dword ptr [esp+10h]
00B11FA3 fld dword ptr [esp+14h]
00B11FA7 fmul st,st(2)
00B11FA9 fstp dword ptr [esp+14h]
00B11FAD fld dword ptr [esp+18h]
00B11FB1 fmul st,st(2)
00B11FB3 fstp dword ptr [esp+18h]
00B11FB7 fld dword ptr [esp+1Ch]
00B11FBB fmul st,st(2)
00B11FBD fstp dword ptr [esp+1Ch]
00B11FC1 fild dword ptr [esp+8]
00B11FC5 fcomp st(1)
00B11FC7 fnstsw ax
00B11FC9 test ah,5
## Win32 Release With Intrinsics ASM
00261FD5 mulps xmm0,xmm1
## x64 Release ASM
000000013F6423F7 mulss xmm8,xmm6
000000013F6423FC mulss xmm7,xmm6
000000013F642400 movd xmm0,r11d
000000013F642405 mulss xmm9,xmm6
000000013F64240A mulss xmm10,xmm6
000000013F64240F cvtdq2pd xmm0,xmm0
000000013F642413 comisd xmm11,xmm0
## x64 Release With Intrinsics ASM
000000013FD22406 movaps xmm2,xmmword ptr [rbp+7]
000000013FD2240A movaps xmm1,xmmword ptr [rbp-9]
000000013FD2240E xchg ax,ax
000000013FD22410 inc r11d
000000013FD22413 mulps xmm1,xmm2
000000013FD22416 movd xmm0,r11d
000000013FD2241B cvtdq2pd xmm0,xmm0
000000013FD2241F comisd xmm7,xmm0