]> granicus.if.org Git - llvm/commitdiff
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213878 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 06a61cbba642282e6f690107ddaa752bb5e310cc..6a01044a996e782cb508748bc8f052ccc8add936 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 =