Advertisement
gmv492

QLA_D3_c_veq_V_dot_V

Mar 28th, 2017
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.71 KB | None | 0 0
  1. ; ModuleID = '../../../../....../benchmarks/MILCmk-v1/qla-1.7.1/QLA_D3_c1_veq_V_dot_V.c'
  2. source_filename = "../../../../............./MILCmk-v1/qla-1.7.1/QLA_D3_c1_veq_V_dot_V.c"
  3. target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  4. target triple = "x86_64-pc-linux-gnu"
  5.  
  6. ; Function Attrs: nounwind uwtable
  7. define void @QLA_D3_c_veq_V_dot_V({ double, double }* noalias, [3 x { double, double }]* noalias, [3 x { double, double }]* noalias, i32) #0 {
  8. %5 = alloca { double, double }*, align 8
  9. %6 = alloca [3 x { double, double }]*, align 8
  10. %7 = alloca [3 x { double, double }]*, align 8
  11. %8 = alloca i32, align 4
  12. %9 = alloca { double, double }, align 16
  13. %10 = alloca { double, double }, align 16
  14. %11 = alloca i32, align 4
  15. %12 = alloca i32, align 4
  16. store { double, double }* %0, { double, double }** %5, align 8
  17. store [3 x { double, double }]* %1, [3 x { double, double }]** %6, align 8
  18. store [3 x { double, double }]* %2, [3 x { double, double }]** %7, align 8
  19. store i32 %3, i32* %8, align 4
  20. %13 = load { double, double }*, { double, double }** %5, align 8
  21. %14 = call i32 (i32, { double, double }*, ...) bitcast (i32 (...)* @__alignx to i32 (i32, { double, double }*, ...)*)(i32 16, { double, double }* %13)
  22. %15 = load [3 x { double, double }]*, [3 x { double, double }]** %6, align 8
  23. %16 = call i32 (i32, [3 x { double, double }]*, ...) bitcast (i32 (...)* @__alignx to i32 (i32, [3 x { double, double }]*, ...)*)(i32 16, [3 x { double, double }]* %15)
  24. %17 = load [3 x { double, double }]*, [3 x { double, double }]** %7, align 8
  25. %18 = call i32 (i32, [3 x { double, double }]*, ...) bitcast (i32 (...)* @__alignx to i32 (i32, [3 x { double, double }]*, ...)*)(i32 16, [3 x { double, double }]* %17)
  26. %19 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
  27. %20 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
  28. store double 0.000000e+00, double* %19, align 16
  29. store double 0.000000e+00, double* %20, align 8
  30. %21 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
  31. %22 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
  32. store double 0.000000e+00, double* %21, align 16
  33. store double 0.000000e+00, double* %22, align 8
  34. store i32 0, i32* %11, align 4
  35. br label %23
  36.  
  37. ; <label>:23: ; preds = %83, %4
  38. %24 = load i32, i32* %11, align 4
  39. %25 = load i32, i32* %8, align 4
  40. %26 = icmp slt i32 %24, %25
  41. br i1 %26, label %27, label %86
  42.  
  43. ; <label>:27: ; preds = %23
  44. store i32 0, i32* %12, align 4
  45. br label %28
  46.  
  47. ; <label>:28: ; preds = %79, %27
  48. %29 = load i32, i32* %12, align 4
  49. %30 = icmp slt i32 %29, 3
  50. br i1 %30, label %31, label %82
  51.  
  52. ; <label>:31: ; preds = %28
  53. %32 = load i32, i32* %12, align 4
  54. %33 = sext i32 %32 to i64
  55. %34 = load i32, i32* %11, align 4
  56. %35 = sext i32 %34 to i64
  57. %36 = load [3 x { double, double }]*, [3 x { double, double }]** %7, align 8
  58. %37 = getelementptr inbounds [3 x { double, double }], [3 x { double, double }]* %36, i64 %35
  59. %38 = getelementptr inbounds [3 x { double, double }], [3 x { double, double }]* %37, i64 0, i64 %33
  60. %39 = getelementptr inbounds { double, double }, { double, double }* %38, i32 0, i32 0
  61. %40 = load double, double* %39, align 16
  62. %41 = getelementptr inbounds { double, double }, { double, double }* %38, i32 0, i32 1
  63. %42 = load double, double* %41, align 8
  64. %43 = load i32, i32* %12, align 4
  65. %44 = sext i32 %43 to i64
  66. %45 = load i32, i32* %11, align 4
  67. %46 = sext i32 %45 to i64
  68. %47 = load [3 x { double, double }]*, [3 x { double, double }]** %6, align 8
  69. %48 = getelementptr inbounds [3 x { double, double }], [3 x { double, double }]* %47, i64 %46
  70. %49 = getelementptr inbounds [3 x { double, double }], [3 x { double, double }]* %48, i64 0, i64 %44
  71. %50 = getelementptr inbounds { double, double }, { double, double }* %49, i32 0, i32 0
  72. %51 = load double, double* %50, align 16
  73. %52 = getelementptr inbounds { double, double }, { double, double }* %49, i32 0, i32 1
  74. %53 = load double, double* %52, align 8
  75. %54 = fsub double -0.000000e+00, %53
  76. %55 = fmul double %40, %51
  77. %56 = fmul double %42, %54
  78. %57 = fmul double %40, %54
  79. %58 = fmul double %42, %51
  80. %59 = fsub double %55, %56
  81. %60 = fadd double %57, %58
  82. %61 = fcmp uno double %59, %59
  83. br i1 %61, label %62, label %68, !prof !1
  84.  
  85. ; <label>:62: ; preds = %31
  86. %63 = fcmp uno double %60, %60
  87. br i1 %63, label %64, label %68, !prof !1
  88.  
  89. ; <label>:64: ; preds = %62
  90. %65 = call { double, double } @__muldc3(double %40, double %42, double %51, double %54) #2
  91. %66 = extractvalue { double, double } %65, 0
  92. %67 = extractvalue { double, double } %65, 1
  93. br label %68
  94.  
  95. ; <label>:68: ; preds = %64, %62, %31
  96. %69 = phi double [ %59, %31 ], [ %59, %62 ], [ %66, %64 ]
  97. %70 = phi double [ %60, %31 ], [ %60, %62 ], [ %67, %64 ]
  98. %71 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
  99. %72 = load double, double* %71, align 16
  100. %73 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
  101. %74 = load double, double* %73, align 8
  102. %75 = fadd double %72, %69
  103. %76 = fadd double %74, %70
  104. %77 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
  105. %78 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
  106. store double %75, double* %77, align 16
  107. store double %76, double* %78, align 8
  108. br label %79
  109.  
  110. ; <label>:79: ; preds = %68
  111. %80 = load i32, i32* %12, align 4
  112. %81 = add nsw i32 %80, 1
  113. store i32 %81, i32* %12, align 4
  114. br label %28
  115.  
  116. ; <label>:82: ; preds = %28
  117. br label %83
  118.  
  119. ; <label>:83: ; preds = %82
  120. %84 = load i32, i32* %11, align 4
  121. %85 = add nsw i32 %84, 1
  122. store i32 %85, i32* %11, align 4
  123. br label %23
  124.  
  125. ; <label>:86: ; preds = %23
  126. %87 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
  127. %88 = load double, double* %87, align 16
  128. %89 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
  129. %90 = load double, double* %89, align 8
  130. %91 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
  131. %92 = load double, double* %91, align 16
  132. %93 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
  133. %94 = load double, double* %93, align 8
  134. %95 = fadd double %88, %92
  135. %96 = fadd double %90, %94
  136. %97 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
  137. %98 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
  138. store double %95, double* %97, align 16
  139. store double %96, double* %98, align 8
  140. %99 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
  141. %100 = load double, double* %99, align 16
  142. %101 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
  143. %102 = load double, double* %101, align 8
  144. %103 = load { double, double }*, { double, double }** %5, align 8
  145. %104 = getelementptr inbounds { double, double }, { double, double }* %103, i32 0, i32 0
  146. %105 = getelementptr inbounds { double, double }, { double, double }* %103, i32 0, i32 1
  147. store double %100, double* %104, align 16
  148. store double %102, double* %105, align 8
  149. ret void
  150. }
  151.  
  152. declare i32 @__alignx(...) #1
  153.  
  154. declare { double, double } @__muldc3(double, double, double, double)
  155.  
  156. attributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  157. attributes #1 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  158. attributes #2 = { nounwind }
  159.  
  160. !llvm.ident = !{!0}
  161.  
  162. !0 = !{!"clang version 3.9.1-svn288847-1~exp1 (branches/release_39)"}
  163. !1 = !{!"branch_weights", i32 1, i32 1048575}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement