diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp
index ebacc425df0..d7e63e39ec7 100644
--- a/lib/Target/X86/X86ISelLowering.cpp
+++ b/lib/Target/X86/X86ISelLowering.cpp
@@ -18046,7 +18046,7 @@ static SDValue PerformShuffleCombine(SDNode *N, SelectionDAG &DAG,
     bool CanFold = true;
 
     for (unsigned i = 0, e = NumElts; i != e && CanFold; ++i)
-      CanFold = Mask[i] == (i & 1) ? i + NumElts : i;
+      CanFold = Mask[i] == (int)((i & 1) ? i + NumElts : i);
 
     if (CanFold) {
       SDValue Op0 = N1->getOperand(0);