From 45c60ceac3d5a401543d7d56a44d1f9227464431 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Samuel=20R=C3=B8dal?= <samuel.rodal@nokia.com>
Date: Fri, 15 Apr 2011 09:12:07 +0200
Subject: Another attempt at fixing the MSVC2005 build.

Apparently direct casting is illegal there too, even though they don't
have the cast operators.

Reviewed-by: Kim
---
 src/gui/painting/qdrawhelper_sse2.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/gui/painting/qdrawhelper_sse2.cpp b/src/gui/painting/qdrawhelper_sse2.cpp
index affc6cc..be6dc91 100644
--- a/src/gui/painting/qdrawhelper_sse2.cpp
+++ b/src/gui/painting/qdrawhelper_sse2.cpp
@@ -525,7 +525,12 @@ public:
 
     // pre-VS 2008 doesn't have cast intrinsics, whereas 2008 and later requires it
 #if defined(Q_CC_MSVC) && _MSC_VER < 1500
-    static inline Int32x4 v_greaterOrEqual(Float32x4 a, Float32x4 b) { return (__m128i)_mm_cmpgt_ps(a, b); }
+    static inline Int32x4 v_greaterOrEqual(Float32x4 a, Float32x4 b)
+    {
+        union Convert { Int32x4 vi; Float32x4 vf; } convert;
+        convert.vf = _mm_cmpgt_ps(a, b);
+        return convert.vi;
+    }
 #else
     static inline Int32x4 v_greaterOrEqual(Float32x4 a, Float32x4 b) { return _mm_castps_si128(_mm_cmpgt_ps(a, b)); }
 #endif
-- 
cgit v0.12