From: Anton Korobeynikov Date: Thu, 26 Apr 2007 20:44:04 +0000 (+0000) Subject: Fixx off-by-one bug, which prevents llvm-gcc bootstrap on ppc32 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ab8fd404034439ba23230df512a8a2779e5d48a3;p=oota-llvm.git 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 80cb25e3c34..acd8b683d99 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -1722,7 +1722,7 @@ bool SelectionDAGLowering::handleBitTestsSwitchCase(CaseRec& CR, << "Low bound: " << cast(minValue)->getSExtValue() << "\n" << "High bound: " << cast(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 00000000000..f89159987c7 --- /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 +}