Use the llvm-upgrade program to upgrade llvm assembly.
[oota-llvm.git] / test / Transforms / LevelRaise / 2002-07-16-RaiseCrash.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -raise
2         
3         %Tree = type %struct.tree*
4         %struct.tree = type { int, double, double, %Tree, %Tree, %Tree, %Tree }
5
6 implementation   ; Functions:
7
8 void %reverse(%Tree %t) {
9 bb0:                                    ;[#uses=0]
10         %cast219 = cast %Tree %t to sbyte***            ; <sbyte***> [#uses=7]
11         %cond220 = seteq sbyte*** %cast219, null                ; <bool> [#uses=1]
12         br bool %cond220, label %bb5, label %bb2
13
14 bb2:                                    ;[#uses=3]
15         %reg2221 = getelementptr sbyte*** %cast219, long 6              ; <sbyte***> [#uses=1]
16         %reg108 = load sbyte*** %reg2221                ; <sbyte**> [#uses=3]
17         %reg2251 = getelementptr sbyte** %reg108, long 5                ; <sbyte**> [#uses=1]
18         store sbyte* null, sbyte** %reg2251
19         %reg2281 = getelementptr sbyte*** %cast219, long 6              ; <sbyte***> [#uses=1]
20         store sbyte** null, sbyte*** %reg2281
21         %reg2311 = getelementptr sbyte*** %cast219, long 5              ; <sbyte***> [#uses=1]
22         %reg114 = load sbyte*** %reg2311                ; <sbyte**> [#uses=2]
23         %cond234 = seteq sbyte** %reg114, null          ; <bool> [#uses=1]
24         br bool %cond234, label %bb4, label %bb3
25
26 bb3:                                    ;[#uses=4]
27         %reg115 = phi sbyte*** [ %cast117, %bb3 ], [ %cast219, %bb2 ]           ; <sbyte***> [#uses=2]
28         %reg116 = phi sbyte** [ %cast118, %bb3 ], [ %reg114, %bb2 ]             ; <sbyte**> [#uses=4]
29         %reg236 = getelementptr sbyte** %reg116, long 5         ; <sbyte**> [#uses=1]
30         %reg110 = load sbyte** %reg236          ; <sbyte*> [#uses=1]
31         %reg239 = getelementptr sbyte** %reg116, long 5         ; <sbyte**> [#uses=1]
32         %cast241 = cast sbyte*** %reg115 to sbyte*              ; <sbyte*> [#uses=1]
33         store sbyte* %cast241, sbyte** %reg239
34         %reg242 = getelementptr sbyte*** %reg115, long 6                ; <sbyte***> [#uses=1]
35         store sbyte** %reg116, sbyte*** %reg242
36         %cast117 = cast sbyte** %reg116 to sbyte***             ; <sbyte***> [#uses=1]
37         %cast118 = cast sbyte* %reg110 to sbyte**               ; <sbyte**> [#uses=2]
38         %cond245 = setne sbyte** %cast118, null         ; <bool> [#uses=1]
39         br bool %cond245, label %bb3, label %bb4
40
41 bb4:                                    ;[#uses=2]
42         %reg247 = getelementptr sbyte*** %cast219, long 5               ; <sbyte***> [#uses=1]
43         store sbyte** %reg108, sbyte*** %reg247
44         %reg250 = getelementptr sbyte** %reg108, long 6         ; <sbyte**> [#uses=2]
45         cast sbyte** %reg250 to sbyte****               ; <sbyte****>:0 [#uses=0]
46         %cast252 = cast sbyte*** %cast219 to sbyte*             ; <sbyte*> [#uses=1]
47         store sbyte* %cast252, sbyte** %reg250
48         br label %bb5
49
50 bb5:                                    ;[#uses=2]
51         ret void
52 }
53