[X86] Don't pass a scale value of 0 to scatter/gather intrinsics. This causes the...
[oota-llvm.git] / test / CodeGen / X86 / 2009-08-12-badswitch.ll
1 ; RUN: llc < %s | grep LJT
2 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
3 target triple = "x86_64-apple-darwin10"
4
5 declare void @f1() nounwind readnone
6 declare void @f2() nounwind readnone
7 declare void @f3() nounwind readnone
8 declare void @f4() nounwind readnone
9 declare void @f5() nounwind readnone
10 declare void @f6() nounwind readnone
11 declare void @f7() nounwind readnone
12 declare void @f8() nounwind readnone
13 declare void @f9() nounwind readnone
14 declare void @f10() nounwind readnone
15 declare void @f11() nounwind readnone
16 declare void @f12() nounwind readnone
17 declare void @f13() nounwind readnone
18 declare void @f14() nounwind readnone
19 declare void @f15() nounwind readnone
20 declare void @f16() nounwind readnone
21 declare void @f17() nounwind readnone
22 declare void @f18() nounwind readnone
23 declare void @f19() nounwind readnone
24 declare void @f20() nounwind readnone
25 declare void @f21() nounwind readnone
26 declare void @f22() nounwind readnone
27 declare void @f23() nounwind readnone
28 declare void @f24() nounwind readnone
29 declare void @f25() nounwind readnone
30 declare void @f26() nounwind readnone
31
32 define internal fastcc i32 @foo(i64 %bar) nounwind ssp {
33 entry:
34         br label %bb49
35
36 bb49:
37         switch i64 %bar, label %RETURN [
38                 i64 2, label %RRETURN_2
39                 i64 3, label %RRETURN_6
40                 i64 4, label %RRETURN_7
41                 i64 5, label %RRETURN_14
42                 i64 6, label %RRETURN_15
43                 i64 7, label %RRETURN_16
44                 i64 8, label %RRETURN_17
45                 i64 9, label %RRETURN_18
46                 i64 10, label %RRETURN_19
47                 i64 11, label %RRETURN_20
48                 i64 12, label %RRETURN_21
49                 i64 13, label %RRETURN_22
50                 i64 14, label %RRETURN_24
51                 i64 15, label %RRETURN_26
52                 i64 16, label %RRETURN_27
53                 i64 17, label %RRETURN_28
54                 i64 18, label %RRETURN_29
55                 i64 19, label %RRETURN_30
56                 i64 20, label %RRETURN_31
57                 i64 21, label %RRETURN_38
58                 i64 22, label %RRETURN_40
59                 i64 23, label %RRETURN_42
60                 i64 24, label %RRETURN_44
61                 i64 25, label %RRETURN_48
62                 i64 26, label %RRETURN_52
63                 i64 27, label %RRETURN_1
64         ]
65
66 RETURN:
67         call void @f1()
68         br label %EXIT
69
70 RRETURN_2:              ; preds = %bb49
71         call void @f2()
72         br label %EXIT
73
74 RRETURN_6:              ; preds = %bb49
75         call void @f2()
76         br label %EXIT
77
78 RRETURN_7:              ; preds = %bb49
79         call void @f3()
80         br label %EXIT
81
82 RRETURN_14:             ; preds = %bb49
83         call void @f4()
84         br label %EXIT
85
86 RRETURN_15:             ; preds = %bb49
87         call void @f5()
88         br label %EXIT
89
90 RRETURN_16:             ; preds = %bb49
91         call void @f6()
92         br label %EXIT
93
94 RRETURN_17:             ; preds = %bb49
95         call void @f7()
96         br label %EXIT
97
98 RRETURN_18:             ; preds = %bb49
99         call void @f8()
100         br label %EXIT
101
102 RRETURN_19:             ; preds = %bb49
103         call void @f9()
104         br label %EXIT
105
106 RRETURN_20:             ; preds = %bb49
107         call void @f10()
108         br label %EXIT
109
110 RRETURN_21:             ; preds = %bb49
111         call void @f11()
112         br label %EXIT
113
114 RRETURN_22:             ; preds = %bb49
115         call void @f12()
116         br label %EXIT
117
118 RRETURN_24:             ; preds = %bb49
119         call void @f13()
120         br label %EXIT
121
122 RRETURN_26:             ; preds = %bb49
123         call void @f14()
124         br label %EXIT
125
126 RRETURN_27:             ; preds = %bb49
127         call void @f15()
128         br label %EXIT
129
130 RRETURN_28:             ; preds = %bb49
131         call void @f16()
132         br label %EXIT
133
134 RRETURN_29:             ; preds = %bb49
135         call void @f17()
136         br label %EXIT
137
138 RRETURN_30:             ; preds = %bb49
139         call void @f18()
140         br label %EXIT
141
142 RRETURN_31:             ; preds = %bb49
143         call void @f19()
144         br label %EXIT
145
146 RRETURN_38:             ; preds = %bb49
147         call void @f20()
148         br label %EXIT
149
150 RRETURN_40:             ; preds = %bb49
151         call void @f21()
152         br label %EXIT
153
154 RRETURN_42:             ; preds = %bb49
155         call void @f22()
156         br label %EXIT
157
158 RRETURN_44:             ; preds = %bb49
159         call void @f23()
160         br label %EXIT
161
162 RRETURN_48:             ; preds = %bb49
163         call void @f24()
164         br label %EXIT
165
166 RRETURN_52:             ; preds = %bb49
167         call void @f25()
168         br label %EXIT
169
170 RRETURN_1:              ; preds = %bb49
171         call void @f26()
172         br label %EXIT
173
174 EXIT:
175         ret i32 0
176 }