Fix nasty mingw32 bug, which e.g. prevented llvm-gcc bootstrap there.
[oota-llvm.git] / lib / Target / X86 / X86ISelLowering.cpp
index 9d792bca834cc6ccb716de51162898d3593f8aab..dc1bab32f25d2903a75768335d0c0cd52e4856af 100644 (file)
@@ -4887,7 +4887,7 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
         return getTargetShuffleNode(X86ISD::MOVLHPS, dl, VT, V1, V1, DAG);
 
     if (OptForSize && HasSSE2 && X86::isUNPCKL_v_undef_Mask(SVOp) &&
-        VT == MVT::v4i32)
+        (VT == MVT::v4i32 || VT == MVT::v4f32))
       return getTargetShuffleNode(X86ISD::PUNPCKLDQ, dl, VT, V1, V1, DAG);
 
     unsigned TargetMask = X86::getShuffleSHUFImmediate(SVOp);
@@ -8930,7 +8930,8 @@ X86TargetLowering::EmitLoweredMingwAlloca(MachineInstr *MI,
     .addReg(X86::EAX, RegState::Implicit)
     .addReg(X86::ESP, RegState::Implicit)
     .addReg(X86::EAX, RegState::Define | RegState::Implicit)
-    .addReg(X86::ESP, RegState::Define | RegState::Implicit);
+    .addReg(X86::ESP, RegState::Define | RegState::Implicit)
+    .addReg(X86::EFLAGS, RegState::Define | RegState::Implicit);
 
   MI->eraseFromParent();   // The pseudo instruction is gone now.
   return BB;