[llvm-readobj] - Simplify stack-sizes.test test case.
[llvm-complete.git] / test / Transforms / CorrelatedValuePropagation / crash.ll
blob8a6aaed7a70734db76f51c13232fc056a3fa2696
1 ; RUN: opt < %s -correlated-propagation
3 ; PR8161
4 define void @test1() nounwind ssp {
5 entry:
6   br label %for.end
8 for.cond.us.us:                                   ; preds = %for.cond.us.us
9   %cmp6.i.us.us = icmp sgt i32 1, 0
10   %lor.ext.i.us.us = zext i1 %cmp6.i.us.us to i32
11   %lor.ext.add.i.us.us = select i1 %cmp6.i.us.us, i32 %lor.ext.i.us.us, i32 undef
12   %conv.i.us.us = trunc i32 %lor.ext.add.i.us.us to i16
13   %sext.us.us = shl i16 %conv.i.us.us, 8
14   %conv6.us.us = ashr i16 %sext.us.us, 8
15   %and.us.us = and i16 %conv6.us.us, %and.us.us
16   br i1 false, label %for.end, label %for.cond.us.us
18 for.end:                                          ; preds = %for.cond.us, %for.cond.us.us, %entry
19   ret void
22 ; PR 8790
23 define void @test2() nounwind ssp {
24 entry:
25   br label %func_29.exit
27 sdf.exit.i:
28   %l_44.1.mux.i = select i1 %tobool5.not.i, i8 %l_44.1.mux.i, i8 1
29   br label %srf.exit.i
31 srf.exit.i:
32   %tobool5.not.i = icmp ne i8 undef, 0
33   br i1 %tobool5.not.i, label %sdf.exit.i, label %func_29.exit
35 func_29.exit:
36   ret void
39 ; PR13972
40 define void @test3() nounwind {
41 for.body:
42   br label %return
44 for.cond.i:                                       ; preds = %if.else.i, %for.body.i
45   %e.2.i = phi i32 [ %e.2.i, %if.else.i ], [ -8, %for.body.i ]
46   br i1 undef, label %return, label %for.body.i
48 for.body.i:                                       ; preds = %for.cond.i
49   switch i32 %e.2.i, label %for.cond3.i [
50     i32 -3, label %if.else.i
51     i32 0, label %for.cond.i
52   ]
54 for.cond3.i:                                      ; preds = %for.cond3.i, %for.body.i
55   br label %for.cond3.i
57 if.else.i:                                        ; preds = %for.body.i
58   br label %for.cond.i
60 return:                                           ; preds = %for.cond.i, %for.body
61   ret void
64 define i1 @test4(i32 %int) {
65   %a0 = icmp ult i32 %int, 100
66   %a1 = and i1 %a0, %a0
67   %a2 = and i1 %a1, %a1
68   %a3 = and i1 %a2, %a2
69   %a4 = and i1 %a3, %a3
70   %a5 = and i1 %a4, %a4
71   %a6 = and i1 %a5, %a5
72   %a7 = and i1 %a6, %a6
73   %a8 = and i1 %a7, %a7
74   %a9 = and i1 %a8, %a8
75   %a10 = and i1 %a9, %a9
76   %a11 = and i1 %a10, %a10
77   %a12 = and i1 %a11, %a11
78   %a13 = and i1 %a12, %a12
79   %a14 = and i1 %a13, %a13
80   %a15 = and i1 %a14, %a14
81   %a16 = and i1 %a15, %a15
82   %a17 = and i1 %a16, %a16
83   %a18 = and i1 %a17, %a17
84   %a19 = and i1 %a18, %a18
85   %a20 = and i1 %a19, %a19
86   %a21 = and i1 %a20, %a20
87   %a22 = and i1 %a21, %a21
88   %a23 = and i1 %a22, %a22
89   %a24 = and i1 %a23, %a23
90   %a25 = and i1 %a24, %a24
91   %a26 = and i1 %a25, %a25
92   %a27 = and i1 %a26, %a26
93   %a28 = and i1 %a27, %a27
94   %a29 = and i1 %a28, %a28
95   %a30 = and i1 %a29, %a29
96   %a31 = and i1 %a30, %a30
97   %a32 = and i1 %a31, %a31
98   %a33 = and i1 %a32, %a32
99   %a34 = and i1 %a33, %a33
100   %a35 = and i1 %a34, %a34
101   %a36 = and i1 %a35, %a35
102   %a37 = and i1 %a36, %a36
103   %a38 = and i1 %a37, %a37
104   %a39 = and i1 %a38, %a38
105   %a40 = and i1 %a39, %a39
106   %a41 = and i1 %a40, %a40
107   %a42 = and i1 %a41, %a41
108   %a43 = and i1 %a42, %a42
109   %a44 = and i1 %a43, %a43
110   %a45 = and i1 %a44, %a44
111   %a46 = and i1 %a45, %a45
112   %a47 = and i1 %a46, %a46
113   %a48 = and i1 %a47, %a47
114   %a49 = and i1 %a48, %a48
115   %a50 = and i1 %a49, %a49
116   %a51 = and i1 %a50, %a50
117   %a52 = and i1 %a51, %a51
118   %a53 = and i1 %a52, %a52
119   %a54 = and i1 %a53, %a53
120   %a55 = and i1 %a54, %a54
121   %a56 = and i1 %a55, %a55
122   %a57 = and i1 %a56, %a56
123   %a58 = and i1 %a57, %a57
124   %a59 = and i1 %a58, %a58
125   %a60 = and i1 %a59, %a59
126   %a61 = and i1 %a60, %a60
127   %a62 = and i1 %a61, %a61
128   %a63 = and i1 %a62, %a62
129   %a64 = and i1 %a63, %a63
130   %a65 = and i1 %a64, %a64
131   %a66 = and i1 %a65, %a65
132   %a67 = and i1 %a66, %a66
133   %a68 = and i1 %a67, %a67
134   %a69 = and i1 %a68, %a68
135   %a70 = and i1 %a69, %a69
136   %a71 = and i1 %a70, %a70
137   %a72 = and i1 %a71, %a71
138   %a73 = and i1 %a72, %a72
139   %a74 = and i1 %a73, %a73
140   %a75 = and i1 %a74, %a74
141   %a76 = and i1 %a75, %a75
142   %a77 = and i1 %a76, %a76
143   %a78 = and i1 %a77, %a77
144   %a79 = and i1 %a78, %a78
145   %a80 = and i1 %a79, %a79
146   %a81 = and i1 %a80, %a80
147   %a82 = and i1 %a81, %a81
148   %a83 = and i1 %a82, %a82
149   %a84 = and i1 %a83, %a83
150   %a85 = and i1 %a84, %a84
151   %a86 = and i1 %a85, %a85
152   %a87 = and i1 %a86, %a86
153   %a88 = and i1 %a87, %a87
154   %a89 = and i1 %a88, %a88
155   %a90 = and i1 %a89, %a89
156   %a91 = and i1 %a90, %a90
157   %a92 = and i1 %a91, %a91
158   %a93 = and i1 %a92, %a92
159   %a94 = and i1 %a93, %a93
160   %a95 = and i1 %a94, %a94
161   %a96 = and i1 %a95, %a95
162   %a97 = and i1 %a96, %a96
163   %a98 = and i1 %a97, %a97
164   %a99 = and i1 %a98, %a98
165   %a100 = and i1 %a99, %a99
166   %a101 = and i1 %a100, %a100
167   %a102 = and i1 %a101, %a101
168   %a103 = and i1 %a102, %a102
169   %a104 = and i1 %a103, %a103
170   %a105 = and i1 %a104, %a104
171   %a106 = and i1 %a105, %a105
172   %a107 = and i1 %a106, %a106
173   %a108 = and i1 %a107, %a107
174   %a109 = and i1 %a108, %a108
175   %a110 = and i1 %a109, %a109
176   %a111 = and i1 %a110, %a110
177   %a112 = and i1 %a111, %a111
178   %a113 = and i1 %a112, %a112
179   %a114 = and i1 %a113, %a113
180   %a115 = and i1 %a114, %a114
181   %a116 = and i1 %a115, %a115
182   %a117 = and i1 %a116, %a116
183   %a118 = and i1 %a117, %a117
184   %a119 = and i1 %a118, %a118
185   %a120 = and i1 %a119, %a119
186   %a121 = and i1 %a120, %a120
187   %a122 = and i1 %a121, %a121
188   %a123 = and i1 %a122, %a122
189   %a124 = and i1 %a123, %a123
190   %a125 = and i1 %a124, %a124
191   %a126 = and i1 %a125, %a125
192   %a127 = and i1 %a126, %a126
193   %cond = and i1 %a127, %a127
194   br i1 %cond, label %then, label %else
196 then:
197   %result = icmp eq i32 %int, 255
198   ret i1 %result
200 else:
201   ret i1 false