Model stacksave and stackrestore as both writing memory, since we
[oota-llvm.git] / test / Transforms / IndVarsSimplify / 2006-09-20-LFTR-Crash.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output
2
3         %struct.p7prior_s = type { int, int, [200 x float], [200 x [7 x float]], int, [200 x float], [200 x [20 x float]], int, [200 x float], [200 x [20 x float]] }
4
5 implementation   ; Functions:
6
7 void %P7DefaultPrior() {
8 entry:
9         switch int 0, label %UnifiedReturnBlock [
10                  int 2, label %bb160
11                  int 3, label %bb
12         ]
13
14 bb:             ; preds = %entry
15         br bool false, label %cond_true.i, label %sre_malloc.exit
16
17 cond_true.i:            ; preds = %bb
18         unreachable
19
20 sre_malloc.exit:                ; preds = %bb
21         br label %cond_true
22
23 cond_true:              ; preds = %cond_true66, %cond_true, %sre_malloc.exit
24         %tmp59 = phi int [ 1, %sre_malloc.exit ], [ %phitmp, %cond_true66 ], [ %tmp59, %cond_true ]             ; <int> [#uses=2]
25         %indvar245.0.ph = phi uint [ 0, %sre_malloc.exit ], [ %indvar.next246, %cond_true66 ], [ %indvar245.0.ph, %cond_true ]          ; <uint> [#uses=2]
26         br bool false, label %bb57, label %cond_true
27
28 bb57:           ; preds = %cond_true
29         %tmp65 = setgt int 0, %tmp59            ; <bool> [#uses=1]
30         %indvar.next246 = add uint %indvar245.0.ph, 1           ; <uint> [#uses=2]
31         br bool %tmp65, label %cond_true66, label %bb69
32
33 cond_true66:            ; preds = %bb57
34         %q.1.0 = cast uint %indvar.next246 to int               ; <int> [#uses=1]
35         %phitmp = add int %q.1.0, 1             ; <int> [#uses=1]
36         br label %cond_true
37
38 bb69:           ; preds = %bb57
39         ret void
40
41 bb160:          ; preds = %entry
42         ret void
43
44 UnifiedReturnBlock:             ; preds = %entry
45         ret void
46 }