@@ -298,7 +298,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixMultiply
298298#elif defined(_XM_SSE_INTRINSICS_)
299299 XMMATRIX mResult ;
300300 // Splat the component X,Y,Z then W
301- #if defined(_XM_AVX_INTRINSICS_)
301+ #if defined(_XM_AVX_INTRINSICS_) && (!defined(_MSC_VER) || (_MSC_VER >= 1800))
302302 XMVECTOR vX = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [0 ]) + 0 );
303303 XMVECTOR vY = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [0 ]) + 1 );
304304 XMVECTOR vZ = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [0 ]) + 2 );
@@ -322,7 +322,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixMultiply
322322 vX = _mm_add_ps (vX,vY);
323323 mResult .r [0 ] = vX;
324324 // Repeat for the other 3 rows
325- #if defined(_XM_AVX_INTRINSICS_)
325+ #if defined(_XM_AVX_INTRINSICS_) && (!defined(_MSC_VER) || (_MSC_VER >= 1800))
326326 vX = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [1 ]) + 0 );
327327 vY = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [1 ]) + 1 );
328328 vZ = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [1 ]) + 2 );
@@ -342,7 +342,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixMultiply
342342 vY = _mm_add_ps (vY,vW);
343343 vX = _mm_add_ps (vX,vY);
344344 mResult .r [1 ] = vX;
345- #if defined(_XM_AVX_INTRINSICS_)
345+ #if defined(_XM_AVX_INTRINSICS_) && (!defined(_MSC_VER) || (_MSC_VER >= 1800))
346346 vX = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [2 ]) + 0 );
347347 vY = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [2 ]) + 1 );
348348 vZ = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [2 ]) + 2 );
@@ -362,7 +362,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixMultiply
362362 vY = _mm_add_ps (vY,vW);
363363 vX = _mm_add_ps (vX,vY);
364364 mResult .r [2 ] = vX;
365- #if defined(_XM_AVX_INTRINSICS_)
365+ #if defined(_XM_AVX_INTRINSICS_) && (!defined(_MSC_VER) || (_MSC_VER >= 1800))
366366 vX = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [3 ]) + 0 );
367367 vY = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [3 ]) + 1 );
368368 vZ = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [3 ]) + 2 );
@@ -479,7 +479,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixMultiplyTranspose
479479 return mResult ;
480480#elif defined(_XM_SSE_INTRINSICS_)
481481 // Splat the component X,Y,Z then W
482- #if defined(_XM_AVX_INTRINSICS_)
482+ #if defined(_XM_AVX_INTRINSICS_) && (!defined(_MSC_VER) || (_MSC_VER >= 1800))
483483 XMVECTOR vX = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [0 ]) + 0 );
484484 XMVECTOR vY = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [0 ]) + 1 );
485485 XMVECTOR vZ = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [0 ]) + 2 );
@@ -503,7 +503,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixMultiplyTranspose
503503 vX = _mm_add_ps (vX,vY);
504504 XMVECTOR r0 = vX;
505505 // Repeat for the other 3 rows
506- #if defined(_XM_AVX_INTRINSICS_)
506+ #if defined(_XM_AVX_INTRINSICS_) && (!defined(_MSC_VER) || (_MSC_VER >= 1800))
507507 vX = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [1 ]) + 0 );
508508 vY = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [1 ]) + 1 );
509509 vZ = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [1 ]) + 2 );
@@ -523,7 +523,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixMultiplyTranspose
523523 vY = _mm_add_ps (vY,vW);
524524 vX = _mm_add_ps (vX,vY);
525525 XMVECTOR r1 = vX;
526- #if defined(_XM_AVX_INTRINSICS_)
526+ #if defined(_XM_AVX_INTRINSICS_) && (!defined(_MSC_VER) || (_MSC_VER >= 1800))
527527 vX = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [2 ]) + 0 );
528528 vY = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [2 ]) + 1 );
529529 vZ = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [2 ]) + 2 );
@@ -543,7 +543,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixMultiplyTranspose
543543 vY = _mm_add_ps (vY,vW);
544544 vX = _mm_add_ps (vX,vY);
545545 XMVECTOR r2 = vX;
546- #if defined(_XM_AVX_INTRINSICS_)
546+ #if defined(_XM_AVX_INTRINSICS_) && (!defined(_MSC_VER) || (_MSC_VER >= 1800))
547547 vX = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [3 ]) + 0 );
548548 vY = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [3 ]) + 1 );
549549 vZ = _mm_broadcast_ss (reinterpret_cast <const float *>(&M1.r [3 ]) + 2 );
0 commit comments