d074514476d5b89a509752e3cbe3c6068c89e95e
[oota-llvm.git] / test / CodeGen / X86 / pic_jumptable.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | llc -relocation-model=pic -mtriple=i386-linux-gnu | not grep -F .text
2 ; RUN: llvm-upgrade < %s | llvm-as | llc -relocation-model=pic -mtriple=i686-apple-darwin | not grep lea
3
4 implementation   ; Functions:
5
6 declare void %_Z3bari( int  )
7
8 linkonce void %_Z3fooILi1EEvi(int %Y) {
9 entry:
10         %Y_addr = alloca int            ; <int*> [#uses=2]
11         "alloca point" = cast int 0 to int              ; <int> [#uses=0]
12         store int %Y, int* %Y_addr
13         %tmp = load int* %Y_addr                ; <int> [#uses=1]
14         switch int %tmp, label %bb10 [
15                  int 0, label %bb3
16                  int 1, label %bb
17                  int 2, label %bb
18                  int 3, label %bb
19                  int 4, label %bb
20                  int 5, label %bb
21                  int 6, label %bb
22                  int 7, label %bb
23                  int 8, label %bb
24                  int 9, label %bb
25                  int 10, label %bb
26                  int 12, label %bb1
27                  int 13, label %bb5
28                  int 14, label %bb6
29                  int 16, label %bb2
30                  int 17, label %bb4
31                  int 23, label %bb8
32                  int 27, label %bb7
33                  int 34, label %bb9
34         ]
35
36 bb:             ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
37         br label %bb1
38
39 bb1:            ; preds = %bb, %entry
40         br label %bb2
41
42 bb2:            ; preds = %bb1, %entry
43         call void %_Z3bari( int 1 )
44         br label %bb11
45
46 bb3:            ; preds = %entry
47         br label %bb4
48
49 bb4:            ; preds = %bb3, %entry
50         br label %bb5
51
52 bb5:            ; preds = %bb4, %entry
53         br label %bb6
54
55 bb6:            ; preds = %bb5, %entry
56         call void %_Z3bari( int 2 )
57         br label %bb11
58
59 bb7:            ; preds = %entry
60         br label %bb8
61
62 bb8:            ; preds = %bb7, %entry
63         br label %bb9
64
65 bb9:            ; preds = %bb8, %entry
66         call void %_Z3bari( int 3 )
67         br label %bb11
68
69 bb10:           ; preds = %entry
70         br label %bb11
71
72 bb11:           ; preds = %bb10, %bb9, %bb6, %bb2
73         br label %return
74
75 return:         ; preds = %bb11
76         ret void
77 }