[llvm-branch-commits] [llvm-branch] r115562 - /llvm/branches/ggreif/switch-opts/lib/Transforms/Scalar/CodeGenPrepare.cpp

Gabor Greif ggreif at gmail.com
Mon Oct 4 14:19:25 PDT 2010


Author: ggreif
Date: Mon Oct  4 16:19:25 2010
New Revision: 115562

URL: http://llvm.org/viewvc/llvm-project?rev=115562&view=rev
Log:
determine middle value

Modified:
    llvm/branches/ggreif/switch-opts/lib/Transforms/Scalar/CodeGenPrepare.cpp

Modified: llvm/branches/ggreif/switch-opts/lib/Transforms/Scalar/CodeGenPrepare.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/ggreif/switch-opts/lib/Transforms/Scalar/CodeGenPrepare.cpp?rev=115562&r1=115561&r2=115562&view=diff
==============================================================================
--- llvm/branches/ggreif/switch-opts/lib/Transforms/Scalar/CodeGenPrepare.cpp (original)
+++ llvm/branches/ggreif/switch-opts/lib/Transforms/Scalar/CodeGenPrepare.cpp Mon Oct  4 16:19:25 2010
@@ -916,11 +916,13 @@
 APInt Mask(cast<IntegerType>(Ty2)->getMask());
 APInt KnownZero(Mask.getBitWidth(), 0), KnownOne(Mask.getBitWidth(), 0);
 ComputeMaskedBits(A, Mask, KnownZero, KnownOne);
-unsigned unknown = (~KnownZero).countPopulation();
+APInt KnownZeroInverted(~KnownZero);
+unsigned unknown = KnownZeroInverted.countPopulation();
 if (unknown > 2) return true;
 unknown += KnownOne.countPopulation();
 if (unknown > 2) return true;
-
+APInt Middle(KnownZeroInverted | KnownOne);
+Middle.clear(KnownZeroInverted.countTrailingZeros());
         return true;
       }
     }





More information about the llvm-branch-commits mailing list