Use the llvm-upgrade program to upgrade llvm assembly.
[oota-llvm.git] / test / Transforms / LoopStrengthReduce / phi_node_update_multiple_preds.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce -disable-output
2 ; LSR should not crash on this.
3
4 fastcc void %loadloop() {
5 entry:
6         switch sbyte 0, label %shortcirc_next [
7                  sbyte 32, label %loopexit.2
8                  sbyte 59, label %loopexit.2
9         ]
10
11 shortcirc_next:         ; preds = %no_exit.2, %entry
12         %indvar37 = phi uint [ 0, %entry ], [ %indvar.next38, %no_exit.2 ]              ; <uint> [#uses=3]
13         %wp.2.4 = getelementptr sbyte* null, uint %indvar37             ; <sbyte*> [#uses=1]
14         br bool false, label %loopexit.2, label %no_exit.2
15
16 no_exit.2:              ; preds = %shortcirc_next
17         %wp.2.4.rec = cast uint %indvar37 to int                ; <int> [#uses=1]
18         %inc.1.rec = add int %wp.2.4.rec, 1             ; <int> [#uses=1]
19         %inc.1 = getelementptr sbyte* null, int %inc.1.rec              ; <sbyte*> [#uses=2]
20         %indvar.next38 = add uint %indvar37, 1          ; <uint> [#uses=1]
21         switch sbyte 0, label %shortcirc_next [
22                  sbyte 32, label %loopexit.2
23                  sbyte 59, label %loopexit.2
24         ]
25
26 loopexit.2:             ; preds = %no_exit.2, %no_exit.2, %shortcirc_next, %entry, %entry
27         %wp.2.7 = phi sbyte* [ null, %entry ], [ null, %entry ], [ %wp.2.4, %shortcirc_next ], [ %inc.1, %no_exit.2 ], [ %inc.1, %no_exit.2 ]           ; <sbyte*> [#uses=0]
28         ret void
29 }