Disable usage of MMX with msvc.
diff --git a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
index 18a25de..267c8d5 100644
--- a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+++ b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
@@ -529,15 +529,7 @@
 }
 
 
-#elif defined(EIGEN_VECTORIZE_SSE) && !EIGEN_ARCH_x86_64
-
-} // end namespace internal
-} // end namespace Eigen
-
-#include <mmintrin.h>
-
-namespace Eigen {
-namespace internal {
+#elif defined(EIGEN_VECTORIZE_SSE) && (!EIGEN_ARCH_x86_64) && (!EIGEN_COMP_MSVC)
 
 typedef struct {
   __m64 x;
diff --git a/Eigen/src/Core/arch/CUDA/TypeCasting.h b/Eigen/src/Core/arch/CUDA/TypeCasting.h
index a066758..6f1e5e6 100644
--- a/Eigen/src/Core/arch/CUDA/TypeCasting.h
+++ b/Eigen/src/Core/arch/CUDA/TypeCasting.h
@@ -128,12 +128,7 @@
   return float2half(a);
 }
 
-#elif defined(EIGEN_VECTORIZE_SSE) && !EIGEN_ARCH_x86_64
-
-} // end namespace internal
-} // end namespace Eigen
-
-#include <mmintrin.h>
+#elif defined(EIGEN_VECTORIZE_SSE) && (!EIGEN_ARCH_x86_64) && (!EIGEN_COMP_MSVC)
 
 namespace Eigen {
 namespace internal {