• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; This is a smoke test for floating-point constant pooling.  It tests
2; pooling of various float and double constants (including positive
3; and negative NaN) within functions and across functions.  Note that
4; in LLVM bitcode, hex constants are used for an FP constant whenever
5; the constant "cannot be represented as a decimal floating point
6; number in a reasonable number of digits".  See
7; http://llvm.org/docs/LangRef.html#simple-constants .
8
9; RUN: %p2i --assemble --disassemble --filetype=obj --dis-flags=-s \
10; RUN:   -i %s --args -O2 --verbose none -allow-externally-defined-symbols \
11; RUN:   | FileCheck %s
12; RUN: %p2i --assemble --disassemble --filetype=obj --dis-flags=-s \
13; RUN:   -i %s --args -Om1 --verbose none -allow-externally-defined-symbols \
14; RUN:   | FileCheck %s
15
16; RUN: %if --need allow_dump --command %p2i --assemble --disassemble \
17; RUN:   --dis-flags=-s -i %s --args -O2 --verbose none \
18; RUN:  -allow-externally-defined-symbols \
19; RUN:  | %if --need allow_dump --command FileCheck %s
20; RUN: %if --need allow_dump --command %p2i --assemble --disassemble \
21; RUN:   --dis-flags=-s -i %s --args -Om1 --verbose none \
22; RUN:  -allow-externally-defined-symbols \
23; RUN:  | %if --need allow_dump --command FileCheck %s
24
25@__init_array_start = internal constant [0 x i8] zeroinitializer, align 4
26@__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4
27@__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8
28@__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4
29
30define internal float @FpLookup1(i32 %Arg) {
31entry:
32  switch i32 %Arg, label %return [
33    i32 0, label %sw.bb
34    i32 1, label %sw.bb1
35    i32 2, label %sw.bb4
36    i32 3, label %sw.bb7
37    i32 -1, label %sw.bb10
38    i32 -2, label %sw.bb14
39    i32 -3, label %sw.bb19
40    i32 10, label %sw.bb24
41    i32 -10, label %sw.bb27
42    i32 100, label %sw.bb30
43    i32 101, label %sw.bb33
44    i32 102, label %sw.bb36
45    i32 103, label %sw.bb39
46    i32 -101, label %sw.bb42
47    i32 -102, label %sw.bb47
48    i32 -103, label %sw.bb52
49    i32 110, label %sw.bb57
50    i32 -110, label %sw.bb60
51  ]
52
53sw.bb:                                            ; preds = %entry
54  %call = call float @Dummy(i32 0)
55  %add = fadd float %call, 1.000000e+00
56  br label %return
57
58sw.bb1:                                           ; preds = %entry
59  %call2 = call float @Dummy(i32 1)
60  %add3 = fadd float %call2, 2.000000e+00
61  br label %return
62
63sw.bb4:                                           ; preds = %entry
64  %call5 = call float @Dummy(i32 2)
65  %add6 = fadd float %call5, 4.000000e+00
66  br label %return
67
68sw.bb7:                                           ; preds = %entry
69  %call8 = call float @Dummy(i32 3)
70  %add9 = fadd float %call8, 8.000000e+00
71  br label %return
72
73sw.bb10:                                          ; preds = %entry
74  %call11 = call float @Dummy(i32 -1)
75  %conv13 = fadd float %call11, 5.000000e-01
76  br label %return
77
78sw.bb14:                                          ; preds = %entry
79  %call15 = call float @Dummy(i32 -2)
80  %conv16 = fpext float %call15 to double
81  %add17 = fadd double %conv16, 0x3FD5555555555555
82  %conv18 = fptrunc double %add17 to float
83  br label %return
84
85sw.bb19:                                          ; preds = %entry
86  %call20 = call float @Dummy(i32 -3)
87  %conv23 = fadd float %call20, 2.500000e-01
88  br label %return
89
90sw.bb24:                                          ; preds = %entry
91  %call25 = call float @Dummy(i32 10)
92  %add26 = fadd float %call25, 0x7FF8000000000000
93  br label %return
94
95sw.bb27:                                          ; preds = %entry
96  %call28 = call float @Dummy(i32 -10)
97  %add29 = fadd float %call28, 0xFFF8000000000000
98  br label %return
99
100sw.bb30:                                          ; preds = %entry
101  %call31 = call float @Dummy(i32 100)
102  %add32 = fadd float %call31, 1.000000e+00
103  br label %return
104
105sw.bb33:                                          ; preds = %entry
106  %call34 = call float @Dummy(i32 101)
107  %add35 = fadd float %call34, 2.000000e+00
108  br label %return
109
110sw.bb36:                                          ; preds = %entry
111  %call37 = call float @Dummy(i32 102)
112  %add38 = fadd float %call37, 4.000000e+00
113  br label %return
114
115sw.bb39:                                          ; preds = %entry
116  %call40 = call float @Dummy(i32 103)
117  %add41 = fadd float %call40, 8.000000e+00
118  br label %return
119
120sw.bb42:                                          ; preds = %entry
121  %call43 = call float @Dummy(i32 -101)
122  %conv46 = fadd float %call43, 5.000000e-01
123  br label %return
124
125sw.bb47:                                          ; preds = %entry
126  %call48 = call float @Dummy(i32 -102)
127  %conv49 = fpext float %call48 to double
128  %add50 = fadd double %conv49, 0x3FD5555555555555
129  %conv51 = fptrunc double %add50 to float
130  br label %return
131
132sw.bb52:                                          ; preds = %entry
133  %call53 = call float @Dummy(i32 -103)
134  %conv56 = fadd float %call53, 2.500000e-01
135  br label %return
136
137sw.bb57:                                          ; preds = %entry
138  %call58 = call float @Dummy(i32 110)
139  %add59 = fadd float %call58, 0x7FF8000000000000
140  br label %return
141
142sw.bb60:                                          ; preds = %entry
143  %call61 = call float @Dummy(i32 -110)
144  %add62 = fadd float %call61, 0xFFF8000000000000
145  br label %return
146
147return:                                           ; preds = %entry, %sw.bb60, %sw.bb57, %sw.bb52, %sw.bb47, %sw.bb42, %sw.bb39, %sw.bb36, %sw.bb33, %sw.bb30, %sw.bb27, %sw.bb24, %sw.bb19, %sw.bb14, %sw.bb10, %sw.bb7, %sw.bb4, %sw.bb1, %sw.bb
148  %retval.0 = phi float [ %add62, %sw.bb60 ], [ %add59, %sw.bb57 ], [ %conv56, %sw.bb52 ], [ %conv51, %sw.bb47 ], [ %conv46, %sw.bb42 ], [ %add41, %sw.bb39 ], [ %add38, %sw.bb36 ], [ %add35, %sw.bb33 ], [ %add32, %sw.bb30 ], [ %add29, %sw.bb27 ], [ %add26, %sw.bb24 ], [ %conv23, %sw.bb19 ], [ %conv18, %sw.bb14 ], [ %conv13, %sw.bb10 ], [ %add9, %sw.bb7 ], [ %add6, %sw.bb4 ], [ %add3, %sw.bb1 ], [ %add, %sw.bb ], [ 0.000000e+00, %entry ]
149  ret float %retval.0
150}
151
152declare float @Dummy(i32)
153
154define internal float @FpLookup2(i32 %Arg) {
155entry:
156  switch i32 %Arg, label %return [
157    i32 0, label %sw.bb
158    i32 1, label %sw.bb1
159    i32 2, label %sw.bb4
160    i32 3, label %sw.bb7
161    i32 -1, label %sw.bb10
162    i32 -2, label %sw.bb14
163    i32 -3, label %sw.bb19
164    i32 10, label %sw.bb24
165    i32 -10, label %sw.bb27
166    i32 100, label %sw.bb30
167    i32 101, label %sw.bb33
168    i32 102, label %sw.bb36
169    i32 103, label %sw.bb39
170    i32 -101, label %sw.bb42
171    i32 -102, label %sw.bb47
172    i32 -103, label %sw.bb52
173    i32 110, label %sw.bb57
174    i32 -110, label %sw.bb60
175  ]
176
177sw.bb:                                            ; preds = %entry
178  %call = call float @Dummy(i32 0)
179  %add = fadd float %call, 1.000000e+00
180  br label %return
181
182sw.bb1:                                           ; preds = %entry
183  %call2 = call float @Dummy(i32 1)
184  %add3 = fadd float %call2, 2.000000e+00
185  br label %return
186
187sw.bb4:                                           ; preds = %entry
188  %call5 = call float @Dummy(i32 2)
189  %add6 = fadd float %call5, 4.000000e+00
190  br label %return
191
192sw.bb7:                                           ; preds = %entry
193  %call8 = call float @Dummy(i32 3)
194  %add9 = fadd float %call8, 8.000000e+00
195  br label %return
196
197sw.bb10:                                          ; preds = %entry
198  %call11 = call float @Dummy(i32 -1)
199  %conv13 = fadd float %call11, 5.000000e-01
200  br label %return
201
202sw.bb14:                                          ; preds = %entry
203  %call15 = call float @Dummy(i32 -2)
204  %conv16 = fpext float %call15 to double
205  %add17 = fadd double %conv16, 0x3FD5555555555555
206  %conv18 = fptrunc double %add17 to float
207  br label %return
208
209sw.bb19:                                          ; preds = %entry
210  %call20 = call float @Dummy(i32 -3)
211  %conv23 = fadd float %call20, 2.500000e-01
212  br label %return
213
214sw.bb24:                                          ; preds = %entry
215  %call25 = call float @Dummy(i32 10)
216  %add26 = fadd float %call25, 0x7FF8000000000000
217  br label %return
218
219sw.bb27:                                          ; preds = %entry
220  %call28 = call float @Dummy(i32 -10)
221  %add29 = fadd float %call28, 0xFFF8000000000000
222  br label %return
223
224sw.bb30:                                          ; preds = %entry
225  %call31 = call float @Dummy(i32 100)
226  %add32 = fadd float %call31, 1.000000e+00
227  br label %return
228
229sw.bb33:                                          ; preds = %entry
230  %call34 = call float @Dummy(i32 101)
231  %add35 = fadd float %call34, 2.000000e+00
232  br label %return
233
234sw.bb36:                                          ; preds = %entry
235  %call37 = call float @Dummy(i32 102)
236  %add38 = fadd float %call37, 4.000000e+00
237  br label %return
238
239sw.bb39:                                          ; preds = %entry
240  %call40 = call float @Dummy(i32 103)
241  %add41 = fadd float %call40, 8.000000e+00
242  br label %return
243
244sw.bb42:                                          ; preds = %entry
245  %call43 = call float @Dummy(i32 -101)
246  %conv46 = fadd float %call43, 5.000000e-01
247  br label %return
248
249sw.bb47:                                          ; preds = %entry
250  %call48 = call float @Dummy(i32 -102)
251  %conv49 = fpext float %call48 to double
252  %add50 = fadd double %conv49, 0x3FD5555555555555
253  %conv51 = fptrunc double %add50 to float
254  br label %return
255
256sw.bb52:                                          ; preds = %entry
257  %call53 = call float @Dummy(i32 -103)
258  %conv56 = fadd float %call53, 2.500000e-01
259  br label %return
260
261sw.bb57:                                          ; preds = %entry
262  %call58 = call float @Dummy(i32 110)
263  %add59 = fadd float %call58, 0x7FF8000000000000
264  br label %return
265
266sw.bb60:                                          ; preds = %entry
267  %call61 = call float @Dummy(i32 -110)
268  %add62 = fadd float %call61, 0xFFF8000000000000
269  br label %return
270
271return:                                           ; preds = %entry, %sw.bb60, %sw.bb57, %sw.bb52, %sw.bb47, %sw.bb42, %sw.bb39, %sw.bb36, %sw.bb33, %sw.bb30, %sw.bb27, %sw.bb24, %sw.bb19, %sw.bb14, %sw.bb10, %sw.bb7, %sw.bb4, %sw.bb1, %sw.bb
272  %retval.0 = phi float [ %add62, %sw.bb60 ], [ %add59, %sw.bb57 ], [ %conv56, %sw.bb52 ], [ %conv51, %sw.bb47 ], [ %conv46, %sw.bb42 ], [ %add41, %sw.bb39 ], [ %add38, %sw.bb36 ], [ %add35, %sw.bb33 ], [ %add32, %sw.bb30 ], [ %add29, %sw.bb27 ], [ %add26, %sw.bb24 ], [ %conv23, %sw.bb19 ], [ %conv18, %sw.bb14 ], [ %conv13, %sw.bb10 ], [ %add9, %sw.bb7 ], [ %add6, %sw.bb4 ], [ %add3, %sw.bb1 ], [ %add, %sw.bb ], [ 0.000000e+00, %entry ]
273  ret float %retval.0
274}
275
276define internal double @FpLookup3(i32 %Arg) {
277entry:
278  switch i32 %Arg, label %return [
279    i32 0, label %sw.bb
280    i32 1, label %sw.bb1
281    i32 2, label %sw.bb5
282    i32 3, label %sw.bb9
283    i32 -1, label %sw.bb13
284    i32 -2, label %sw.bb17
285    i32 -3, label %sw.bb21
286    i32 10, label %sw.bb25
287    i32 -10, label %sw.bb29
288    i32 100, label %sw.bb33
289    i32 101, label %sw.bb37
290    i32 102, label %sw.bb41
291    i32 103, label %sw.bb45
292    i32 -101, label %sw.bb49
293    i32 -102, label %sw.bb53
294    i32 -103, label %sw.bb57
295    i32 110, label %sw.bb61
296    i32 -110, label %sw.bb65
297  ]
298
299sw.bb:                                            ; preds = %entry
300  %call = call float @Dummy(i32 0)
301  %add = fadd float %call, 1.000000e+00
302  %conv = fpext float %add to double
303  br label %return
304
305sw.bb1:                                           ; preds = %entry
306  %call2 = call float @Dummy(i32 1)
307  %add3 = fadd float %call2, 2.000000e+00
308  %conv4 = fpext float %add3 to double
309  br label %return
310
311sw.bb5:                                           ; preds = %entry
312  %call6 = call float @Dummy(i32 2)
313  %add7 = fadd float %call6, 4.000000e+00
314  %conv8 = fpext float %add7 to double
315  br label %return
316
317sw.bb9:                                           ; preds = %entry
318  %call10 = call float @Dummy(i32 3)
319  %add11 = fadd float %call10, 8.000000e+00
320  %conv12 = fpext float %add11 to double
321  br label %return
322
323sw.bb13:                                          ; preds = %entry
324  %call14 = call float @Dummy(i32 -1)
325  %conv15 = fpext float %call14 to double
326  %add16 = fadd double %conv15, 5.000000e-01
327  br label %return
328
329sw.bb17:                                          ; preds = %entry
330  %call18 = call float @Dummy(i32 -2)
331  %conv19 = fpext float %call18 to double
332  %add20 = fadd double %conv19, 0x3FD5555555555555
333  br label %return
334
335sw.bb21:                                          ; preds = %entry
336  %call22 = call float @Dummy(i32 -3)
337  %conv23 = fpext float %call22 to double
338  %add24 = fadd double %conv23, 2.500000e-01
339  br label %return
340
341sw.bb25:                                          ; preds = %entry
342  %call26 = call float @Dummy(i32 10)
343  %conv27 = fpext float %call26 to double
344  %add28 = fadd double %conv27, 0x7FF8000000000000
345  br label %return
346
347sw.bb29:                                          ; preds = %entry
348  %call30 = call float @Dummy(i32 -10)
349  %conv31 = fpext float %call30 to double
350  %add32 = fadd double %conv31, 0xFFF8000000000000
351  br label %return
352
353sw.bb33:                                          ; preds = %entry
354  %call34 = call float @Dummy(i32 100)
355  %add35 = fadd float %call34, 1.000000e+00
356  %conv36 = fpext float %add35 to double
357  br label %return
358
359sw.bb37:                                          ; preds = %entry
360  %call38 = call float @Dummy(i32 101)
361  %add39 = fadd float %call38, 2.000000e+00
362  %conv40 = fpext float %add39 to double
363  br label %return
364
365sw.bb41:                                          ; preds = %entry
366  %call42 = call float @Dummy(i32 102)
367  %add43 = fadd float %call42, 4.000000e+00
368  %conv44 = fpext float %add43 to double
369  br label %return
370
371sw.bb45:                                          ; preds = %entry
372  %call46 = call float @Dummy(i32 103)
373  %add47 = fadd float %call46, 8.000000e+00
374  %conv48 = fpext float %add47 to double
375  br label %return
376
377sw.bb49:                                          ; preds = %entry
378  %call50 = call float @Dummy(i32 -101)
379  %conv51 = fpext float %call50 to double
380  %add52 = fadd double %conv51, 5.000000e-01
381  br label %return
382
383sw.bb53:                                          ; preds = %entry
384  %call54 = call float @Dummy(i32 -102)
385  %conv55 = fpext float %call54 to double
386  %add56 = fadd double %conv55, 0x3FD5555555555555
387  br label %return
388
389sw.bb57:                                          ; preds = %entry
390  %call58 = call float @Dummy(i32 -103)
391  %conv59 = fpext float %call58 to double
392  %add60 = fadd double %conv59, 2.500000e-01
393  br label %return
394
395sw.bb61:                                          ; preds = %entry
396  %call62 = call float @Dummy(i32 110)
397  %conv63 = fpext float %call62 to double
398  %add64 = fadd double %conv63, 0x7FF8000000000000
399  br label %return
400
401sw.bb65:                                          ; preds = %entry
402  %call66 = call float @Dummy(i32 -110)
403  %conv67 = fpext float %call66 to double
404  %add68 = fadd double %conv67, 0xFFF8000000000000
405  br label %return
406
407return:                                           ; preds = %entry, %sw.bb65, %sw.bb61, %sw.bb57, %sw.bb53, %sw.bb49, %sw.bb45, %sw.bb41, %sw.bb37, %sw.bb33, %sw.bb29, %sw.bb25, %sw.bb21, %sw.bb17, %sw.bb13, %sw.bb9, %sw.bb5, %sw.bb1, %sw.bb
408  %retval.0 = phi double [ %add68, %sw.bb65 ], [ %add64, %sw.bb61 ], [ %add60, %sw.bb57 ], [ %add56, %sw.bb53 ], [ %add52, %sw.bb49 ], [ %conv48, %sw.bb45 ], [ %conv44, %sw.bb41 ], [ %conv40, %sw.bb37 ], [ %conv36, %sw.bb33 ], [ %add32, %sw.bb29 ], [ %add28, %sw.bb25 ], [ %add24, %sw.bb21 ], [ %add20, %sw.bb17 ], [ %add16, %sw.bb13 ], [ %conv12, %sw.bb9 ], [ %conv8, %sw.bb5 ], [ %conv4, %sw.bb1 ], [ %conv, %sw.bb ], [ 0.000000e+00, %entry ]
409  ret double %retval.0
410}
411
412define internal double @FpLookup4(i32 %Arg) {
413entry:
414  switch i32 %Arg, label %return [
415    i32 0, label %sw.bb
416    i32 1, label %sw.bb1
417    i32 2, label %sw.bb5
418    i32 3, label %sw.bb9
419    i32 -1, label %sw.bb13
420    i32 -2, label %sw.bb17
421    i32 -3, label %sw.bb21
422    i32 10, label %sw.bb25
423    i32 -10, label %sw.bb29
424    i32 100, label %sw.bb33
425    i32 101, label %sw.bb37
426    i32 102, label %sw.bb41
427    i32 103, label %sw.bb45
428    i32 -101, label %sw.bb49
429    i32 -102, label %sw.bb53
430    i32 -103, label %sw.bb57
431    i32 110, label %sw.bb61
432    i32 -110, label %sw.bb65
433  ]
434
435sw.bb:                                            ; preds = %entry
436  %call = call float @Dummy(i32 0)
437  %add = fadd float %call, 1.000000e+00
438  %conv = fpext float %add to double
439  br label %return
440
441sw.bb1:                                           ; preds = %entry
442  %call2 = call float @Dummy(i32 1)
443  %add3 = fadd float %call2, 2.000000e+00
444  %conv4 = fpext float %add3 to double
445  br label %return
446
447sw.bb5:                                           ; preds = %entry
448  %call6 = call float @Dummy(i32 2)
449  %add7 = fadd float %call6, 4.000000e+00
450  %conv8 = fpext float %add7 to double
451  br label %return
452
453sw.bb9:                                           ; preds = %entry
454  %call10 = call float @Dummy(i32 3)
455  %add11 = fadd float %call10, 8.000000e+00
456  %conv12 = fpext float %add11 to double
457  br label %return
458
459sw.bb13:                                          ; preds = %entry
460  %call14 = call float @Dummy(i32 -1)
461  %conv15 = fpext float %call14 to double
462  %add16 = fadd double %conv15, 5.000000e-01
463  br label %return
464
465sw.bb17:                                          ; preds = %entry
466  %call18 = call float @Dummy(i32 -2)
467  %conv19 = fpext float %call18 to double
468  %add20 = fadd double %conv19, 0x3FD5555555555555
469  br label %return
470
471sw.bb21:                                          ; preds = %entry
472  %call22 = call float @Dummy(i32 -3)
473  %conv23 = fpext float %call22 to double
474  %add24 = fadd double %conv23, 2.500000e-01
475  br label %return
476
477sw.bb25:                                          ; preds = %entry
478  %call26 = call float @Dummy(i32 10)
479  %conv27 = fpext float %call26 to double
480  %add28 = fadd double %conv27, 0x7FF8000000000000
481  br label %return
482
483sw.bb29:                                          ; preds = %entry
484  %call30 = call float @Dummy(i32 -10)
485  %conv31 = fpext float %call30 to double
486  %add32 = fadd double %conv31, 0xFFF8000000000000
487  br label %return
488
489sw.bb33:                                          ; preds = %entry
490  %call34 = call float @Dummy(i32 100)
491  %add35 = fadd float %call34, 1.000000e+00
492  %conv36 = fpext float %add35 to double
493  br label %return
494
495sw.bb37:                                          ; preds = %entry
496  %call38 = call float @Dummy(i32 101)
497  %add39 = fadd float %call38, 2.000000e+00
498  %conv40 = fpext float %add39 to double
499  br label %return
500
501sw.bb41:                                          ; preds = %entry
502  %call42 = call float @Dummy(i32 102)
503  %add43 = fadd float %call42, 4.000000e+00
504  %conv44 = fpext float %add43 to double
505  br label %return
506
507sw.bb45:                                          ; preds = %entry
508  %call46 = call float @Dummy(i32 103)
509  %add47 = fadd float %call46, 8.000000e+00
510  %conv48 = fpext float %add47 to double
511  br label %return
512
513sw.bb49:                                          ; preds = %entry
514  %call50 = call float @Dummy(i32 -101)
515  %conv51 = fpext float %call50 to double
516  %add52 = fadd double %conv51, 5.000000e-01
517  br label %return
518
519sw.bb53:                                          ; preds = %entry
520  %call54 = call float @Dummy(i32 -102)
521  %conv55 = fpext float %call54 to double
522  %add56 = fadd double %conv55, 0x3FD5555555555555
523  br label %return
524
525sw.bb57:                                          ; preds = %entry
526  %call58 = call float @Dummy(i32 -103)
527  %conv59 = fpext float %call58 to double
528  %add60 = fadd double %conv59, 2.500000e-01
529  br label %return
530
531sw.bb61:                                          ; preds = %entry
532  %call62 = call float @Dummy(i32 110)
533  %conv63 = fpext float %call62 to double
534  %add64 = fadd double %conv63, 0x7FF8000000000000
535  br label %return
536
537sw.bb65:                                          ; preds = %entry
538  %call66 = call float @Dummy(i32 -110)
539  %conv67 = fpext float %call66 to double
540  %add68 = fadd double %conv67, 0xFFF8000000000000
541  br label %return
542
543return:                                           ; preds = %entry, %sw.bb65, %sw.bb61, %sw.bb57, %sw.bb53, %sw.bb49, %sw.bb45, %sw.bb41, %sw.bb37, %sw.bb33, %sw.bb29, %sw.bb25, %sw.bb21, %sw.bb17, %sw.bb13, %sw.bb9, %sw.bb5, %sw.bb1, %sw.bb
544  %retval.0 = phi double [ %add68, %sw.bb65 ], [ %add64, %sw.bb61 ], [ %add60, %sw.bb57 ], [ %add56, %sw.bb53 ], [ %add52, %sw.bb49 ], [ %conv48, %sw.bb45 ], [ %conv44, %sw.bb41 ], [ %conv40, %sw.bb37 ], [ %conv36, %sw.bb33 ], [ %add32, %sw.bb29 ], [ %add28, %sw.bb25 ], [ %add24, %sw.bb21 ], [ %add20, %sw.bb17 ], [ %add16, %sw.bb13 ], [ %conv12, %sw.bb9 ], [ %conv8, %sw.bb5 ], [ %conv4, %sw.bb1 ], [ %conv, %sw.bb ], [ 0.000000e+00, %entry ]
545  ret double %retval.0
546}
547
548; The FP constant pool entries for each type are dumped in some
549; implementation-dependent order.  So for the purposes of lit, we just
550; pick one value for each type, and make sure it appears exactly once.
551
552; Check for float 0.5
553; CHECK-LABEL: .rodata.cst4
554; CHECK:     0000003f
555; CHECK-NOT: 0000003f
556
557; Check for double 0.5
558; CHECK-LABEL: .rodata.cst8
559; CHECK:     00000000 0000e03f
560; CHECK-NOT: 00000000 0000e03f
561; CHECK-LABEL: .text
562