Merge branch 'master' into msp430
[llvm/msp430.git] / test / Transforms / SimplifyCFG / 2008-12-16-DCECond.ll
blobb52d10dc3bc9a2cafb3c44a297e9a3500937e25e
1 ; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep icmp
2 ; ModuleID = '/tmp/x.bc'
3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
4 target triple = "i686-pc-linux-gnu"
6 define i32 @x(i32 %x) {
7 entry:
8         %cmp = icmp eq i32 %x, 8                ; <i1> [#uses=1]
9         br i1 %cmp, label %ifthen, label %ifend
11 ifthen:         ; preds = %entry
12         %call = call i32 (...)* @foo()          ; <i32> [#uses=0]
13         br label %ifend
15 ifend:          ; preds = %ifthen, %entry
16         %cmp2 = icmp ne i32 %x, 8               ; <i1> [#uses=1]
17         br i1 %cmp2, label %ifthen3, label %ifend5
19 ifthen3:                ; preds = %ifend
20         %call4 = call i32 (...)* @foo()         ; <i32> [#uses=0]
21         br label %ifend5
23 ifend5:         ; preds = %ifthen3, %ifend
24         %cmp7 = icmp eq i32 %x, 9               ; <i1> [#uses=1]
25         br i1 %cmp7, label %ifthen8, label %ifend10
27 ifthen8:                ; preds = %ifend5
28         %call9 = call i32 (...)* @bar()         ; <i32> [#uses=0]
29         br label %ifend10
31 ifend10:                ; preds = %ifthen8, %ifend5
32         %cmp12 = icmp ne i32 %x, 9              ; <i1> [#uses=1]
33         br i1 %cmp12, label %ifthen13, label %ifend15
35 ifthen13:               ; preds = %ifend10
36         %call14 = call i32 (...)* @bar()                ; <i32> [#uses=0]
37         br label %ifend15
39 ifend15:                ; preds = %ifthen13, %ifend10
40         ret i32 0
43 declare i32 @foo(...)
45 declare i32 @bar(...)