disable fill_n optimization for msvc
diff --git a/Eigen/src/Core/AssignEvaluator.h b/Eigen/src/Core/AssignEvaluator.h
index f7f0b23..f40b2f4 100644
--- a/Eigen/src/Core/AssignEvaluator.h
+++ b/Eigen/src/Core/AssignEvaluator.h
@@ -738,6 +738,7 @@
 }
 
 // Specialization for filling the destination with a constant value.
+#if !EIGEN_COMP_MSVC
 #ifndef EIGEN_GPU_COMPILE_PHASE
 template <typename DstXprType>
 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_dense_assignment_loop(
@@ -748,6 +749,7 @@
   std::fill_n(dst.data(), dst.size(), src.functor()());
 }
 #endif
+#endif
 
 template <typename DstXprType, typename SrcXprType>
 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_dense_assignment_loop(DstXprType& dst, const SrcXprType& src) {