X86: silence sign comparison warning
authorSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 24 Jul 2014 17:12:06 +0000 (17:12 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 24 Jul 2014 17:12:06 +0000 (17:12 +0000)
GCC 4.8 detected a signed compare [-Wsign-compare].  Add a cast for the
destination index.  Add an assert to catch a potential overflow however unlikely
it may be.

llvm-svn: 213878

llvm/lib/Target/X86/X86ISelLowering.cpp

index 06a61cb..6a01044 100644 (file)
@@ -9069,7 +9069,9 @@ static SDValue getINSERTPS(ShuffleVectorSDNode *SVOp, SDLoc &dl,
     // should assume we're changing V2's element's place and behave
     // accordingly.
     int FromV2 = std::count_if(Mask.begin(), Mask.end(), FromV2Predicate);
-    if (FromV1 == FromV2 && DestIndex == Mask[DestIndex] % 4) {
+    assert(DestIndex <= INT32_MAX && "truncated destination index");
+    if (FromV1 == FromV2 &&
+        static_cast<int>(DestIndex) == Mask[DestIndex] % 4) {
       From = V2;
       To = V1;
       DestIndex =