453 lines
20 KiB
LLVM
453 lines
20 KiB
LLVM
|
; ModuleID = 'whet.c'
|
||
|
source_filename = "whet.c"
|
||
|
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||
|
target triple = "x86_64-pc-linux-gnu"
|
||
|
|
||
|
@t = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
@t1 = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
@t2 = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
@n1 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@n2 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@n3 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@n4 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@n6 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@n7 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@n8 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@n9 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@n10 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@n11 = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@x1 = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
@x4 = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
@x3 = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
@x2 = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
@i = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@e1 = dso_local local_unnamed_addr global [4 x double] zeroinitializer, align 16
|
||
|
@j = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@k = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@l = dso_local local_unnamed_addr global i32 0, align 4
|
||
|
@y = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
@x = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
@z = dso_local local_unnamed_addr global double 0.000000e+00, align 8
|
||
|
|
||
|
; Function Attrs: nofree nounwind sspstrong uwtable
|
||
|
define dso_local i32 @main() local_unnamed_addr #0 {
|
||
|
store double 4.999750e-01, double* @t, align 8, !tbaa !5
|
||
|
store double 5.002500e-01, double* @t1, align 8, !tbaa !5
|
||
|
store double 2.000000e+00, double* @t2, align 8, !tbaa !5
|
||
|
store i32 0, i32* @n1, align 4, !tbaa !9
|
||
|
store i32 120, i32* @n2, align 4, !tbaa !9
|
||
|
store i32 140, i32* @n3, align 4, !tbaa !9
|
||
|
store i32 3450, i32* @n4, align 4, !tbaa !9
|
||
|
store i32 2100, i32* @n6, align 4, !tbaa !9
|
||
|
store i32 320, i32* @n7, align 4, !tbaa !9
|
||
|
store i32 8990, i32* @n8, align 4, !tbaa !9
|
||
|
store i32 6160, i32* @n9, align 4, !tbaa !9
|
||
|
store i32 0, i32* @n10, align 4, !tbaa !9
|
||
|
store i32 930, i32* @n11, align 4, !tbaa !9
|
||
|
store double 1.000000e+00, double* @x1, align 8, !tbaa !5
|
||
|
store double -1.000000e+00, double* @x4, align 8, !tbaa !5
|
||
|
store double -1.000000e+00, double* @x3, align 8, !tbaa !5
|
||
|
store double -1.000000e+00, double* @x2, align 8, !tbaa !5
|
||
|
store i32 1, i32* @i, align 4, !tbaa !9
|
||
|
store double 1.000000e+00, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 0), align 16, !tbaa !5
|
||
|
store double -1.000000e+00, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 3), align 8, !tbaa !5
|
||
|
store double -1.000000e+00, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 2), align 16, !tbaa !5
|
||
|
store double -1.000000e+00, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 1), align 8, !tbaa !5
|
||
|
br label %2
|
||
|
|
||
|
1: ; preds = %2
|
||
|
store i32 121, i32* @i, align 4, !tbaa !9
|
||
|
store double %11, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 0), align 16, !tbaa !5
|
||
|
store double %15, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 1), align 8, !tbaa !5
|
||
|
store double %19, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 2), align 16, !tbaa !5
|
||
|
store double %23, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 3), align 8, !tbaa !5
|
||
|
br label %26
|
||
|
|
||
|
2: ; preds = %0, %2
|
||
|
%3 = phi i32 [ 1, %0 ], [ %24, %2 ]
|
||
|
%4 = phi double [ 1.000000e+00, %0 ], [ %11, %2 ]
|
||
|
%5 = phi double [ -1.000000e+00, %0 ], [ %15, %2 ]
|
||
|
%6 = phi double [ -1.000000e+00, %0 ], [ %19, %2 ]
|
||
|
%7 = phi double [ -1.000000e+00, %0 ], [ %23, %2 ]
|
||
|
%8 = fadd double %4, %5
|
||
|
%9 = fadd double %8, %6
|
||
|
%10 = fsub double %9, %7
|
||
|
%11 = fmul double %10, 4.999750e-01
|
||
|
%12 = fadd double %5, %11
|
||
|
%13 = fsub double %12, %6
|
||
|
%14 = fadd double %7, %13
|
||
|
%15 = fmul double %14, 4.999750e-01
|
||
|
%16 = fsub double %11, %15
|
||
|
%17 = fadd double %6, %16
|
||
|
%18 = fadd double %7, %17
|
||
|
%19 = fmul double %18, 4.999750e-01
|
||
|
%20 = fsub double %15, %11
|
||
|
%21 = fadd double %20, %19
|
||
|
%22 = fadd double %7, %21
|
||
|
%23 = fmul double %22, 4.999750e-01
|
||
|
%24 = add nuw nsw i32 %3, 1
|
||
|
%25 = icmp eq i32 %24, 121
|
||
|
br i1 %25, label %1, label %2, !llvm.loop !11
|
||
|
|
||
|
26: ; preds = %1, %56
|
||
|
%27 = phi i32 [ 1, %1 ], [ %57, %56 ]
|
||
|
%28 = phi double [ %15, %1 ], [ %45, %56 ]
|
||
|
%29 = phi double [ %19, %1 ], [ %49, %56 ]
|
||
|
%30 = phi double [ %23, %1 ], [ %53, %56 ]
|
||
|
%31 = phi double [ %11, %1 ], [ %41, %56 ]
|
||
|
br label %32
|
||
|
|
||
|
32: ; preds = %32, %26
|
||
|
%33 = phi double [ %31, %26 ], [ %41, %32 ]
|
||
|
%34 = phi double [ %30, %26 ], [ %53, %32 ]
|
||
|
%35 = phi double [ %29, %26 ], [ %49, %32 ]
|
||
|
%36 = phi double [ %28, %26 ], [ %45, %32 ]
|
||
|
%37 = phi i32 [ 0, %26 ], [ %54, %32 ]
|
||
|
%38 = fadd double %36, %33
|
||
|
%39 = fadd double %35, %38
|
||
|
%40 = fsub double %39, %34
|
||
|
%41 = fmul double %40, 4.999750e-01
|
||
|
%42 = fadd double %36, %41
|
||
|
%43 = fsub double %42, %35
|
||
|
%44 = fadd double %34, %43
|
||
|
%45 = fmul double %44, 4.999750e-01
|
||
|
%46 = fsub double %41, %45
|
||
|
%47 = fadd double %35, %46
|
||
|
%48 = fadd double %34, %47
|
||
|
%49 = fmul double %48, 4.999750e-01
|
||
|
%50 = fsub double %45, %41
|
||
|
%51 = fadd double %50, %49
|
||
|
%52 = fadd double %34, %51
|
||
|
%53 = fmul double %52, 5.000000e-01
|
||
|
%54 = add nuw nsw i32 %37, 1
|
||
|
%55 = icmp eq i32 %54, 6
|
||
|
br i1 %55, label %56, label %32
|
||
|
|
||
|
56: ; preds = %32
|
||
|
%57 = add nuw nsw i32 %27, 1
|
||
|
%58 = icmp eq i32 %57, 141
|
||
|
br i1 %58, label %59, label %26, !llvm.loop !14
|
||
|
|
||
|
59: ; preds = %56
|
||
|
store i32 141, i32* @i, align 4, !tbaa !9
|
||
|
store double %45, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 1), align 8, !tbaa !5
|
||
|
store double %49, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 2), align 16, !tbaa !5
|
||
|
store double %53, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 3), align 8, !tbaa !5
|
||
|
store double %41, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 0), align 16, !tbaa !5
|
||
|
store i32 1, i32* @j, align 4, !tbaa !9
|
||
|
store i32 3451, i32* @i, align 4, !tbaa !9
|
||
|
store i32 1, i32* @j, align 4, !tbaa !9
|
||
|
store i32 2, i32* @k, align 4, !tbaa !9
|
||
|
store i32 3, i32* @l, align 4, !tbaa !9
|
||
|
store double 6.000000e+00, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 1), align 8, !tbaa !5
|
||
|
store double 6.000000e+00, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 0), align 16, !tbaa !5
|
||
|
br label %60
|
||
|
|
||
|
60: ; preds = %59, %60
|
||
|
%61 = phi i32 [ 1, %59 ], [ %62, %60 ]
|
||
|
%62 = add nuw nsw i32 %61, 1
|
||
|
%63 = icmp eq i32 %62, 2101
|
||
|
br i1 %63, label %64, label %60, !llvm.loop !15
|
||
|
|
||
|
64: ; preds = %60
|
||
|
store i32 2101, i32* @i, align 4, !tbaa !9
|
||
|
store i32 1, i32* @j, align 4, !tbaa !9
|
||
|
store i32 2, i32* @k, align 4, !tbaa !9
|
||
|
store i32 3, i32* @l, align 4, !tbaa !9
|
||
|
store double 5.000000e-01, double* @y, align 8, !tbaa !5
|
||
|
store double 5.000000e-01, double* @x, align 8, !tbaa !5
|
||
|
store i32 1, i32* @i, align 4, !tbaa !9
|
||
|
%65 = load i32, i32* @n7, align 4, !tbaa !9
|
||
|
%66 = icmp slt i32 %65, 1
|
||
|
br i1 %66, label %114, label %67
|
||
|
|
||
|
67: ; preds = %64, %67
|
||
|
%68 = load double, double* @t, align 8, !tbaa !5
|
||
|
%69 = load double, double* @t2, align 8, !tbaa !5
|
||
|
%70 = load double, double* @x, align 8, !tbaa !5
|
||
|
%71 = call double @sin(double %70) #4
|
||
|
%72 = fmul double %69, %71
|
||
|
%73 = load double, double* @x, align 8, !tbaa !5
|
||
|
%74 = call double @cos(double %73) #4
|
||
|
%75 = fmul double %72, %74
|
||
|
%76 = load double, double* @x, align 8, !tbaa !5
|
||
|
%77 = load double, double* @y, align 8, !tbaa !5
|
||
|
%78 = fadd double %76, %77
|
||
|
%79 = call double @cos(double %78) #4
|
||
|
%80 = load double, double* @x, align 8, !tbaa !5
|
||
|
%81 = load double, double* @y, align 8, !tbaa !5
|
||
|
%82 = fsub double %80, %81
|
||
|
%83 = call double @cos(double %82) #4
|
||
|
%84 = fadd double %79, %83
|
||
|
%85 = fadd double %84, -1.000000e+00
|
||
|
%86 = fdiv double %75, %85
|
||
|
%87 = call double @atan(double %86) #4
|
||
|
%88 = fmul double %68, %87
|
||
|
store double %88, double* @x, align 8, !tbaa !5
|
||
|
%89 = load double, double* @t, align 8, !tbaa !5
|
||
|
%90 = load double, double* @t2, align 8, !tbaa !5
|
||
|
%91 = load double, double* @y, align 8, !tbaa !5
|
||
|
%92 = call double @sin(double %91) #4
|
||
|
%93 = fmul double %90, %92
|
||
|
%94 = load double, double* @y, align 8, !tbaa !5
|
||
|
%95 = call double @cos(double %94) #4
|
||
|
%96 = fmul double %93, %95
|
||
|
%97 = load double, double* @x, align 8, !tbaa !5
|
||
|
%98 = load double, double* @y, align 8, !tbaa !5
|
||
|
%99 = fadd double %97, %98
|
||
|
%100 = call double @cos(double %99) #4
|
||
|
%101 = load double, double* @x, align 8, !tbaa !5
|
||
|
%102 = load double, double* @y, align 8, !tbaa !5
|
||
|
%103 = fsub double %101, %102
|
||
|
%104 = call double @cos(double %103) #4
|
||
|
%105 = fadd double %100, %104
|
||
|
%106 = fadd double %105, -1.000000e+00
|
||
|
%107 = fdiv double %96, %106
|
||
|
%108 = call double @atan(double %107) #4
|
||
|
%109 = fmul double %89, %108
|
||
|
store double %109, double* @y, align 8, !tbaa !5
|
||
|
%110 = load i32, i32* @i, align 4, !tbaa !9
|
||
|
%111 = add nsw i32 %110, 1
|
||
|
store i32 %111, i32* @i, align 4, !tbaa !9
|
||
|
%112 = load i32, i32* @n7, align 4, !tbaa !9
|
||
|
%113 = icmp slt i32 %110, %112
|
||
|
br i1 %113, label %67, label %114, !llvm.loop !16
|
||
|
|
||
|
114: ; preds = %67, %64
|
||
|
store double 1.000000e+00, double* @z, align 8, !tbaa !5
|
||
|
store double 1.000000e+00, double* @y, align 8, !tbaa !5
|
||
|
store double 1.000000e+00, double* @x, align 8, !tbaa !5
|
||
|
%115 = load i32, i32* @n8, align 4, !tbaa !9
|
||
|
%116 = load double, double* @t, align 8
|
||
|
%117 = fmul double %116, 2.000000e+00
|
||
|
%118 = icmp slt i32 %115, 1
|
||
|
br i1 %118, label %126, label %119
|
||
|
|
||
|
119: ; preds = %114
|
||
|
%120 = fadd double %117, 1.000000e+00
|
||
|
%121 = fmul double %116, %120
|
||
|
%122 = fadd double %117, %121
|
||
|
%123 = load double, double* @t2, align 8
|
||
|
%124 = fdiv double %122, %123
|
||
|
store double %124, double* @z, align 8, !tbaa !5
|
||
|
%125 = add i32 %115, 1
|
||
|
br label %126
|
||
|
|
||
|
126: ; preds = %119, %114
|
||
|
%127 = phi i32 [ 1, %114 ], [ %125, %119 ]
|
||
|
store i32 %127, i32* @i, align 4, !tbaa !9
|
||
|
store i32 1, i32* @j, align 4, !tbaa !9
|
||
|
store i32 2, i32* @k, align 4, !tbaa !9
|
||
|
store i32 3, i32* @l, align 4, !tbaa !9
|
||
|
store double 1.000000e+00, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 0), align 16, !tbaa !5
|
||
|
store double 2.000000e+00, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 1), align 8, !tbaa !5
|
||
|
store double 3.000000e+00, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 2), align 16, !tbaa !5
|
||
|
%128 = load i32, i32* @n9, align 4, !tbaa !9
|
||
|
%129 = icmp slt i32 %128, 1
|
||
|
br i1 %129, label %141, label %130
|
||
|
|
||
|
130: ; preds = %126
|
||
|
%131 = load double, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 2), align 16, !tbaa !5
|
||
|
%132 = load double, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 3), align 8, !tbaa !5
|
||
|
%133 = add i32 %128, 1
|
||
|
br label %134
|
||
|
|
||
|
134: ; preds = %130, %134
|
||
|
%135 = phi double [ %132, %130 ], [ %136, %134 ]
|
||
|
%136 = phi double [ %131, %130 ], [ %135, %134 ]
|
||
|
%137 = phi i32 [ 1, %130 ], [ %138, %134 ]
|
||
|
%138 = add nuw i32 %137, 1
|
||
|
%139 = icmp eq i32 %137, %128
|
||
|
br i1 %139, label %140, label %134, !llvm.loop !17
|
||
|
|
||
|
140: ; preds = %134
|
||
|
store double %135, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 2), align 16, !tbaa !5
|
||
|
store double %136, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 1), align 8, !tbaa !5
|
||
|
store double %136, double* getelementptr inbounds ([4 x double], [4 x double]* @e1, i64 0, i64 3), align 8, !tbaa !5
|
||
|
br label %141
|
||
|
|
||
|
141: ; preds = %140, %126
|
||
|
%142 = phi i32 [ %133, %140 ], [ 1, %126 ]
|
||
|
store i32 %142, i32* @i, align 4, !tbaa !9
|
||
|
store i32 2, i32* @j, align 4, !tbaa !9
|
||
|
store i32 3, i32* @k, align 4, !tbaa !9
|
||
|
%143 = load i32, i32* @n10, align 4, !tbaa !9
|
||
|
%144 = icmp slt i32 %143, 1
|
||
|
br i1 %144, label %156, label %145
|
||
|
|
||
|
145: ; preds = %141
|
||
|
%146 = load i32, i32* @j, align 4, !tbaa !9
|
||
|
%147 = load i32, i32* @k, align 4, !tbaa !9
|
||
|
%148 = add i32 %143, 1
|
||
|
br label %149
|
||
|
|
||
|
149: ; preds = %145, %149
|
||
|
%150 = phi i32 [ %147, %145 ], [ %151, %149 ]
|
||
|
%151 = phi i32 [ %146, %145 ], [ %150, %149 ]
|
||
|
%152 = phi i32 [ 1, %145 ], [ %153, %149 ]
|
||
|
%153 = add nuw i32 %152, 1
|
||
|
%154 = icmp eq i32 %152, %143
|
||
|
br i1 %154, label %155, label %149, !llvm.loop !18
|
||
|
|
||
|
155: ; preds = %149
|
||
|
store i32 %150, i32* @j, align 4, !tbaa !9
|
||
|
store i32 %151, i32* @k, align 4, !tbaa !9
|
||
|
br label %156
|
||
|
|
||
|
156: ; preds = %155, %141
|
||
|
%157 = phi i32 [ %148, %155 ], [ 1, %141 ]
|
||
|
store i32 %157, i32* @i, align 4, !tbaa !9
|
||
|
store double 7.500000e-01, double* @x, align 8, !tbaa !5
|
||
|
store i32 1, i32* @i, align 4, !tbaa !9
|
||
|
%158 = load i32, i32* @n11, align 4, !tbaa !9
|
||
|
%159 = icmp slt i32 %158, 1
|
||
|
br i1 %159, label %171, label %160
|
||
|
|
||
|
160: ; preds = %156, %160
|
||
|
%161 = load double, double* @x, align 8, !tbaa !5
|
||
|
%162 = call double @log(double %161) #4
|
||
|
%163 = load double, double* @t1, align 8, !tbaa !5
|
||
|
%164 = fdiv double %162, %163
|
||
|
%165 = call double @exp(double %164) #4
|
||
|
%166 = call double @sqrt(double %165) #4
|
||
|
store double %166, double* @x, align 8, !tbaa !5
|
||
|
%167 = load i32, i32* @i, align 4, !tbaa !9
|
||
|
%168 = add nsw i32 %167, 1
|
||
|
store i32 %168, i32* @i, align 4, !tbaa !9
|
||
|
%169 = load i32, i32* @n11, align 4, !tbaa !9
|
||
|
%170 = icmp slt i32 %167, %169
|
||
|
br i1 %170, label %160, label %171, !llvm.loop !19
|
||
|
|
||
|
171: ; preds = %160, %156
|
||
|
ret i32 0
|
||
|
}
|
||
|
|
||
|
; Function Attrs: mustprogress nofree nounwind willreturn
|
||
|
declare double @atan(double) local_unnamed_addr #1
|
||
|
|
||
|
; Function Attrs: mustprogress nofree nounwind willreturn
|
||
|
declare double @sin(double) local_unnamed_addr #1
|
||
|
|
||
|
; Function Attrs: mustprogress nofree nounwind willreturn
|
||
|
declare double @cos(double) local_unnamed_addr #1
|
||
|
|
||
|
; Function Attrs: mustprogress nofree nounwind willreturn
|
||
|
declare double @sqrt(double) local_unnamed_addr #1
|
||
|
|
||
|
; Function Attrs: mustprogress nofree nounwind willreturn
|
||
|
declare double @exp(double) local_unnamed_addr #1
|
||
|
|
||
|
; Function Attrs: mustprogress nofree nounwind willreturn
|
||
|
declare double @log(double) local_unnamed_addr #1
|
||
|
|
||
|
; Function Attrs: nofree norecurse nosync nounwind sspstrong uwtable
|
||
|
define dso_local i32 @pa(double* nocapture %0) local_unnamed_addr #2 {
|
||
|
%2 = getelementptr inbounds double, double* %0, i64 1
|
||
|
%3 = getelementptr inbounds double, double* %0, i64 2
|
||
|
%4 = getelementptr inbounds double, double* %0, i64 3
|
||
|
%5 = load double, double* %2, align 8, !tbaa !5
|
||
|
%6 = load double, double* %3, align 8, !tbaa !5
|
||
|
%7 = load double, double* %4, align 8, !tbaa !5
|
||
|
br label %8
|
||
|
|
||
|
8: ; preds = %8, %1
|
||
|
%9 = phi double [ %7, %1 ], [ %32, %8 ]
|
||
|
%10 = phi double [ %6, %1 ], [ %27, %8 ]
|
||
|
%11 = phi double [ %5, %1 ], [ %23, %8 ]
|
||
|
%12 = phi i32 [ 0, %1 ], [ %33, %8 ]
|
||
|
%13 = load double, double* %0, align 8, !tbaa !5
|
||
|
%14 = fadd double %13, %11
|
||
|
%15 = fadd double %14, %10
|
||
|
%16 = fsub double %15, %9
|
||
|
%17 = load double, double* @t, align 8, !tbaa !5
|
||
|
%18 = fmul double %16, %17
|
||
|
store double %18, double* %0, align 8, !tbaa !5
|
||
|
%19 = fadd double %11, %18
|
||
|
%20 = fsub double %19, %10
|
||
|
%21 = fadd double %9, %20
|
||
|
%22 = load double, double* @t, align 8, !tbaa !5
|
||
|
%23 = fmul double %22, %21
|
||
|
%24 = fsub double %18, %23
|
||
|
%25 = fadd double %10, %24
|
||
|
%26 = fadd double %9, %25
|
||
|
%27 = fmul double %22, %26
|
||
|
%28 = fsub double %23, %18
|
||
|
%29 = fadd double %28, %27
|
||
|
%30 = fadd double %9, %29
|
||
|
%31 = load double, double* @t2, align 8, !tbaa !5
|
||
|
%32 = fdiv double %30, %31
|
||
|
%33 = add nuw nsw i32 %12, 1
|
||
|
%34 = icmp eq i32 %33, 6
|
||
|
br i1 %34, label %35, label %8
|
||
|
|
||
|
35: ; preds = %8
|
||
|
store double %23, double* %2, align 8, !tbaa !5
|
||
|
store double %27, double* %3, align 8, !tbaa !5
|
||
|
store double %32, double* %4, align 8, !tbaa !5
|
||
|
ret i32 undef
|
||
|
}
|
||
|
|
||
|
; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong uwtable willreturn
|
||
|
define dso_local i32 @p3(double %0, double %1, double* nocapture %2) local_unnamed_addr #3 {
|
||
|
%4 = load double, double* @t, align 8, !tbaa !5
|
||
|
%5 = fadd double %0, %1
|
||
|
%6 = fmul double %5, %4
|
||
|
%7 = fadd double %6, %1
|
||
|
%8 = fmul double %4, %7
|
||
|
%9 = fadd double %6, %8
|
||
|
%10 = load double, double* @t2, align 8, !tbaa !5
|
||
|
%11 = fdiv double %9, %10
|
||
|
store double %11, double* %2, align 8, !tbaa !5
|
||
|
ret i32 undef
|
||
|
}
|
||
|
|
||
|
; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong uwtable willreturn
|
||
|
define dso_local i32 @p0() local_unnamed_addr #3 {
|
||
|
%1 = load i32, i32* @k, align 4, !tbaa !9
|
||
|
%2 = sext i32 %1 to i64
|
||
|
%3 = getelementptr inbounds [4 x double], [4 x double]* @e1, i64 0, i64 %2
|
||
|
%4 = load double, double* %3, align 8, !tbaa !5
|
||
|
%5 = load i32, i32* @j, align 4, !tbaa !9
|
||
|
%6 = sext i32 %5 to i64
|
||
|
%7 = getelementptr inbounds [4 x double], [4 x double]* @e1, i64 0, i64 %6
|
||
|
store double %4, double* %7, align 8, !tbaa !5
|
||
|
%8 = load i32, i32* @l, align 4, !tbaa !9
|
||
|
%9 = sext i32 %8 to i64
|
||
|
%10 = getelementptr inbounds [4 x double], [4 x double]* @e1, i64 0, i64 %9
|
||
|
%11 = load double, double* %10, align 8, !tbaa !5
|
||
|
store double %11, double* %3, align 8, !tbaa !5
|
||
|
%12 = load double, double* %7, align 8, !tbaa !5
|
||
|
store double %12, double* %10, align 8, !tbaa !5
|
||
|
ret i32 undef
|
||
|
}
|
||
|
|
||
|
attributes #0 = { nofree nounwind sspstrong uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
|
||
|
attributes #1 = { mustprogress nofree nounwind willreturn "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
|
||
|
attributes #2 = { nofree norecurse nosync nounwind sspstrong uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
|
||
|
attributes #3 = { mustprogress nofree norecurse nosync nounwind sspstrong uwtable willreturn "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
|
||
|
attributes #4 = { nounwind }
|
||
|
|
||
|
!llvm.module.flags = !{!0, !1, !2, !3}
|
||
|
!llvm.ident = !{!4}
|
||
|
|
||
|
!0 = !{i32 1, !"wchar_size", i32 4}
|
||
|
!1 = !{i32 7, !"PIC Level", i32 2}
|
||
|
!2 = !{i32 7, !"PIE Level", i32 2}
|
||
|
!3 = !{i32 7, !"uwtable", i32 1}
|
||
|
!4 = !{!"clang version 13.0.1"}
|
||
|
!5 = !{!6, !6, i64 0}
|
||
|
!6 = !{!"double", !7, i64 0}
|
||
|
!7 = !{!"omnipotent char", !8, i64 0}
|
||
|
!8 = !{!"Simple C/C++ TBAA"}
|
||
|
!9 = !{!10, !10, i64 0}
|
||
|
!10 = !{!"int", !7, i64 0}
|
||
|
!11 = distinct !{!11, !12, !13}
|
||
|
!12 = !{!"llvm.loop.mustprogress"}
|
||
|
!13 = !{!"llvm.loop.unroll.disable"}
|
||
|
!14 = distinct !{!14, !12, !13}
|
||
|
!15 = distinct !{!15, !12, !13}
|
||
|
!16 = distinct !{!16, !12, !13}
|
||
|
!17 = distinct !{!17, !12, !13}
|
||
|
!18 = distinct !{!18, !12, !13}
|
||
|
!19 = distinct !{!19, !12, !13}
|