]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/Transforms/SLPVectorizer/X86/crash_smallpt.ll
Vendor import of llvm release_34 branch r197841 (effectively, 3.4 RC3):
[FreeBSD/FreeBSD.git] / test / Transforms / SLPVectorizer / X86 / crash_smallpt.ll
1 ; RUN: opt < %s -basicaa -slp-vectorizer -dce -S -mtriple=x86_64-apple-macosx10.8.0 -mcpu=corei7
2
3 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-n8:16:32:64-S128"
4 target triple = "x86_64-apple-macosx10.8.0"
5
6 %struct.Ray.5.11.53.113.119.137.149.185.329.389.416 = type { %struct.Vec.0.6.48.108.114.132.144.180.324.384.414, %struct.Vec.0.6.48.108.114.132.144.180.324.384.414 }
7 %struct.Vec.0.6.48.108.114.132.144.180.324.384.414 = type { double, double, double }
8
9 ; Function Attrs: ssp uwtable
10 define void @main() #0 {
11 entry:
12   br i1 undef, label %cond.true, label %cond.end
13
14 cond.true:                                        ; preds = %entry
15   unreachable
16
17 cond.end:                                         ; preds = %entry
18   br label %invoke.cont
19
20 invoke.cont:                                      ; preds = %invoke.cont, %cond.end
21   br i1 undef, label %arrayctor.cont, label %invoke.cont
22
23 arrayctor.cont:                                   ; preds = %invoke.cont
24   %agg.tmp99208.sroa.0.0.idx = getelementptr inbounds %struct.Ray.5.11.53.113.119.137.149.185.329.389.416* undef, i64 0, i32 0, i32 0
25   %agg.tmp99208.sroa.1.8.idx388 = getelementptr inbounds %struct.Ray.5.11.53.113.119.137.149.185.329.389.416* undef, i64 0, i32 0, i32 1
26   %agg.tmp101211.sroa.0.0.idx = getelementptr inbounds %struct.Ray.5.11.53.113.119.137.149.185.329.389.416* undef, i64 0, i32 1, i32 0
27   %agg.tmp101211.sroa.1.8.idx390 = getelementptr inbounds %struct.Ray.5.11.53.113.119.137.149.185.329.389.416* undef, i64 0, i32 1, i32 1
28   br label %for.cond36.preheader
29
30 for.cond36.preheader:                             ; preds = %_Z5clampd.exit.1, %arrayctor.cont
31   br i1 undef, label %for.body42.lr.ph.us, label %_Z5clampd.exit.1
32
33 cond.false51.us:                                  ; preds = %for.body42.lr.ph.us
34   unreachable
35
36 cond.true48.us:                                   ; preds = %for.body42.lr.ph.us
37   br i1 undef, label %cond.true63.us, label %cond.false66.us
38
39 cond.false66.us:                                  ; preds = %cond.true48.us
40   %add.i276.us = fadd double 0.000000e+00, undef
41   %add.i264.us = fadd double %add.i276.us, 0.000000e+00
42   %add4.i267.us = fadd double undef, 0xBFA5CC2D1960285F
43   %mul.i254.us = fmul double %add.i264.us, 1.400000e+02
44   %mul2.i256.us = fmul double %add4.i267.us, 1.400000e+02
45   %add.i243.us = fadd double %mul.i254.us, 5.000000e+01
46   %add4.i246.us = fadd double %mul2.i256.us, 5.200000e+01
47   %mul.i.i.us = fmul double undef, %add.i264.us
48   %mul2.i.i.us = fmul double undef, %add4.i267.us
49   store double %add.i243.us, double* %agg.tmp99208.sroa.0.0.idx, align 8
50   store double %add4.i246.us, double* %agg.tmp99208.sroa.1.8.idx388, align 8
51   store double %mul.i.i.us, double* %agg.tmp101211.sroa.0.0.idx, align 8
52   store double %mul2.i.i.us, double* %agg.tmp101211.sroa.1.8.idx390, align 8
53   unreachable
54
55 cond.true63.us:                                   ; preds = %cond.true48.us
56   unreachable
57
58 for.body42.lr.ph.us:                              ; preds = %for.cond36.preheader
59   br i1 undef, label %cond.true48.us, label %cond.false51.us
60
61 _Z5clampd.exit.1:                                 ; preds = %for.cond36.preheader
62   br label %for.cond36.preheader
63 }
64
65
66 %struct.Ray.5.11.53.95.137.191.197.203.239.257.263.269.275.281.287.293.383.437.443.455.461.599.601 = type { %struct.Vec.0.6.48.90.132.186.192.198.234.252.258.264.270.276.282.288.378.432.438.450.456.594.600, %struct.Vec.0.6.48.90.132.186.192.198.234.252.258.264.270.276.282.288.378.432.438.450.456.594.600 }
67 %struct.Vec.0.6.48.90.132.186.192.198.234.252.258.264.270.276.282.288.378.432.438.450.456.594.600 = type { double, double, double }
68
69 define void @_Z8radianceRK3RayiPt() #0 {
70 entry:
71   br i1 undef, label %if.then78, label %if.then38
72
73 if.then38:                                        ; preds = %entry
74   %mul.i.i790 = fmul double undef, undef
75   %mul3.i.i792 = fmul double undef, undef
76   %mul.i764 = fmul double undef, %mul3.i.i792
77   %mul4.i767 = fmul double undef, undef
78   %sub.i768 = fsub double %mul.i764, %mul4.i767
79   %mul6.i770 = fmul double undef, %mul.i.i790
80   %mul9.i772 = fmul double undef, %mul3.i.i792
81   %sub10.i773 = fsub double %mul6.i770, %mul9.i772
82   %mul.i736 = fmul double undef, %sub.i768
83   %mul2.i738 = fmul double undef, %sub10.i773
84   %mul.i727 = fmul double undef, %mul.i736
85   %mul2.i729 = fmul double undef, %mul2.i738
86   %add.i716 = fadd double undef, %mul.i727
87   %add4.i719 = fadd double undef, %mul2.i729
88   %add.i695 = fadd double undef, %add.i716
89   %add4.i698 = fadd double undef, %add4.i719
90   %mul.i.i679 = fmul double undef, %add.i695
91   %mul2.i.i680 = fmul double undef, %add4.i698
92   %agg.tmp74663.sroa.0.0.idx = getelementptr inbounds %struct.Ray.5.11.53.95.137.191.197.203.239.257.263.269.275.281.287.293.383.437.443.455.461.599.601* undef, i64 0, i32 1, i32 0
93   store double %mul.i.i679, double* %agg.tmp74663.sroa.0.0.idx, align 8
94   %agg.tmp74663.sroa.1.8.idx943 = getelementptr inbounds %struct.Ray.5.11.53.95.137.191.197.203.239.257.263.269.275.281.287.293.383.437.443.455.461.599.601* undef, i64 0, i32 1, i32 1
95   store double %mul2.i.i680, double* %agg.tmp74663.sroa.1.8.idx943, align 8
96   br label %return
97
98 if.then78:                                        ; preds = %entry
99   br label %return
100
101 return:                                           ; preds = %if.then78, %if.then38
102   ret void
103 }
104
105 attributes #0 = { ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }