Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.67 KB | None | 0 0
  1. ; ModuleID = 'linked.inlined.s'
  2. source_filename = "llvm-link"
  3. target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
  4. target triple = "x86_64-unknown-linux-gnu"
  5.  
  6. @__data_radiation_MOD_cobti = external global [168 x double], align 32
  7. @__data_radiation_MOD_cobi = external global [168 x double], align 32
  8. @__data_radiation_MOD_coali = external global [168 x double], align 32
  9.  
  10. ; Function Attrs: nounwind readnone
  11. declare double @exp(double) #0
  12.  
  13. ; Function Attrs: nounwind uwtable
  14. define void @__radiation_rg_MOD_coe_so([0 x double]* noalias %pduh2oc, [0 x double]* noalias %pduh2of, [0 x double]* noalias %pduco2, [0 x double]* noalias %pduo3, [0 x double]* noalias %palogp, [0 x double]* noalias %palogt, [0 x double]* noalias %podsc, [0 x double]* noalias %podsf, [0 x double]* noalias %podac, [0 x double]* noalias %podaf, [0 x double]* noalias %pbsfc, [0 x double]* noalias %pbsff, [0 x double]* noalias %pusfc, [0 x double]* noalias %pusff, [0 x double]* noalias %psmu0, [0 x double]* noalias %pqsmu0, i32* noalias %ki3, i32* noalias %kspec, i32* noalias %kh2o, i32* noalias %kco2, i32* noalias %ko3, i32* noalias %ki1sd, i32* noalias %ki1ed, i32* noalias %ki3sd, i32* noalias %ki3ed, i32* noalias %ki1sc, i32* noalias %ki1ec, i32* noalias %ldebug, i32* noalias %jindex, [0 x double]* noalias %pa1c, [0 x double]* noalias %pa1f, [0 x double]* noalias %pa2c, [0 x double]* noalias %pa2f, [0 x double]* noalias %pa3c, [0 x double]* noalias %pa3f, [0 x double]* noalias %pa4c, [0 x double]* noalias %pa4f, [0 x double]* noalias %pa5c, [0 x double]* noalias %pa5f) #1 {
  15. entry:
  16. br label %entry.split
  17.  
  18. entry.split: ; preds = %entry
  19. %0 = load i32, i32* %ki1sd, align 4
  20. %1 = sext i32 %0 to i64
  21. %2 = load i32, i32* %ki1ed, align 4
  22. %3 = sext i32 %2 to i64
  23. %4 = sub nsw i64 1, %1
  24. %5 = add nsw i64 %4, %3
  25. %6 = icmp sgt i64 %5, 0
  26. %7 = select i1 %6, i64 %5, i64 0
  27. %8 = load i32, i32* %ki3sd, align 4
  28. %9 = sext i32 %8 to i64
  29. %10 = mul i64 %7, %9
  30. %sum = add i64 %10, %1
  31. %11 = load i32, i32* %ki1sd, align 4
  32. %12 = sext i32 %11 to i64
  33. %13 = load i32, i32* %ki1ed, align 4
  34. %14 = sext i32 %13 to i64
  35. %15 = sub nsw i64 1, %12
  36. %16 = add nsw i64 %15, %14
  37. %17 = icmp sgt i64 %16, 0
  38. %18 = select i1 %17, i64 %16, i64 0
  39. %19 = load i32, i32* %ki3sd, align 4
  40. %20 = sext i32 %19 to i64
  41. %21 = mul i64 %18, %20
  42. %sum3 = add i64 %21, %12
  43. %22 = load i32, i32* %ki1sd, align 4
  44. %23 = sext i32 %22 to i64
  45. %24 = load i32, i32* %ki1ed, align 4
  46. %25 = sext i32 %24 to i64
  47. %26 = sub nsw i64 1, %23
  48. %27 = add nsw i64 %26, %25
  49. %28 = icmp sgt i64 %27, 0
  50. %29 = select i1 %28, i64 %27, i64 0
  51. %30 = load i32, i32* %ki3sd, align 4
  52. %31 = sext i32 %30 to i64
  53. %32 = mul i64 %29, %31
  54. %sum4 = add i64 %32, %23
  55. %33 = load i32, i32* %ki1sc, align 4
  56. %34 = load i32, i32* %ki1ec, align 4
  57. %35 = icmp sgt i32 %33, %34
  58. br i1 %35, label %return, label %"3.preheader"
  59.  
  60. "3.preheader": ; preds = %entry.split
  61. br label %"3"
  62.  
  63. "3": ; preds = %"5", %"3.preheader"
  64. %36 = phi i32 [ %88, %"5" ], [ %33, %"3.preheader" ]
  65. %37 = phi double [ %86, %"5" ], [ undef, %"3.preheader" ]
  66. %38 = load i32, i32* %kh2o, align 4
  67. %39 = icmp eq i32 %38, 0
  68. br i1 %39, label %"5", label %"4"
  69.  
  70. "4": ; preds = %"3"
  71. %40 = sext i32 %36 to i64
  72. %41 = sub i64 %40, %sum
  73. %42 = getelementptr [0 x double], [0 x double]* %pduh2of, i64 0, i64 %41
  74. %43 = load double, double* %42, align 8
  75. %44 = load i32, i32* %kh2o, align 4
  76. %45 = sext i32 %44 to i64
  77. %46 = load i32, i32* %kspec, align 4
  78. %47 = sext i32 %46 to i64
  79. %48 = mul nsw i64 %47, 7
  80. %49 = add nsw i64 %45, -8
  81. %50 = add i64 %49, %48
  82. %51 = getelementptr [168 x double], [168 x double]* @__data_radiation_MOD_cobi, i64 0, i64 %50
  83. %52 = load double, double* %51, align 8
  84. %53 = load i32, i32* %kh2o, align 4
  85. %54 = sext i32 %53 to i64
  86. %55 = load i32, i32* %kspec, align 4
  87. %56 = sext i32 %55 to i64
  88. %57 = mul nsw i64 %56, 7
  89. %58 = add nsw i64 %54, -8
  90. %59 = add i64 %58, %57
  91. %60 = getelementptr [168 x double], [168 x double]* @__data_radiation_MOD_coali, i64 0, i64 %59
  92. %61 = load double, double* %60, align 8
  93. %62 = sext i32 %36 to i64
  94. %63 = sub i64 %62, %sum3
  95. %64 = getelementptr [0 x double], [0 x double]* %palogp, i64 0, i64 %63
  96. %65 = load double, double* %64, align 8
  97. %66 = fmul double %61, %65
  98. %67 = load i32, i32* %kh2o, align 4
  99. %68 = sext i32 %67 to i64
  100. %69 = load i32, i32* %kspec, align 4
  101. %70 = sext i32 %69 to i64
  102. %71 = mul nsw i64 %70, 7
  103. %72 = add nsw i64 %68, -8
  104. %73 = add i64 %72, %71
  105. %74 = getelementptr [168 x double], [168 x double]* @__data_radiation_MOD_cobti, i64 0, i64 %73
  106. %75 = load double, double* %74, align 8
  107. %76 = sext i32 %36 to i64
  108. %77 = sub i64 %76, %sum4
  109. %78 = getelementptr [0 x double], [0 x double]* %palogt, i64 0, i64 %77
  110. %79 = load double, double* %78, align 8
  111. %80 = fmul double %75, %79
  112. %81 = fsub double %66, %80
  113. %82 = tail call double @exp(double %81) #0
  114. %83 = fmul double %52, %82
  115. %84 = fmul double %43, %83
  116. %85 = fadd double %37, %84
  117. br label %"5"
  118.  
  119. "5": ; preds = %"4", %"3"
  120. %86 = phi double [ %85, %"4" ], [ %37, %"3" ]
  121. %87 = icmp eq i32 %36, %34
  122. %88 = add i32 %36, 1
  123. br i1 %87, label %return.loopexit, label %"3"
  124.  
  125. return.loopexit: ; preds = %"5"
  126. br label %return
  127.  
  128. return: ; preds = %return.loopexit, %entry.split
  129. ret void
  130. }
  131.  
  132. attributes #0 = { nounwind readnone }
  133. attributes #1 = { nounwind uwtable }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement