[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / X86 / 2009-06-02-RewriterBug.ll
blobf64f9e3b822e03781c0811d256dbbb04fd883291
1 ; RUN: llc < %s -mtriple=x86_64-undermydesk-freebsd8.0 -relocation-model=pic -frame-pointer=all
2 ; PR4225
4 define void @sha256_block1(ptr nocapture %arr, ptr nocapture %in, i64 %num) nounwind {
5 entry:
6         br i1 undef, label %while.end, label %bb.nph
8 bb.nph:         ; preds = %entry
9         br label %while.body
11 while.body:             ; preds = %for.end, %bb.nph
12         %indvar2787 = phi i64 [ 0, %bb.nph ], [ %indvar.next2788, %for.end ]            ; <i64> [#uses=2]
13         %tmp2791 = mul i64 %indvar2787, 44              ; <i64> [#uses=0]
14         %ctg22996 = getelementptr i8, ptr %in, i64 0            ; <ptr> [#uses=1]
15         %conv = zext i32 undef to i64           ; <i64> [#uses=1]
16         %conv11 = zext i32 undef to i64         ; <i64> [#uses=1]
17         %tmp18 = load i32, ptr undef            ; <i32> [#uses=1]
18         %conv19 = zext i32 %tmp18 to i64                ; <i64> [#uses=1]
19         %tmp30 = load i32, ptr undef            ; <i32> [#uses=1]
20         %conv31 = zext i32 %tmp30 to i64                ; <i64> [#uses=4]
21         %ptrincdec3065 = load i8, ptr null              ; <i8> [#uses=1]
22         %conv442709 = zext i8 %ptrincdec3065 to i64             ; <i64> [#uses=1]
23         %shl45 = shl i64 %conv442709, 16                ; <i64> [#uses=1]
24         %conv632707 = zext i8 undef to i64              ; <i64> [#uses=1]
25         %or = or i64 %shl45, 0          ; <i64> [#uses=1]
26         %or55 = or i64 %or, %conv632707         ; <i64> [#uses=1]
27         %or64 = or i64 %or55, 0         ; <i64> [#uses=1]
28         %shr85 = lshr i64 %conv31, 25           ; <i64> [#uses=0]
29         %add = add i64 %conv11, 1508970993              ; <i64> [#uses=1]
30         %add95 = add i64 %add, 0                ; <i64> [#uses=1]
31         %add98 = add i64 %add95, 0              ; <i64> [#uses=1]
32         %add99 = add i64 %add98, %or64          ; <i64> [#uses=1]
33         %add134 = add i64 %add99, 0             ; <i64> [#uses=4]
34         store i32 undef, ptr undef
35         %shl187 = shl i64 %add134, 21           ; <i64> [#uses=0]
36         %and203 = and i64 %add134, %conv31              ; <i64> [#uses=1]
37         %xor208 = xor i64 0, %and203            ; <i64> [#uses=1]
38         %add212 = add i64 0, %xor208            ; <i64> [#uses=1]
39         %add213 = add i64 %add212, 0            ; <i64> [#uses=1]
40         %add248 = add i64 %add213, 0            ; <i64> [#uses=3]
41         %conv2852690 = zext i8 undef to i64             ; <i64> [#uses=1]
42         %or277 = or i64 0, %conv2852690         ; <i64> [#uses=1]
43         %or286 = or i64 %or277, 0               ; <i64> [#uses=1]
44         %neg319 = xor i64 %add248, 4294967295           ; <i64> [#uses=1]
45         %and321 = and i64 %neg319, %conv31              ; <i64> [#uses=1]
46         %xor322 = xor i64 %and321, 0            ; <i64> [#uses=1]
47         %add314 = add i64 %conv, 2870763221             ; <i64> [#uses=1]
48         %add323 = add i64 %add314, %or286               ; <i64> [#uses=1]
49         %add326 = add i64 %add323, %xor322              ; <i64> [#uses=1]
50         %add327 = add i64 %add326, 0            ; <i64> [#uses=2]
51         %add362 = add i64 %add327, %conv19              ; <i64> [#uses=4]
52         %add365 = add i64 0, %add327            ; <i64> [#uses=3]
53         %shl409 = shl i64 %add362, 26           ; <i64> [#uses=0]
54         %and431 = and i64 %add362, %add248              ; <i64> [#uses=1]
55         %neg433 = xor i64 %add362, -1           ; <i64> [#uses=1]
56         %and435 = and i64 %add134, %neg433              ; <i64> [#uses=1]
57         %xor436 = xor i64 %and431, %and435              ; <i64> [#uses=1]
58         %add428 = add i64 %conv31, 3624381080           ; <i64> [#uses=1]
59         %add437 = add i64 %add428, 0            ; <i64> [#uses=1]
60         %add440 = add i64 %add437, %xor436              ; <i64> [#uses=1]
61         %add441 = add i64 %add440, 0            ; <i64> [#uses=1]
62         %shl443 = shl i64 %add365, 30           ; <i64> [#uses=1]
63         %and445 = lshr i64 %add365, 2           ; <i64> [#uses=1]
64         %shr446 = and i64 %and445, 1073741823           ; <i64> [#uses=1]
65         %or447 = or i64 %shr446, %shl443                ; <i64> [#uses=1]
66         %xor461 = xor i64 0, %or447             ; <i64> [#uses=1]
67         %add473 = add i64 %xor461, 0            ; <i64> [#uses=1]
68         %add479 = add i64 %add473, %add441              ; <i64> [#uses=3]
69         %conv4932682 = zext i8 undef to i64             ; <i64> [#uses=1]
70         %shl494 = shl i64 %conv4932682, 16              ; <i64> [#uses=1]
71         %ptrincdec4903012 = load i8, ptr null           ; <i8> [#uses=1]
72         %conv5032681 = zext i8 %ptrincdec4903012 to i64         ; <i64> [#uses=1]
73         %shl504 = shl i64 %conv5032681, 8               ; <i64> [#uses=1]
74         %ptrincdec5003009 = load i8, ptr null           ; <i8> [#uses=1]
75         %conv5132680 = zext i8 %ptrincdec5003009 to i64         ; <i64> [#uses=1]
76         %or495 = or i64 %shl494, 0              ; <i64> [#uses=1]
77         %or505 = or i64 %or495, %conv5132680            ; <i64> [#uses=1]
78         %or514 = or i64 %or505, %shl504         ; <i64> [#uses=1]
79         store i32 undef, ptr undef
80         %or540 = or i64 undef, 0                ; <i64> [#uses=0]
81         %add542 = add i64 %add134, 310598401            ; <i64> [#uses=1]
82         %add551 = add i64 %add542, %or514               ; <i64> [#uses=1]
83         %add554 = add i64 %add551, 0            ; <i64> [#uses=1]
84         %add555 = add i64 %add554, 0            ; <i64> [#uses=1]
85         %or561 = or i64 undef, undef            ; <i64> [#uses=1]
86         %or567 = or i64 undef, undef            ; <i64> [#uses=1]
87         %and572 = lshr i64 %add479, 22          ; <i64> [#uses=1]
88         %shr573 = and i64 %and572, 1023         ; <i64> [#uses=1]
89         %or574 = or i64 %shr573, 0              ; <i64> [#uses=1]
90         %xor568 = xor i64 %or567, %or574                ; <i64> [#uses=1]
91         %xor575 = xor i64 %xor568, %or561               ; <i64> [#uses=1]
92         %add587 = add i64 %xor575, 0            ; <i64> [#uses=1]
93         %add593 = add i64 %add587, %add555              ; <i64> [#uses=1]
94         %ptrincdec6043000 = load i8, ptr null           ; <i8> [#uses=1]
95         %conv6172676 = zext i8 %ptrincdec6043000 to i64         ; <i64> [#uses=1]
96         %shl618 = shl i64 %conv6172676, 8               ; <i64> [#uses=1]
97         %ptrincdec6142997 = load i8, ptr %ctg22996              ; <i8> [#uses=1]
98         %conv6272675 = zext i8 %ptrincdec6142997 to i64         ; <i64> [#uses=1]
99         %or619 = or i64 0, %conv6272675         ; <i64> [#uses=1]
100         %or628 = or i64 %or619, %shl618         ; <i64> [#uses=1]
101         %add656 = add i64 %add248, 607225278            ; <i64> [#uses=1]
102         %add665 = add i64 %add656, %or628               ; <i64> [#uses=1]
103         %add668 = add i64 %add665, 0            ; <i64> [#uses=1]
104         %add669 = add i64 %add668, 0            ; <i64> [#uses=1]
105         %and699 = and i64 %add479, %add365              ; <i64> [#uses=1]
106         %xor700 = xor i64 0, %and699            ; <i64> [#uses=1]
107         %add701 = add i64 0, %xor700            ; <i64> [#uses=1]
108         %add707 = add i64 %add701, %add669              ; <i64> [#uses=4]
109         %ptrincdec6242994 = load i8, ptr null           ; <i8> [#uses=1]
110         %conv7122673 = zext i8 %ptrincdec6242994 to i64         ; <i64> [#uses=1]
111         %shl713 = shl i64 %conv7122673, 24              ; <i64> [#uses=1]
112         %conv7412670 = zext i8 undef to i64             ; <i64> [#uses=1]
113         %or723 = or i64 0, %shl713              ; <i64> [#uses=1]
114         %or733 = or i64 %or723, %conv7412670            ; <i64> [#uses=1]
115         %or742 = or i64 %or733, 0               ; <i64> [#uses=2]
116         %conv743 = trunc i64 %or742 to i32              ; <i32> [#uses=1]
117         store i32 %conv743, ptr undef
118         %xor762 = xor i64 undef, 0              ; <i64> [#uses=0]
119         %add770 = add i64 %add362, 1426881987           ; <i64> [#uses=1]
120         %add779 = add i64 %add770, %or742               ; <i64> [#uses=1]
121         %add782 = add i64 %add779, 0            ; <i64> [#uses=1]
122         %add783 = add i64 %add782, 0            ; <i64> [#uses=1]
123         %shl785 = shl i64 %add707, 30           ; <i64> [#uses=1]
124         %and787 = lshr i64 %add707, 2           ; <i64> [#uses=1]
125         %shr788 = and i64 %and787, 1073741823           ; <i64> [#uses=1]
126         %or789 = or i64 %shr788, %shl785                ; <i64> [#uses=1]
127         %shl791 = shl i64 %add707, 19           ; <i64> [#uses=0]
128         %xor803 = xor i64 0, %or789             ; <i64> [#uses=1]
129         %and813 = and i64 %add593, %add479              ; <i64> [#uses=1]
130         %xor814 = xor i64 0, %and813            ; <i64> [#uses=1]
131         %add815 = add i64 %xor803, %xor814              ; <i64> [#uses=1]
132         %add821 = add i64 %add815, %add783              ; <i64> [#uses=1]
133         %add1160 = add i64 0, %add707           ; <i64> [#uses=0]
134         %add1157 = add i64 undef, undef         ; <i64> [#uses=0]
135         %ptrincdec11742940 = load i8, ptr null          ; <i8> [#uses=1]
136         %conv11872651 = zext i8 %ptrincdec11742940 to i64               ; <i64> [#uses=1]
137         %shl1188 = shl i64 %conv11872651, 8             ; <i64> [#uses=1]
138         %or1198 = or i64 0, %shl1188            ; <i64> [#uses=1]
139         store i32 undef, ptr undef
140         %add1226 = add i64 %or1198, 3248222580          ; <i64> [#uses=1]
141         %add1235 = add i64 %add1226, 0          ; <i64> [#uses=1]
142         %add1238 = add i64 %add1235, 0          ; <i64> [#uses=1]
143         %add1239 = add i64 %add1238, 0          ; <i64> [#uses=1]
144         br label %for.cond
146 for.cond:               ; preds = %for.body, %while.body
147         %add821.pn = phi i64 [ %add821, %while.body ], [ undef, %for.body ]             ; <i64> [#uses=0]
148         %add1239.pn = phi i64 [ %add1239, %while.body ], [ 0, %for.body ]               ; <i64> [#uses=0]
149         br i1 undef, label %for.end, label %for.body
151 for.body:               ; preds = %for.cond
152         br label %for.cond
154 for.end:                ; preds = %for.cond
155         %indvar.next2788 = add i64 %indvar2787, 1               ; <i64> [#uses=1]
156         br i1 undef, label %while.end, label %while.body
158 while.end:              ; preds = %for.end, %entry
159         ret void
162 define void @sha256_block2(ptr nocapture %arr, ptr nocapture %in, i64 %num) nounwind {
163 entry:
164         br i1 undef, label %while.end, label %bb.nph
166 bb.nph:         ; preds = %entry
167         %arrayidx5 = getelementptr i32, ptr %arr, i64 1         ; <ptr> [#uses=1]
168         %arrayidx9 = getelementptr i32, ptr %arr, i64 2         ; <ptr> [#uses=2]
169         %arrayidx13 = getelementptr i32, ptr %arr, i64 3                ; <ptr> [#uses=2]
170         %arrayidx25 = getelementptr i32, ptr %arr, i64 6                ; <ptr> [#uses=1]
171         %arrayidx29 = getelementptr i32, ptr %arr, i64 7                ; <ptr> [#uses=1]
172         br label %while.body
174 while.body:             ; preds = %for.end, %bb.nph
175         %tmp3 = load i32, ptr %arr              ; <i32> [#uses=2]
176         %conv = zext i32 %tmp3 to i64           ; <i64> [#uses=1]
177         %tmp10 = load i32, ptr %arrayidx9               ; <i32> [#uses=1]
178         %conv11 = zext i32 %tmp10 to i64                ; <i64> [#uses=1]
179         %tmp14 = load i32, ptr %arrayidx13              ; <i32> [#uses=3]
180         %conv15 = zext i32 %tmp14 to i64                ; <i64> [#uses=2]
181         %tmp18 = load i32, ptr undef            ; <i32> [#uses=2]
182         %conv19 = zext i32 %tmp18 to i64                ; <i64> [#uses=1]
183         %conv23 = zext i32 undef to i64         ; <i64> [#uses=1]
184         %tmp26 = load i32, ptr %arrayidx25              ; <i32> [#uses=1]
185         %conv27 = zext i32 %tmp26 to i64                ; <i64> [#uses=1]
186         %tmp30 = load i32, ptr %arrayidx29              ; <i32> [#uses=2]
187         %conv31 = zext i32 %tmp30 to i64                ; <i64> [#uses=5]
188         %shl72 = shl i64 %conv31, 26            ; <i64> [#uses=1]
189         %shr = lshr i64 %conv31, 6              ; <i64> [#uses=1]
190         %or74 = or i64 %shl72, %shr             ; <i64> [#uses=1]
191         %shr85 = lshr i64 %conv31, 25           ; <i64> [#uses=0]
192         %xor87 = xor i64 0, %or74               ; <i64> [#uses=1]
193         %and902706 = and i32 %tmp30, %tmp3              ; <i32> [#uses=1]
194         %and90 = zext i32 %and902706 to i64             ; <i64> [#uses=1]
195         %xor94 = xor i64 0, %and90              ; <i64> [#uses=1]
196         %add = add i64 %conv11, 1508970993              ; <i64> [#uses=1]
197         %add95 = add i64 %add, %xor94           ; <i64> [#uses=1]
198         %add98 = add i64 %add95, %xor87         ; <i64> [#uses=1]
199         %add99 = add i64 %add98, 0              ; <i64> [#uses=2]
200         %xor130 = zext i32 undef to i64         ; <i64> [#uses=1]
201         %add134 = add i64 %add99, %conv27               ; <i64> [#uses=2]
202         %add131 = add i64 %xor130, 0            ; <i64> [#uses=1]
203         %add137 = add i64 %add131, %add99               ; <i64> [#uses=5]
204         %conv1422700 = zext i8 undef to i64             ; <i64> [#uses=1]
205         %shl143 = shl i64 %conv1422700, 24              ; <i64> [#uses=1]
206         %ptrincdec1393051 = load i8, ptr undef          ; <i8> [#uses=1]
207         %conv1512699 = zext i8 %ptrincdec1393051 to i64         ; <i64> [#uses=1]
208         %shl152 = shl i64 %conv1512699, 16              ; <i64> [#uses=1]
209         %conv1712697 = zext i8 undef to i64             ; <i64> [#uses=1]
210         %or153 = or i64 %shl152, %shl143                ; <i64> [#uses=1]
211         %or163 = or i64 %or153, %conv1712697            ; <i64> [#uses=1]
212         %or172 = or i64 %or163, 0               ; <i64> [#uses=1]
213         %and203 = and i64 %add134, %conv31              ; <i64> [#uses=1]
214         %xor208 = xor i64 0, %and203            ; <i64> [#uses=1]
215         %add200 = add i64 0, 2453635748         ; <i64> [#uses=1]
216         %add209 = add i64 %add200, %or172               ; <i64> [#uses=1]
217         %add212 = add i64 %add209, %xor208              ; <i64> [#uses=1]
218         %add213 = add i64 %add212, 0            ; <i64> [#uses=2]
219         %shl228 = shl i64 %add137, 10           ; <i64> [#uses=1]
220         %and230 = lshr i64 %add137, 22          ; <i64> [#uses=1]
221         %shr231 = and i64 %and230, 1023         ; <i64> [#uses=1]
222         %or232 = or i64 %shr231, %shl228                ; <i64> [#uses=1]
223         %xor226 = xor i64 0, %or232             ; <i64> [#uses=1]
224         %xor233 = xor i64 %xor226, 0            ; <i64> [#uses=1]
225         %and2362695 = zext i32 undef to i64             ; <i64> [#uses=1]
226         %xor240 = and i64 %add137, %and2362695          ; <i64> [#uses=1]
227         %and2432694 = and i32 %tmp18, %tmp14            ; <i32> [#uses=1]
228         %and243 = zext i32 %and2432694 to i64           ; <i64> [#uses=1]
229         %xor244 = xor i64 %xor240, %and243              ; <i64> [#uses=1]
230         %add248 = add i64 %add213, %conv23              ; <i64> [#uses=2]
231         %add245 = add i64 %xor233, %xor244              ; <i64> [#uses=1]
232         %add251 = add i64 %add245, %add213              ; <i64> [#uses=1]
233         %conv2752691 = zext i8 undef to i64             ; <i64> [#uses=1]
234         %shl276 = shl i64 %conv2752691, 8               ; <i64> [#uses=0]
235         %and317 = and i64 %add248, %add134              ; <i64> [#uses=1]
236         %neg319 = xor i64 %add248, 4294967295           ; <i64> [#uses=1]
237         %and321 = and i64 %neg319, %conv31              ; <i64> [#uses=1]
238         %xor322 = xor i64 %and321, %and317              ; <i64> [#uses=1]
239         %add314 = add i64 %conv, 2870763221             ; <i64> [#uses=1]
240         %add323 = add i64 %add314, 0            ; <i64> [#uses=1]
241         %add326 = add i64 %add323, %xor322              ; <i64> [#uses=1]
242         %add327 = add i64 %add326, 0            ; <i64> [#uses=2]
243         %and3502689 = xor i64 %add137, %conv15          ; <i64> [#uses=1]
244         %xor354 = and i64 %add251, %and3502689          ; <i64> [#uses=1]
245         %and357 = and i64 %add137, %conv15              ; <i64> [#uses=1]
246         %xor358 = xor i64 %xor354, %and357              ; <i64> [#uses=1]
247         %add362 = add i64 %add327, %conv19              ; <i64> [#uses=1]
248         %add359 = add i64 0, %xor358            ; <i64> [#uses=1]
249         %add365 = add i64 %add359, %add327              ; <i64> [#uses=1]
250         %add770 = add i64 %add362, 1426881987           ; <i64> [#uses=1]
251         %add779 = add i64 %add770, 0            ; <i64> [#uses=1]
252         %add782 = add i64 %add779, 0            ; <i64> [#uses=1]
253         %add783 = add i64 %add782, 0            ; <i64> [#uses=2]
254         %add818 = add i64 %add783, %add365              ; <i64> [#uses=1]
255         %add821 = add i64 0, %add783            ; <i64> [#uses=1]
256         store i32 undef, ptr undef
257         %add1046 = add i64 undef, undef         ; <i64> [#uses=1]
258         %add1160 = add i64 undef, undef         ; <i64> [#uses=1]
259         store i32 0, ptr undef
260         %add1235 = add i64 0, %add818           ; <i64> [#uses=1]
261         %add1238 = add i64 %add1235, 0          ; <i64> [#uses=1]
262         %add1239 = add i64 %add1238, 0          ; <i64> [#uses=1]
263         br label %for.cond
265 for.cond:               ; preds = %for.body, %while.body
266         %h.0 = phi i64 [ undef, %while.body ], [ %add2035, %for.body ]          ; <i64> [#uses=1]
267         %g.0 = phi i64 [ %add1046, %while.body ], [ undef, %for.body ]          ; <i64> [#uses=1]
268         %f.0 = phi i64 [ %add1160, %while.body ], [ undef, %for.body ]          ; <i64> [#uses=1]
269         %add821.pn = phi i64 [ %add821, %while.body ], [ undef, %for.body ]             ; <i64> [#uses=0]
270         %add1239.pn2648 = phi i64 [ %add1239, %while.body ], [ undef, %for.body ]               ; <i64> [#uses=0]
271         %d.0 = phi i64 [ undef, %while.body ], [ %add2038, %for.body ]          ; <i64> [#uses=2]
272         br i1 undef, label %for.end, label %for.body
274 for.body:               ; preds = %for.cond
275         %conv1390 = zext i32 undef to i64               ; <i64> [#uses=1]
276         %add1375 = add i64 0, %h.0              ; <i64> [#uses=1]
277         %add1384 = add i64 %add1375, 0          ; <i64> [#uses=1]
278         %add1391 = add i64 %add1384, %conv1390          ; <i64> [#uses=1]
279         %add1392 = add i64 %add1391, 0          ; <i64> [#uses=2]
280         %or1411 = or i64 0, undef               ; <i64> [#uses=1]
281         %xor1405 = xor i64 0, %or1411           ; <i64> [#uses=1]
282         %xor1412 = xor i64 %xor1405, 0          ; <i64> [#uses=1]
283         %add1427 = add i64 %add1392, %d.0               ; <i64> [#uses=1]
284         %add1424 = add i64 %xor1412, 0          ; <i64> [#uses=1]
285         %add1430 = add i64 %add1424, %add1392           ; <i64> [#uses=5]
286         %tmp1438 = load i32, ptr undef          ; <i32> [#uses=1]
287         %conv1439 = zext i32 %tmp1438 to i64            ; <i64> [#uses=4]
288         %shl1441 = shl i64 %conv1439, 25                ; <i64> [#uses=1]
289         %shr1444 = lshr i64 %conv1439, 7                ; <i64> [#uses=1]
290         %or1445 = or i64 %shl1441, %shr1444             ; <i64> [#uses=1]
291         %shr1450 = lshr i64 %conv1439, 18               ; <i64> [#uses=1]
292         %or1451 = or i64 0, %shr1450            ; <i64> [#uses=1]
293         %shr1454 = lshr i64 %conv1439, 3                ; <i64> [#uses=1]
294         %xor1452 = xor i64 %or1451, %shr1454            ; <i64> [#uses=1]
295         %xor1455 = xor i64 %xor1452, %or1445            ; <i64> [#uses=1]
296         %conv1464 = zext i32 undef to i64               ; <i64> [#uses=4]
297         %shl1466 = shl i64 %conv1464, 15                ; <i64> [#uses=1]
298         %shr1469 = lshr i64 %conv1464, 17               ; <i64> [#uses=1]
299         %or1470 = or i64 %shl1466, %shr1469             ; <i64> [#uses=1]
300         %shr1475 = lshr i64 %conv1464, 19               ; <i64> [#uses=1]
301         %or1476 = or i64 0, %shr1475            ; <i64> [#uses=1]
302         %shr1479 = lshr i64 %conv1464, 10               ; <i64> [#uses=1]
303         %xor1477 = xor i64 %or1476, %shr1479            ; <i64> [#uses=1]
304         %xor1480 = xor i64 %xor1477, %or1470            ; <i64> [#uses=1]
305         %tmp1499 = load i32, ptr null           ; <i32> [#uses=1]
306         %conv1500 = zext i32 %tmp1499 to i64            ; <i64> [#uses=1]
307         %add1491 = add i64 %conv1500, 0         ; <i64> [#uses=1]
308         %add1501 = add i64 %add1491, %xor1455           ; <i64> [#uses=1]
309         %add1502 = add i64 %add1501, %xor1480           ; <i64> [#uses=1]
310         %conv1504 = and i64 %add1502, 4294967295                ; <i64> [#uses=1]
311         %tmp1541 = load i32, ptr undef          ; <i32> [#uses=1]
312         %conv1542 = zext i32 %tmp1541 to i64            ; <i64> [#uses=1]
313         %add1527 = add i64 %conv1542, %g.0              ; <i64> [#uses=1]
314         %add1536 = add i64 %add1527, 0          ; <i64> [#uses=1]
315         %add1543 = add i64 %add1536, %conv1504          ; <i64> [#uses=1]
316         %add1544 = add i64 %add1543, 0          ; <i64> [#uses=1]
317         %shl1546 = shl i64 %add1430, 30         ; <i64> [#uses=1]
318         %and1548 = lshr i64 %add1430, 2         ; <i64> [#uses=1]
319         %shr1549 = and i64 %and1548, 1073741823         ; <i64> [#uses=1]
320         %or1550 = or i64 %shr1549, %shl1546             ; <i64> [#uses=1]
321         %shl1552 = shl i64 %add1430, 19         ; <i64> [#uses=1]
322         %or1556 = or i64 0, %shl1552            ; <i64> [#uses=1]
323         %shl1559 = shl i64 %add1430, 10         ; <i64> [#uses=1]
324         %or1563 = or i64 0, %shl1559            ; <i64> [#uses=1]
325         %xor1557 = xor i64 %or1556, %or1563             ; <i64> [#uses=1]
326         %xor1564 = xor i64 %xor1557, %or1550            ; <i64> [#uses=1]
327         %add1576 = add i64 %xor1564, 0          ; <i64> [#uses=1]
328         %add1582 = add i64 %add1576, %add1544           ; <i64> [#uses=3]
329         store i32 undef, ptr undef
330         %tmp1693 = load i32, ptr undef          ; <i32> [#uses=1]
331         %conv1694 = zext i32 %tmp1693 to i64            ; <i64> [#uses=1]
332         %add1679 = add i64 %conv1694, %f.0              ; <i64> [#uses=1]
333         %add1688 = add i64 %add1679, 0          ; <i64> [#uses=1]
334         %add1695 = add i64 %add1688, 0          ; <i64> [#uses=1]
335         %add1696 = add i64 %add1695, 0          ; <i64> [#uses=1]
336         %shl1698 = shl i64 %add1582, 30         ; <i64> [#uses=0]
337         %shl1704 = shl i64 %add1582, 19         ; <i64> [#uses=0]
338         %add1734 = add i64 0, %add1696          ; <i64> [#uses=1]
339         %add1983 = add i64 0, %add1427          ; <i64> [#uses=1]
340         %add1992 = add i64 %add1983, 0          ; <i64> [#uses=1]
341         %add1999 = add i64 %add1992, 0          ; <i64> [#uses=1]
342         %add2000 = add i64 %add1999, 0          ; <i64> [#uses=2]
343         %and2030 = and i64 %add1734, %add1582           ; <i64> [#uses=1]
344         %xor2031 = xor i64 0, %and2030          ; <i64> [#uses=1]
345         %add2035 = add i64 %add2000, %add1430           ; <i64> [#uses=1]
346         %add2032 = add i64 0, %xor2031          ; <i64> [#uses=1]
347         %add2038 = add i64 %add2032, %add2000           ; <i64> [#uses=1]
348         store i32 0, ptr undef
349         br label %for.cond
351 for.end:                ; preds = %for.cond
352         store i32 undef, ptr %arrayidx5
353         store i32 undef, ptr %arrayidx9
354         %d.02641 = trunc i64 %d.0 to i32                ; <i32> [#uses=1]
355         %conv2524 = add i32 %tmp14, %d.02641            ; <i32> [#uses=1]
356         store i32 %conv2524, ptr %arrayidx13
357         %exitcond2789 = icmp eq i64 undef, %num         ; <i1> [#uses=1]
358         br i1 %exitcond2789, label %while.end, label %while.body
360 while.end:              ; preds = %for.end, %entry
361         ret void