Fixx off-by-one bug, which prevents llvm-gcc bootstrap on ppc32


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36490 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index 80cb25e..acd8b68 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -1722,7 +1722,7 @@
        << "Low bound: " << cast<ConstantInt>(minValue)->getSExtValue() << "\n"
        << "High bound: " << cast<ConstantInt>(maxValue)->getSExtValue() << "\n";
   
-  if (range>IntPtrBits ||
+  if (range>=IntPtrBits ||
       (!(Dests.size() == 1 && numCmps >= 3) &&
        !(Dests.size() == 2 && numCmps >= 5) &&
        !(Dests.size() >= 3 && numCmps >= 6)))
diff --git a/test/CodeGen/X86/2007-04-27-BitTestsBadMask.ll b/test/CodeGen/X86/2007-04-27-BitTestsBadMask.ll
new file mode 100644
index 0000000..f891599
--- /dev/null
+++ b/test/CodeGen/X86/2007-04-27-BitTestsBadMask.ll
@@ -0,0 +1,18 @@
+; RUN: llvm-as < %s | llc -march=x86 | grep -c je | grep 3
+; RUN: llvm-as < %s | llc -march=x86-64 | grep 4297064449
+; PR 1325+
+
+define i32 @foo(i8 %bar) {
+entry:
+	switch i8 %bar, label %bb1203 [
+		 i8 117, label %bb1204
+		 i8 85, label %bb1204
+		 i8 106, label %bb1204
+	]
+
+bb1203:		; preds = %entry
+	ret i32 1
+
+bb1204:		; preds = %entry, %entry, %entry
+	ret i32 2
+}