A new testcase for an instcombine miscompilation!
[oota-llvm.git] / test / Transforms / SimplifyCFG / 2003-08-17-BranchFoldOrdering.ll
1 ; This test checks to make sure that 'br X, Dest, Dest' is folded into 
2 ; 'br Dest'.  This can only happen after the 'Z' block is eliminated.  This is
3 ; due to the fact that the SimplifyCFG function does not use 
4 ; the ConstantFoldTerminator function.
5
6 ; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep 'br bool %c2'
7
8 declare void %noop()
9
10 int %test(bool %c1, bool %c2) {
11         call void %noop()
12         br bool %c1, label %A, label %Y
13 A:
14         call void %noop()
15         br bool %c2, label %Z, label %X   ; Can be converted to unconditional br
16 Z:
17         br label %X
18 X:
19         call void %noop()
20         ret int 0
21 Y:
22         call void %noop()
23         br label %X
24 }