From: Chris Lattner Date: Fri, 4 Oct 2002 23:29:40 +0000 (+0000) Subject: New testcase for bug never checked into CVS, but that I hit during debugging a X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=41a29f2b6f08aeb5653825d66b9d48b9aa6ef291;p=oota-llvm.git New testcase for bug never checked into CVS, but that I hit during debugging a new feature git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4039 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/CorrelatedExprs/2002-10-04-ForwardingBug.ll b/test/Transforms/CorrelatedExprs/2002-10-04-ForwardingBug.ll new file mode 100644 index 00000000000..c76c8fd929b --- /dev/null +++ b/test/Transforms/CorrelatedExprs/2002-10-04-ForwardingBug.ll @@ -0,0 +1,35 @@ +; Testcase distilled from bisort where we tried to perform branch target +; forwarding where it was not safe. +; RUN: as < %s | opt -cee +; + %HANDLE = type { int, %HANDLE*, %HANDLE* } + %struct.node = type { int, %HANDLE*, %HANDLE* } +%.LC0 = internal global [11 x sbyte] c"%d @ 0x%x\0A\00" ; <[11 x sbyte]*> [#uses=1] + +implementation ; Functions: + +void %InOrder(%HANDLE* %h) { +bb0: ; No predecessors! + br label %bb2 + +bb2: ; preds = %bb3, %bb0 + %reg113 = phi %HANDLE* [ %reg109, %bb3 ], [ %h, %bb0 ] ; <%HANDLE*> [#uses=4] + %cond217 = seteq %HANDLE* %reg113, null ; [#uses=1] + br bool %cond217, label %bb4, label %bb3 + +bb3: ; preds = %bb2 + %reg221 = getelementptr %HANDLE* %reg113, long 0, ubyte 1 ; <%HANDLE**> [#uses=1] + %reg108 = load %HANDLE** %reg221 ; <%HANDLE*> [#uses=1] + %reg226 = getelementptr %HANDLE* %reg113, long 0, ubyte 2 ; <%HANDLE**> [#uses=1] + %reg109 = load %HANDLE** %reg226 ; <%HANDLE*> [#uses=1] + call void %InOrder( %HANDLE* %reg108 ) + %cast231 = getelementptr %HANDLE* %reg113, long 0, ubyte 0 ; [#uses=1] + %reg111 = load int* %cast231 ; [#uses=1] + %reg233 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([11 x sbyte]* %.LC0, long 0, long 0), int %reg111, uint 0 ) ; [#uses=0] + br label %bb2 + +bb4: ; preds = %bb2 + ret void +} + +declare int %printf(sbyte*, ...)