Home | History | Annotate | Download | only in X86
      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" }
    106