new testcase
[oota-llvm.git] / test / CodeGen / Generic / SwitchLowering.ll
1 ; RUN: llvm-as < %s | llc -march=x86 | grep cmp | wc -l | grep 1
2 ; PR964
3
4 sbyte* %FindChar(sbyte* %CurPtr) {
5 entry:
6         br label %bb
7
8 bb:             ; preds = %bb, %entry
9         %indvar = phi uint [ 0, %entry ], [ %indvar.next, %bb ]         ; <uint> [#uses=3]
10         %CurPtr_addr.0.rec = cast uint %indvar to int           ; <int> [#uses=1]
11         %CurPtr_addr.0 = getelementptr sbyte* %CurPtr, uint %indvar             ; <sbyte*> [#uses=1]
12         %tmp = load sbyte* %CurPtr_addr.0               ; <sbyte> [#uses=2]
13         %tmp2.rec = add int %CurPtr_addr.0.rec, 1               ; <int> [#uses=1]
14         %tmp2 = getelementptr sbyte* %CurPtr, int %tmp2.rec             ; <sbyte*> [#uses=1]
15         %indvar.next = add uint %indvar, 1              ; <uint> [#uses=1]
16         switch sbyte %tmp, label %bb [
17                  sbyte 0, label %bb7
18                  sbyte 120, label %bb7
19         ]
20
21 bb7:            ; preds = %bb, %bb
22         %tmp = cast sbyte %tmp to ubyte         ; <ubyte> [#uses=1]
23         tail call void %foo( ubyte %tmp )
24         ret sbyte* %tmp2
25 }
26
27 declare void %foo(ubyte)