1; RUN: opt < %s -basicaa -slp-vectorizer -dce -S -mtriple=x86_64-apple-macosx10.8.0 -mcpu=corei7 2 3target 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" 4target 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 10define void @main() #0 { 11entry: 12 br i1 undef, label %cond.true, label %cond.end 13 14cond.true: ; preds = %entry 15 unreachable 16 17cond.end: ; preds = %entry 18 br label %invoke.cont 19 20invoke.cont: ; preds = %invoke.cont, %cond.end 21 br i1 undef, label %arrayctor.cont, label %invoke.cont 22 23arrayctor.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, %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, %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, %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, %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 30for.cond36.preheader: ; preds = %_Z5clampd.exit.1, %arrayctor.cont 31 br i1 undef, label %for.body42.lr.ph.us, label %_Z5clampd.exit.1 32 33cond.false51.us: ; preds = %for.body42.lr.ph.us 34 unreachable 35 36cond.true48.us: ; preds = %for.body42.lr.ph.us 37 br i1 undef, label %cond.true63.us, label %cond.false66.us 38 39cond.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 55cond.true63.us: ; preds = %cond.true48.us 56 unreachable 57 58for.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 69define void @_Z8radianceRK3RayiPt() #0 { 70entry: 71 br i1 undef, label %if.then78, label %if.then38 72 73if.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, %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, %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 98if.then78: ; preds = %entry 99 br label %return 100 101return: ; preds = %if.then78, %if.then38 102 ret void 103} 104 105attributes #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