; LLVM IR from stfc/PSycloneBench :: benchmarks/shallow/OMP (shallow_base_openmp_v3)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [41 x i8], align 1
@stdout = external global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [36 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local double @compute_checksum(ptr noundef, i32 noundef, i32 noundef) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca [129 x [129 x double]], align 16
  %7 = alloca [129 x [129 x double]], align 16
  %8 = alloca [129 x [129 x double]], align 16
  %9 = alloca [129 x [129 x double]], align 16
  %10 = alloca [129 x [129 x double]], align 16
  %11 = alloca [129 x [129 x double]], align 16
  %12 = alloca [129 x [129 x double]], align 16
  %13 = alloca [129 x [129 x double]], align 16
  %14 = alloca [129 x [129 x double]], align 16
  %15 = alloca [129 x [129 x double]], align 16
  %16 = alloca [129 x [129 x double]], align 16
  %17 = alloca [129 x [129 x double]], align 16
  %18 = alloca [129 x [129 x double]], align 16
  %19 = alloca [129 x [129 x double]], align 16
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 133128, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 133128, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  store i32 1, ptr %41, align 4, !tbaa !5
  %55 = load i32, ptr %41, align 4, !tbaa !5
  %56 = sitofp i32 %55 to float
  %57 = fdiv float 1.280000e+02, %56
  %58 = fpext float %57 to double
  %59 = call double @llvm.ceil.f64(double %58)
  %60 = fptosi double %59 to i32
  store i32 %60, ptr %42, align 4, !tbaa !5
  store double 9.000000e+01, ptr %20, align 8, !tbaa !11
  %61 = load double, ptr %20, align 8, !tbaa !11
  store double %61, ptr %21, align 8, !tbaa !11
  store double 1.000000e+05, ptr %22, align 8, !tbaa !11
  store double 1.000000e+05, ptr %23, align 8, !tbaa !11
  %62 = load double, ptr %22, align 8, !tbaa !11
  %63 = fdiv double 4.000000e+00, %62
  store double %63, ptr %35, align 8, !tbaa !11
  %64 = load double, ptr %23, align 8, !tbaa !11
  %65 = fdiv double 4.000000e+00, %64
  store double %65, ptr %36, align 8, !tbaa !11
  store double 1.000000e+06, ptr %24, align 8, !tbaa !11
  store double 1.000000e-03, ptr %25, align 8, !tbaa !11
  %66 = load double, ptr %22, align 8, !tbaa !11
  %67 = fmul double 1.280000e+02, %66
  store double %67, ptr %26, align 8, !tbaa !11
  %68 = call float @atanf(float noundef 1.000000e+00) #5
  %69 = fpext float %68 to double
  %70 = fmul double 4.000000e+00, %69
  store double %70, ptr %27, align 8, !tbaa !11
  %71 = load double, ptr %27, align 8, !tbaa !11
  %72 = load double, ptr %27, align 8, !tbaa !11
  %73 = fadd double %71, %72
  store double %73, ptr %28, align 8, !tbaa !11
  %74 = load double, ptr %28, align 8, !tbaa !11
  %75 = fdiv double %74, 1.280000e+02
  store double %75, ptr %29, align 8, !tbaa !11
  %76 = load double, ptr %28, align 8, !tbaa !11
  %77 = fdiv double %76, 1.280000e+02
  store double %77, ptr %30, align 8, !tbaa !11
  %78 = load double, ptr %27, align 8, !tbaa !11
  %79 = load double, ptr %27, align 8, !tbaa !11
  %80 = fmul double %78, %79
  %81 = load double, ptr %24, align 8, !tbaa !11
  %82 = fmul double %80, %81
  %83 = load double, ptr %24, align 8, !tbaa !11
  %84 = fmul double %82, %83
  %85 = load double, ptr %26, align 8, !tbaa !11
  %86 = load double, ptr %26, align 8, !tbaa !11
  %87 = fmul double %85, %86
  %88 = fdiv double %84, %87
  store double %88, ptr %31, align 8, !tbaa !11
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %89

89:                                               ; preds = %143, %2
  %90 = load i32, ptr %39, align 4, !tbaa !5
  %91 = icmp slt i32 %90, 129
  br i1 %91, label %92, label %146

92:                                               ; preds = %89
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %93

93:                                               ; preds = %139, %92
  %94 = load i32, ptr %40, align 4, !tbaa !5
  %95 = icmp slt i32 %94, 129
  br i1 %95, label %96, label %142

96:                                               ; preds = %93
  %97 = load double, ptr %24, align 8, !tbaa !11
  %98 = load i32, ptr %39, align 4, !tbaa !5
  %99 = sitofp i32 %98 to double
  %100 = fadd double %99, 5.000000e-01
  %101 = load double, ptr %29, align 8, !tbaa !11
  %102 = fmul double %100, %101
  %103 = call double @sin(double noundef %102) #5
  %104 = fmul double %97, %103
  %105 = load i32, ptr %40, align 4, !tbaa !5
  %106 = sitofp i32 %105 to double
  %107 = fadd double %106, 5.000000e-01
  %108 = load double, ptr %30, align 8, !tbaa !11
  %109 = fmul double %107, %108
  %110 = call double @sin(double noundef %109) #5
  %111 = fmul double %104, %110
  %112 = load i32, ptr %39, align 4, !tbaa !5
  %113 = sext i32 %112 to i64
  %114 = getelementptr inbounds [129 x [129 x double]], ptr %19, i64 0, i64 %113
  %115 = load i32, ptr %40, align 4, !tbaa !5
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds [129 x double], ptr %114, i64 0, i64 %116
  store double %111, ptr %117, align 8, !tbaa !11
  %118 = load double, ptr %31, align 8, !tbaa !11
  %119 = load i32, ptr %39, align 4, !tbaa !5
  %120 = sitofp i32 %119 to double
  %121 = fmul double 2.000000e+00, %120
  %122 = load double, ptr %29, align 8, !tbaa !11
  %123 = fmul double %121, %122
  %124 = call double @cos(double noundef %123) #5
  %125 = load i32, ptr %40, align 4, !tbaa !5
  %126 = sitofp i32 %125 to double
  %127 = fmul double 2.000000e+00, %126
  %128 = load double, ptr %30, align 8, !tbaa !11
  %129 = fmul double %127, %128
  %130 = call double @cos(double noundef %129) #5
  %131 = fadd double %124, %130
  %132 = call double @llvm.fmuladd.f64(double %118, double %131, double 5.000000e+04)
  %133 = load i32, ptr %39, align 4, !tbaa !5
  %134 = sext i32 %133 to i64
  %135 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %134
  %136 = load i32, ptr %40, align 4, !tbaa !5
  %137 = sext i32 %136 to i64
  %138 = getelementptr inbounds [129 x double], ptr %135, i64 0, i64 %137
  store double %132, ptr %138, align 8, !tbaa !11
  br label %139

139:                                              ; preds = %96
  %140 = load i32, ptr %40, align 4, !tbaa !5
  %141 = add nsw i32 %140, 1
  store i32 %141, ptr %40, align 4, !tbaa !5
  br label %93, !llvm.loop !13

142:                                              ; preds = %93
  br label %143

143:                                              ; preds = %142
  %144 = load i32, ptr %39, align 4, !tbaa !5
  %145 = add nsw i32 %144, 1
  store i32 %145, ptr %39, align 4, !tbaa !5
  br label %89, !llvm.loop !15

146:                                              ; preds = %89
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %147

147:                                              ; preds = %214, %146
  %148 = load i32, ptr %39, align 4, !tbaa !5
  %149 = icmp slt i32 %148, 128
  br i1 %149, label %150, label %217

150:                                              ; preds = %147
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %151

151:                                              ; preds = %210, %150
  %152 = load i32, ptr %40, align 4, !tbaa !5
  %153 = icmp slt i32 %152, 128
  br i1 %153, label %154, label %213

154:                                              ; preds = %151
  %155 = load i32, ptr %39, align 4, !tbaa !5
  %156 = add nsw i32 %155, 1
  %157 = sext i32 %156 to i64
  %158 = getelementptr inbounds [129 x [129 x double]], ptr %19, i64 0, i64 %157
  %159 = load i32, ptr %40, align 4, !tbaa !5
  %160 = add nsw i32 %159, 1
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds [129 x double], ptr %158, i64 0, i64 %161
  %163 = load double, ptr %162, align 8, !tbaa !11
  %164 = load i32, ptr %39, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds [129 x [129 x double]], ptr %19, i64 0, i64 %166
  %168 = load i32, ptr %40, align 4, !tbaa !5
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds [129 x double], ptr %167, i64 0, i64 %169
  %171 = load double, ptr %170, align 8, !tbaa !11
  %172 = fsub double %163, %171
  %173 = fneg double %172
  %174 = load double, ptr %23, align 8, !tbaa !11
  %175 = fdiv double %173, %174
  %176 = load i32, ptr %39, align 4, !tbaa !5
  %177 = add nsw i32 %176, 1
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %178
  %180 = load i32, ptr %40, align 4, !tbaa !5
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds [129 x double], ptr %179, i64 0, i64 %181
  store double %175, ptr %182, align 8, !tbaa !11
  %183 = load i32, ptr %39, align 4, !tbaa !5
  %184 = add nsw i32 %183, 1
  %185 = sext i32 %184 to i64
  %186 = getelementptr inbounds [129 x [129 x double]], ptr %19, i64 0, i64 %185
  %187 = load i32, ptr %40, align 4, !tbaa !5
  %188 = add nsw i32 %187, 1
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds [129 x double], ptr %186, i64 0, i64 %189
  %191 = load double, ptr %190, align 8, !tbaa !11
  %192 = load i32, ptr %39, align 4, !tbaa !5
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds [129 x [129 x double]], ptr %19, i64 0, i64 %193
  %195 = load i32, ptr %40, align 4, !tbaa !5
  %196 = add nsw i32 %195, 1
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds [129 x double], ptr %194, i64 0, i64 %197
  %199 = load double, ptr %198, align 8, !tbaa !11
  %200 = fsub double %191, %199
  %201 = load double, ptr %22, align 8, !tbaa !11
  %202 = fdiv double %200, %201
  %203 = load i32, ptr %39, align 4, !tbaa !5
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %204
  %206 = load i32, ptr %40, align 4, !tbaa !5
  %207 = add nsw i32 %206, 1
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds [129 x double], ptr %205, i64 0, i64 %208
  store double %202, ptr %209, align 8, !tbaa !11
  br label %210

210:                                              ; preds = %154
  %211 = load i32, ptr %40, align 4, !tbaa !5
  %212 = add nsw i32 %211, 1
  store i32 %212, ptr %40, align 4, !tbaa !5
  br label %151, !llvm.loop !16

213:                                              ; preds = %151
  br label %214

214:                                              ; preds = %213
  %215 = load i32, ptr %39, align 4, !tbaa !5
  %216 = add nsw i32 %215, 1
  store i32 %216, ptr %39, align 4, !tbaa !5
  br label %147, !llvm.loop !17

217:                                              ; preds = %147
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %218

218:                                              ; preds = %242, %217
  %219 = load i32, ptr %40, align 4, !tbaa !5
  %220 = icmp slt i32 %219, 128
  br i1 %220, label %221, label %245

221:                                              ; preds = %218
  %222 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 128
  %223 = load i32, ptr %40, align 4, !tbaa !5
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds [129 x double], ptr %222, i64 0, i64 %224
  %226 = load double, ptr %225, align 8, !tbaa !11
  %227 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 0
  %228 = load i32, ptr %40, align 4, !tbaa !5
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds [129 x double], ptr %227, i64 0, i64 %229
  store double %226, ptr %230, align 8, !tbaa !11
  %231 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 0
  %232 = load i32, ptr %40, align 4, !tbaa !5
  %233 = add nsw i32 %232, 1
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds [129 x double], ptr %231, i64 0, i64 %234
  %236 = load double, ptr %235, align 8, !tbaa !11
  %237 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 128
  %238 = load i32, ptr %40, align 4, !tbaa !5
  %239 = add nsw i32 %238, 1
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds [129 x double], ptr %237, i64 0, i64 %240
  store double %236, ptr %241, align 8, !tbaa !11
  br label %242

242:                                              ; preds = %221
  %243 = load i32, ptr %40, align 4, !tbaa !5
  %244 = add nsw i32 %243, 1
  store i32 %244, ptr %40, align 4, !tbaa !5
  br label %218, !llvm.loop !18

245:                                              ; preds = %218
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %246

246:                                              ; preds = %270, %245
  %247 = load i32, ptr %39, align 4, !tbaa !5
  %248 = icmp slt i32 %247, 128
  br i1 %248, label %249, label %273

249:                                              ; preds = %246
  %250 = load i32, ptr %39, align 4, !tbaa !5
  %251 = add nsw i32 %250, 1
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %252
  %254 = getelementptr inbounds [129 x double], ptr %253, i64 0, i64 0
  %255 = load double, ptr %254, align 8, !tbaa !11
  %256 = load i32, ptr %39, align 4, !tbaa !5
  %257 = add nsw i32 %256, 1
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %258
  %260 = getelementptr inbounds [129 x double], ptr %259, i64 0, i64 128
  store double %255, ptr %260, align 8, !tbaa !11
  %261 = load i32, ptr %39, align 4, !tbaa !5
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %262
  %264 = getelementptr inbounds [129 x double], ptr %263, i64 0, i64 128
  %265 = load double, ptr %264, align 8, !tbaa !11
  %266 = load i32, ptr %39, align 4, !tbaa !5
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %267
  %269 = getelementptr inbounds [129 x double], ptr %268, i64 0, i64 0
  store double %265, ptr %269, align 8, !tbaa !11
  br label %270

270:                                              ; preds = %249
  %271 = load i32, ptr %39, align 4, !tbaa !5
  %272 = add nsw i32 %271, 1
  store i32 %272, ptr %39, align 4, !tbaa !5
  br label %246, !llvm.loop !19

273:                                              ; preds = %246
  %274 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 128
  %275 = getelementptr inbounds [129 x double], ptr %274, i64 0, i64 0
  %276 = load double, ptr %275, align 16, !tbaa !11
  %277 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 0
  %278 = getelementptr inbounds [129 x double], ptr %277, i64 0, i64 128
  store double %276, ptr %278, align 16, !tbaa !11
  %279 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 0
  %280 = getelementptr inbounds [129 x double], ptr %279, i64 0, i64 128
  %281 = load double, ptr %280, align 16, !tbaa !11
  %282 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 128
  %283 = getelementptr inbounds [129 x double], ptr %282, i64 0, i64 0
  store double %281, ptr %283, align 16, !tbaa !11
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %284

284:                                              ; preds = %335, %273
  %285 = load i32, ptr %39, align 4, !tbaa !5
  %286 = icmp slt i32 %285, 129
  br i1 %286, label %287, label %338

287:                                              ; preds = %284
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %288

288:                                              ; preds = %331, %287
  %289 = load i32, ptr %40, align 4, !tbaa !5
  %290 = icmp slt i32 %289, 129
  br i1 %290, label %291, label %334

291:                                              ; preds = %288
  %292 = load i32, ptr %39, align 4, !tbaa !5
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %293
  %295 = load i32, ptr %40, align 4, !tbaa !5
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds [129 x double], ptr %294, i64 0, i64 %296
  %298 = load double, ptr %297, align 8, !tbaa !11
  %299 = load i32, ptr %39, align 4, !tbaa !5
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %300
  %302 = load i32, ptr %40, align 4, !tbaa !5
  %303 = sext i32 %302 to i64
  %304 = getelementptr inbounds [129 x double], ptr %301, i64 0, i64 %303
  store double %298, ptr %304, align 8, !tbaa !11
  %305 = load i32, ptr %39, align 4, !tbaa !5
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %306
  %308 = load i32, ptr %40, align 4, !tbaa !5
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds [129 x double], ptr %307, i64 0, i64 %309
  %311 = load double, ptr %310, align 8, !tbaa !11
  %312 = load i32, ptr %39, align 4, !tbaa !5
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %313
  %315 = load i32, ptr %40, align 4, !tbaa !5
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds [129 x double], ptr %314, i64 0, i64 %316
  store double %311, ptr %317, align 8, !tbaa !11
  %318 = load i32, ptr %39, align 4, !tbaa !5
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %319
  %321 = load i32, ptr %40, align 4, !tbaa !5
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds [129 x double], ptr %320, i64 0, i64 %322
  %324 = load double, ptr %323, align 8, !tbaa !11
  %325 = load i32, ptr %39, align 4, !tbaa !5
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %326
  %328 = load i32, ptr %40, align 4, !tbaa !5
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds [129 x double], ptr %327, i64 0, i64 %329
  store double %324, ptr %330, align 8, !tbaa !11
  br label %331

331:                                              ; preds = %291
  %332 = load i32, ptr %40, align 4, !tbaa !5
  %333 = add nsw i32 %332, 1
  store i32 %333, ptr %40, align 4, !tbaa !5
  br label %288, !llvm.loop !20

334:                                              ; preds = %288
  br label %335

335:                                              ; preds = %334
  %336 = load i32, ptr %39, align 4, !tbaa !5
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr %39, align 4, !tbaa !5
  br label %284, !llvm.loop !21

338:                                              ; preds = %284
  %339 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef 128)
  %340 = call i32 (ptr, ...) @printf(ptr noundef @.str.1, i32 noundef 128)
  %341 = load double, ptr %22, align 8, !tbaa !11
  %342 = call i32 (ptr, ...) @printf(ptr noundef @.str.2, double noundef %341)
  %343 = load double, ptr %23, align 8, !tbaa !11
  %344 = call i32 (ptr, ...) @printf(ptr noundef @.str.3, double noundef %343)
  %345 = load double, ptr %20, align 8, !tbaa !11
  %346 = call i32 (ptr, ...) @printf(ptr noundef @.str.4, double noundef %345)
  %347 = load double, ptr %25, align 8, !tbaa !11
  %348 = call i32 (ptr, ...) @printf(ptr noundef @.str.5, double noundef %347)
  %349 = call double (...) @wtime()
  store double %349, ptr %46, align 8, !tbaa !11
  store double 0.000000e+00, ptr %49, align 8, !tbaa !11
  store double 0.000000e+00, ptr %43, align 8, !tbaa !11
  store double 0.000000e+00, ptr %44, align 8, !tbaa !11
  store double 0.000000e+00, ptr %45, align 8, !tbaa !11
  store i32 1, ptr %38, align 4, !tbaa !5
  br label %350

350:                                              ; preds = %1515, %338
  %351 = load i32, ptr %38, align 4, !tbaa !5
  %352 = icmp sle i32 %351, 2000
  br i1 %352, label %353, label %1518

353:                                              ; preds = %350
  %354 = call double (...) @wtime()
  store double %354, ptr %53, align 8, !tbaa !11
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %355

355:                                              ; preds = %400, %353
  %356 = load i32, ptr %39, align 4, !tbaa !5
  %357 = icmp slt i32 %356, 128
  br i1 %357, label %358, label %403

358:                                              ; preds = %355
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %359

359:                                              ; preds = %396, %358
  %360 = load i32, ptr %40, align 4, !tbaa !5
  %361 = icmp slt i32 %360, 128
  br i1 %361, label %362, label %399

362:                                              ; preds = %359
  %363 = load i32, ptr %39, align 4, !tbaa !5
  %364 = add nsw i32 %363, 1
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %365
  %367 = load i32, ptr %40, align 4, !tbaa !5
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds [129 x double], ptr %366, i64 0, i64 %368
  %370 = load double, ptr %369, align 8, !tbaa !11
  %371 = load i32, ptr %39, align 4, !tbaa !5
  %372 = sext i32 %371 to i64
  %373 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %372
  %374 = load i32, ptr %40, align 4, !tbaa !5
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds [129 x double], ptr %373, i64 0, i64 %375
  %377 = load double, ptr %376, align 8, !tbaa !11
  %378 = fadd double %370, %377
  %379 = fmul double 5.000000e-01, %378
  %380 = load i32, ptr %39, align 4, !tbaa !5
  %381 = add nsw i32 %380, 1
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %382
  %384 = load i32, ptr %40, align 4, !tbaa !5
  %385 = sext i32 %384 to i64
  %386 = getelementptr inbounds [129 x double], ptr %383, i64 0, i64 %385
  %387 = load double, ptr %386, align 8, !tbaa !11
  %388 = fmul double %379, %387
  %389 = load i32, ptr %39, align 4, !tbaa !5
  %390 = add nsw i32 %389, 1
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %391
  %393 = load i32, ptr %40, align 4, !tbaa !5
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds [129 x double], ptr %392, i64 0, i64 %394
  store double %388, ptr %395, align 8, !tbaa !11
  br label %396

396:                                              ; preds = %362
  %397 = load i32, ptr %40, align 4, !tbaa !5
  %398 = add nsw i32 %397, 1
  store i32 %398, ptr %40, align 4, !tbaa !5
  br label %359, !llvm.loop !22

399:                                              ; preds = %359
  br label %400

400:                                              ; preds = %399
  %401 = load i32, ptr %39, align 4, !tbaa !5
  %402 = add nsw i32 %401, 1
  store i32 %402, ptr %39, align 4, !tbaa !5
  br label %355, !llvm.loop !23

403:                                              ; preds = %355
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %404

404:                                              ; preds = %449, %403
  %405 = load i32, ptr %39, align 4, !tbaa !5
  %406 = icmp slt i32 %405, 128
  br i1 %406, label %407, label %452

407:                                              ; preds = %404
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %408

408:                                              ; preds = %445, %407
  %409 = load i32, ptr %40, align 4, !tbaa !5
  %410 = icmp slt i32 %409, 128
  br i1 %410, label %411, label %448

411:                                              ; preds = %408
  %412 = load i32, ptr %39, align 4, !tbaa !5
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %413
  %415 = load i32, ptr %40, align 4, !tbaa !5
  %416 = add nsw i32 %415, 1
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds [129 x double], ptr %414, i64 0, i64 %417
  %419 = load double, ptr %418, align 8, !tbaa !11
  %420 = load i32, ptr %39, align 4, !tbaa !5
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %421
  %423 = load i32, ptr %40, align 4, !tbaa !5
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds [129 x double], ptr %422, i64 0, i64 %424
  %426 = load double, ptr %425, align 8, !tbaa !11
  %427 = fadd double %419, %426
  %428 = fmul double 5.000000e-01, %427
  %429 = load i32, ptr %39, align 4, !tbaa !5
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %430
  %432 = load i32, ptr %40, align 4, !tbaa !5
  %433 = add nsw i32 %432, 1
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds [129 x double], ptr %431, i64 0, i64 %434
  %436 = load double, ptr %435, align 8, !tbaa !11
  %437 = fmul double %428, %436
  %438 = load i32, ptr %39, align 4, !tbaa !5
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %439
  %441 = load i32, ptr %40, align 4, !tbaa !5
  %442 = add nsw i32 %441, 1
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds [129 x double], ptr %440, i64 0, i64 %443
  store double %437, ptr %444, align 8, !tbaa !11
  br label %445

445:                                              ; preds = %411
  %446 = load i32, ptr %40, align 4, !tbaa !5
  %447 = add nsw i32 %446, 1
  store i32 %447, ptr %40, align 4, !tbaa !5
  br label %408, !llvm.loop !24

448:                                              ; preds = %408
  br label %449

449:                                              ; preds = %448
  %450 = load i32, ptr %39, align 4, !tbaa !5
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr %39, align 4, !tbaa !5
  br label %404, !llvm.loop !25

452:                                              ; preds = %404
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %453

453:                                              ; preds = %550, %452
  %454 = load i32, ptr %39, align 4, !tbaa !5
  %455 = icmp slt i32 %454, 128
  br i1 %455, label %456, label %553

456:                                              ; preds = %453
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %457

457:                                              ; preds = %546, %456
  %458 = load i32, ptr %40, align 4, !tbaa !5
  %459 = icmp slt i32 %458, 128
  br i1 %459, label %460, label %549

460:                                              ; preds = %457
  %461 = load double, ptr %35, align 8, !tbaa !11
  %462 = load i32, ptr %39, align 4, !tbaa !5
  %463 = add nsw i32 %462, 1
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %464
  %466 = load i32, ptr %40, align 4, !tbaa !5
  %467 = add nsw i32 %466, 1
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds [129 x double], ptr %465, i64 0, i64 %468
  %470 = load double, ptr %469, align 8, !tbaa !11
  %471 = load i32, ptr %39, align 4, !tbaa !5
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %472
  %474 = load i32, ptr %40, align 4, !tbaa !5
  %475 = add nsw i32 %474, 1
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds [129 x double], ptr %473, i64 0, i64 %476
  %478 = load double, ptr %477, align 8, !tbaa !11
  %479 = fsub double %470, %478
  %480 = load double, ptr %36, align 8, !tbaa !11
  %481 = load i32, ptr %39, align 4, !tbaa !5
  %482 = add nsw i32 %481, 1
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %483
  %485 = load i32, ptr %40, align 4, !tbaa !5
  %486 = add nsw i32 %485, 1
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds [129 x double], ptr %484, i64 0, i64 %487
  %489 = load double, ptr %488, align 8, !tbaa !11
  %490 = load i32, ptr %39, align 4, !tbaa !5
  %491 = add nsw i32 %490, 1
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %492
  %494 = load i32, ptr %40, align 4, !tbaa !5
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds [129 x double], ptr %493, i64 0, i64 %495
  %497 = load double, ptr %496, align 8, !tbaa !11
  %498 = fsub double %489, %497
  %499 = fmul double %480, %498
  %500 = fneg double %499
  %501 = call double @llvm.fmuladd.f64(double %461, double %479, double %500)
  %502 = load i32, ptr %39, align 4, !tbaa !5
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %503
  %505 = load i32, ptr %40, align 4, !tbaa !5
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds [129 x double], ptr %504, i64 0, i64 %506
  %508 = load double, ptr %507, align 8, !tbaa !11
  %509 = load i32, ptr %39, align 4, !tbaa !5
  %510 = add nsw i32 %509, 1
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %511
  %513 = load i32, ptr %40, align 4, !tbaa !5
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds [129 x double], ptr %512, i64 0, i64 %514
  %516 = load double, ptr %515, align 8, !tbaa !11
  %517 = fadd double %508, %516
  %518 = load i32, ptr %39, align 4, !tbaa !5
  %519 = add nsw i32 %518, 1
  %520 = sext i32 %519 to i64
  %521 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %520
  %522 = load i32, ptr %40, align 4, !tbaa !5
  %523 = add nsw i32 %522, 1
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds [129 x double], ptr %521, i64 0, i64 %524
  %526 = load double, ptr %525, align 8, !tbaa !11
  %527 = fadd double %517, %526
  %528 = load i32, ptr %39, align 4, !tbaa !5
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %529
  %531 = load i32, ptr %40, align 4, !tbaa !5
  %532 = add nsw i32 %531, 1
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds [129 x double], ptr %530, i64 0, i64 %533
  %535 = load double, ptr %534, align 8, !tbaa !11
  %536 = fadd double %527, %535
  %537 = fdiv double %501, %536
  %538 = load i32, ptr %39, align 4, !tbaa !5
  %539 = add nsw i32 %538, 1
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 %540
  %542 = load i32, ptr %40, align 4, !tbaa !5
  %543 = add nsw i32 %542, 1
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds [129 x double], ptr %541, i64 0, i64 %544
  store double %537, ptr %545, align 8, !tbaa !11
  br label %546

546:                                              ; preds = %460
  %547 = load i32, ptr %40, align 4, !tbaa !5
  %548 = add nsw i32 %547, 1
  store i32 %548, ptr %40, align 4, !tbaa !5
  br label %457, !llvm.loop !26

549:                                              ; preds = %457
  br label %550

550:                                              ; preds = %549
  %551 = load i32, ptr %39, align 4, !tbaa !5
  %552 = add nsw i32 %551, 1
  store i32 %552, ptr %39, align 4, !tbaa !5
  br label %453, !llvm.loop !27

553:                                              ; preds = %453
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %554

554:                                              ; preds = %644, %553
  %555 = load i32, ptr %39, align 4, !tbaa !5
  %556 = icmp slt i32 %555, 128
  br i1 %556, label %557, label %647

557:                                              ; preds = %554
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %558

558:                                              ; preds = %640, %557
  %559 = load i32, ptr %40, align 4, !tbaa !5
  %560 = icmp slt i32 %559, 128
  br i1 %560, label %561, label %643

561:                                              ; preds = %558
  %562 = load i32, ptr %39, align 4, !tbaa !5
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %563
  %565 = load i32, ptr %40, align 4, !tbaa !5
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds [129 x double], ptr %564, i64 0, i64 %566
  %568 = load double, ptr %567, align 8, !tbaa !11
  %569 = load i32, ptr %39, align 4, !tbaa !5
  %570 = add nsw i32 %569, 1
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %571
  %573 = load i32, ptr %40, align 4, !tbaa !5
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds [129 x double], ptr %572, i64 0, i64 %574
  %576 = load double, ptr %575, align 8, !tbaa !11
  %577 = load i32, ptr %39, align 4, !tbaa !5
  %578 = add nsw i32 %577, 1
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %579
  %581 = load i32, ptr %40, align 4, !tbaa !5
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds [129 x double], ptr %580, i64 0, i64 %582
  %584 = load double, ptr %583, align 8, !tbaa !11
  %585 = load i32, ptr %39, align 4, !tbaa !5
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %586
  %588 = load i32, ptr %40, align 4, !tbaa !5
  %589 = sext i32 %588 to i64
  %590 = getelementptr inbounds [129 x double], ptr %587, i64 0, i64 %589
  %591 = load double, ptr %590, align 8, !tbaa !11
  %592 = load i32, ptr %39, align 4, !tbaa !5
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %593
  %595 = load i32, ptr %40, align 4, !tbaa !5
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds [129 x double], ptr %594, i64 0, i64 %596
  %598 = load double, ptr %597, align 8, !tbaa !11
  %599 = fmul double %591, %598
  %600 = call double @llvm.fmuladd.f64(double %576, double %584, double %599)
  %601 = load i32, ptr %39, align 4, !tbaa !5
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %602
  %604 = load i32, ptr %40, align 4, !tbaa !5
  %605 = add nsw i32 %604, 1
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds [129 x double], ptr %603, i64 0, i64 %606
  %608 = load double, ptr %607, align 8, !tbaa !11
  %609 = load i32, ptr %39, align 4, !tbaa !5
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %610
  %612 = load i32, ptr %40, align 4, !tbaa !5
  %613 = add nsw i32 %612, 1
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds [129 x double], ptr %611, i64 0, i64 %614
  %616 = load double, ptr %615, align 8, !tbaa !11
  %617 = call double @llvm.fmuladd.f64(double %608, double %616, double %600)
  %618 = load i32, ptr %39, align 4, !tbaa !5
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %619
  %621 = load i32, ptr %40, align 4, !tbaa !5
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds [129 x double], ptr %620, i64 0, i64 %622
  %624 = load double, ptr %623, align 8, !tbaa !11
  %625 = load i32, ptr %39, align 4, !tbaa !5
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %626
  %628 = load i32, ptr %40, align 4, !tbaa !5
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds [129 x double], ptr %627, i64 0, i64 %629
  %631 = load double, ptr %630, align 8, !tbaa !11
  %632 = call double @llvm.fmuladd.f64(double %624, double %631, double %617)
  %633 = call double @llvm.fmuladd.f64(double 2.500000e-01, double %632, double %568)
  %634 = load i32, ptr %39, align 4, !tbaa !5
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 %635
  %637 = load i32, ptr %40, align 4, !tbaa !5
  %638 = sext i32 %637 to i64
  %639 = getelementptr inbounds [129 x double], ptr %636, i64 0, i64 %638
  store double %633, ptr %639, align 8, !tbaa !11
  br label %640

640:                                              ; preds = %561
  %641 = load i32, ptr %40, align 4, !tbaa !5
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr %40, align 4, !tbaa !5
  br label %558, !llvm.loop !28

643:                                              ; preds = %558
  br label %644

644:                                              ; preds = %643
  %645 = load i32, ptr %39, align 4, !tbaa !5
  %646 = add nsw i32 %645, 1
  store i32 %646, ptr %39, align 4, !tbaa !5
  br label %554, !llvm.loop !29

647:                                              ; preds = %554
  %648 = call double (...) @wtime()
  store double %648, ptr %54, align 8, !tbaa !11
  %649 = load double, ptr %43, align 8, !tbaa !11
  %650 = load double, ptr %54, align 8, !tbaa !11
  %651 = load double, ptr %53, align 8, !tbaa !11
  %652 = fsub double %650, %651
  %653 = fadd double %649, %652
  store double %653, ptr %43, align 8, !tbaa !11
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %654

654:                                              ; preds = %698, %647
  %655 = load i32, ptr %40, align 4, !tbaa !5
  %656 = icmp slt i32 %655, 128
  br i1 %656, label %657, label %701

657:                                              ; preds = %654
  %658 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 128
  %659 = load i32, ptr %40, align 4, !tbaa !5
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds [129 x double], ptr %658, i64 0, i64 %660
  %662 = load double, ptr %661, align 8, !tbaa !11
  %663 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 0
  %664 = load i32, ptr %40, align 4, !tbaa !5
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds [129 x double], ptr %663, i64 0, i64 %665
  store double %662, ptr %666, align 8, !tbaa !11
  %667 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 0
  %668 = load i32, ptr %40, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  %670 = sext i32 %669 to i64
  %671 = getelementptr inbounds [129 x double], ptr %667, i64 0, i64 %670
  %672 = load double, ptr %671, align 8, !tbaa !11
  %673 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 128
  %674 = load i32, ptr %40, align 4, !tbaa !5
  %675 = add nsw i32 %674, 1
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds [129 x double], ptr %673, i64 0, i64 %676
  store double %672, ptr %677, align 8, !tbaa !11
  %678 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 128
  %679 = load i32, ptr %40, align 4, !tbaa !5
  %680 = add nsw i32 %679, 1
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds [129 x double], ptr %678, i64 0, i64 %681
  %683 = load double, ptr %682, align 8, !tbaa !11
  %684 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 0
  %685 = load i32, ptr %40, align 4, !tbaa !5
  %686 = add nsw i32 %685, 1
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds [129 x double], ptr %684, i64 0, i64 %687
  store double %683, ptr %688, align 8, !tbaa !11
  %689 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 0
  %690 = load i32, ptr %40, align 4, !tbaa !5
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds [129 x double], ptr %689, i64 0, i64 %691
  %693 = load double, ptr %692, align 8, !tbaa !11
  %694 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 128
  %695 = load i32, ptr %40, align 4, !tbaa !5
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds [129 x double], ptr %694, i64 0, i64 %696
  store double %693, ptr %697, align 8, !tbaa !11
  br label %698

698:                                              ; preds = %657
  %699 = load i32, ptr %40, align 4, !tbaa !5
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr %40, align 4, !tbaa !5
  br label %654, !llvm.loop !30

701:                                              ; preds = %654
  %702 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 128
  %703 = getelementptr inbounds [129 x double], ptr %702, i64 0, i64 0
  %704 = load double, ptr %703, align 16, !tbaa !11
  %705 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 0
  %706 = getelementptr inbounds [129 x double], ptr %705, i64 0, i64 128
  store double %704, ptr %706, align 16, !tbaa !11
  %707 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 0
  %708 = getelementptr inbounds [129 x double], ptr %707, i64 0, i64 128
  %709 = load double, ptr %708, align 16, !tbaa !11
  %710 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 128
  %711 = getelementptr inbounds [129 x double], ptr %710, i64 0, i64 0
  store double %709, ptr %711, align 16, !tbaa !11
  %712 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 128
  %713 = getelementptr inbounds [129 x double], ptr %712, i64 0, i64 128
  %714 = load double, ptr %713, align 16, !tbaa !11
  %715 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 0
  %716 = getelementptr inbounds [129 x double], ptr %715, i64 0, i64 0
  store double %714, ptr %716, align 16, !tbaa !11
  %717 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 0
  %718 = getelementptr inbounds [129 x double], ptr %717, i64 0, i64 0
  %719 = load double, ptr %718, align 16, !tbaa !11
  %720 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 128
  %721 = getelementptr inbounds [129 x double], ptr %720, i64 0, i64 128
  store double %719, ptr %721, align 16, !tbaa !11
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %722

722:                                              ; preds = %766, %701
  %723 = load i32, ptr %39, align 4, !tbaa !5
  %724 = icmp slt i32 %723, 128
  br i1 %724, label %725, label %769

725:                                              ; preds = %722
  %726 = load i32, ptr %39, align 4, !tbaa !5
  %727 = add nsw i32 %726, 1
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %728
  %730 = getelementptr inbounds [129 x double], ptr %729, i64 0, i64 0
  %731 = load double, ptr %730, align 8, !tbaa !11
  %732 = load i32, ptr %39, align 4, !tbaa !5
  %733 = add nsw i32 %732, 1
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %734
  %736 = getelementptr inbounds [129 x double], ptr %735, i64 0, i64 128
  store double %731, ptr %736, align 8, !tbaa !11
  %737 = load i32, ptr %39, align 4, !tbaa !5
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %738
  %740 = getelementptr inbounds [129 x double], ptr %739, i64 0, i64 128
  %741 = load double, ptr %740, align 8, !tbaa !11
  %742 = load i32, ptr %39, align 4, !tbaa !5
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %743
  %745 = getelementptr inbounds [129 x double], ptr %744, i64 0, i64 0
  store double %741, ptr %745, align 8, !tbaa !11
  %746 = load i32, ptr %39, align 4, !tbaa !5
  %747 = add nsw i32 %746, 1
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 %748
  %750 = getelementptr inbounds [129 x double], ptr %749, i64 0, i64 128
  %751 = load double, ptr %750, align 8, !tbaa !11
  %752 = load i32, ptr %39, align 4, !tbaa !5
  %753 = add nsw i32 %752, 1
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 %754
  %756 = getelementptr inbounds [129 x double], ptr %755, i64 0, i64 0
  store double %751, ptr %756, align 8, !tbaa !11
  %757 = load i32, ptr %39, align 4, !tbaa !5
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 %758
  %760 = getelementptr inbounds [129 x double], ptr %759, i64 0, i64 0
  %761 = load double, ptr %760, align 8, !tbaa !11
  %762 = load i32, ptr %39, align 4, !tbaa !5
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 %763
  %765 = getelementptr inbounds [129 x double], ptr %764, i64 0, i64 128
  store double %761, ptr %765, align 8, !tbaa !11
  br label %766

766:                                              ; preds = %725
  %767 = load i32, ptr %39, align 4, !tbaa !5
  %768 = add nsw i32 %767, 1
  store i32 %768, ptr %39, align 4, !tbaa !5
  br label %722, !llvm.loop !31

769:                                              ; preds = %722
  %770 = load double, ptr %21, align 8, !tbaa !11
  %771 = fdiv double %770, 8.000000e+00
  store double %771, ptr %32, align 8, !tbaa !11
  %772 = load double, ptr %21, align 8, !tbaa !11
  %773 = load double, ptr %22, align 8, !tbaa !11
  %774 = fdiv double %772, %773
  store double %774, ptr %33, align 8, !tbaa !11
  %775 = load double, ptr %21, align 8, !tbaa !11
  %776 = load double, ptr %23, align 8, !tbaa !11
  %777 = fdiv double %775, %776
  store double %777, ptr %34, align 8, !tbaa !11
  %778 = call double (...) @wtime()
  store double %778, ptr %53, align 8, !tbaa !11
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %779

779:                                              ; preds = %881, %769
  %780 = load i32, ptr %39, align 4, !tbaa !5
  %781 = icmp slt i32 %780, 128
  br i1 %781, label %782, label %884

782:                                              ; preds = %779
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %783

783:                                              ; preds = %877, %782
  %784 = load i32, ptr %40, align 4, !tbaa !5
  %785 = icmp slt i32 %784, 128
  br i1 %785, label %786, label %880

786:                                              ; preds = %783
  %787 = load i32, ptr %39, align 4, !tbaa !5
  %788 = add nsw i32 %787, 1
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %789
  %791 = load i32, ptr %40, align 4, !tbaa !5
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds [129 x double], ptr %790, i64 0, i64 %792
  %794 = load double, ptr %793, align 8, !tbaa !11
  %795 = load double, ptr %32, align 8, !tbaa !11
  %796 = load i32, ptr %39, align 4, !tbaa !5
  %797 = add nsw i32 %796, 1
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 %798
  %800 = load i32, ptr %40, align 4, !tbaa !5
  %801 = add nsw i32 %800, 1
  %802 = sext i32 %801 to i64
  %803 = getelementptr inbounds [129 x double], ptr %799, i64 0, i64 %802
  %804 = load double, ptr %803, align 8, !tbaa !11
  %805 = load i32, ptr %39, align 4, !tbaa !5
  %806 = add nsw i32 %805, 1
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 %807
  %809 = load i32, ptr %40, align 4, !tbaa !5
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds [129 x double], ptr %808, i64 0, i64 %810
  %812 = load double, ptr %811, align 8, !tbaa !11
  %813 = fadd double %804, %812
  %814 = fmul double %795, %813
  %815 = load i32, ptr %39, align 4, !tbaa !5
  %816 = add nsw i32 %815, 1
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %817
  %819 = load i32, ptr %40, align 4, !tbaa !5
  %820 = add nsw i32 %819, 1
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds [129 x double], ptr %818, i64 0, i64 %821
  %823 = load double, ptr %822, align 8, !tbaa !11
  %824 = load i32, ptr %39, align 4, !tbaa !5
  %825 = sext i32 %824 to i64
  %826 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %825
  %827 = load i32, ptr %40, align 4, !tbaa !5
  %828 = add nsw i32 %827, 1
  %829 = sext i32 %828 to i64
  %830 = getelementptr inbounds [129 x double], ptr %826, i64 0, i64 %829
  %831 = load double, ptr %830, align 8, !tbaa !11
  %832 = fadd double %823, %831
  %833 = load i32, ptr %39, align 4, !tbaa !5
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %834
  %836 = load i32, ptr %40, align 4, !tbaa !5
  %837 = sext i32 %836 to i64
  %838 = getelementptr inbounds [129 x double], ptr %835, i64 0, i64 %837
  %839 = load double, ptr %838, align 8, !tbaa !11
  %840 = fadd double %832, %839
  %841 = load i32, ptr %39, align 4, !tbaa !5
  %842 = add nsw i32 %841, 1
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %843
  %845 = load i32, ptr %40, align 4, !tbaa !5
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds [129 x double], ptr %844, i64 0, i64 %846
  %848 = load double, ptr %847, align 8, !tbaa !11
  %849 = fadd double %840, %848
  %850 = call double @llvm.fmuladd.f64(double %814, double %849, double %794)
  %851 = load double, ptr %33, align 8, !tbaa !11
  %852 = load i32, ptr %39, align 4, !tbaa !5
  %853 = add nsw i32 %852, 1
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 %854
  %856 = load i32, ptr %40, align 4, !tbaa !5
  %857 = sext i32 %856 to i64
  %858 = getelementptr inbounds [129 x double], ptr %855, i64 0, i64 %857
  %859 = load double, ptr %858, align 8, !tbaa !11
  %860 = load i32, ptr %39, align 4, !tbaa !5
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 %861
  %863 = load i32, ptr %40, align 4, !tbaa !5
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds [129 x double], ptr %862, i64 0, i64 %864
  %866 = load double, ptr %865, align 8, !tbaa !11
  %867 = fsub double %859, %866
  %868 = fneg double %851
  %869 = call double @llvm.fmuladd.f64(double %868, double %867, double %850)
  %870 = load i32, ptr %39, align 4, !tbaa !5
  %871 = add nsw i32 %870, 1
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %872
  %874 = load i32, ptr %40, align 4, !tbaa !5
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds [129 x double], ptr %873, i64 0, i64 %875
  store double %869, ptr %876, align 8, !tbaa !11
  br label %877

877:                                              ; preds = %786
  %878 = load i32, ptr %40, align 4, !tbaa !5
  %879 = add nsw i32 %878, 1
  store i32 %879, ptr %40, align 4, !tbaa !5
  br label %783, !llvm.loop !32

880:                                              ; preds = %783
  br label %881

881:                                              ; preds = %880
  %882 = load i32, ptr %39, align 4, !tbaa !5
  %883 = add nsw i32 %882, 1
  store i32 %883, ptr %39, align 4, !tbaa !5
  br label %779, !llvm.loop !33

884:                                              ; preds = %779
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %885

885:                                              ; preds = %988, %884
  %886 = load i32, ptr %39, align 4, !tbaa !5
  %887 = icmp slt i32 %886, 128
  br i1 %887, label %888, label %991

888:                                              ; preds = %885
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %889

889:                                              ; preds = %984, %888
  %890 = load i32, ptr %40, align 4, !tbaa !5
  %891 = icmp slt i32 %890, 128
  br i1 %891, label %892, label %987

892:                                              ; preds = %889
  %893 = load i32, ptr %39, align 4, !tbaa !5
  %894 = sext i32 %893 to i64
  %895 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %894
  %896 = load i32, ptr %40, align 4, !tbaa !5
  %897 = add nsw i32 %896, 1
  %898 = sext i32 %897 to i64
  %899 = getelementptr inbounds [129 x double], ptr %895, i64 0, i64 %898
  %900 = load double, ptr %899, align 8, !tbaa !11
  %901 = load double, ptr %32, align 8, !tbaa !11
  %902 = load i32, ptr %39, align 4, !tbaa !5
  %903 = add nsw i32 %902, 1
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 %904
  %906 = load i32, ptr %40, align 4, !tbaa !5
  %907 = add nsw i32 %906, 1
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds [129 x double], ptr %905, i64 0, i64 %908
  %910 = load double, ptr %909, align 8, !tbaa !11
  %911 = load i32, ptr %39, align 4, !tbaa !5
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds [129 x [129 x double]], ptr %17, i64 0, i64 %912
  %914 = load i32, ptr %40, align 4, !tbaa !5
  %915 = add nsw i32 %914, 1
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds [129 x double], ptr %913, i64 0, i64 %916
  %918 = load double, ptr %917, align 8, !tbaa !11
  %919 = fadd double %910, %918
  %920 = fmul double %901, %919
  %921 = load i32, ptr %39, align 4, !tbaa !5
  %922 = add nsw i32 %921, 1
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %923
  %925 = load i32, ptr %40, align 4, !tbaa !5
  %926 = add nsw i32 %925, 1
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds [129 x double], ptr %924, i64 0, i64 %927
  %929 = load double, ptr %928, align 8, !tbaa !11
  %930 = load i32, ptr %39, align 4, !tbaa !5
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %931
  %933 = load i32, ptr %40, align 4, !tbaa !5
  %934 = add nsw i32 %933, 1
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds [129 x double], ptr %932, i64 0, i64 %935
  %937 = load double, ptr %936, align 8, !tbaa !11
  %938 = fadd double %929, %937
  %939 = load i32, ptr %39, align 4, !tbaa !5
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %940
  %942 = load i32, ptr %40, align 4, !tbaa !5
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds [129 x double], ptr %941, i64 0, i64 %943
  %945 = load double, ptr %944, align 8, !tbaa !11
  %946 = fadd double %938, %945
  %947 = load i32, ptr %39, align 4, !tbaa !5
  %948 = add nsw i32 %947, 1
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %949
  %951 = load i32, ptr %40, align 4, !tbaa !5
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds [129 x double], ptr %950, i64 0, i64 %952
  %954 = load double, ptr %953, align 8, !tbaa !11
  %955 = fadd double %946, %954
  %956 = fneg double %920
  %957 = call double @llvm.fmuladd.f64(double %956, double %955, double %900)
  %958 = load double, ptr %34, align 8, !tbaa !11
  %959 = load i32, ptr %39, align 4, !tbaa !5
  %960 = sext i32 %959 to i64
  %961 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 %960
  %962 = load i32, ptr %40, align 4, !tbaa !5
  %963 = add nsw i32 %962, 1
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds [129 x double], ptr %961, i64 0, i64 %964
  %966 = load double, ptr %965, align 8, !tbaa !11
  %967 = load i32, ptr %39, align 4, !tbaa !5
  %968 = sext i32 %967 to i64
  %969 = getelementptr inbounds [129 x [129 x double]], ptr %18, i64 0, i64 %968
  %970 = load i32, ptr %40, align 4, !tbaa !5
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds [129 x double], ptr %969, i64 0, i64 %971
  %973 = load double, ptr %972, align 8, !tbaa !11
  %974 = fsub double %966, %973
  %975 = fneg double %958
  %976 = call double @llvm.fmuladd.f64(double %975, double %974, double %957)
  %977 = load i32, ptr %39, align 4, !tbaa !5
  %978 = sext i32 %977 to i64
  %979 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %978
  %980 = load i32, ptr %40, align 4, !tbaa !5
  %981 = add nsw i32 %980, 1
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds [129 x double], ptr %979, i64 0, i64 %982
  store double %976, ptr %983, align 8, !tbaa !11
  br label %984

984:                                              ; preds = %892
  %985 = load i32, ptr %40, align 4, !tbaa !5
  %986 = add nsw i32 %985, 1
  store i32 %986, ptr %40, align 4, !tbaa !5
  br label %889, !llvm.loop !34

987:                                              ; preds = %889
  br label %988

988:                                              ; preds = %987
  %989 = load i32, ptr %39, align 4, !tbaa !5
  %990 = add nsw i32 %989, 1
  store i32 %990, ptr %39, align 4, !tbaa !5
  br label %885, !llvm.loop !35

991:                                              ; preds = %885
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %992

992:                                              ; preds = %1055, %991
  %993 = load i32, ptr %39, align 4, !tbaa !5
  %994 = icmp slt i32 %993, 128
  br i1 %994, label %995, label %1058

995:                                              ; preds = %992
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %996

996:                                              ; preds = %1051, %995
  %997 = load i32, ptr %40, align 4, !tbaa !5
  %998 = icmp slt i32 %997, 128
  br i1 %998, label %999, label %1054

999:                                              ; preds = %996
  %1000 = load i32, ptr %39, align 4, !tbaa !5
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %1001
  %1003 = load i32, ptr %40, align 4, !tbaa !5
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds [129 x double], ptr %1002, i64 0, i64 %1004
  %1006 = load double, ptr %1005, align 8, !tbaa !11
  %1007 = load double, ptr %33, align 8, !tbaa !11
  %1008 = load i32, ptr %39, align 4, !tbaa !5
  %1009 = add nsw i32 %1008, 1
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %1010
  %1012 = load i32, ptr %40, align 4, !tbaa !5
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds [129 x double], ptr %1011, i64 0, i64 %1013
  %1015 = load double, ptr %1014, align 8, !tbaa !11
  %1016 = load i32, ptr %39, align 4, !tbaa !5
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %1017
  %1019 = load i32, ptr %40, align 4, !tbaa !5
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds [129 x double], ptr %1018, i64 0, i64 %1020
  %1022 = load double, ptr %1021, align 8, !tbaa !11
  %1023 = fsub double %1015, %1022
  %1024 = fneg double %1007
  %1025 = call double @llvm.fmuladd.f64(double %1024, double %1023, double %1006)
  %1026 = load double, ptr %34, align 8, !tbaa !11
  %1027 = load i32, ptr %39, align 4, !tbaa !5
  %1028 = sext i32 %1027 to i64
  %1029 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %1028
  %1030 = load i32, ptr %40, align 4, !tbaa !5
  %1031 = add nsw i32 %1030, 1
  %1032 = sext i32 %1031 to i64
  %1033 = getelementptr inbounds [129 x double], ptr %1029, i64 0, i64 %1032
  %1034 = load double, ptr %1033, align 8, !tbaa !11
  %1035 = load i32, ptr %39, align 4, !tbaa !5
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %1036
  %1038 = load i32, ptr %40, align 4, !tbaa !5
  %1039 = sext i32 %1038 to i64
  %1040 = getelementptr inbounds [129 x double], ptr %1037, i64 0, i64 %1039
  %1041 = load double, ptr %1040, align 8, !tbaa !11
  %1042 = fsub double %1034, %1041
  %1043 = fneg double %1026
  %1044 = call double @llvm.fmuladd.f64(double %1043, double %1042, double %1025)
  %1045 = load i32, ptr %39, align 4, !tbaa !5
  %1046 = sext i32 %1045 to i64
  %1047 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %1046
  %1048 = load i32, ptr %40, align 4, !tbaa !5
  %1049 = sext i32 %1048 to i64
  %1050 = getelementptr inbounds [129 x double], ptr %1047, i64 0, i64 %1049
  store double %1044, ptr %1050, align 8, !tbaa !11
  br label %1051

1051:                                             ; preds = %999
  %1052 = load i32, ptr %40, align 4, !tbaa !5
  %1053 = add nsw i32 %1052, 1
  store i32 %1053, ptr %40, align 4, !tbaa !5
  br label %996, !llvm.loop !36

1054:                                             ; preds = %996
  br label %1055

1055:                                             ; preds = %1054
  %1056 = load i32, ptr %39, align 4, !tbaa !5
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr %39, align 4, !tbaa !5
  br label %992, !llvm.loop !37

1058:                                             ; preds = %992
  %1059 = call double (...) @wtime()
  store double %1059, ptr %54, align 8, !tbaa !11
  %1060 = load double, ptr %44, align 8, !tbaa !11
  %1061 = load double, ptr %54, align 8, !tbaa !11
  %1062 = load double, ptr %53, align 8, !tbaa !11
  %1063 = fsub double %1061, %1062
  %1064 = fadd double %1060, %1063
  store double %1064, ptr %44, align 8, !tbaa !11
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1065

1065:                                             ; preds = %1098, %1058
  %1066 = load i32, ptr %40, align 4, !tbaa !5
  %1067 = icmp slt i32 %1066, 128
  br i1 %1067, label %1068, label %1101

1068:                                             ; preds = %1065
  %1069 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 128
  %1070 = load i32, ptr %40, align 4, !tbaa !5
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds [129 x double], ptr %1069, i64 0, i64 %1071
  %1073 = load double, ptr %1072, align 8, !tbaa !11
  %1074 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 0
  %1075 = load i32, ptr %40, align 4, !tbaa !5
  %1076 = sext i32 %1075 to i64
  %1077 = getelementptr inbounds [129 x double], ptr %1074, i64 0, i64 %1076
  store double %1073, ptr %1077, align 8, !tbaa !11
  %1078 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 0
  %1079 = load i32, ptr %40, align 4, !tbaa !5
  %1080 = add nsw i32 %1079, 1
  %1081 = sext i32 %1080 to i64
  %1082 = getelementptr inbounds [129 x double], ptr %1078, i64 0, i64 %1081
  %1083 = load double, ptr %1082, align 8, !tbaa !11
  %1084 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 128
  %1085 = load i32, ptr %40, align 4, !tbaa !5
  %1086 = add nsw i32 %1085, 1
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds [129 x double], ptr %1084, i64 0, i64 %1087
  store double %1083, ptr %1088, align 8, !tbaa !11
  %1089 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 0
  %1090 = load i32, ptr %40, align 4, !tbaa !5
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds [129 x double], ptr %1089, i64 0, i64 %1091
  %1093 = load double, ptr %1092, align 8, !tbaa !11
  %1094 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 128
  %1095 = load i32, ptr %40, align 4, !tbaa !5
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds [129 x double], ptr %1094, i64 0, i64 %1096
  store double %1093, ptr %1097, align 8, !tbaa !11
  br label %1098

1098:                                             ; preds = %1068
  %1099 = load i32, ptr %40, align 4, !tbaa !5
  %1100 = add nsw i32 %1099, 1
  store i32 %1100, ptr %40, align 4, !tbaa !5
  br label %1065, !llvm.loop !38

1101:                                             ; preds = %1065
  %1102 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 128
  %1103 = getelementptr inbounds [129 x double], ptr %1102, i64 0, i64 0
  %1104 = load double, ptr %1103, align 16, !tbaa !11
  %1105 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 0
  %1106 = getelementptr inbounds [129 x double], ptr %1105, i64 0, i64 128
  store double %1104, ptr %1106, align 16, !tbaa !11
  %1107 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 0
  %1108 = getelementptr inbounds [129 x double], ptr %1107, i64 0, i64 128
  %1109 = load double, ptr %1108, align 16, !tbaa !11
  %1110 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 128
  %1111 = getelementptr inbounds [129 x double], ptr %1110, i64 0, i64 0
  store double %1109, ptr %1111, align 16, !tbaa !11
  %1112 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 0
  %1113 = getelementptr inbounds [129 x double], ptr %1112, i64 0, i64 0
  %1114 = load double, ptr %1113, align 16, !tbaa !11
  %1115 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 128
  %1116 = getelementptr inbounds [129 x double], ptr %1115, i64 0, i64 128
  store double %1114, ptr %1116, align 16, !tbaa !11
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %1117

1117:                                             ; preds = %1150, %1101
  %1118 = load i32, ptr %39, align 4, !tbaa !5
  %1119 = icmp slt i32 %1118, 128
  br i1 %1119, label %1120, label %1153

1120:                                             ; preds = %1117
  %1121 = load i32, ptr %39, align 4, !tbaa !5
  %1122 = add nsw i32 %1121, 1
  %1123 = sext i32 %1122 to i64
  %1124 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %1123
  %1125 = getelementptr inbounds [129 x double], ptr %1124, i64 0, i64 0
  %1126 = load double, ptr %1125, align 8, !tbaa !11
  %1127 = load i32, ptr %39, align 4, !tbaa !5
  %1128 = add nsw i32 %1127, 1
  %1129 = sext i32 %1128 to i64
  %1130 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %1129
  %1131 = getelementptr inbounds [129 x double], ptr %1130, i64 0, i64 128
  store double %1126, ptr %1131, align 8, !tbaa !11
  %1132 = load i32, ptr %39, align 4, !tbaa !5
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %1133
  %1135 = getelementptr inbounds [129 x double], ptr %1134, i64 0, i64 128
  %1136 = load double, ptr %1135, align 8, !tbaa !11
  %1137 = load i32, ptr %39, align 4, !tbaa !5
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %1138
  %1140 = getelementptr inbounds [129 x double], ptr %1139, i64 0, i64 0
  store double %1136, ptr %1140, align 8, !tbaa !11
  %1141 = load i32, ptr %39, align 4, !tbaa !5
  %1142 = sext i32 %1141 to i64
  %1143 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %1142
  %1144 = getelementptr inbounds [129 x double], ptr %1143, i64 0, i64 0
  %1145 = load double, ptr %1144, align 8, !tbaa !11
  %1146 = load i32, ptr %39, align 4, !tbaa !5
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %1147
  %1149 = getelementptr inbounds [129 x double], ptr %1148, i64 0, i64 128
  store double %1145, ptr %1149, align 8, !tbaa !11
  br label %1150

1150:                                             ; preds = %1120
  %1151 = load i32, ptr %39, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 1
  store i32 %1152, ptr %39, align 4, !tbaa !5
  br label %1117, !llvm.loop !39

1153:                                             ; preds = %1117
  %1154 = load double, ptr %49, align 8, !tbaa !11
  %1155 = load double, ptr %20, align 8, !tbaa !11
  %1156 = fadd double %1154, %1155
  store double %1156, ptr %49, align 8, !tbaa !11
  %1157 = load i32, ptr %38, align 4, !tbaa !5
  %1158 = icmp sgt i32 %1157, 1
  br i1 %1158, label %1159, label %1416

1159:                                             ; preds = %1153
  %1160 = call double (...) @wtime()
  store double %1160, ptr %53, align 8, !tbaa !11
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %1161

1161:                                             ; preds = %1211, %1159
  %1162 = load i32, ptr %39, align 4, !tbaa !5
  %1163 = icmp slt i32 %1162, 129
  br i1 %1163, label %1164, label %1214

1164:                                             ; preds = %1161
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1165

1165:                                             ; preds = %1207, %1164
  %1166 = load i32, ptr %40, align 4, !tbaa !5
  %1167 = icmp slt i32 %1166, 129
  br i1 %1167, label %1168, label %1210

1168:                                             ; preds = %1165
  %1169 = load i32, ptr %39, align 4, !tbaa !5
  %1170 = sext i32 %1169 to i64
  %1171 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %1170
  %1172 = load i32, ptr %40, align 4, !tbaa !5
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds [129 x double], ptr %1171, i64 0, i64 %1173
  %1175 = load double, ptr %1174, align 8, !tbaa !11
  %1176 = load double, ptr %25, align 8, !tbaa !11
  %1177 = load i32, ptr %39, align 4, !tbaa !5
  %1178 = sext i32 %1177 to i64
  %1179 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %1178
  %1180 = load i32, ptr %40, align 4, !tbaa !5
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds [129 x double], ptr %1179, i64 0, i64 %1181
  %1183 = load double, ptr %1182, align 8, !tbaa !11
  %1184 = load i32, ptr %39, align 4, !tbaa !5
  %1185 = sext i32 %1184 to i64
  %1186 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %1185
  %1187 = load i32, ptr %40, align 4, !tbaa !5
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds [129 x double], ptr %1186, i64 0, i64 %1188
  %1190 = load double, ptr %1189, align 8, !tbaa !11
  %1191 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1190, double %1183)
  %1192 = load i32, ptr %39, align 4, !tbaa !5
  %1193 = sext i32 %1192 to i64
  %1194 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %1193
  %1195 = load i32, ptr %40, align 4, !tbaa !5
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds [129 x double], ptr %1194, i64 0, i64 %1196
  %1198 = load double, ptr %1197, align 8, !tbaa !11
  %1199 = fadd double %1191, %1198
  %1200 = call double @llvm.fmuladd.f64(double %1176, double %1199, double %1175)
  %1201 = load i32, ptr %39, align 4, !tbaa !5
  %1202 = sext i32 %1201 to i64
  %1203 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %1202
  %1204 = load i32, ptr %40, align 4, !tbaa !5
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds [129 x double], ptr %1203, i64 0, i64 %1205
  store double %1200, ptr %1206, align 8, !tbaa !11
  br label %1207

1207:                                             ; preds = %1168
  %1208 = load i32, ptr %40, align 4, !tbaa !5
  %1209 = add nsw i32 %1208, 1
  store i32 %1209, ptr %40, align 4, !tbaa !5
  br label %1165, !llvm.loop !40

1210:                                             ; preds = %1165
  br label %1211

1211:                                             ; preds = %1210
  %1212 = load i32, ptr %39, align 4, !tbaa !5
  %1213 = add nsw i32 %1212, 1
  store i32 %1213, ptr %39, align 4, !tbaa !5
  br label %1161, !llvm.loop !41

1214:                                             ; preds = %1161
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %1215

1215:                                             ; preds = %1265, %1214
  %1216 = load i32, ptr %39, align 4, !tbaa !5
  %1217 = icmp slt i32 %1216, 129
  br i1 %1217, label %1218, label %1268

1218:                                             ; preds = %1215
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1219

1219:                                             ; preds = %1261, %1218
  %1220 = load i32, ptr %40, align 4, !tbaa !5
  %1221 = icmp slt i32 %1220, 129
  br i1 %1221, label %1222, label %1264

1222:                                             ; preds = %1219
  %1223 = load i32, ptr %39, align 4, !tbaa !5
  %1224 = sext i32 %1223 to i64
  %1225 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %1224
  %1226 = load i32, ptr %40, align 4, !tbaa !5
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds [129 x double], ptr %1225, i64 0, i64 %1227
  %1229 = load double, ptr %1228, align 8, !tbaa !11
  %1230 = load double, ptr %25, align 8, !tbaa !11
  %1231 = load i32, ptr %39, align 4, !tbaa !5
  %1232 = sext i32 %1231 to i64
  %1233 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %1232
  %1234 = load i32, ptr %40, align 4, !tbaa !5
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds [129 x double], ptr %1233, i64 0, i64 %1235
  %1237 = load double, ptr %1236, align 8, !tbaa !11
  %1238 = load i32, ptr %39, align 4, !tbaa !5
  %1239 = sext i32 %1238 to i64
  %1240 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %1239
  %1241 = load i32, ptr %40, align 4, !tbaa !5
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds [129 x double], ptr %1240, i64 0, i64 %1242
  %1244 = load double, ptr %1243, align 8, !tbaa !11
  %1245 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1244, double %1237)
  %1246 = load i32, ptr %39, align 4, !tbaa !5
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %1247
  %1249 = load i32, ptr %40, align 4, !tbaa !5
  %1250 = sext i32 %1249 to i64
  %1251 = getelementptr inbounds [129 x double], ptr %1248, i64 0, i64 %1250
  %1252 = load double, ptr %1251, align 8, !tbaa !11
  %1253 = fadd double %1245, %1252
  %1254 = call double @llvm.fmuladd.f64(double %1230, double %1253, double %1229)
  %1255 = load i32, ptr %39, align 4, !tbaa !5
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %1256
  %1258 = load i32, ptr %40, align 4, !tbaa !5
  %1259 = sext i32 %1258 to i64
  %1260 = getelementptr inbounds [129 x double], ptr %1257, i64 0, i64 %1259
  store double %1254, ptr %1260, align 8, !tbaa !11
  br label %1261

1261:                                             ; preds = %1222
  %1262 = load i32, ptr %40, align 4, !tbaa !5
  %1263 = add nsw i32 %1262, 1
  store i32 %1263, ptr %40, align 4, !tbaa !5
  br label %1219, !llvm.loop !42

1264:                                             ; preds = %1219
  br label %1265

1265:                                             ; preds = %1264
  %1266 = load i32, ptr %39, align 4, !tbaa !5
  %1267 = add nsw i32 %1266, 1
  store i32 %1267, ptr %39, align 4, !tbaa !5
  br label %1215, !llvm.loop !43

1268:                                             ; preds = %1215
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %1269

1269:                                             ; preds = %1319, %1268
  %1270 = load i32, ptr %39, align 4, !tbaa !5
  %1271 = icmp slt i32 %1270, 129
  br i1 %1271, label %1272, label %1322

1272:                                             ; preds = %1269
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1273

1273:                                             ; preds = %1315, %1272
  %1274 = load i32, ptr %40, align 4, !tbaa !5
  %1275 = icmp slt i32 %1274, 129
  br i1 %1275, label %1276, label %1318

1276:                                             ; preds = %1273
  %1277 = load i32, ptr %39, align 4, !tbaa !5
  %1278 = sext i32 %1277 to i64
  %1279 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %1278
  %1280 = load i32, ptr %40, align 4, !tbaa !5
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds [129 x double], ptr %1279, i64 0, i64 %1281
  %1283 = load double, ptr %1282, align 8, !tbaa !11
  %1284 = load double, ptr %25, align 8, !tbaa !11
  %1285 = load i32, ptr %39, align 4, !tbaa !5
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %1286
  %1288 = load i32, ptr %40, align 4, !tbaa !5
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds [129 x double], ptr %1287, i64 0, i64 %1289
  %1291 = load double, ptr %1290, align 8, !tbaa !11
  %1292 = load i32, ptr %39, align 4, !tbaa !5
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %1293
  %1295 = load i32, ptr %40, align 4, !tbaa !5
  %1296 = sext i32 %1295 to i64
  %1297 = getelementptr inbounds [129 x double], ptr %1294, i64 0, i64 %1296
  %1298 = load double, ptr %1297, align 8, !tbaa !11
  %1299 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1298, double %1291)
  %1300 = load i32, ptr %39, align 4, !tbaa !5
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %1301
  %1303 = load i32, ptr %40, align 4, !tbaa !5
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds [129 x double], ptr %1302, i64 0, i64 %1304
  %1306 = load double, ptr %1305, align 8, !tbaa !11
  %1307 = fadd double %1299, %1306
  %1308 = call double @llvm.fmuladd.f64(double %1284, double %1307, double %1283)
  %1309 = load i32, ptr %39, align 4, !tbaa !5
  %1310 = sext i32 %1309 to i64
  %1311 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %1310
  %1312 = load i32, ptr %40, align 4, !tbaa !5
  %1313 = sext i32 %1312 to i64
  %1314 = getelementptr inbounds [129 x double], ptr %1311, i64 0, i64 %1313
  store double %1308, ptr %1314, align 8, !tbaa !11
  br label %1315

1315:                                             ; preds = %1276
  %1316 = load i32, ptr %40, align 4, !tbaa !5
  %1317 = add nsw i32 %1316, 1
  store i32 %1317, ptr %40, align 4, !tbaa !5
  br label %1273, !llvm.loop !44

1318:                                             ; preds = %1273
  br label %1319

1319:                                             ; preds = %1318
  %1320 = load i32, ptr %39, align 4, !tbaa !5
  %1321 = add nsw i32 %1320, 1
  store i32 %1321, ptr %39, align 4, !tbaa !5
  br label %1269, !llvm.loop !45

1322:                                             ; preds = %1269
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %1323

1323:                                             ; preds = %1348, %1322
  %1324 = load i32, ptr %39, align 4, !tbaa !5
  %1325 = icmp slt i32 %1324, 129
  br i1 %1325, label %1326, label %1351

1326:                                             ; preds = %1323
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1327

1327:                                             ; preds = %1344, %1326
  %1328 = load i32, ptr %40, align 4, !tbaa !5
  %1329 = icmp slt i32 %1328, 129
  br i1 %1329, label %1330, label %1347

1330:                                             ; preds = %1327
  %1331 = load i32, ptr %39, align 4, !tbaa !5
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %1332
  %1334 = load i32, ptr %40, align 4, !tbaa !5
  %1335 = sext i32 %1334 to i64
  %1336 = getelementptr inbounds [129 x double], ptr %1333, i64 0, i64 %1335
  %1337 = load double, ptr %1336, align 8, !tbaa !11
  %1338 = load i32, ptr %39, align 4, !tbaa !5
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %1339
  %1341 = load i32, ptr %40, align 4, !tbaa !5
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds [129 x double], ptr %1340, i64 0, i64 %1342
  store double %1337, ptr %1343, align 8, !tbaa !11
  br label %1344

1344:                                             ; preds = %1330
  %1345 = load i32, ptr %40, align 4, !tbaa !5
  %1346 = add nsw i32 %1345, 1
  store i32 %1346, ptr %40, align 4, !tbaa !5
  br label %1327, !llvm.loop !46

1347:                                             ; preds = %1327
  br label %1348

1348:                                             ; preds = %1347
  %1349 = load i32, ptr %39, align 4, !tbaa !5
  %1350 = add nsw i32 %1349, 1
  store i32 %1350, ptr %39, align 4, !tbaa !5
  br label %1323, !llvm.loop !47

1351:                                             ; preds = %1323
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %1352

1352:                                             ; preds = %1377, %1351
  %1353 = load i32, ptr %39, align 4, !tbaa !5
  %1354 = icmp slt i32 %1353, 129
  br i1 %1354, label %1355, label %1380

1355:                                             ; preds = %1352
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1356

1356:                                             ; preds = %1373, %1355
  %1357 = load i32, ptr %40, align 4, !tbaa !5
  %1358 = icmp slt i32 %1357, 129
  br i1 %1358, label %1359, label %1376

1359:                                             ; preds = %1356
  %1360 = load i32, ptr %39, align 4, !tbaa !5
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %1361
  %1363 = load i32, ptr %40, align 4, !tbaa !5
  %1364 = sext i32 %1363 to i64
  %1365 = getelementptr inbounds [129 x double], ptr %1362, i64 0, i64 %1364
  %1366 = load double, ptr %1365, align 8, !tbaa !11
  %1367 = load i32, ptr %39, align 4, !tbaa !5
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %1368
  %1370 = load i32, ptr %40, align 4, !tbaa !5
  %1371 = sext i32 %1370 to i64
  %1372 = getelementptr inbounds [129 x double], ptr %1369, i64 0, i64 %1371
  store double %1366, ptr %1372, align 8, !tbaa !11
  br label %1373

1373:                                             ; preds = %1359
  %1374 = load i32, ptr %40, align 4, !tbaa !5
  %1375 = add nsw i32 %1374, 1
  store i32 %1375, ptr %40, align 4, !tbaa !5
  br label %1356, !llvm.loop !48

1376:                                             ; preds = %1356
  br label %1377

1377:                                             ; preds = %1376
  %1378 = load i32, ptr %39, align 4, !tbaa !5
  %1379 = add nsw i32 %1378, 1
  store i32 %1379, ptr %39, align 4, !tbaa !5
  br label %1352, !llvm.loop !49

1380:                                             ; preds = %1352
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %1381

1381:                                             ; preds = %1406, %1380
  %1382 = load i32, ptr %39, align 4, !tbaa !5
  %1383 = icmp slt i32 %1382, 129
  br i1 %1383, label %1384, label %1409

1384:                                             ; preds = %1381
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1385

1385:                                             ; preds = %1402, %1384
  %1386 = load i32, ptr %40, align 4, !tbaa !5
  %1387 = icmp slt i32 %1386, 129
  br i1 %1387, label %1388, label %1405

1388:                                             ; preds = %1385
  %1389 = load i32, ptr %39, align 4, !tbaa !5
  %1390 = sext i32 %1389 to i64
  %1391 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %1390
  %1392 = load i32, ptr %40, align 4, !tbaa !5
  %1393 = sext i32 %1392 to i64
  %1394 = getelementptr inbounds [129 x double], ptr %1391, i64 0, i64 %1393
  %1395 = load double, ptr %1394, align 8, !tbaa !11
  %1396 = load i32, ptr %39, align 4, !tbaa !5
  %1397 = sext i32 %1396 to i64
  %1398 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %1397
  %1399 = load i32, ptr %40, align 4, !tbaa !5
  %1400 = sext i32 %1399 to i64
  %1401 = getelementptr inbounds [129 x double], ptr %1398, i64 0, i64 %1400
  store double %1395, ptr %1401, align 8, !tbaa !11
  br label %1402

1402:                                             ; preds = %1388
  %1403 = load i32, ptr %40, align 4, !tbaa !5
  %1404 = add nsw i32 %1403, 1
  store i32 %1404, ptr %40, align 4, !tbaa !5
  br label %1385, !llvm.loop !50

1405:                                             ; preds = %1385
  br label %1406

1406:                                             ; preds = %1405
  %1407 = load i32, ptr %39, align 4, !tbaa !5
  %1408 = add nsw i32 %1407, 1
  store i32 %1408, ptr %39, align 4, !tbaa !5
  br label %1381, !llvm.loop !51

1409:                                             ; preds = %1381
  %1410 = call double (...) @wtime()
  store double %1410, ptr %54, align 8, !tbaa !11
  %1411 = load double, ptr %45, align 8, !tbaa !11
  %1412 = load double, ptr %54, align 8, !tbaa !11
  %1413 = load double, ptr %53, align 8, !tbaa !11
  %1414 = fsub double %1412, %1413
  %1415 = fadd double %1411, %1414
  store double %1415, ptr %45, align 8, !tbaa !11
  br label %1514

1416:                                             ; preds = %1153
  %1417 = load double, ptr %21, align 8, !tbaa !11
  %1418 = load double, ptr %21, align 8, !tbaa !11
  %1419 = fadd double %1417, %1418
  store double %1419, ptr %21, align 8, !tbaa !11
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %1420

1420:                                             ; preds = %1510, %1416
  %1421 = load i32, ptr %39, align 4, !tbaa !5
  %1422 = icmp slt i32 %1421, 129
  br i1 %1422, label %1423, label %1513

1423:                                             ; preds = %1420
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1424

1424:                                             ; preds = %1506, %1423
  %1425 = load i32, ptr %40, align 4, !tbaa !5
  %1426 = icmp slt i32 %1425, 129
  br i1 %1426, label %1427, label %1509

1427:                                             ; preds = %1424
  %1428 = load i32, ptr %39, align 4, !tbaa !5
  %1429 = sext i32 %1428 to i64
  %1430 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %1429
  %1431 = load i32, ptr %40, align 4, !tbaa !5
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds [129 x double], ptr %1430, i64 0, i64 %1432
  %1434 = load double, ptr %1433, align 8, !tbaa !11
  %1435 = load i32, ptr %39, align 4, !tbaa !5
  %1436 = sext i32 %1435 to i64
  %1437 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %1436
  %1438 = load i32, ptr %40, align 4, !tbaa !5
  %1439 = sext i32 %1438 to i64
  %1440 = getelementptr inbounds [129 x double], ptr %1437, i64 0, i64 %1439
  store double %1434, ptr %1440, align 8, !tbaa !11
  %1441 = load i32, ptr %39, align 4, !tbaa !5
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %1442
  %1444 = load i32, ptr %40, align 4, !tbaa !5
  %1445 = sext i32 %1444 to i64
  %1446 = getelementptr inbounds [129 x double], ptr %1443, i64 0, i64 %1445
  %1447 = load double, ptr %1446, align 8, !tbaa !11
  %1448 = load i32, ptr %39, align 4, !tbaa !5
  %1449 = sext i32 %1448 to i64
  %1450 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %1449
  %1451 = load i32, ptr %40, align 4, !tbaa !5
  %1452 = sext i32 %1451 to i64
  %1453 = getelementptr inbounds [129 x double], ptr %1450, i64 0, i64 %1452
  store double %1447, ptr %1453, align 8, !tbaa !11
  %1454 = load i32, ptr %39, align 4, !tbaa !5
  %1455 = sext i32 %1454 to i64
  %1456 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %1455
  %1457 = load i32, ptr %40, align 4, !tbaa !5
  %1458 = sext i32 %1457 to i64
  %1459 = getelementptr inbounds [129 x double], ptr %1456, i64 0, i64 %1458
  %1460 = load double, ptr %1459, align 8, !tbaa !11
  %1461 = load i32, ptr %39, align 4, !tbaa !5
  %1462 = sext i32 %1461 to i64
  %1463 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %1462
  %1464 = load i32, ptr %40, align 4, !tbaa !5
  %1465 = sext i32 %1464 to i64
  %1466 = getelementptr inbounds [129 x double], ptr %1463, i64 0, i64 %1465
  store double %1460, ptr %1466, align 8, !tbaa !11
  %1467 = load i32, ptr %39, align 4, !tbaa !5
  %1468 = sext i32 %1467 to i64
  %1469 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %1468
  %1470 = load i32, ptr %40, align 4, !tbaa !5
  %1471 = sext i32 %1470 to i64
  %1472 = getelementptr inbounds [129 x double], ptr %1469, i64 0, i64 %1471
  %1473 = load double, ptr %1472, align 8, !tbaa !11
  %1474 = load i32, ptr %39, align 4, !tbaa !5
  %1475 = sext i32 %1474 to i64
  %1476 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %1475
  %1477 = load i32, ptr %40, align 4, !tbaa !5
  %1478 = sext i32 %1477 to i64
  %1479 = getelementptr inbounds [129 x double], ptr %1476, i64 0, i64 %1478
  store double %1473, ptr %1479, align 8, !tbaa !11
  %1480 = load i32, ptr %39, align 4, !tbaa !5
  %1481 = sext i32 %1480 to i64
  %1482 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %1481
  %1483 = load i32, ptr %40, align 4, !tbaa !5
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds [129 x double], ptr %1482, i64 0, i64 %1484
  %1486 = load double, ptr %1485, align 8, !tbaa !11
  %1487 = load i32, ptr %39, align 4, !tbaa !5
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %1488
  %1490 = load i32, ptr %40, align 4, !tbaa !5
  %1491 = sext i32 %1490 to i64
  %1492 = getelementptr inbounds [129 x double], ptr %1489, i64 0, i64 %1491
  store double %1486, ptr %1492, align 8, !tbaa !11
  %1493 = load i32, ptr %39, align 4, !tbaa !5
  %1494 = sext i32 %1493 to i64
  %1495 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %1494
  %1496 = load i32, ptr %40, align 4, !tbaa !5
  %1497 = sext i32 %1496 to i64
  %1498 = getelementptr inbounds [129 x double], ptr %1495, i64 0, i64 %1497
  %1499 = load double, ptr %1498, align 8, !tbaa !11
  %1500 = load i32, ptr %39, align 4, !tbaa !5
  %1501 = sext i32 %1500 to i64
  %1502 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %1501
  %1503 = load i32, ptr %40, align 4, !tbaa !5
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds [129 x double], ptr %1502, i64 0, i64 %1504
  store double %1499, ptr %1505, align 8, !tbaa !11
  br label %1506

1506:                                             ; preds = %1427
  %1507 = load i32, ptr %40, align 4, !tbaa !5
  %1508 = add nsw i32 %1507, 1
  store i32 %1508, ptr %40, align 4, !tbaa !5
  br label %1424, !llvm.loop !52

1509:                                             ; preds = %1424
  br label %1510

1510:                                             ; preds = %1509
  %1511 = load i32, ptr %39, align 4, !tbaa !5
  %1512 = add nsw i32 %1511, 1
  store i32 %1512, ptr %39, align 4, !tbaa !5
  br label %1420, !llvm.loop !53

1513:                                             ; preds = %1420
  br label %1514

1514:                                             ; preds = %1513, %1409
  br label %1515

1515:                                             ; preds = %1514
  %1516 = load i32, ptr %38, align 4, !tbaa !5
  %1517 = add nsw i32 %1516, 1
  store i32 %1517, ptr %38, align 4, !tbaa !5
  br label %350, !llvm.loop !54

1518:                                             ; preds = %350
  %1519 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1520 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 0
  %1521 = call double @compute_checksum(ptr noundef %1520, i32 noundef 129, i32 noundef 129)
  %1522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1519, ptr noundef @.str.6, i32 noundef 2000, double noundef %1521) #5
  %1523 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1524 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 0
  %1525 = call double @compute_checksum(ptr noundef %1524, i32 noundef 129, i32 noundef 129)
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1523, ptr noundef @.str.7, i32 noundef 2000, double noundef %1525) #5
  %1527 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1528 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 0
  %1529 = call double @compute_checksum(ptr noundef %1528, i32 noundef 129, i32 noundef 129)
  %1530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1527, ptr noundef @.str.8, i32 noundef 2000, double noundef %1529) #5
  %1531 = call double (...) @wtime()
  store double %1531, ptr %54, align 8, !tbaa !11
  %1532 = load double, ptr %54, align 8, !tbaa !11
  %1533 = load double, ptr %46, align 8, !tbaa !11
  %1534 = fsub double %1532, %1533
  store double %1534, ptr %47, align 8, !tbaa !11
  %1535 = load double, ptr %47, align 8, !tbaa !11
  %1536 = fdiv double %1535, 2.000000e+03
  store double %1536, ptr %48, align 8, !tbaa !11
  %1537 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1537, ptr noundef @.str.9) #5
  %1539 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1540 = load i32, ptr %41, align 4, !tbaa !5
  %1541 = load i32, ptr %42, align 4, !tbaa !5
  %1542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1539, ptr noundef @.str.10, i32 noundef %1540, i32 noundef %1541) #5
  %1543 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1544 = load double, ptr %47, align 8, !tbaa !11
  %1545 = load double, ptr %48, align 8, !tbaa !11
  %1546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1543, ptr noundef @.str.11, i32 noundef 2000, double noundef %1544, double noundef %1545) #5
  %1547 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1548 = load double, ptr %43, align 8, !tbaa !11
  %1549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1547, ptr noundef @.str.12, double noundef %1548) #5
  %1550 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1551 = load double, ptr %44, align 8, !tbaa !11
  %1552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1550, ptr noundef @.str.13, double noundef %1551) #5
  %1553 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1554 = load double, ptr %45, align 8, !tbaa !11
  %1555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1553, ptr noundef @.str.14, double noundef %1554) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 133128, ptr %6) #5
  ret i32 0
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.ceil.f64(double) #2

; Function Attrs: nounwind
declare float @atanf(float noundef) #3

; Function Attrs: nounwind
declare double @sin(double noundef) #3

; Function Attrs: nounwind
declare double @cos(double noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #2

declare i32 @printf(ptr noundef, ...) #4

declare double @wtime(...) #4

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #3

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [41 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [41 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [36 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local double @compute_checksum(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [129 x [129 x double]], align 16
  %4 = alloca [129 x [129 x double]], align 16
  %5 = alloca [129 x [129 x double]], align 16
  %6 = alloca [129 x [129 x double]], align 16
  %7 = alloca [129 x [129 x double]], align 16
  %8 = alloca [129 x [129 x double]], align 16
  %9 = alloca [129 x [129 x double]], align 16
  %10 = alloca [129 x [129 x double]], align 16
  %11 = alloca [129 x [129 x double]], align 16
  %12 = alloca [129 x [129 x double]], align 16
  %13 = alloca [129 x [129 x double]], align 16
  %14 = alloca [129 x [129 x double]], align 16
  %15 = alloca [129 x [129 x double]], align 16
  %16 = alloca [129 x [129 x double]], align 16
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %3) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 133128, ptr nonnull %16) #8
  br label %.preheader444

.preheader444:                                    ; preds = %2, %42
  %indvars.iv493 = phi i64 [ 0, %2 ], [ %indvars.iv.next494, %42 ]
  %17 = trunc nuw nsw i64 %indvars.iv493 to i32
  %18 = uitofp nneg i32 %17 to double
  %19 = fadd double %18, 5.000000e-01
  %20 = fmul double %19, 0x3FA921FB60000000
  %indvars.iv493.tr = trunc i64 %indvars.iv493 to i32
  %21 = shl i32 %indvars.iv493.tr, 1
  %22 = uitofp nneg i32 %21 to double
  %23 = fmul double %22, 0x3FA921FB60000000
  br label %24

24:                                               ; preds = %.preheader444, %24
  %indvars.iv = phi i64 [ 0, %.preheader444 ], [ %indvars.iv.next, %24 ]
  %25 = tail call double @sin(double noundef %20) #8
  %26 = fmul double %25, 1.000000e+06
  %27 = trunc nuw nsw i64 %indvars.iv to i32
  %28 = uitofp nneg i32 %27 to double
  %29 = fadd double %28, 5.000000e-01
  %30 = fmul double %29, 0x3FA921FB60000000
  %31 = tail call double @sin(double noundef %30) #8
  %32 = fmul double %26, %31
  %33 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %indvars.iv493, i64 %indvars.iv
  store double %32, ptr %33, align 8, !tbaa !5
  %34 = tail call double @cos(double noundef %23) #8
  %indvars.iv.tr = trunc i64 %indvars.iv to i32
  %35 = shl i32 %indvars.iv.tr, 1
  %36 = uitofp nneg i32 %35 to double
  %37 = fmul double %36, 0x3FA921FB60000000
  %38 = tail call double @cos(double noundef %37) #8
  %39 = fadd double %34, %38
  %40 = tail call double @llvm.fmuladd.f64(double %39, double 0x3FAED7AF1805CB63, double 5.000000e+04)
  %41 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv493, i64 %indvars.iv
  store double %40, ptr %41, align 8, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 129
  br i1 %exitcond.not, label %42, label %24, !llvm.loop !9

42:                                               ; preds = %24
  %indvars.iv.next494 = add nuw nsw i64 %indvars.iv493, 1
  %exitcond496.not = icmp eq i64 %indvars.iv.next494, 129
  br i1 %exitcond496.not, label %.preheader442, label %.preheader444, !llvm.loop !11

.preheader442:                                    ; preds = %42, %middle.block
  %indvars.iv501 = phi i64 [ %indvars.iv.next502, %middle.block ], [ 0, %42 ]
  %indvars.iv.next502 = add nuw nsw i64 %indvars.iv501, 1
  %.phi.trans.insert = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %indvars.iv.next502, i64 0
  %.pre = load double, ptr %.phi.trans.insert, align 8, !tbaa !5
  %vector.recur.init = insertelement <2 x double> poison, double %.pre, i64 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %.preheader442
  %index = phi i64 [ 0, %.preheader442 ], [ %index.next, %vector.body ]
  %vector.recur = phi <2 x double> [ %vector.recur.init, %.preheader442 ], [ %wide.load, %vector.body ]
  %43 = or disjoint i64 %index, 1
  %44 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %indvars.iv.next502, i64 %43
  %wide.load = load <2 x double>, ptr %44, align 8, !tbaa !5
  %45 = shufflevector <2 x double> %vector.recur, <2 x double> %wide.load, <2 x i32> <i32 1, i32 2>
  %46 = fsub <2 x double> %wide.load, %45
  %47 = fdiv <2 x double> %46, <double -1.000000e+05, double -1.000000e+05>
  %48 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv.next502, i64 %index
  store <2 x double> %47, ptr %48, align 8, !tbaa !5
  %49 = getelementptr inbounds [129 x [129 x double]], ptr %16, i64 0, i64 %indvars.iv501, i64 %43
  %wide.load688 = load <2 x double>, ptr %49, align 8, !tbaa !5
  %50 = fsub <2 x double> %wide.load, %wide.load688
  %51 = fdiv <2 x double> %50, <double 1.000000e+05, double 1.000000e+05>
  %52 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv501, i64 %43
  store <2 x double> %51, ptr %52, align 8, !tbaa !5
  %index.next = add nuw i64 %index, 2
  %53 = icmp eq i64 %index.next, 128
  br i1 %53, label %middle.block, label %vector.body, !llvm.loop !12

.preheader441:                                    ; preds = %middle.block
  %54 = getelementptr inbounds i8, ptr %3, i64 132096
  %55 = getelementptr inbounds i8, ptr %4, i64 132096
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(1024) %3, ptr noundef nonnull align 16 dereferenceable(1024) %54, i64 1024, i1 false), !tbaa !5
  %56 = getelementptr inbounds i8, ptr %4, i64 8
  %57 = getelementptr inbounds i8, ptr %4, i64 24
  %wide.load695 = load <2 x double>, ptr %56, align 8, !tbaa !5
  %wide.load696 = load <2 x double>, ptr %57, align 8, !tbaa !5
  %58 = getelementptr inbounds i8, ptr %4, i64 132104
  %59 = getelementptr inbounds i8, ptr %4, i64 132120
  store <2 x double> %wide.load695, ptr %58, align 8, !tbaa !5
  store <2 x double> %wide.load696, ptr %59, align 8, !tbaa !5
  %60 = getelementptr inbounds i8, ptr %4, i64 40
  %61 = getelementptr inbounds i8, ptr %4, i64 56
  %wide.load695.1 = load <2 x double>, ptr %60, align 8, !tbaa !5
  %wide.load696.1 = load <2 x double>, ptr %61, align 8, !tbaa !5
  %62 = getelementptr inbounds i8, ptr %4, i64 132136
  %63 = getelementptr inbounds i8, ptr %4, i64 132152
  store <2 x double> %wide.load695.1, ptr %62, align 8, !tbaa !5
  store <2 x double> %wide.load696.1, ptr %63, align 8, !tbaa !5
  %64 = getelementptr inbounds i8, ptr %4, i64 72
  %65 = getelementptr inbounds i8, ptr %4, i64 88
  %wide.load695.2 = load <2 x double>, ptr %64, align 8, !tbaa !5
  %wide.load696.2 = load <2 x double>, ptr %65, align 8, !tbaa !5
  %66 = getelementptr inbounds i8, ptr %4, i64 132168
  %67 = getelementptr inbounds i8, ptr %4, i64 132184
  store <2 x double> %wide.load695.2, ptr %66, align 8, !tbaa !5
  store <2 x double> %wide.load696.2, ptr %67, align 8, !tbaa !5
  %68 = getelementptr inbounds i8, ptr %4, i64 104
  %69 = getelementptr inbounds i8, ptr %4, i64 120
  %wide.load695.3 = load <2 x double>, ptr %68, align 8, !tbaa !5
  %wide.load696.3 = load <2 x double>, ptr %69, align 8, !tbaa !5
  %70 = getelementptr inbounds i8, ptr %4, i64 132200
  %71 = getelementptr inbounds i8, ptr %4, i64 132216
  store <2 x double> %wide.load695.3, ptr %70, align 8, !tbaa !5
  store <2 x double> %wide.load696.3, ptr %71, align 8, !tbaa !5
  %72 = getelementptr inbounds i8, ptr %4, i64 136
  %73 = getelementptr inbounds i8, ptr %4, i64 152
  %wide.load695.4 = load <2 x double>, ptr %72, align 8, !tbaa !5
  %wide.load696.4 = load <2 x double>, ptr %73, align 8, !tbaa !5
  %74 = getelementptr inbounds i8, ptr %4, i64 132232
  %75 = getelementptr inbounds i8, ptr %4, i64 132248
  store <2 x double> %wide.load695.4, ptr %74, align 8, !tbaa !5
  store <2 x double> %wide.load696.4, ptr %75, align 8, !tbaa !5
  %76 = getelementptr inbounds i8, ptr %4, i64 168
  %77 = getelementptr inbounds i8, ptr %4, i64 184
  %wide.load695.5 = load <2 x double>, ptr %76, align 8, !tbaa !5
  %wide.load696.5 = load <2 x double>, ptr %77, align 8, !tbaa !5
  %78 = getelementptr inbounds i8, ptr %4, i64 132264
  %79 = getelementptr inbounds i8, ptr %4, i64 132280
  store <2 x double> %wide.load695.5, ptr %78, align 8, !tbaa !5
  store <2 x double> %wide.load696.5, ptr %79, align 8, !tbaa !5
  %80 = getelementptr inbounds i8, ptr %4, i64 200
  %81 = getelementptr inbounds i8, ptr %4, i64 216
  %wide.load695.6 = load <2 x double>, ptr %80, align 8, !tbaa !5
  %wide.load696.6 = load <2 x double>, ptr %81, align 8, !tbaa !5
  %82 = getelementptr inbounds i8, ptr %4, i64 132296
  %83 = getelementptr inbounds i8, ptr %4, i64 132312
  store <2 x double> %wide.load695.6, ptr %82, align 8, !tbaa !5
  store <2 x double> %wide.load696.6, ptr %83, align 8, !tbaa !5
  %84 = getelementptr inbounds i8, ptr %4, i64 232
  %85 = getelementptr inbounds i8, ptr %4, i64 248
  %wide.load695.7 = load <2 x double>, ptr %84, align 8, !tbaa !5
  %wide.load696.7 = load <2 x double>, ptr %85, align 8, !tbaa !5
  %86 = getelementptr inbounds i8, ptr %4, i64 132328
  %87 = getelementptr inbounds i8, ptr %4, i64 132344
  store <2 x double> %wide.load695.7, ptr %86, align 8, !tbaa !5
  store <2 x double> %wide.load696.7, ptr %87, align 8, !tbaa !5
  %88 = getelementptr inbounds i8, ptr %4, i64 264
  %89 = getelementptr inbounds i8, ptr %4, i64 280
  %wide.load695.8 = load <2 x double>, ptr %88, align 8, !tbaa !5
  %wide.load696.8 = load <2 x double>, ptr %89, align 8, !tbaa !5
  %90 = getelementptr inbounds i8, ptr %4, i64 132360
  %91 = getelementptr inbounds i8, ptr %4, i64 132376
  store <2 x double> %wide.load695.8, ptr %90, align 8, !tbaa !5
  store <2 x double> %wide.load696.8, ptr %91, align 8, !tbaa !5
  %92 = getelementptr inbounds i8, ptr %4, i64 296
  %93 = getelementptr inbounds i8, ptr %4, i64 312
  %wide.load695.9 = load <2 x double>, ptr %92, align 8, !tbaa !5
  %wide.load696.9 = load <2 x double>, ptr %93, align 8, !tbaa !5
  %94 = getelementptr inbounds i8, ptr %4, i64 132392
  %95 = getelementptr inbounds i8, ptr %4, i64 132408
  store <2 x double> %wide.load695.9, ptr %94, align 8, !tbaa !5
  store <2 x double> %wide.load696.9, ptr %95, align 8, !tbaa !5
  %96 = getelementptr inbounds i8, ptr %4, i64 328
  %97 = getelementptr inbounds i8, ptr %4, i64 344
  %wide.load695.10 = load <2 x double>, ptr %96, align 8, !tbaa !5
  %wide.load696.10 = load <2 x double>, ptr %97, align 8, !tbaa !5
  %98 = getelementptr inbounds i8, ptr %4, i64 132424
  %99 = getelementptr inbounds i8, ptr %4, i64 132440
  store <2 x double> %wide.load695.10, ptr %98, align 8, !tbaa !5
  store <2 x double> %wide.load696.10, ptr %99, align 8, !tbaa !5
  %100 = getelementptr inbounds i8, ptr %4, i64 360
  %101 = getelementptr inbounds i8, ptr %4, i64 376
  %wide.load695.11 = load <2 x double>, ptr %100, align 8, !tbaa !5
  %wide.load696.11 = load <2 x double>, ptr %101, align 8, !tbaa !5
  %102 = getelementptr inbounds i8, ptr %4, i64 132456
  %103 = getelementptr inbounds i8, ptr %4, i64 132472
  store <2 x double> %wide.load695.11, ptr %102, align 8, !tbaa !5
  store <2 x double> %wide.load696.11, ptr %103, align 8, !tbaa !5
  %104 = getelementptr inbounds i8, ptr %4, i64 392
  %105 = getelementptr inbounds i8, ptr %4, i64 408
  %wide.load695.12 = load <2 x double>, ptr %104, align 8, !tbaa !5
  %wide.load696.12 = load <2 x double>, ptr %105, align 8, !tbaa !5
  %106 = getelementptr inbounds i8, ptr %4, i64 132488
  %107 = getelementptr inbounds i8, ptr %4, i64 132504
  store <2 x double> %wide.load695.12, ptr %106, align 8, !tbaa !5
  store <2 x double> %wide.load696.12, ptr %107, align 8, !tbaa !5
  %108 = getelementptr inbounds i8, ptr %4, i64 424
  %109 = getelementptr inbounds i8, ptr %4, i64 440
  %wide.load695.13 = load <2 x double>, ptr %108, align 8, !tbaa !5
  %wide.load696.13 = load <2 x double>, ptr %109, align 8, !tbaa !5
  %110 = getelementptr inbounds i8, ptr %4, i64 132520
  %111 = getelementptr inbounds i8, ptr %4, i64 132536
  store <2 x double> %wide.load695.13, ptr %110, align 8, !tbaa !5
  store <2 x double> %wide.load696.13, ptr %111, align 8, !tbaa !5
  %112 = getelementptr inbounds i8, ptr %4, i64 456
  %113 = getelementptr inbounds i8, ptr %4, i64 472
  %wide.load695.14 = load <2 x double>, ptr %112, align 8, !tbaa !5
  %wide.load696.14 = load <2 x double>, ptr %113, align 8, !tbaa !5
  %114 = getelementptr inbounds i8, ptr %4, i64 132552
  %115 = getelementptr inbounds i8, ptr %4, i64 132568
  store <2 x double> %wide.load695.14, ptr %114, align 8, !tbaa !5
  store <2 x double> %wide.load696.14, ptr %115, align 8, !tbaa !5
  %116 = getelementptr inbounds i8, ptr %4, i64 488
  %117 = getelementptr inbounds i8, ptr %4, i64 504
  %wide.load695.15 = load <2 x double>, ptr %116, align 8, !tbaa !5
  %wide.load696.15 = load <2 x double>, ptr %117, align 8, !tbaa !5
  %118 = getelementptr inbounds i8, ptr %4, i64 132584
  %119 = getelementptr inbounds i8, ptr %4, i64 132600
  store <2 x double> %wide.load695.15, ptr %118, align 8, !tbaa !5
  store <2 x double> %wide.load696.15, ptr %119, align 8, !tbaa !5
  %120 = getelementptr inbounds i8, ptr %4, i64 520
  %121 = getelementptr inbounds i8, ptr %4, i64 536
  %wide.load695.16 = load <2 x double>, ptr %120, align 8, !tbaa !5
  %wide.load696.16 = load <2 x double>, ptr %121, align 8, !tbaa !5
  %122 = getelementptr inbounds i8, ptr %4, i64 132616
  %123 = getelementptr inbounds i8, ptr %4, i64 132632
  store <2 x double> %wide.load695.16, ptr %122, align 8, !tbaa !5
  store <2 x double> %wide.load696.16, ptr %123, align 8, !tbaa !5
  %124 = getelementptr inbounds i8, ptr %4, i64 552
  %125 = getelementptr inbounds i8, ptr %4, i64 568
  %wide.load695.17 = load <2 x double>, ptr %124, align 8, !tbaa !5
  %wide.load696.17 = load <2 x double>, ptr %125, align 8, !tbaa !5
  %126 = getelementptr inbounds i8, ptr %4, i64 132648
  %127 = getelementptr inbounds i8, ptr %4, i64 132664
  store <2 x double> %wide.load695.17, ptr %126, align 8, !tbaa !5
  store <2 x double> %wide.load696.17, ptr %127, align 8, !tbaa !5
  %128 = getelementptr inbounds i8, ptr %4, i64 584
  %129 = getelementptr inbounds i8, ptr %4, i64 600
  %wide.load695.18 = load <2 x double>, ptr %128, align 8, !tbaa !5
  %wide.load696.18 = load <2 x double>, ptr %129, align 8, !tbaa !5
  %130 = getelementptr inbounds i8, ptr %4, i64 132680
  %131 = getelementptr inbounds i8, ptr %4, i64 132696
  store <2 x double> %wide.load695.18, ptr %130, align 8, !tbaa !5
  store <2 x double> %wide.load696.18, ptr %131, align 8, !tbaa !5
  %132 = getelementptr inbounds i8, ptr %4, i64 616
  %133 = getelementptr inbounds i8, ptr %4, i64 632
  %wide.load695.19 = load <2 x double>, ptr %132, align 8, !tbaa !5
  %wide.load696.19 = load <2 x double>, ptr %133, align 8, !tbaa !5
  %134 = getelementptr inbounds i8, ptr %4, i64 132712
  %135 = getelementptr inbounds i8, ptr %4, i64 132728
  store <2 x double> %wide.load695.19, ptr %134, align 8, !tbaa !5
  store <2 x double> %wide.load696.19, ptr %135, align 8, !tbaa !5
  %136 = getelementptr inbounds i8, ptr %4, i64 648
  %137 = getelementptr inbounds i8, ptr %4, i64 664
  %wide.load695.20 = load <2 x double>, ptr %136, align 8, !tbaa !5
  %wide.load696.20 = load <2 x double>, ptr %137, align 8, !tbaa !5
  %138 = getelementptr inbounds i8, ptr %4, i64 132744
  %139 = getelementptr inbounds i8, ptr %4, i64 132760
  store <2 x double> %wide.load695.20, ptr %138, align 8, !tbaa !5
  store <2 x double> %wide.load696.20, ptr %139, align 8, !tbaa !5
  %140 = getelementptr inbounds i8, ptr %4, i64 680
  %141 = getelementptr inbounds i8, ptr %4, i64 696
  %wide.load695.21 = load <2 x double>, ptr %140, align 8, !tbaa !5
  %wide.load696.21 = load <2 x double>, ptr %141, align 8, !tbaa !5
  %142 = getelementptr inbounds i8, ptr %4, i64 132776
  %143 = getelementptr inbounds i8, ptr %4, i64 132792
  store <2 x double> %wide.load695.21, ptr %142, align 8, !tbaa !5
  store <2 x double> %wide.load696.21, ptr %143, align 8, !tbaa !5
  %144 = getelementptr inbounds i8, ptr %4, i64 712
  %145 = getelementptr inbounds i8, ptr %4, i64 728
  %wide.load695.22 = load <2 x double>, ptr %144, align 8, !tbaa !5
  %wide.load696.22 = load <2 x double>, ptr %145, align 8, !tbaa !5
  %146 = getelementptr inbounds i8, ptr %4, i64 132808
  %147 = getelementptr inbounds i8, ptr %4, i64 132824
  store <2 x double> %wide.load695.22, ptr %146, align 8, !tbaa !5
  store <2 x double> %wide.load696.22, ptr %147, align 8, !tbaa !5
  %148 = getelementptr inbounds i8, ptr %4, i64 744
  %149 = getelementptr inbounds i8, ptr %4, i64 760
  %wide.load695.23 = load <2 x double>, ptr %148, align 8, !tbaa !5
  %wide.load696.23 = load <2 x double>, ptr %149, align 8, !tbaa !5
  %150 = getelementptr inbounds i8, ptr %4, i64 132840
  %151 = getelementptr inbounds i8, ptr %4, i64 132856
  store <2 x double> %wide.load695.23, ptr %150, align 8, !tbaa !5
  store <2 x double> %wide.load696.23, ptr %151, align 8, !tbaa !5
  %152 = getelementptr inbounds i8, ptr %4, i64 776
  %153 = getelementptr inbounds i8, ptr %4, i64 792
  %wide.load695.24 = load <2 x double>, ptr %152, align 8, !tbaa !5
  %wide.load696.24 = load <2 x double>, ptr %153, align 8, !tbaa !5
  %154 = getelementptr inbounds i8, ptr %4, i64 132872
  %155 = getelementptr inbounds i8, ptr %4, i64 132888
  store <2 x double> %wide.load695.24, ptr %154, align 8, !tbaa !5
  store <2 x double> %wide.load696.24, ptr %155, align 8, !tbaa !5
  %156 = getelementptr inbounds i8, ptr %4, i64 808
  %157 = getelementptr inbounds i8, ptr %4, i64 824
  %wide.load695.25 = load <2 x double>, ptr %156, align 8, !tbaa !5
  %wide.load696.25 = load <2 x double>, ptr %157, align 8, !tbaa !5
  %158 = getelementptr inbounds i8, ptr %4, i64 132904
  %159 = getelementptr inbounds i8, ptr %4, i64 132920
  store <2 x double> %wide.load695.25, ptr %158, align 8, !tbaa !5
  store <2 x double> %wide.load696.25, ptr %159, align 8, !tbaa !5
  %160 = getelementptr inbounds i8, ptr %4, i64 840
  %161 = getelementptr inbounds i8, ptr %4, i64 856
  %wide.load695.26 = load <2 x double>, ptr %160, align 8, !tbaa !5
  %wide.load696.26 = load <2 x double>, ptr %161, align 8, !tbaa !5
  %162 = getelementptr inbounds i8, ptr %4, i64 132936
  %163 = getelementptr inbounds i8, ptr %4, i64 132952
  store <2 x double> %wide.load695.26, ptr %162, align 8, !tbaa !5
  store <2 x double> %wide.load696.26, ptr %163, align 8, !tbaa !5
  %164 = getelementptr inbounds i8, ptr %4, i64 872
  %165 = getelementptr inbounds i8, ptr %4, i64 888
  %wide.load695.27 = load <2 x double>, ptr %164, align 8, !tbaa !5
  %wide.load696.27 = load <2 x double>, ptr %165, align 8, !tbaa !5
  %166 = getelementptr inbounds i8, ptr %4, i64 132968
  %167 = getelementptr inbounds i8, ptr %4, i64 132984
  store <2 x double> %wide.load695.27, ptr %166, align 8, !tbaa !5
  store <2 x double> %wide.load696.27, ptr %167, align 8, !tbaa !5
  %168 = getelementptr inbounds i8, ptr %4, i64 904
  %169 = getelementptr inbounds i8, ptr %4, i64 920
  %wide.load695.28 = load <2 x double>, ptr %168, align 8, !tbaa !5
  %wide.load696.28 = load <2 x double>, ptr %169, align 8, !tbaa !5
  %170 = getelementptr inbounds i8, ptr %4, i64 133000
  %171 = getelementptr inbounds i8, ptr %4, i64 133016
  store <2 x double> %wide.load695.28, ptr %170, align 8, !tbaa !5
  store <2 x double> %wide.load696.28, ptr %171, align 8, !tbaa !5
  %172 = getelementptr inbounds i8, ptr %4, i64 936
  %173 = getelementptr inbounds i8, ptr %4, i64 952
  %wide.load695.29 = load <2 x double>, ptr %172, align 8, !tbaa !5
  %wide.load696.29 = load <2 x double>, ptr %173, align 8, !tbaa !5
  %174 = getelementptr inbounds i8, ptr %4, i64 133032
  %175 = getelementptr inbounds i8, ptr %4, i64 133048
  store <2 x double> %wide.load695.29, ptr %174, align 8, !tbaa !5
  store <2 x double> %wide.load696.29, ptr %175, align 8, !tbaa !5
  %176 = getelementptr inbounds i8, ptr %4, i64 968
  %177 = getelementptr inbounds i8, ptr %4, i64 984
  %wide.load695.30 = load <2 x double>, ptr %176, align 8, !tbaa !5
  %wide.load696.30 = load <2 x double>, ptr %177, align 8, !tbaa !5
  %178 = getelementptr inbounds i8, ptr %4, i64 133064
  %179 = getelementptr inbounds i8, ptr %4, i64 133080
  store <2 x double> %wide.load695.30, ptr %178, align 8, !tbaa !5
  store <2 x double> %wide.load696.30, ptr %179, align 8, !tbaa !5
  %180 = getelementptr inbounds i8, ptr %4, i64 1000
  %181 = getelementptr inbounds i8, ptr %4, i64 1016
  %wide.load695.31 = load <2 x double>, ptr %180, align 8, !tbaa !5
  %wide.load696.31 = load <2 x double>, ptr %181, align 8, !tbaa !5
  %182 = getelementptr inbounds i8, ptr %4, i64 133096
  %183 = getelementptr inbounds i8, ptr %4, i64 133112
  store <2 x double> %wide.load695.31, ptr %182, align 8, !tbaa !5
  store <2 x double> %wide.load696.31, ptr %183, align 8, !tbaa !5
  br label %.preheader440

middle.block:                                     ; preds = %vector.body
  %exitcond504.not = icmp eq i64 %indvars.iv.next502, 128
  br i1 %exitcond504.not, label %.preheader441, label %.preheader442, !llvm.loop !15

.preheader440:                                    ; preds = %.preheader440, %.preheader441
  %indvars.iv510 = phi i64 [ 0, %.preheader441 ], [ %indvars.iv.next511.1, %.preheader440 ]
  %indvars.iv.next511 = or disjoint i64 %indvars.iv510, 1
  %184 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv.next511
  %185 = load double, ptr %184, align 8, !tbaa !5
  %186 = getelementptr inbounds i8, ptr %184, i64 1024
  store double %185, ptr %186, align 8, !tbaa !5
  %187 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv510
  %188 = getelementptr inbounds i8, ptr %187, i64 1024
  %189 = load double, ptr %188, align 16, !tbaa !5
  store double %189, ptr %187, align 16, !tbaa !5
  %indvars.iv.next511.1 = add nuw nsw i64 %indvars.iv510, 2
  %190 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv.next511.1
  %191 = load double, ptr %190, align 16, !tbaa !5
  %192 = getelementptr inbounds i8, ptr %190, i64 1024
  store double %191, ptr %192, align 16, !tbaa !5
  %193 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv.next511
  %194 = getelementptr inbounds i8, ptr %193, i64 1024
  %195 = load double, ptr %194, align 8, !tbaa !5
  store double %195, ptr %193, align 8, !tbaa !5
  %exitcond513.not.1 = icmp eq i64 %indvars.iv.next511.1, 128
  br i1 %exitcond513.not.1, label %196, label %.preheader440, !llvm.loop !16

196:                                              ; preds = %.preheader440
  %197 = load double, ptr %54, align 16, !tbaa !5
  %198 = getelementptr inbounds i8, ptr %3, i64 1024
  store double %197, ptr %198, align 16, !tbaa !5
  %199 = getelementptr inbounds i8, ptr %4, i64 1024
  %200 = load double, ptr %199, align 16, !tbaa !5
  store double %200, ptr %55, align 16, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(133128) %9, ptr noundef nonnull align 16 dereferenceable(133128) %3, i64 133128, i1 false), !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(133128) %10, ptr noundef nonnull align 16 dereferenceable(133128) %4, i64 133128, i1 false), !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(133128) %11, ptr noundef nonnull align 16 dereferenceable(133128) %5, i64 133128, i1 false), !tbaa !5
  %201 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef 128)
  %202 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, i32 noundef 128)
  %203 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, double noundef 1.000000e+05)
  %204 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.3, double noundef 1.000000e+05)
  %205 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4, double noundef 9.000000e+01)
  %206 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5, double noundef 1.000000e-03)
  %207 = tail call double (...) @wtime() #8
  %208 = getelementptr inbounds i8, ptr %12, i64 132096
  %209 = getelementptr inbounds i8, ptr %13, i64 132096
  %210 = getelementptr inbounds i8, ptr %15, i64 132096
  %211 = getelementptr inbounds i8, ptr %12, i64 1024
  %212 = getelementptr inbounds i8, ptr %13, i64 1024
  %213 = getelementptr inbounds i8, ptr %15, i64 133120
  %214 = getelementptr inbounds i8, ptr %6, i64 132096
  %215 = getelementptr inbounds i8, ptr %7, i64 132096
  %216 = getelementptr inbounds i8, ptr %8, i64 132096
  %217 = getelementptr inbounds i8, ptr %6, i64 1024
  %218 = getelementptr inbounds i8, ptr %7, i64 1024
  %219 = getelementptr inbounds i8, ptr %8, i64 133120
  %scevgep = getelementptr inbounds i8, ptr %14, i64 8
  %scevgep556 = getelementptr inbounds i8, ptr %14, i64 132104
  br label %220

220:                                              ; preds = %196, %.loopexit
  %.0489 = phi double [ 9.000000e+01, %196 ], [ %.1, %.loopexit ]
  %.0388488 = phi i32 [ 1, %196 ], [ %523, %.loopexit ]
  %.0412487 = phi double [ 0.000000e+00, %196 ], [ %400, %.loopexit ]
  %.0413486 = phi double [ 0.000000e+00, %196 ], [ %424, %.loopexit ]
  %.0414485 = phi double [ 0.000000e+00, %196 ], [ %.1415, %.loopexit ]
  %221 = tail call double (...) @wtime() #8
  br label %.preheader428

.preheader428:                                    ; preds = %220, %middle.block899
  %indvars.iv527 = phi i64 [ 0, %220 ], [ %indvars.iv.next528, %middle.block899 ]
  %indvars.iv.next528 = add nuw nsw i64 %indvars.iv527, 1
  br label %vector.body903

vector.body903:                                   ; preds = %vector.body903, %.preheader428
  %index904 = phi i64 [ 0, %.preheader428 ], [ %index.next911, %vector.body903 ]
  %222 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv.next528, i64 %index904
  %223 = getelementptr inbounds i8, ptr %222, i64 16
  %wide.load905 = load <2 x double>, ptr %222, align 8, !tbaa !5
  %wide.load906 = load <2 x double>, ptr %223, align 8, !tbaa !5
  %224 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv527, i64 %index904
  %225 = getelementptr inbounds i8, ptr %224, i64 16
  %wide.load907 = load <2 x double>, ptr %224, align 8, !tbaa !5
  %wide.load908 = load <2 x double>, ptr %225, align 8, !tbaa !5
  %226 = fadd <2 x double> %wide.load905, %wide.load907
  %227 = fadd <2 x double> %wide.load906, %wide.load908
  %228 = fmul <2 x double> %226, <double 5.000000e-01, double 5.000000e-01>
  %229 = fmul <2 x double> %227, <double 5.000000e-01, double 5.000000e-01>
  %230 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv.next528, i64 %index904
  %231 = getelementptr inbounds i8, ptr %230, i64 16
  %wide.load909 = load <2 x double>, ptr %230, align 8, !tbaa !5
  %wide.load910 = load <2 x double>, ptr %231, align 8, !tbaa !5
  %232 = fmul <2 x double> %wide.load909, %228
  %233 = fmul <2 x double> %wide.load910, %229
  %234 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %indvars.iv.next528, i64 %index904
  %235 = getelementptr inbounds i8, ptr %234, i64 16
  store <2 x double> %232, ptr %234, align 8, !tbaa !5
  store <2 x double> %233, ptr %235, align 8, !tbaa !5
  %index.next911 = add nuw i64 %index904, 4
  %236 = icmp eq i64 %index.next911, 128
  br i1 %236, label %middle.block899, label %vector.body903, !llvm.loop !17

middle.block899:                                  ; preds = %vector.body903
  %exitcond530.not = icmp eq i64 %indvars.iv.next528, 128
  br i1 %exitcond530.not, label %vector.ph886, label %.preheader428, !llvm.loop !18

vector.ph886:                                     ; preds = %middle.block899, %middle.block884
  %indvars.iv535 = phi i64 [ %indvars.iv.next536, %middle.block884 ], [ 0, %middle.block899 ]
  %.phi.trans.insert659 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv535, i64 0
  %.pre660 = load double, ptr %.phi.trans.insert659, align 8, !tbaa !5
  %vector.recur.init890 = insertelement <2 x double> poison, double %.pre660, i64 1
  br label %vector.body888

vector.body888:                                   ; preds = %vector.body888, %vector.ph886
  %index889 = phi i64 [ 0, %vector.ph886 ], [ %index.next896, %vector.body888 ]
  %vector.recur891 = phi <2 x double> [ %vector.recur.init890, %vector.ph886 ], [ %wide.load893, %vector.body888 ]
  %237 = or disjoint i64 %index889, 1
  %238 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv535, i64 %237
  %239 = getelementptr inbounds i8, ptr %238, i64 16
  %wide.load892 = load <2 x double>, ptr %238, align 8, !tbaa !5
  %wide.load893 = load <2 x double>, ptr %239, align 8, !tbaa !5
  %240 = shufflevector <2 x double> %vector.recur891, <2 x double> %wide.load892, <2 x i32> <i32 1, i32 2>
  %241 = shufflevector <2 x double> %wide.load892, <2 x double> %wide.load893, <2 x i32> <i32 1, i32 2>
  %242 = fadd <2 x double> %wide.load892, %240
  %243 = fadd <2 x double> %wide.load893, %241
  %244 = fmul <2 x double> %242, <double 5.000000e-01, double 5.000000e-01>
  %245 = fmul <2 x double> %243, <double 5.000000e-01, double 5.000000e-01>
  %246 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv535, i64 %237
  %247 = getelementptr inbounds i8, ptr %246, i64 16
  %wide.load894 = load <2 x double>, ptr %246, align 8, !tbaa !5
  %wide.load895 = load <2 x double>, ptr %247, align 8, !tbaa !5
  %248 = fmul <2 x double> %wide.load894, %244
  %249 = fmul <2 x double> %wide.load895, %245
  %250 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %indvars.iv535, i64 %237
  %251 = getelementptr inbounds i8, ptr %250, i64 16
  store <2 x double> %248, ptr %250, align 8, !tbaa !5
  store <2 x double> %249, ptr %251, align 8, !tbaa !5
  %index.next896 = add nuw i64 %index889, 4
  %252 = icmp eq i64 %index.next896, 128
  br i1 %252, label %middle.block884, label %vector.body888, !llvm.loop !19

middle.block884:                                  ; preds = %vector.body888
  %indvars.iv.next536 = add nuw nsw i64 %indvars.iv535, 1
  %exitcond538.not = icmp eq i64 %indvars.iv.next536, 128
  br i1 %exitcond538.not, label %.preheader426.preheader, label %vector.ph886, !llvm.loop !20

.preheader426.preheader:                          ; preds = %middle.block884
  %.pre664.pre = load double, ptr %5, align 16, !tbaa !5
  br label %.preheader426

.preheader426:                                    ; preds = %.preheader426.preheader, %middle.block860
  %.pre664 = phi double [ %.pre664.pre, %.preheader426.preheader ], [ %.pre666, %middle.block860 ]
  %indvars.iv543 = phi i64 [ 0, %.preheader426.preheader ], [ %indvars.iv.next544, %middle.block860 ]
  %indvars.iv.next544 = add nuw nsw i64 %indvars.iv543, 1
  %.phi.trans.insert665 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv.next544, i64 0
  %.pre666 = load double, ptr %.phi.trans.insert665, align 8, !tbaa !5
  %.phi.trans.insert661 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv.next544, i64 0
  %.pre662 = load double, ptr %.phi.trans.insert661, align 8, !tbaa !5
  %vector.recur.init866 = insertelement <2 x double> poison, double %.pre666, i64 1
  %vector.recur.init868 = insertelement <2 x double> poison, double %.pre664, i64 1
  %vector.recur.init870 = insertelement <2 x double> poison, double %.pre662, i64 1
  br label %vector.body864

vector.body864:                                   ; preds = %vector.body864, %.preheader426
  %index865 = phi i64 [ 0, %.preheader426 ], [ %index.next877, %vector.body864 ]
  %vector.recur867 = phi <2 x double> [ %vector.recur.init866, %.preheader426 ], [ %wide.load875, %vector.body864 ]
  %vector.recur869 = phi <2 x double> [ %vector.recur.init868, %.preheader426 ], [ %wide.load876, %vector.body864 ]
  %vector.recur871 = phi <2 x double> [ %vector.recur.init870, %.preheader426 ], [ %wide.load874, %vector.body864 ]
  %253 = or disjoint i64 %index865, 1
  %254 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv.next544, i64 %253
  %wide.load872 = load <2 x double>, ptr %254, align 8, !tbaa !5
  %255 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv543, i64 %253
  %wide.load873 = load <2 x double>, ptr %255, align 8, !tbaa !5
  %256 = fsub <2 x double> %wide.load872, %wide.load873
  %257 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv.next544, i64 %253
  %wide.load874 = load <2 x double>, ptr %257, align 8, !tbaa !5
  %258 = shufflevector <2 x double> %vector.recur871, <2 x double> %wide.load874, <2 x i32> <i32 1, i32 2>
  %259 = fsub <2 x double> %wide.load874, %258
  %260 = fmul <2 x double> %259, <double -4.000000e-05, double -4.000000e-05>
  %261 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %256, <2 x double> <double 4.000000e-05, double 4.000000e-05>, <2 x double> %260)
  %262 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv.next544, i64 %253
  %wide.load875 = load <2 x double>, ptr %262, align 8, !tbaa !5
  %263 = shufflevector <2 x double> %vector.recur867, <2 x double> %wide.load875, <2 x i32> <i32 1, i32 2>
  %264 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv543, i64 %253
  %wide.load876 = load <2 x double>, ptr %264, align 8, !tbaa !5
  %265 = shufflevector <2 x double> %vector.recur869, <2 x double> %wide.load876, <2 x i32> <i32 1, i32 2>
  %266 = fadd <2 x double> %265, %263
  %267 = fadd <2 x double> %266, %wide.load875
  %268 = fadd <2 x double> %267, %wide.load876
  %269 = fdiv <2 x double> %261, %268
  %270 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %indvars.iv.next544, i64 %253
  store <2 x double> %269, ptr %270, align 8, !tbaa !5
  %index.next877 = add nuw i64 %index865, 2
  %271 = icmp eq i64 %index.next877, 128
  br i1 %271, label %middle.block860, label %vector.body864, !llvm.loop !21

middle.block860:                                  ; preds = %vector.body864
  %exitcond546.not = icmp eq i64 %indvars.iv.next544, 128
  br i1 %exitcond546.not, label %.preheader425, label %.preheader426, !llvm.loop !22

.preheader425:                                    ; preds = %middle.block860, %middle.block845
  %indvars.iv551 = phi i64 [ %indvars.iv.next552, %middle.block845 ], [ 0, %middle.block860 ]
  %indvars.iv.next552 = add nuw nsw i64 %indvars.iv551, 1
  %.phi.trans.insert667 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv551, i64 0
  %.pre668 = load double, ptr %.phi.trans.insert667, align 8, !tbaa !5
  %vector.recur.init851 = insertelement <2 x double> poison, double %.pre668, i64 1
  br label %vector.body849

vector.body849:                                   ; preds = %vector.body849, %.preheader425
  %index850 = phi i64 [ 0, %.preheader425 ], [ %index.next857, %vector.body849 ]
  %vector.recur852 = phi <2 x double> [ %vector.recur.init851, %.preheader425 ], [ %wide.load856, %vector.body849 ]
  %272 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv551, i64 %index850
  %wide.load853 = load <2 x double>, ptr %272, align 8, !tbaa !5
  %273 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv.next552, i64 %index850
  %wide.load854 = load <2 x double>, ptr %273, align 8, !tbaa !5
  %274 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv551, i64 %index850
  %wide.load855 = load <2 x double>, ptr %274, align 8, !tbaa !5
  %275 = fmul <2 x double> %wide.load855, %wide.load855
  %276 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load854, <2 x double> %wide.load854, <2 x double> %275)
  %277 = or disjoint i64 %index850, 1
  %278 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv551, i64 %277
  %wide.load856 = load <2 x double>, ptr %278, align 8, !tbaa !5
  %279 = shufflevector <2 x double> %vector.recur852, <2 x double> %wide.load856, <2 x i32> <i32 1, i32 2>
  %280 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load856, <2 x double> %wide.load856, <2 x double> %276)
  %281 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %279, <2 x double> %279, <2 x double> %280)
  %282 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %281, <2 x double> <double 2.500000e-01, double 2.500000e-01>, <2 x double> %wide.load853)
  %283 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %indvars.iv551, i64 %index850
  store <2 x double> %282, ptr %283, align 8, !tbaa !5
  %index.next857 = add nuw i64 %index850, 2
  %284 = icmp eq i64 %index.next857, 128
  br i1 %284, label %middle.block845, label %vector.body849, !llvm.loop !23

middle.block845:                                  ; preds = %vector.body849
  %exitcond554.not = icmp eq i64 %indvars.iv.next552, 128
  br i1 %exitcond554.not, label %vector.ph836, label %.preheader425, !llvm.loop !24

vector.ph836:                                     ; preds = %middle.block845
  %285 = tail call double (...) @wtime() #8
  %286 = fsub double %285, %221
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(1024) %12, ptr noundef nonnull align 16 dereferenceable(1024) %208, i64 1024, i1 false), !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1024) %scevgep, ptr noundef nonnull align 8 dereferenceable(1024) %scevgep556, i64 1024, i1 false), !tbaa !5
  br label %vector.body838

vector.body838:                                   ; preds = %vector.body838, %vector.ph836
  %index839 = phi i64 [ 0, %vector.ph836 ], [ %index.next844.1, %vector.body838 ]
  %287 = or disjoint i64 %index839, 1
  %288 = getelementptr inbounds [129 x double], ptr %13, i64 0, i64 %287
  %289 = getelementptr inbounds i8, ptr %288, i64 16
  %wide.load840 = load <2 x double>, ptr %288, align 8, !tbaa !5
  %wide.load841 = load <2 x double>, ptr %289, align 8, !tbaa !5
  %290 = getelementptr inbounds [129 x double], ptr %209, i64 0, i64 %287
  %291 = getelementptr inbounds i8, ptr %290, i64 16
  store <2 x double> %wide.load840, ptr %290, align 8, !tbaa !5
  store <2 x double> %wide.load841, ptr %291, align 8, !tbaa !5
  %292 = getelementptr inbounds [129 x double], ptr %15, i64 0, i64 %index839
  %293 = getelementptr inbounds i8, ptr %292, i64 16
  %wide.load842 = load <2 x double>, ptr %292, align 16, !tbaa !5
  %wide.load843 = load <2 x double>, ptr %293, align 16, !tbaa !5
  %294 = getelementptr inbounds [129 x double], ptr %210, i64 0, i64 %index839
  %295 = getelementptr inbounds i8, ptr %294, i64 16
  store <2 x double> %wide.load842, ptr %294, align 16, !tbaa !5
  store <2 x double> %wide.load843, ptr %295, align 16, !tbaa !5
  %index.next844 = or disjoint i64 %index839, 4
  %296 = or disjoint i64 %index839, 5
  %297 = getelementptr inbounds [129 x double], ptr %13, i64 0, i64 %296
  %298 = getelementptr inbounds i8, ptr %297, i64 16
  %wide.load840.1 = load <2 x double>, ptr %297, align 8, !tbaa !5
  %wide.load841.1 = load <2 x double>, ptr %298, align 8, !tbaa !5
  %299 = getelementptr inbounds [129 x double], ptr %209, i64 0, i64 %296
  %300 = getelementptr inbounds i8, ptr %299, i64 16
  store <2 x double> %wide.load840.1, ptr %299, align 8, !tbaa !5
  store <2 x double> %wide.load841.1, ptr %300, align 8, !tbaa !5
  %301 = getelementptr inbounds [129 x double], ptr %15, i64 0, i64 %index.next844
  %302 = getelementptr inbounds i8, ptr %301, i64 16
  %wide.load842.1 = load <2 x double>, ptr %301, align 16, !tbaa !5
  %wide.load843.1 = load <2 x double>, ptr %302, align 16, !tbaa !5
  %303 = getelementptr inbounds [129 x double], ptr %210, i64 0, i64 %index.next844
  %304 = getelementptr inbounds i8, ptr %303, i64 16
  store <2 x double> %wide.load842.1, ptr %303, align 16, !tbaa !5
  store <2 x double> %wide.load843.1, ptr %304, align 16, !tbaa !5
  %index.next844.1 = add nuw nsw i64 %index839, 8
  %305 = icmp eq i64 %index.next844.1, 128
  br i1 %305, label %middle.block834, label %vector.body838, !llvm.loop !25

middle.block834:                                  ; preds = %vector.body838
  %306 = load double, ptr %208, align 16, !tbaa !5
  store double %306, ptr %211, align 16, !tbaa !5
  %307 = load double, ptr %212, align 16, !tbaa !5
  store double %307, ptr %209, align 16, !tbaa !5
  %308 = load double, ptr %15, align 16, !tbaa !5
  store double %308, ptr %213, align 16, !tbaa !5
  br label %309

309:                                              ; preds = %middle.block834, %309
  %indvars.iv561 = phi i64 [ 0, %middle.block834 ], [ %indvars.iv.next562, %309 ]
  %indvars.iv.next562 = add nuw nsw i64 %indvars.iv561, 1
  %310 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %indvars.iv.next562
  %311 = load double, ptr %310, align 8, !tbaa !5
  %312 = getelementptr inbounds i8, ptr %310, i64 1024
  store double %311, ptr %312, align 8, !tbaa !5
  %313 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %indvars.iv561
  %314 = getelementptr inbounds i8, ptr %313, i64 1024
  %315 = load double, ptr %314, align 8, !tbaa !5
  store double %315, ptr %313, align 8, !tbaa !5
  %316 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %indvars.iv.next562
  %317 = getelementptr inbounds i8, ptr %316, i64 1024
  %318 = load double, ptr %317, align 8, !tbaa !5
  store double %318, ptr %316, align 8, !tbaa !5
  %319 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %indvars.iv561
  %320 = load double, ptr %319, align 8, !tbaa !5
  %321 = getelementptr inbounds i8, ptr %319, i64 1024
  store double %320, ptr %321, align 8, !tbaa !5
  %exitcond564.not = icmp eq i64 %indvars.iv.next562, 128
  br i1 %exitcond564.not, label %322, label %309, !llvm.loop !26

322:                                              ; preds = %309
  %323 = fmul double %.0489, 1.250000e-01
  %324 = tail call double (...) @wtime() #8
  %325 = fdiv double %.0489, -1.000000e+05
  %.pre672.pre = load double, ptr %13, align 16, !tbaa !5
  %broadcast.splatinsert819 = insertelement <2 x double> poison, double %323, i64 0
  %broadcast.splat820 = shufflevector <2 x double> %broadcast.splatinsert819, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert825 = insertelement <2 x double> poison, double %325, i64 0
  %broadcast.splat826 = shufflevector <2 x double> %broadcast.splatinsert825, <2 x double> poison, <2 x i32> zeroinitializer
  br label %.preheader424

.preheader435:                                    ; preds = %middle.block805
  %326 = fneg double %323
  %.pre676.pre = load double, ptr %12, align 16, !tbaa !5
  %broadcast.splatinsert793 = insertelement <2 x double> poison, double %326, i64 0
  %broadcast.splat794 = shufflevector <2 x double> %broadcast.splatinsert793, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert796 = insertelement <2 x double> poison, double %325, i64 0
  %broadcast.splat797 = shufflevector <2 x double> %broadcast.splatinsert796, <2 x double> poison, <2 x i32> zeroinitializer
  br label %.preheader423

.preheader424:                                    ; preds = %322, %middle.block805
  %.pre672 = phi double [ %.pre672.pre, %322 ], [ %.pre674, %middle.block805 ]
  %indvars.iv569 = phi i64 [ 0, %322 ], [ %indvars.iv.next570, %middle.block805 ]
  %indvars.iv.next570 = add nuw nsw i64 %indvars.iv569, 1
  %.phi.trans.insert673 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %indvars.iv.next570, i64 0
  %.pre674 = load double, ptr %.phi.trans.insert673, align 8, !tbaa !5
  %.phi.trans.insert669 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %indvars.iv.next570, i64 0
  %.pre670 = load double, ptr %.phi.trans.insert669, align 8, !tbaa !5
  %vector.recur.init811 = insertelement <2 x double> poison, double %.pre674, i64 1
  %vector.recur.init813 = insertelement <2 x double> poison, double %.pre672, i64 1
  %vector.recur.init815 = insertelement <2 x double> poison, double %.pre670, i64 1
  br label %vector.body809

vector.body809:                                   ; preds = %vector.body809, %.preheader424
  %index810 = phi i64 [ 0, %.preheader424 ], [ %index.next827, %vector.body809 ]
  %vector.recur812 = phi <2 x double> [ %vector.recur.init811, %.preheader424 ], [ %wide.load821, %vector.body809 ]
  %vector.recur814 = phi <2 x double> [ %vector.recur.init813, %.preheader424 ], [ %wide.load822, %vector.body809 ]
  %vector.recur816 = phi <2 x double> [ %vector.recur.init815, %.preheader424 ], [ %wide.load818, %vector.body809 ]
  %327 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %indvars.iv.next570, i64 %index810
  %wide.load817 = load <2 x double>, ptr %327, align 8, !tbaa !5
  %328 = or disjoint i64 %index810, 1
  %329 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %indvars.iv.next570, i64 %328
  %wide.load818 = load <2 x double>, ptr %329, align 8, !tbaa !5
  %330 = shufflevector <2 x double> %vector.recur816, <2 x double> %wide.load818, <2 x i32> <i32 1, i32 2>
  %331 = fadd <2 x double> %wide.load818, %330
  %332 = fmul <2 x double> %broadcast.splat820, %331
  %333 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %indvars.iv.next570, i64 %328
  %wide.load821 = load <2 x double>, ptr %333, align 8, !tbaa !5
  %334 = shufflevector <2 x double> %vector.recur812, <2 x double> %wide.load821, <2 x i32> <i32 1, i32 2>
  %335 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %indvars.iv569, i64 %328
  %wide.load822 = load <2 x double>, ptr %335, align 8, !tbaa !5
  %336 = shufflevector <2 x double> %vector.recur814, <2 x double> %wide.load822, <2 x i32> <i32 1, i32 2>
  %337 = fadd <2 x double> %wide.load821, %wide.load822
  %338 = fadd <2 x double> %337, %336
  %339 = fadd <2 x double> %338, %334
  %340 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %332, <2 x double> %339, <2 x double> %wide.load817)
  %341 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %indvars.iv.next570, i64 %index810
  %wide.load823 = load <2 x double>, ptr %341, align 8, !tbaa !5
  %342 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %indvars.iv569, i64 %index810
  %wide.load824 = load <2 x double>, ptr %342, align 8, !tbaa !5
  %343 = fsub <2 x double> %wide.load823, %wide.load824
  %344 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat826, <2 x double> %343, <2 x double> %340)
  %345 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %indvars.iv.next570, i64 %index810
  store <2 x double> %344, ptr %345, align 8, !tbaa !5
  %index.next827 = add nuw i64 %index810, 2
  %346 = icmp eq i64 %index.next827, 128
  br i1 %346, label %middle.block805, label %vector.body809, !llvm.loop !27

middle.block805:                                  ; preds = %vector.body809
  %exitcond572.not = icmp eq i64 %indvars.iv.next570, 128
  br i1 %exitcond572.not, label %.preheader435, label %.preheader424, !llvm.loop !28

.preheader423:                                    ; preds = %.preheader435, %middle.block776
  %.pre676 = phi double [ %.pre676.pre, %.preheader435 ], [ %.pre678, %middle.block776 ]
  %indvars.iv577 = phi i64 [ 0, %.preheader435 ], [ %indvars.iv.next578, %middle.block776 ]
  %indvars.iv.next578 = add nuw nsw i64 %indvars.iv577, 1
  %.phi.trans.insert677 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %indvars.iv.next578, i64 0
  %.pre678 = load double, ptr %.phi.trans.insert677, align 8, !tbaa !5
  %.phi.trans.insert679 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %indvars.iv577, i64 0
  %.pre680 = load double, ptr %.phi.trans.insert679, align 8, !tbaa !5
  %vector.recur.init782 = insertelement <2 x double> poison, double %.pre680, i64 1
  %vector.recur.init784 = insertelement <2 x double> poison, double %.pre678, i64 1
  %vector.recur.init786 = insertelement <2 x double> poison, double %.pre676, i64 1
  br label %vector.body780

vector.body780:                                   ; preds = %vector.body780, %.preheader423
  %index781 = phi i64 [ 0, %.preheader423 ], [ %index.next798, %vector.body780 ]
  %vector.recur783 = phi <2 x double> [ %vector.recur.init782, %.preheader423 ], [ %wide.load795, %vector.body780 ]
  %vector.recur785 = phi <2 x double> [ %vector.recur.init784, %.preheader423 ], [ %wide.load791, %vector.body780 ]
  %vector.recur787 = phi <2 x double> [ %vector.recur.init786, %.preheader423 ], [ %wide.load792, %vector.body780 ]
  %347 = or disjoint i64 %index781, 1
  %348 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %indvars.iv577, i64 %347
  %wide.load788 = load <2 x double>, ptr %348, align 8, !tbaa !5
  %349 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %indvars.iv.next578, i64 %347
  %wide.load789 = load <2 x double>, ptr %349, align 8, !tbaa !5
  %350 = getelementptr inbounds [129 x [129 x double]], ptr %14, i64 0, i64 %indvars.iv577, i64 %347
  %wide.load790 = load <2 x double>, ptr %350, align 8, !tbaa !5
  %351 = fadd <2 x double> %wide.load789, %wide.load790
  %352 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %indvars.iv.next578, i64 %347
  %wide.load791 = load <2 x double>, ptr %352, align 8, !tbaa !5
  %353 = shufflevector <2 x double> %vector.recur785, <2 x double> %wide.load791, <2 x i32> <i32 1, i32 2>
  %354 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %indvars.iv577, i64 %347
  %wide.load792 = load <2 x double>, ptr %354, align 8, !tbaa !5
  %355 = shufflevector <2 x double> %vector.recur787, <2 x double> %wide.load792, <2 x i32> <i32 1, i32 2>
  %356 = fadd <2 x double> %wide.load791, %wide.load792
  %357 = fadd <2 x double> %356, %355
  %358 = fadd <2 x double> %357, %353
  %359 = fmul <2 x double> %351, %broadcast.splat794
  %360 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %359, <2 x double> %358, <2 x double> %wide.load788)
  %361 = getelementptr inbounds [129 x [129 x double]], ptr %15, i64 0, i64 %indvars.iv577, i64 %347
  %wide.load795 = load <2 x double>, ptr %361, align 8, !tbaa !5
  %362 = shufflevector <2 x double> %vector.recur783, <2 x double> %wide.load795, <2 x i32> <i32 1, i32 2>
  %363 = fsub <2 x double> %wide.load795, %362
  %364 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat797, <2 x double> %363, <2 x double> %360)
  %365 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %indvars.iv577, i64 %347
  store <2 x double> %364, ptr %365, align 8, !tbaa !5
  %index.next798 = add nuw i64 %index781, 2
  %366 = icmp eq i64 %index.next798, 128
  br i1 %366, label %middle.block776, label %vector.body780, !llvm.loop !29

middle.block776:                                  ; preds = %vector.body780
  %exitcond580.not = icmp eq i64 %indvars.iv.next578, 128
  br i1 %exitcond580.not, label %.preheader422.preheader, label %.preheader423, !llvm.loop !30

.preheader422.preheader:                          ; preds = %middle.block776
  %broadcast.splatinsert = insertelement <2 x double> poison, double %325, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  br label %.preheader422

.preheader422:                                    ; preds = %.preheader422.preheader, %middle.block761
  %indvars.iv585 = phi i64 [ %indvars.iv.next586, %middle.block761 ], [ 0, %.preheader422.preheader ]
  %indvars.iv.next586 = add nuw nsw i64 %indvars.iv585, 1
  %.phi.trans.insert681 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %indvars.iv585, i64 0
  %.pre682 = load double, ptr %.phi.trans.insert681, align 8, !tbaa !5
  %vector.recur.init767 = insertelement <2 x double> poison, double %.pre682, i64 1
  br label %vector.body765

vector.body765:                                   ; preds = %vector.body765, %.preheader422
  %index766 = phi i64 [ 0, %.preheader422 ], [ %index.next773, %vector.body765 ]
  %vector.recur768 = phi <2 x double> [ %vector.recur.init767, %.preheader422 ], [ %wide.load772, %vector.body765 ]
  %367 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %indvars.iv585, i64 %index766
  %wide.load769 = load <2 x double>, ptr %367, align 8, !tbaa !5
  %368 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %indvars.iv.next586, i64 %index766
  %wide.load770 = load <2 x double>, ptr %368, align 8, !tbaa !5
  %369 = getelementptr inbounds [129 x [129 x double]], ptr %12, i64 0, i64 %indvars.iv585, i64 %index766
  %wide.load771 = load <2 x double>, ptr %369, align 8, !tbaa !5
  %370 = fsub <2 x double> %wide.load770, %wide.load771
  %371 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat, <2 x double> %370, <2 x double> %wide.load769)
  %372 = or disjoint i64 %index766, 1
  %373 = getelementptr inbounds [129 x [129 x double]], ptr %13, i64 0, i64 %indvars.iv585, i64 %372
  %wide.load772 = load <2 x double>, ptr %373, align 8, !tbaa !5
  %374 = shufflevector <2 x double> %vector.recur768, <2 x double> %wide.load772, <2 x i32> <i32 1, i32 2>
  %375 = fsub <2 x double> %wide.load772, %374
  %376 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat, <2 x double> %375, <2 x double> %371)
  %377 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %indvars.iv585, i64 %index766
  store <2 x double> %376, ptr %377, align 8, !tbaa !5
  %index.next773 = add nuw i64 %index766, 2
  %378 = icmp eq i64 %index.next773, 128
  br i1 %378, label %middle.block761, label %vector.body765, !llvm.loop !31

middle.block761:                                  ; preds = %vector.body765
  %exitcond588.not = icmp eq i64 %indvars.iv.next586, 128
  br i1 %exitcond588.not, label %vector.ph752, label %.preheader422, !llvm.loop !32

vector.ph752:                                     ; preds = %middle.block761
  %379 = tail call double (...) @wtime() #8
  %380 = fsub double %379, %324
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(1024) %6, ptr noundef nonnull align 16 dereferenceable(1024) %214, i64 1024, i1 false), !tbaa !5
  br label %vector.body754

vector.body754:                                   ; preds = %vector.body754, %vector.ph752
  %index755 = phi i64 [ 0, %vector.ph752 ], [ %index.next760.1, %vector.body754 ]
  %381 = or disjoint i64 %index755, 1
  %382 = getelementptr inbounds [129 x double], ptr %7, i64 0, i64 %381
  %383 = getelementptr inbounds i8, ptr %382, i64 16
  %wide.load756 = load <2 x double>, ptr %382, align 8, !tbaa !5
  %wide.load757 = load <2 x double>, ptr %383, align 8, !tbaa !5
  %384 = getelementptr inbounds [129 x double], ptr %215, i64 0, i64 %381
  %385 = getelementptr inbounds i8, ptr %384, i64 16
  store <2 x double> %wide.load756, ptr %384, align 8, !tbaa !5
  store <2 x double> %wide.load757, ptr %385, align 8, !tbaa !5
  %386 = getelementptr inbounds [129 x double], ptr %8, i64 0, i64 %index755
  %387 = getelementptr inbounds i8, ptr %386, i64 16
  %wide.load758 = load <2 x double>, ptr %386, align 16, !tbaa !5
  %wide.load759 = load <2 x double>, ptr %387, align 16, !tbaa !5
  %388 = getelementptr inbounds [129 x double], ptr %216, i64 0, i64 %index755
  %389 = getelementptr inbounds i8, ptr %388, i64 16
  store <2 x double> %wide.load758, ptr %388, align 16, !tbaa !5
  store <2 x double> %wide.load759, ptr %389, align 16, !tbaa !5
  %index.next760 = or disjoint i64 %index755, 4
  %390 = or disjoint i64 %index755, 5
  %391 = getelementptr inbounds [129 x double], ptr %7, i64 0, i64 %390
  %392 = getelementptr inbounds i8, ptr %391, i64 16
  %wide.load756.1 = load <2 x double>, ptr %391, align 8, !tbaa !5
  %wide.load757.1 = load <2 x double>, ptr %392, align 8, !tbaa !5
  %393 = getelementptr inbounds [129 x double], ptr %215, i64 0, i64 %390
  %394 = getelementptr inbounds i8, ptr %393, i64 16
  store <2 x double> %wide.load756.1, ptr %393, align 8, !tbaa !5
  store <2 x double> %wide.load757.1, ptr %394, align 8, !tbaa !5
  %395 = getelementptr inbounds [129 x double], ptr %8, i64 0, i64 %index.next760
  %396 = getelementptr inbounds i8, ptr %395, i64 16
  %wide.load758.1 = load <2 x double>, ptr %395, align 16, !tbaa !5
  %wide.load759.1 = load <2 x double>, ptr %396, align 16, !tbaa !5
  %397 = getelementptr inbounds [129 x double], ptr %216, i64 0, i64 %index.next760
  %398 = getelementptr inbounds i8, ptr %397, i64 16
  store <2 x double> %wide.load758.1, ptr %397, align 16, !tbaa !5
  store <2 x double> %wide.load759.1, ptr %398, align 16, !tbaa !5
  %index.next760.1 = add nuw nsw i64 %index755, 8
  %399 = icmp eq i64 %index.next760.1, 128
  br i1 %399, label %middle.block750, label %vector.body754, !llvm.loop !33

middle.block750:                                  ; preds = %vector.body754
  %400 = fadd double %.0412487, %286
  %401 = load double, ptr %214, align 16, !tbaa !5
  store double %401, ptr %217, align 16, !tbaa !5
  %402 = load double, ptr %218, align 16, !tbaa !5
  store double %402, ptr %215, align 16, !tbaa !5
  %403 = load double, ptr %8, align 16, !tbaa !5
  store double %403, ptr %219, align 16, !tbaa !5
  br label %404

404:                                              ; preds = %404, %middle.block750
  %indvars.iv595 = phi i64 [ 0, %middle.block750 ], [ %indvars.iv.next596.1, %404 ]
  %indvars.iv.next596 = or disjoint i64 %indvars.iv595, 1
  %405 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %indvars.iv.next596
  %406 = load double, ptr %405, align 8, !tbaa !5
  %407 = getelementptr inbounds i8, ptr %405, i64 1024
  store double %406, ptr %407, align 8, !tbaa !5
  %408 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %indvars.iv595
  %409 = getelementptr inbounds i8, ptr %408, i64 1024
  %410 = load double, ptr %409, align 16, !tbaa !5
  store double %410, ptr %408, align 16, !tbaa !5
  %411 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %indvars.iv595
  %412 = load double, ptr %411, align 16, !tbaa !5
  %413 = getelementptr inbounds i8, ptr %411, i64 1024
  store double %412, ptr %413, align 16, !tbaa !5
  %indvars.iv.next596.1 = add nuw nsw i64 %indvars.iv595, 2
  %414 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %indvars.iv.next596.1
  %415 = load double, ptr %414, align 16, !tbaa !5
  %416 = getelementptr inbounds i8, ptr %414, i64 1024
  store double %415, ptr %416, align 16, !tbaa !5
  %417 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %indvars.iv.next596
  %418 = getelementptr inbounds i8, ptr %417, i64 1024
  %419 = load double, ptr %418, align 8, !tbaa !5
  store double %419, ptr %417, align 8, !tbaa !5
  %420 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %indvars.iv.next596
  %421 = load double, ptr %420, align 8, !tbaa !5
  %422 = getelementptr inbounds i8, ptr %420, i64 1024
  store double %421, ptr %422, align 8, !tbaa !5
  %exitcond598.not.1 = icmp eq i64 %indvars.iv.next596.1, 128
  br i1 %exitcond598.not.1, label %423, label %404, !llvm.loop !34

423:                                              ; preds = %404
  %424 = fadd double %.0413486, %380
  %425 = icmp ugt i32 %.0388488, 1
  br i1 %425, label %426, label %vector.ph739

426:                                              ; preds = %423
  %427 = tail call double (...) @wtime() #8
  br label %vector.ph726

vector.ph726:                                     ; preds = %scalar.ph725, %426
  %indvars.iv620 = phi i64 [ 0, %426 ], [ %indvars.iv.next621, %scalar.ph725 ]
  br label %vector.body728

vector.body728:                                   ; preds = %vector.body728, %vector.ph726
  %index729 = phi i64 [ 0, %vector.ph726 ], [ %index.next736, %vector.body728 ]
  %428 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv620, i64 %index729
  %429 = getelementptr inbounds i8, ptr %428, i64 16
  %wide.load730 = load <2 x double>, ptr %428, align 8, !tbaa !5
  %wide.load731 = load <2 x double>, ptr %429, align 8, !tbaa !5
  %430 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %indvars.iv620, i64 %index729
  %431 = getelementptr inbounds i8, ptr %430, i64 16
  %wide.load732 = load <2 x double>, ptr %430, align 8, !tbaa !5
  %wide.load733 = load <2 x double>, ptr %431, align 8, !tbaa !5
  %432 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load730, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %wide.load732)
  %433 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load731, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %wide.load733)
  %434 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %indvars.iv620, i64 %index729
  %435 = getelementptr inbounds i8, ptr %434, i64 16
  %wide.load734 = load <2 x double>, ptr %434, align 8, !tbaa !5
  %wide.load735 = load <2 x double>, ptr %435, align 8, !tbaa !5
  %436 = fadd <2 x double> %432, %wide.load734
  %437 = fadd <2 x double> %433, %wide.load735
  %438 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %436, <2 x double> <double 1.000000e-03, double 1.000000e-03>, <2 x double> %wide.load730)
  %439 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %437, <2 x double> <double 1.000000e-03, double 1.000000e-03>, <2 x double> %wide.load731)
  store <2 x double> %438, ptr %434, align 8, !tbaa !5
  store <2 x double> %439, ptr %435, align 8, !tbaa !5
  %index.next736 = add nuw i64 %index729, 4
  %440 = icmp eq i64 %index.next736, 128
  br i1 %440, label %scalar.ph725, label %vector.body728, !llvm.loop !35

scalar.ph725:                                     ; preds = %vector.body728
  %441 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv620, i64 128
  %442 = load double, ptr %441, align 8, !tbaa !5
  %443 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %indvars.iv620, i64 128
  %444 = load double, ptr %443, align 8, !tbaa !5
  %445 = tail call double @llvm.fmuladd.f64(double %442, double -2.000000e+00, double %444)
  %446 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %indvars.iv620, i64 128
  %447 = load double, ptr %446, align 8, !tbaa !5
  %448 = fadd double %445, %447
  %449 = tail call double @llvm.fmuladd.f64(double %448, double 1.000000e-03, double %442)
  store double %449, ptr %446, align 8, !tbaa !5
  %indvars.iv.next621 = add nuw nsw i64 %indvars.iv620, 1
  %exitcond623.not = icmp eq i64 %indvars.iv.next621, 129
  br i1 %exitcond623.not, label %vector.ph713, label %vector.ph726, !llvm.loop !36

vector.ph713:                                     ; preds = %scalar.ph725, %scalar.ph712
  %indvars.iv628 = phi i64 [ %indvars.iv.next629, %scalar.ph712 ], [ 0, %scalar.ph725 ]
  br label %vector.body715

vector.body715:                                   ; preds = %vector.body715, %vector.ph713
  %index716 = phi i64 [ 0, %vector.ph713 ], [ %index.next723, %vector.body715 ]
  %450 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv628, i64 %index716
  %451 = getelementptr inbounds i8, ptr %450, i64 16
  %wide.load717 = load <2 x double>, ptr %450, align 8, !tbaa !5
  %wide.load718 = load <2 x double>, ptr %451, align 8, !tbaa !5
  %452 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %indvars.iv628, i64 %index716
  %453 = getelementptr inbounds i8, ptr %452, i64 16
  %wide.load719 = load <2 x double>, ptr %452, align 8, !tbaa !5
  %wide.load720 = load <2 x double>, ptr %453, align 8, !tbaa !5
  %454 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load717, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %wide.load719)
  %455 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load718, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %wide.load720)
  %456 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %indvars.iv628, i64 %index716
  %457 = getelementptr inbounds i8, ptr %456, i64 16
  %wide.load721 = load <2 x double>, ptr %456, align 8, !tbaa !5
  %wide.load722 = load <2 x double>, ptr %457, align 8, !tbaa !5
  %458 = fadd <2 x double> %454, %wide.load721
  %459 = fadd <2 x double> %455, %wide.load722
  %460 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %458, <2 x double> <double 1.000000e-03, double 1.000000e-03>, <2 x double> %wide.load717)
  %461 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %459, <2 x double> <double 1.000000e-03, double 1.000000e-03>, <2 x double> %wide.load718)
  store <2 x double> %460, ptr %456, align 8, !tbaa !5
  store <2 x double> %461, ptr %457, align 8, !tbaa !5
  %index.next723 = add nuw i64 %index716, 4
  %462 = icmp eq i64 %index.next723, 128
  br i1 %462, label %scalar.ph712, label %vector.body715, !llvm.loop !37

scalar.ph712:                                     ; preds = %vector.body715
  %463 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv628, i64 128
  %464 = load double, ptr %463, align 8, !tbaa !5
  %465 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %indvars.iv628, i64 128
  %466 = load double, ptr %465, align 8, !tbaa !5
  %467 = tail call double @llvm.fmuladd.f64(double %464, double -2.000000e+00, double %466)
  %468 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %indvars.iv628, i64 128
  %469 = load double, ptr %468, align 8, !tbaa !5
  %470 = fadd double %467, %469
  %471 = tail call double @llvm.fmuladd.f64(double %470, double 1.000000e-03, double %464)
  store double %471, ptr %468, align 8, !tbaa !5
  %indvars.iv.next629 = add nuw nsw i64 %indvars.iv628, 1
  %exitcond631.not = icmp eq i64 %indvars.iv.next629, 129
  br i1 %exitcond631.not, label %vector.ph700, label %vector.ph713, !llvm.loop !38

vector.ph700:                                     ; preds = %scalar.ph712, %scalar.ph699
  %indvars.iv636 = phi i64 [ %indvars.iv.next637, %scalar.ph699 ], [ 0, %scalar.ph712 ]
  br label %vector.body702

vector.body702:                                   ; preds = %vector.body702, %vector.ph700
  %index703 = phi i64 [ 0, %vector.ph700 ], [ %index.next710, %vector.body702 ]
  %472 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv636, i64 %index703
  %473 = getelementptr inbounds i8, ptr %472, i64 16
  %wide.load704 = load <2 x double>, ptr %472, align 8, !tbaa !5
  %wide.load705 = load <2 x double>, ptr %473, align 8, !tbaa !5
  %474 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %indvars.iv636, i64 %index703
  %475 = getelementptr inbounds i8, ptr %474, i64 16
  %wide.load706 = load <2 x double>, ptr %474, align 8, !tbaa !5
  %wide.load707 = load <2 x double>, ptr %475, align 8, !tbaa !5
  %476 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load704, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %wide.load706)
  %477 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %wide.load705, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %wide.load707)
  %478 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %indvars.iv636, i64 %index703
  %479 = getelementptr inbounds i8, ptr %478, i64 16
  %wide.load708 = load <2 x double>, ptr %478, align 8, !tbaa !5
  %wide.load709 = load <2 x double>, ptr %479, align 8, !tbaa !5
  %480 = fadd <2 x double> %476, %wide.load708
  %481 = fadd <2 x double> %477, %wide.load709
  %482 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %480, <2 x double> <double 1.000000e-03, double 1.000000e-03>, <2 x double> %wide.load704)
  %483 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %481, <2 x double> <double 1.000000e-03, double 1.000000e-03>, <2 x double> %wide.load705)
  store <2 x double> %482, ptr %478, align 8, !tbaa !5
  store <2 x double> %483, ptr %479, align 8, !tbaa !5
  %index.next710 = add nuw i64 %index703, 4
  %484 = icmp eq i64 %index.next710, 128
  br i1 %484, label %scalar.ph699, label %vector.body702, !llvm.loop !39

scalar.ph699:                                     ; preds = %vector.body702
  %485 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv636, i64 128
  %486 = load double, ptr %485, align 8, !tbaa !5
  %487 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %indvars.iv636, i64 128
  %488 = load double, ptr %487, align 8, !tbaa !5
  %489 = tail call double @llvm.fmuladd.f64(double %486, double -2.000000e+00, double %488)
  %490 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %indvars.iv636, i64 128
  %491 = load double, ptr %490, align 8, !tbaa !5
  %492 = fadd double %489, %491
  %493 = tail call double @llvm.fmuladd.f64(double %492, double 1.000000e-03, double %486)
  store double %493, ptr %490, align 8, !tbaa !5
  %indvars.iv.next637 = add nuw nsw i64 %indvars.iv636, 1
  %exitcond639.not = icmp eq i64 %indvars.iv.next637, 129
  br i1 %exitcond639.not, label %.preheader417.preheader, label %vector.ph700, !llvm.loop !40

.preheader417.preheader:                          ; preds = %scalar.ph699
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(133128) %3, ptr noundef nonnull align 16 dereferenceable(133128) %6, i64 133128, i1 false), !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(133128) %4, ptr noundef nonnull align 16 dereferenceable(133128) %7, i64 133128, i1 false), !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(133128) %5, ptr noundef nonnull align 16 dereferenceable(133128) %8, i64 133128, i1 false), !tbaa !5
  %494 = tail call double (...) @wtime() #8
  %495 = fsub double %494, %427
  %496 = fadd double %.0414485, %495
  br label %.loopexit

vector.ph739:                                     ; preds = %423, %scalar.ph738
  %indvars.iv612 = phi i64 [ %indvars.iv.next613, %scalar.ph738 ], [ 0, %423 ]
  br label %vector.body741

vector.body741:                                   ; preds = %vector.body741, %vector.ph739
  %index742 = phi i64 [ 0, %vector.ph739 ], [ %index.next749, %vector.body741 ]
  %497 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv612, i64 %index742
  %wide.load743 = load <2 x double>, ptr %497, align 8, !tbaa !5
  %498 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %indvars.iv612, i64 %index742
  store <2 x double> %wide.load743, ptr %498, align 8, !tbaa !5
  %499 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv612, i64 %index742
  %wide.load744 = load <2 x double>, ptr %499, align 8, !tbaa !5
  %500 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %indvars.iv612, i64 %index742
  store <2 x double> %wide.load744, ptr %500, align 8, !tbaa !5
  %501 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv612, i64 %index742
  %wide.load745 = load <2 x double>, ptr %501, align 8, !tbaa !5
  %502 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %indvars.iv612, i64 %index742
  store <2 x double> %wide.load745, ptr %502, align 8, !tbaa !5
  %503 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %indvars.iv612, i64 %index742
  %wide.load746 = load <2 x double>, ptr %503, align 8, !tbaa !5
  store <2 x double> %wide.load746, ptr %497, align 8, !tbaa !5
  %504 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %indvars.iv612, i64 %index742
  %wide.load747 = load <2 x double>, ptr %504, align 8, !tbaa !5
  store <2 x double> %wide.load747, ptr %499, align 8, !tbaa !5
  %505 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %indvars.iv612, i64 %index742
  %wide.load748 = load <2 x double>, ptr %505, align 8, !tbaa !5
  store <2 x double> %wide.load748, ptr %501, align 8, !tbaa !5
  %index.next749 = add nuw i64 %index742, 2
  %506 = icmp eq i64 %index.next749, 128
  br i1 %506, label %scalar.ph738, label %vector.body741, !llvm.loop !41

scalar.ph738:                                     ; preds = %vector.body741
  %507 = getelementptr inbounds [129 x [129 x double]], ptr %3, i64 0, i64 %indvars.iv612, i64 128
  %508 = load double, ptr %507, align 8, !tbaa !5
  %509 = getelementptr inbounds [129 x [129 x double]], ptr %9, i64 0, i64 %indvars.iv612, i64 128
  store double %508, ptr %509, align 8, !tbaa !5
  %510 = getelementptr inbounds [129 x [129 x double]], ptr %4, i64 0, i64 %indvars.iv612, i64 128
  %511 = load double, ptr %510, align 8, !tbaa !5
  %512 = getelementptr inbounds [129 x [129 x double]], ptr %10, i64 0, i64 %indvars.iv612, i64 128
  store double %511, ptr %512, align 8, !tbaa !5
  %513 = getelementptr inbounds [129 x [129 x double]], ptr %5, i64 0, i64 %indvars.iv612, i64 128
  %514 = load double, ptr %513, align 8, !tbaa !5
  %515 = getelementptr inbounds [129 x [129 x double]], ptr %11, i64 0, i64 %indvars.iv612, i64 128
  store double %514, ptr %515, align 8, !tbaa !5
  %516 = getelementptr inbounds [129 x [129 x double]], ptr %6, i64 0, i64 %indvars.iv612, i64 128
  %517 = load double, ptr %516, align 8, !tbaa !5
  store double %517, ptr %507, align 8, !tbaa !5
  %518 = getelementptr inbounds [129 x [129 x double]], ptr %7, i64 0, i64 %indvars.iv612, i64 128
  %519 = load double, ptr %518, align 8, !tbaa !5
  store double %519, ptr %510, align 8, !tbaa !5
  %520 = getelementptr inbounds [129 x [129 x double]], ptr %8, i64 0, i64 %indvars.iv612, i64 128
  %521 = load double, ptr %520, align 8, !tbaa !5
  store double %521, ptr %513, align 8, !tbaa !5
  %indvars.iv.next613 = add nuw nsw i64 %indvars.iv612, 1
  %exitcond615.not = icmp eq i64 %indvars.iv.next613, 129
  br i1 %exitcond615.not, label %.loopexit.loopexit, label %vector.ph739, !llvm.loop !42

.loopexit.loopexit:                               ; preds = %scalar.ph738
  %522 = fadd double %.0489, %.0489
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %.preheader417.preheader
  %.1415 = phi double [ %496, %.preheader417.preheader ], [ %.0414485, %.loopexit.loopexit ]
  %.1 = phi double [ %.0489, %.preheader417.preheader ], [ %522, %.loopexit.loopexit ]
  %523 = add nuw nsw i32 %.0388488, 1
  %exitcond658.not = icmp eq i32 %523, 2001
  br i1 %exitcond658.not, label %524, label %220, !llvm.loop !43

524:                                              ; preds = %.loopexit
  %525 = load ptr, ptr @stdout, align 8, !tbaa !44
  %526 = call double @compute_checksum(ptr noundef nonnull %8, i32 noundef 129, i32 noundef 129)
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %525, ptr noundef nonnull @.str.6, i32 noundef 2000, double noundef %526) #8
  %528 = load ptr, ptr @stdout, align 8, !tbaa !44
  %529 = call double @compute_checksum(ptr noundef nonnull %6, i32 noundef 129, i32 noundef 129)
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %528, ptr noundef nonnull @.str.7, i32 noundef 2000, double noundef %529) #8
  %531 = load ptr, ptr @stdout, align 8, !tbaa !44
  %532 = call double @compute_checksum(ptr noundef nonnull %7, i32 noundef 129, i32 noundef 129)
  %533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %531, ptr noundef nonnull @.str.8, i32 noundef 2000, double noundef %532) #8
  %534 = call double (...) @wtime() #8
  %535 = fsub double %534, %207
  %536 = fdiv double %535, 2.000000e+03
  %537 = load ptr, ptr @stdout, align 8, !tbaa !44
  %538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %537, ptr noundef nonnull @.str.9) #8
  %539 = load ptr, ptr @stdout, align 8, !tbaa !44
  %540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef nonnull @.str.10, i32 noundef 1, i32 noundef 128) #8
  %541 = load ptr, ptr @stdout, align 8, !tbaa !44
  %542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %541, ptr noundef nonnull @.str.11, i32 noundef 2000, double noundef %535, double noundef %536) #8
  %543 = load ptr, ptr @stdout, align 8, !tbaa !44
  %544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %543, ptr noundef nonnull @.str.12, double noundef %400) #8
  %545 = load ptr, ptr @stdout, align 8, !tbaa !44
  %546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %545, ptr noundef nonnull @.str.13, double noundef %424) #8
  %547 = load ptr, ptr @stdout, align 8, !tbaa !44
  %548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %547, ptr noundef nonnull @.str.14, double noundef %.1415) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 133128, ptr nonnull %3) #8
  ret i32 0
}

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sin(double noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @cos(double noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #3

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #4

declare double @wtime(...) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #4

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #7

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = distinct !{!12, !10, !13, !14}
!13 = !{!"llvm.loop.isvectorized", i32 1}
!14 = !{!"llvm.loop.unroll.runtime.disable"}
!15 = distinct !{!15, !10}
!16 = distinct !{!16, !10}
!17 = distinct !{!17, !10, !13, !14}
!18 = distinct !{!18, !10}
!19 = distinct !{!19, !10, !13, !14}
!20 = distinct !{!20, !10}
!21 = distinct !{!21, !10, !13, !14}
!22 = distinct !{!22, !10}
!23 = distinct !{!23, !10, !13, !14}
!24 = distinct !{!24, !10}
!25 = distinct !{!25, !10, !13, !14}
!26 = distinct !{!26, !10}
!27 = distinct !{!27, !10, !13, !14}
!28 = distinct !{!28, !10}
!29 = distinct !{!29, !10, !13, !14}
!30 = distinct !{!30, !10}
!31 = distinct !{!31, !10, !13, !14}
!32 = distinct !{!32, !10}
!33 = distinct !{!33, !10, !13, !14}
!34 = distinct !{!34, !10}
!35 = distinct !{!35, !10, !13, !14}
!36 = distinct !{!36, !10}
!37 = distinct !{!37, !10, !13, !14}
!38 = distinct !{!38, !10}
!39 = distinct !{!39, !10, !13, !14}
!40 = distinct !{!40, !10}
!41 = distinct !{!41, !10, !13, !14}
!42 = distinct !{!42, !10}
!43 = distinct !{!43, !10}
!44 = !{!45, !45, i64 0}
!45 = !{!"any pointer", !7, i64 0}


; Effective O3 passes: BDCEPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass