Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ModuleID = '../../../../....../benchmarks/MILCmk-v1/qla-1.7.1/QLA_D3_c1_veq_V_dot_V.c'
- source_filename = "../../../../............./MILCmk-v1/qla-1.7.1/QLA_D3_c1_veq_V_dot_V.c"
- target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
- target triple = "x86_64-pc-linux-gnu"
- ; Function Attrs: nounwind uwtable
- define void @QLA_D3_c_veq_V_dot_V({ double, double }* noalias, [3 x { double, double }]* noalias, [3 x { double, double }]* noalias, i32) #0 {
- %5 = alloca { double, double }*, align 8
- %6 = alloca [3 x { double, double }]*, align 8
- %7 = alloca [3 x { double, double }]*, align 8
- %8 = alloca i32, align 4
- %9 = alloca { double, double }, align 16
- %10 = alloca { double, double }, align 16
- %11 = alloca i32, align 4
- %12 = alloca i32, align 4
- store { double, double }* %0, { double, double }** %5, align 8
- store [3 x { double, double }]* %1, [3 x { double, double }]** %6, align 8
- store [3 x { double, double }]* %2, [3 x { double, double }]** %7, align 8
- store i32 %3, i32* %8, align 4
- %13 = load { double, double }*, { double, double }** %5, align 8
- %14 = call i32 (i32, { double, double }*, ...) bitcast (i32 (...)* @__alignx to i32 (i32, { double, double }*, ...)*)(i32 16, { double, double }* %13)
- %15 = load [3 x { double, double }]*, [3 x { double, double }]** %6, align 8
- %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)
- %17 = load [3 x { double, double }]*, [3 x { double, double }]** %7, align 8
- %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)
- %19 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
- %20 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
- store double 0.000000e+00, double* %19, align 16
- store double 0.000000e+00, double* %20, align 8
- %21 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
- %22 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
- store double 0.000000e+00, double* %21, align 16
- store double 0.000000e+00, double* %22, align 8
- store i32 0, i32* %11, align 4
- br label %23
- ; <label>:23: ; preds = %83, %4
- %24 = load i32, i32* %11, align 4
- %25 = load i32, i32* %8, align 4
- %26 = icmp slt i32 %24, %25
- br i1 %26, label %27, label %86
- ; <label>:27: ; preds = %23
- store i32 0, i32* %12, align 4
- br label %28
- ; <label>:28: ; preds = %79, %27
- %29 = load i32, i32* %12, align 4
- %30 = icmp slt i32 %29, 3
- br i1 %30, label %31, label %82
- ; <label>:31: ; preds = %28
- %32 = load i32, i32* %12, align 4
- %33 = sext i32 %32 to i64
- %34 = load i32, i32* %11, align 4
- %35 = sext i32 %34 to i64
- %36 = load [3 x { double, double }]*, [3 x { double, double }]** %7, align 8
- %37 = getelementptr inbounds [3 x { double, double }], [3 x { double, double }]* %36, i64 %35
- %38 = getelementptr inbounds [3 x { double, double }], [3 x { double, double }]* %37, i64 0, i64 %33
- %39 = getelementptr inbounds { double, double }, { double, double }* %38, i32 0, i32 0
- %40 = load double, double* %39, align 16
- %41 = getelementptr inbounds { double, double }, { double, double }* %38, i32 0, i32 1
- %42 = load double, double* %41, align 8
- %43 = load i32, i32* %12, align 4
- %44 = sext i32 %43 to i64
- %45 = load i32, i32* %11, align 4
- %46 = sext i32 %45 to i64
- %47 = load [3 x { double, double }]*, [3 x { double, double }]** %6, align 8
- %48 = getelementptr inbounds [3 x { double, double }], [3 x { double, double }]* %47, i64 %46
- %49 = getelementptr inbounds [3 x { double, double }], [3 x { double, double }]* %48, i64 0, i64 %44
- %50 = getelementptr inbounds { double, double }, { double, double }* %49, i32 0, i32 0
- %51 = load double, double* %50, align 16
- %52 = getelementptr inbounds { double, double }, { double, double }* %49, i32 0, i32 1
- %53 = load double, double* %52, align 8
- %54 = fsub double -0.000000e+00, %53
- %55 = fmul double %40, %51
- %56 = fmul double %42, %54
- %57 = fmul double %40, %54
- %58 = fmul double %42, %51
- %59 = fsub double %55, %56
- %60 = fadd double %57, %58
- %61 = fcmp uno double %59, %59
- br i1 %61, label %62, label %68, !prof !1
- ; <label>:62: ; preds = %31
- %63 = fcmp uno double %60, %60
- br i1 %63, label %64, label %68, !prof !1
- ; <label>:64: ; preds = %62
- %65 = call { double, double } @__muldc3(double %40, double %42, double %51, double %54) #2
- %66 = extractvalue { double, double } %65, 0
- %67 = extractvalue { double, double } %65, 1
- br label %68
- ; <label>:68: ; preds = %64, %62, %31
- %69 = phi double [ %59, %31 ], [ %59, %62 ], [ %66, %64 ]
- %70 = phi double [ %60, %31 ], [ %60, %62 ], [ %67, %64 ]
- %71 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
- %72 = load double, double* %71, align 16
- %73 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
- %74 = load double, double* %73, align 8
- %75 = fadd double %72, %69
- %76 = fadd double %74, %70
- %77 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
- %78 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
- store double %75, double* %77, align 16
- store double %76, double* %78, align 8
- br label %79
- ; <label>:79: ; preds = %68
- %80 = load i32, i32* %12, align 4
- %81 = add nsw i32 %80, 1
- store i32 %81, i32* %12, align 4
- br label %28
- ; <label>:82: ; preds = %28
- br label %83
- ; <label>:83: ; preds = %82
- %84 = load i32, i32* %11, align 4
- %85 = add nsw i32 %84, 1
- store i32 %85, i32* %11, align 4
- br label %23
- ; <label>:86: ; preds = %23
- %87 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
- %88 = load double, double* %87, align 16
- %89 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
- %90 = load double, double* %89, align 8
- %91 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
- %92 = load double, double* %91, align 16
- %93 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
- %94 = load double, double* %93, align 8
- %95 = fadd double %88, %92
- %96 = fadd double %90, %94
- %97 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
- %98 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
- store double %95, double* %97, align 16
- store double %96, double* %98, align 8
- %99 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
- %100 = load double, double* %99, align 16
- %101 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
- %102 = load double, double* %101, align 8
- %103 = load { double, double }*, { double, double }** %5, align 8
- %104 = getelementptr inbounds { double, double }, { double, double }* %103, i32 0, i32 0
- %105 = getelementptr inbounds { double, double }, { double, double }* %103, i32 0, i32 1
- store double %100, double* %104, align 16
- store double %102, double* %105, align 8
- ret void
- }
- declare i32 @__alignx(...) #1
- declare { double, double } @__muldc3(double, double, double, double)
- 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" }
- 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" }
- attributes #2 = { nounwind }
- !llvm.ident = !{!0}
- !0 = !{!"clang version 3.9.1-svn288847-1~exp1 (branches/release_39)"}
- !1 = !{!"branch_weights", i32 1, i32 1048575}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement