Promote GEP ubyte indices to uint. Backwards compatibility for 1.2 and
[oota-llvm.git] / test / Transforms / CorrelatedExprs / whet.ll
1 ; This code snippet is derived from the following "whetstone" style code:
2 ; int whet(int j) {
3 ;   if (j == 1) j = 2;
4 ;   else        j = 7;
5 ;   if (j > 2)  j = 0;
6 ;   else        j = 3;
7 ;   if (j < 1)  j = 10;
8 ;   else        j = 0;
9 ;   return j;
10 ;}
11 ;
12 ; This should eliminate all BB's except BB0, BB9, BB10
13 ;
14 ; RUN: llvm-as < %s | opt -cee -instcombine -simplifycfg | llvm-dis | not grep 'bb[2-8]'
15
16 implementation   ; Functions:
17
18 int %whet(int %j) {
19 bb0:            ; No predecessors!
20         %cond220 = setne int %j, 1              ; <bool> [#uses=1]
21         br bool %cond220, label %bb3, label %bb4
22
23 bb3:            ; preds = %bb0
24         br label %bb4
25
26 bb4:            ; preds = %bb3, %bb0
27         %reg111 = phi int [ 7, %bb3 ], [ 2, %bb0 ]              ; <int> [#uses=1]
28         %cond222 = setle int %reg111, 2         ; <bool> [#uses=1]
29         br bool %cond222, label %bb6, label %bb7
30
31 bb6:            ; preds = %bb4
32         br label %bb7
33
34 bb7:            ; preds = %bb6, %bb4
35         %reg114 = phi int [ 3, %bb6 ], [ 0, %bb4 ]              ; <int> [#uses=1]
36         %cond225 = setgt int %reg114, 0         ; <bool> [#uses=1]
37         br bool %cond225, label %bb9, label %bb10
38
39 bb9:            ; preds = %bb7
40         br label %bb10
41
42 bb10:           ; preds = %bb9, %bb7
43         %reg117 = phi int [ 0, %bb9 ], [ 10, %bb7 ]             ; <int> [#uses=1]
44         ret int %reg117
45 }