crash_smallpt.ll 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. ; RUN: opt < %s -basicaa -slp-vectorizer -dce -S -mtriple=x86_64-apple-macosx10.8.0 -mcpu=corei7
  2. 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"
  3. target triple = "x86_64-apple-macosx10.8.0"
  4. %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 }
  5. %struct.Vec.0.6.48.108.114.132.144.180.324.384.414 = type { double, double, double }
  6. ; Function Attrs: ssp uwtable
  7. define void @main() #0 {
  8. entry:
  9. br i1 undef, label %cond.true, label %cond.end
  10. cond.true: ; preds = %entry
  11. unreachable
  12. cond.end: ; preds = %entry
  13. br label %invoke.cont
  14. invoke.cont: ; preds = %invoke.cont, %cond.end
  15. br i1 undef, label %arrayctor.cont, label %invoke.cont
  16. arrayctor.cont: ; preds = %invoke.cont
  17. %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
  18. %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
  19. %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
  20. %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
  21. br label %for.cond36.preheader
  22. for.cond36.preheader: ; preds = %_Z5clampd.exit.1, %arrayctor.cont
  23. br i1 undef, label %for.body42.lr.ph.us, label %_Z5clampd.exit.1
  24. cond.false51.us: ; preds = %for.body42.lr.ph.us
  25. unreachable
  26. cond.true48.us: ; preds = %for.body42.lr.ph.us
  27. br i1 undef, label %cond.true63.us, label %cond.false66.us
  28. cond.false66.us: ; preds = %cond.true48.us
  29. %add.i276.us = fadd double 0.000000e+00, undef
  30. %add.i264.us = fadd double %add.i276.us, 0.000000e+00
  31. %add4.i267.us = fadd double undef, 0xBFA5CC2D1960285F
  32. %mul.i254.us = fmul double %add.i264.us, 1.400000e+02
  33. %mul2.i256.us = fmul double %add4.i267.us, 1.400000e+02
  34. %add.i243.us = fadd double %mul.i254.us, 5.000000e+01
  35. %add4.i246.us = fadd double %mul2.i256.us, 5.200000e+01
  36. %mul.i.i.us = fmul double undef, %add.i264.us
  37. %mul2.i.i.us = fmul double undef, %add4.i267.us
  38. store double %add.i243.us, double* %agg.tmp99208.sroa.0.0.idx, align 8
  39. store double %add4.i246.us, double* %agg.tmp99208.sroa.1.8.idx388, align 8
  40. store double %mul.i.i.us, double* %agg.tmp101211.sroa.0.0.idx, align 8
  41. store double %mul2.i.i.us, double* %agg.tmp101211.sroa.1.8.idx390, align 8
  42. unreachable
  43. cond.true63.us: ; preds = %cond.true48.us
  44. unreachable
  45. for.body42.lr.ph.us: ; preds = %for.cond36.preheader
  46. br i1 undef, label %cond.true48.us, label %cond.false51.us
  47. _Z5clampd.exit.1: ; preds = %for.cond36.preheader
  48. br label %for.cond36.preheader
  49. }
  50. %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 }
  51. %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 }
  52. define void @_Z8radianceRK3RayiPt() #0 {
  53. entry:
  54. br i1 undef, label %if.then78, label %if.then38
  55. if.then38: ; preds = %entry
  56. %mul.i.i790 = fmul double undef, undef
  57. %mul3.i.i792 = fmul double undef, undef
  58. %mul.i764 = fmul double undef, %mul3.i.i792
  59. %mul4.i767 = fmul double undef, undef
  60. %sub.i768 = fsub double %mul.i764, %mul4.i767
  61. %mul6.i770 = fmul double undef, %mul.i.i790
  62. %mul9.i772 = fmul double undef, %mul3.i.i792
  63. %sub10.i773 = fsub double %mul6.i770, %mul9.i772
  64. %mul.i736 = fmul double undef, %sub.i768
  65. %mul2.i738 = fmul double undef, %sub10.i773
  66. %mul.i727 = fmul double undef, %mul.i736
  67. %mul2.i729 = fmul double undef, %mul2.i738
  68. %add.i716 = fadd double undef, %mul.i727
  69. %add4.i719 = fadd double undef, %mul2.i729
  70. %add.i695 = fadd double undef, %add.i716
  71. %add4.i698 = fadd double undef, %add4.i719
  72. %mul.i.i679 = fmul double undef, %add.i695
  73. %mul2.i.i680 = fmul double undef, %add4.i698
  74. %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
  75. store double %mul.i.i679, double* %agg.tmp74663.sroa.0.0.idx, align 8
  76. %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
  77. store double %mul2.i.i680, double* %agg.tmp74663.sroa.1.8.idx943, align 8
  78. br label %return
  79. if.then78: ; preds = %entry
  80. br label %return
  81. return: ; preds = %if.then78, %if.then38
  82. ret void
  83. }
  84. 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" }