Don't zero high 24 bit of %mxcsr by emitting 32 bit load instead of 8 bit one.

llvm-svn: 42618
diff --git a/llvm-gcc-4.0/gcc/config/i386/llvm-i386.cpp b/llvm-gcc-4.0/gcc/config/i386/llvm-i386.cpp
index 57e2b31..94e90c3 100644
--- a/llvm-gcc-4.0/gcc/config/i386/llvm-i386.cpp
+++ b/llvm-gcc-4.0/gcc/config/i386/llvm-i386.cpp
@@ -610,9 +610,11 @@
   case IX86_BUILTIN_STMXCSR: {
     Function *stmxcsr =
       Intrinsic::getDeclaration(TheModule, Intrinsic::x86_sse_stmxcsr);
-    Value *Ptr = CreateTemporary(Type::Int32Ty);
-    Ptr = Builder.CreateBitCast(Ptr, PointerType::get(Type::Int8Ty), "tmp");
-    Builder.CreateCall(stmxcsr, Ptr);
+    Value *Ptr  = CreateTemporary(Type::Int32Ty);
+    Value *BPtr = Builder.CreateBitCast(Ptr, PointerType::get(Type::Int8Ty),
+                                        "tmp");
+    Builder.CreateCall(stmxcsr, BPtr);
+    
     Result = Builder.CreateLoad(Ptr, "tmp");
     return true;
   }