; LLVM IR from OpenDiS/OpenDiS :: core/pydis/c/util (Util_subset)

; 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"

%struct._home = type { i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i32, i32, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, ptr, double, double, double, double, double, double, i32, i32, i32, ptr, ptr, ptr, i32, ptr, i32, ptr, ptr, ptr, i32, i32, ptr, i32, ptr, ptr, ptr, i32, i32, i32, ptr, ptr, i32, i32, ptr, ptr, ptr, i32, i32, i32, [3 x [3 x double]], [3 x [3 x double]], %struct.BurgInfo_t, i32, i32, i32, i32, i32, i32, i32, %struct.timeval }
%struct.BurgInfo_t = type { i32, i32, ptr, ptr, ptr, ptr }
%struct.timeval = type { i64, i64 }
%struct._param = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, i32, double, double, [256 x i8], double, double, double, double, double, double, double, i32, double, double, i32, double, double, i32, i32, double, double, i32, i32, i32, i32, i32, i32, [256 x i8], [256 x i8], [256 x i8], double, i32, [6 x double], [6 x double], double, i32, [3 x double], double, double, double, double, i32, double, i32, [3 x double], [3 x double], [3 x double], [256 x i8], i32, i32, double, double, double, double, double, double, double, double, i32, i32, i32, ptr, double, double, double, double, double, double, [30 x double], [30 x double], i32, double, i32, double, double, double, i32, i32, double, double, [256 x i8], i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, i32, double, double, double, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, double, double, i32, i32, i32, double, double, [3 x i32], i32, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, i32, double, double, [256 x i8], double, double, double, double, double, double, double, double, i32, ptr, double, double, [14 x double], double, i32, [6 x double], [6 x double], [6 x double], [6 x double], [6 x double], [6 x double], [6 x double], [6 x double], [6 x double], [6 x double], [4 x [4 x double]], [4 x [7 x double]], [4 x [4 x double]], [4 x [7 x double]], [6 x [4 x double]], [6 x [7 x double]], [6 x [4 x double]], [6 x [7 x double]], [6 x i32], [256 x i8], i32, i32, i32, i32, [3 x i32], [3 x double], [3 x double], double, double, i32, [256 x i8] }

@.str.18 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [104 x i8], align 1
@stderr = external global ptr, align 8
@.str.25 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [51 x i8], align 1

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

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

; Function Attrs: nounwind
declare double @sqrt(double noundef) #2

; 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
declare dso_local void @Fatal(ptr noundef, ...) #3

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

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #5

; Function Attrs: nounwind uwtable
define dso_local void @SetRemainingDefaults(ptr noundef %0) #3 {
  %2 = alloca ptr, align 8
  %3 = alloca double, align 8
  %4 = alloca double, align 8
  %5 = alloca double, align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca double, align 8
  %9 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  %10 = load ptr, ptr %2, align 8, !tbaa !5
  %11 = getelementptr inbounds %struct._home, ptr %10, i32 0, i32 4
  %12 = load ptr, ptr %11, align 8, !tbaa !9
  store ptr %12, ptr %9, align 8, !tbaa !5
  %13 = load ptr, ptr %9, align 8, !tbaa !5
  %14 = getelementptr inbounds %struct._param, ptr %13, i32 0, i32 217
  store double 0.000000e+00, ptr %14, align 8, !tbaa !16
  %15 = load ptr, ptr %9, align 8, !tbaa !5
  %16 = getelementptr inbounds %struct._param, ptr %15, i32 0, i32 206
  %17 = load double, ptr %16, align 8, !tbaa !18
  %18 = load ptr, ptr %9, align 8, !tbaa !5
  %19 = getelementptr inbounds %struct._param, ptr %18, i32 0, i32 3
  %20 = load i32, ptr %19, align 4, !tbaa !19
  %21 = sitofp i32 %20 to double
  %22 = fdiv double %17, %21
  store double %22, ptr %5, align 8, !tbaa !20
  %23 = load ptr, ptr %9, align 8, !tbaa !5
  %24 = getelementptr inbounds %struct._param, ptr %23, i32 0, i32 207
  %25 = load double, ptr %24, align 8, !tbaa !21
  %26 = load ptr, ptr %9, align 8, !tbaa !5
  %27 = getelementptr inbounds %struct._param, ptr %26, i32 0, i32 4
  %28 = load i32, ptr %27, align 8, !tbaa !22
  %29 = sitofp i32 %28 to double
  %30 = fdiv double %25, %29
  store double %30, ptr %6, align 8, !tbaa !20
  %31 = load ptr, ptr %9, align 8, !tbaa !5
  %32 = getelementptr inbounds %struct._param, ptr %31, i32 0, i32 208
  %33 = load double, ptr %32, align 8, !tbaa !23
  %34 = load ptr, ptr %9, align 8, !tbaa !5
  %35 = getelementptr inbounds %struct._param, ptr %34, i32 0, i32 5
  %36 = load i32, ptr %35, align 4, !tbaa !24
  %37 = sitofp i32 %36 to double
  %38 = fdiv double %33, %37
  store double %38, ptr %7, align 8, !tbaa !20
  %39 = load double, ptr %5, align 8, !tbaa !20
  %40 = load double, ptr %6, align 8, !tbaa !20
  %41 = fcmp olt double %39, %40
  br i1 %41, label %42, label %44

42:                                               ; preds = %1
  %43 = load double, ptr %5, align 8, !tbaa !20
  br label %46

44:                                               ; preds = %1
  %45 = load double, ptr %6, align 8, !tbaa !20
  br label %46

46:                                               ; preds = %44, %42
  %47 = phi double [ %43, %42 ], [ %45, %44 ]
  store double %47, ptr %8, align 8, !tbaa !20
  %48 = load double, ptr %8, align 8, !tbaa !20
  %49 = load double, ptr %7, align 8, !tbaa !20
  %50 = fcmp olt double %48, %49
  br i1 %50, label %51, label %53

51:                                               ; preds = %46
  %52 = load double, ptr %8, align 8, !tbaa !20
  br label %55

53:                                               ; preds = %46
  %54 = load double, ptr %7, align 8, !tbaa !20
  br label %55

55:                                               ; preds = %53, %51
  %56 = phi double [ %52, %51 ], [ %54, %53 ]
  store double %56, ptr %8, align 8, !tbaa !20
  store double 1.000000e-02, ptr %4, align 8, !tbaa !20
  %57 = load ptr, ptr %2, align 8, !tbaa !5
  %58 = getelementptr inbounds %struct._home, ptr %57, i32 0, i32 0
  %59 = load i32, ptr %58, align 8, !tbaa !25
  %60 = icmp eq i32 %59, 0
  br i1 %60, label %61, label %74

61:                                               ; preds = %55
  %62 = load ptr, ptr %9, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct._param, ptr %62, i32 0, i32 87
  %64 = load double, ptr %63, align 8, !tbaa !26
  %65 = fcmp olt double %64, 0.000000e+00
  br i1 %65, label %66, label %67

66:                                               ; preds = %61
  call void (ptr, ...) @Fatal(ptr noundef @.str.18)
  br label %67

67:                                               ; preds = %66, %61
  %68 = load ptr, ptr %9, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct._param, ptr %68, i32 0, i32 47
  %70 = load double, ptr %69, align 8, !tbaa !27
  %71 = fcmp olt double %70, 0.000000e+00
  br i1 %71, label %72, label %73

72:                                               ; preds = %67
  call void (ptr, ...) @Fatal(ptr noundef @.str.19)
  br label %73

73:                                               ; preds = %72, %67
  br label %74

74:                                               ; preds = %73, %55
  %75 = load ptr, ptr %9, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct._param, ptr %75, i32 0, i32 43
  %77 = load double, ptr %76, align 8, !tbaa !28
  %78 = fcmp ole double %77, 0.000000e+00
  br i1 %78, label %79, label %86

79:                                               ; preds = %74
  %80 = load ptr, ptr %9, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct._param, ptr %80, i32 0, i32 87
  %82 = load double, ptr %81, align 8, !tbaa !26
  %83 = fmul double 2.500000e-01, %82
  %84 = load ptr, ptr %9, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct._param, ptr %84, i32 0, i32 43
  store double %83, ptr %85, align 8, !tbaa !28
  br label %86

86:                                               ; preds = %79, %74
  %87 = load ptr, ptr %9, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct._param, ptr %87, i32 0, i32 38
  %89 = load double, ptr %88, align 8, !tbaa !29
  %90 = load ptr, ptr %9, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct._param, ptr %90, i32 0, i32 37
  %92 = load double, ptr %91, align 8, !tbaa !30
  %93 = fcmp olt double %89, %92
  br i1 %93, label %94, label %98

94:                                               ; preds = %86
  %95 = load ptr, ptr %9, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct._param, ptr %95, i32 0, i32 38
  %97 = load double, ptr %96, align 8, !tbaa !29
  br label %102

98:                                               ; preds = %86
  %99 = load ptr, ptr %9, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct._param, ptr %99, i32 0, i32 37
  %101 = load double, ptr %100, align 8, !tbaa !30
  br label %102

102:                                              ; preds = %98, %94
  %103 = phi double [ %97, %94 ], [ %101, %98 ]
  %104 = load ptr, ptr %9, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct._param, ptr %104, i32 0, i32 35
  store double %103, ptr %105, align 8, !tbaa !31
  %106 = load ptr, ptr %9, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct._param, ptr %106, i32 0, i32 35
  %108 = load double, ptr %107, align 8, !tbaa !31
  %109 = fcmp ole double %108, 0.000000e+00
  br i1 %109, label %110, label %116

110:                                              ; preds = %102
  %111 = load ptr, ptr %9, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct._param, ptr %111, i32 0, i32 38
  %113 = load double, ptr %112, align 8, !tbaa !29
  %114 = load ptr, ptr %9, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct._param, ptr %114, i32 0, i32 35
  store double %113, ptr %115, align 8, !tbaa !31
  br label %116

116:                                              ; preds = %110, %102
  %117 = load ptr, ptr %9, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct._param, ptr %117, i32 0, i32 43
  %119 = load double, ptr %118, align 8, !tbaa !28
  %120 = fmul double 2.000000e+00, %119
  %121 = load ptr, ptr %9, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct._param, ptr %121, i32 0, i32 213
  store double %120, ptr %122, align 8, !tbaa !32
  %123 = load ptr, ptr %9, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct._param, ptr %123, i32 0, i32 43
  %125 = load double, ptr %124, align 8, !tbaa !28
  %126 = fmul double 2.000000e+00, %125
  %127 = load ptr, ptr %9, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct._param, ptr %127, i32 0, i32 47
  %129 = load double, ptr %128, align 8, !tbaa !27
  %130 = fmul double %126, %129
  %131 = load ptr, ptr %9, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct._param, ptr %131, i32 0, i32 51
  store double %130, ptr %132, align 8, !tbaa !33
  %133 = load ptr, ptr %9, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct._param, ptr %133, i32 0, i32 46
  %135 = load double, ptr %134, align 8, !tbaa !34
  %136 = fcmp ogt double %135, 0.000000e+00
  br i1 %136, label %137, label %171

137:                                              ; preds = %116
  %138 = load ptr, ptr %9, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct._param, ptr %138, i32 0, i32 51
  %140 = load double, ptr %139, align 8, !tbaa !33
  %141 = load ptr, ptr %9, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct._param, ptr %141, i32 0, i32 46
  %143 = load double, ptr %142, align 8, !tbaa !34
  %144 = load ptr, ptr %9, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct._param, ptr %144, i32 0, i32 46
  %146 = load double, ptr %145, align 8, !tbaa !34
  %147 = fmul double %143, %146
  %148 = call double @sqrt(double noundef 3.000000e+00) #6
  %149 = fmul double %147, %148
  %150 = fdiv double %149, 4.000000e+00
  %151 = fcmp olt double %140, %150
  br i1 %151, label %152, label %156

152:                                              ; preds = %137
  %153 = load ptr, ptr %9, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct._param, ptr %153, i32 0, i32 51
  %155 = load double, ptr %154, align 8, !tbaa !33
  br label %167

156:                                              ; preds = %137
  %157 = load ptr, ptr %9, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct._param, ptr %157, i32 0, i32 46
  %159 = load double, ptr %158, align 8, !tbaa !34
  %160 = load ptr, ptr %9, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct._param, ptr %160, i32 0, i32 46
  %162 = load double, ptr %161, align 8, !tbaa !34
  %163 = fmul double %159, %162
  %164 = call double @sqrt(double noundef 3.000000e+00) #6
  %165 = fmul double %163, %164
  %166 = fdiv double %165, 4.000000e+00
  br label %167

167:                                              ; preds = %156, %152
  %168 = phi double [ %155, %152 ], [ %166, %156 ]
  %169 = load ptr, ptr %9, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct._param, ptr %169, i32 0, i32 51
  store double %168, ptr %170, align 8, !tbaa !33
  br label %171

171:                                              ; preds = %167, %116
  %172 = load ptr, ptr %9, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct._param, ptr %172, i32 0, i32 51
  %174 = load double, ptr %173, align 8, !tbaa !33
  %175 = call double @sqrt(double noundef 3.000000e+00) #6
  %176 = fmul double 2.500000e-01, %175
  %177 = load ptr, ptr %9, align 8, !tbaa !5
  %178 = getelementptr inbounds %struct._param, ptr %177, i32 0, i32 47
  %179 = load double, ptr %178, align 8, !tbaa !27
  %180 = load ptr, ptr %9, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct._param, ptr %180, i32 0, i32 47
  %182 = load double, ptr %181, align 8, !tbaa !27
  %183 = fmul double %179, %182
  %184 = fmul double %176, %183
  %185 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %174, double %184)
  %186 = fmul double 5.000000e-01, %185
  %187 = load ptr, ptr %9, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct._param, ptr %187, i32 0, i32 50
  store double %186, ptr %188, align 8, !tbaa !35
  %189 = load ptr, ptr %9, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct._param, ptr %189, i32 0, i32 46
  %191 = load double, ptr %190, align 8, !tbaa !34
  %192 = fcmp ole double %191, 0.000000e+00
  br i1 %192, label %193, label %203

193:                                              ; preds = %171
  %194 = load ptr, ptr %9, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct._param, ptr %194, i32 0, i32 51
  %196 = load double, ptr %195, align 8, !tbaa !33
  %197 = call double @sqrt(double noundef 3.000000e+00) #6
  %198 = fdiv double 4.000000e+00, %197
  %199 = fmul double %196, %198
  %200 = call double @sqrt(double noundef %199) #6
  %201 = load ptr, ptr %9, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct._param, ptr %201, i32 0, i32 46
  store double %200, ptr %202, align 8, !tbaa !34
  br label %203

203:                                              ; preds = %193, %171
  %204 = load ptr, ptr %9, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct._param, ptr %204, i32 0, i32 88
  %206 = load double, ptr %205, align 8, !tbaa !36
  %207 = fcmp olt double %206, 0.000000e+00
  br i1 %207, label %208, label %221

208:                                              ; preds = %203
  %209 = load ptr, ptr %9, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct._param, ptr %209, i32 0, i32 83
  %211 = load double, ptr %210, align 8, !tbaa !37
  %212 = fdiv double %211, 0x402921FB54442D18
  %213 = load ptr, ptr %9, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct._param, ptr %213, i32 0, i32 87
  %215 = load double, ptr %214, align 8, !tbaa !26
  %216 = fdiv double %215, 1.000000e-01
  %217 = call double @log(double noundef %216) #6
  %218 = fmul double %212, %217
  %219 = load ptr, ptr %9, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct._param, ptr %219, i32 0, i32 88
  store double %218, ptr %220, align 8, !tbaa !36
  br label %221

221:                                              ; preds = %208, %203
  %222 = load ptr, ptr %2, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct._home, ptr %222, i32 0, i32 0
  %224 = load i32, ptr %223, align 8, !tbaa !25
  %225 = icmp eq i32 %224, 0
  br i1 %225, label %226, label %492

226:                                              ; preds = %221
  %227 = load ptr, ptr %9, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct._param, ptr %227, i32 0, i32 47
  %229 = load double, ptr %228, align 8, !tbaa !27
  %230 = load ptr, ptr %9, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct._param, ptr %230, i32 0, i32 43
  %232 = load double, ptr %231, align 8, !tbaa !28
  %233 = call double @sqrt(double noundef 3.000000e+00) #6
  %234 = fdiv double 3.200000e+01, %233
  %235 = fmul double %232, %234
  %236 = fcmp ole double %229, %235
  br i1 %236, label %237, label %244

237:                                              ; preds = %226
  %238 = load ptr, ptr %9, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct._param, ptr %238, i32 0, i32 47
  %240 = load double, ptr %239, align 8, !tbaa !27
  %241 = load ptr, ptr %9, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct._param, ptr %241, i32 0, i32 43
  %243 = load double, ptr %242, align 8, !tbaa !28
  call void (ptr, ...) @Fatal(ptr noundef @.str.20, double noundef %240, double noundef %243)
  br label %244

244:                                              ; preds = %237, %226
  %245 = load ptr, ptr %9, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct._param, ptr %245, i32 0, i32 46
  %247 = load double, ptr %246, align 8, !tbaa !34
  %248 = load ptr, ptr %9, align 8, !tbaa !5
  %249 = getelementptr inbounds %struct._param, ptr %248, i32 0, i32 47
  %250 = load double, ptr %249, align 8, !tbaa !27
  %251 = fmul double 5.000000e-01, %250
  %252 = fcmp ogt double %247, %251
  br i1 %252, label %253, label %260

253:                                              ; preds = %244
  %254 = load ptr, ptr %9, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct._param, ptr %254, i32 0, i32 46
  %256 = load double, ptr %255, align 8, !tbaa !34
  %257 = load ptr, ptr %9, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct._param, ptr %257, i32 0, i32 47
  %259 = load double, ptr %258, align 8, !tbaa !27
  call void (ptr, ...) @Fatal(ptr noundef @.str.21, double noundef %256, double noundef %259)
  br label %260

260:                                              ; preds = %253, %244
  %261 = load ptr, ptr %9, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct._param, ptr %261, i32 0, i32 47
  %263 = load double, ptr %262, align 8, !tbaa !27
  %264 = load ptr, ptr %9, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct._param, ptr %264, i32 0, i32 46
  %266 = load double, ptr %265, align 8, !tbaa !34
  %267 = fcmp ole double %263, %266
  br i1 %267, label %268, label %275

268:                                              ; preds = %260
  %269 = load ptr, ptr %9, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct._param, ptr %269, i32 0, i32 47
  %271 = load double, ptr %270, align 8, !tbaa !27
  %272 = load ptr, ptr %9, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct._param, ptr %272, i32 0, i32 46
  %274 = load double, ptr %273, align 8, !tbaa !34
  call void (ptr, ...) @Fatal(ptr noundef @.str.22, double noundef %271, double noundef %274)
  br label %275

275:                                              ; preds = %268, %260
  %276 = load ptr, ptr %9, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct._param, ptr %276, i32 0, i32 47
  %278 = load double, ptr %277, align 8, !tbaa !27
  %279 = load double, ptr %8, align 8, !tbaa !20
  %280 = fmul double %279, 9.000000e-01
  %281 = fcmp ogt double %278, %280
  br i1 %281, label %282, label %287

282:                                              ; preds = %275
  %283 = load ptr, ptr %9, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct._param, ptr %283, i32 0, i32 47
  %285 = load double, ptr %284, align 8, !tbaa !27
  %286 = load double, ptr %8, align 8, !tbaa !20
  call void (ptr, ...) @Fatal(ptr noundef @.str.23, double noundef %285, double noundef %286)
  br label %287

287:                                              ; preds = %282, %275
  %288 = load ptr, ptr %9, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct._param, ptr %288, i32 0, i32 51
  %290 = load double, ptr %289, align 8, !tbaa !33
  %291 = load ptr, ptr %9, align 8, !tbaa !5
  %292 = getelementptr inbounds %struct._param, ptr %291, i32 0, i32 50
  %293 = load double, ptr %292, align 8, !tbaa !35
  %294 = fmul double 2.500000e-01, %293
  %295 = fcmp ogt double %290, %294
  br i1 %295, label %296, label %303

296:                                              ; preds = %287
  %297 = load ptr, ptr %9, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct._param, ptr %297, i32 0, i32 51
  %299 = load double, ptr %298, align 8, !tbaa !33
  %300 = load ptr, ptr %9, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct._param, ptr %300, i32 0, i32 50
  %302 = load double, ptr %301, align 8, !tbaa !35
  call void (ptr, ...) @Fatal(ptr noundef @.str.24, double noundef %299, double noundef %302)
  br label %303

303:                                              ; preds = %296, %287
  %304 = load ptr, ptr %9, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct._param, ptr %304, i32 0, i32 87
  %306 = load double, ptr %305, align 8, !tbaa !26
  %307 = fcmp olt double %306, 1.000000e-01
  br i1 %307, label %308, label %314

308:                                              ; preds = %303
  %309 = load ptr, ptr @stderr, align 8, !tbaa !5
  %310 = load ptr, ptr %9, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct._param, ptr %310, i32 0, i32 87
  %312 = load double, ptr %311, align 8, !tbaa !26
  %313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef @.str.25, double noundef %312) #6
  br label %314

314:                                              ; preds = %308, %303
  %315 = load ptr, ptr %9, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct._param, ptr %315, i32 0, i32 47
  %317 = load double, ptr %316, align 8, !tbaa !27
  %318 = load ptr, ptr %9, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct._param, ptr %318, i32 0, i32 47
  %320 = load double, ptr %319, align 8, !tbaa !27
  %321 = fmul double %317, %320
  %322 = load ptr, ptr %9, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct._param, ptr %322, i32 0, i32 47
  %324 = load double, ptr %323, align 8, !tbaa !27
  %325 = fmul double %321, %324
  store double %325, ptr %3, align 8, !tbaa !20
  %326 = load ptr, ptr %9, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct._param, ptr %326, i32 0, i32 50
  %328 = load double, ptr %327, align 8, !tbaa !35
  %329 = call double @sqrt(double noundef 3.000000e+00) #6
  %330 = fmul double 2.500000e-01, %329
  %331 = load double, ptr %3, align 8, !tbaa !20
  %332 = fmul double %330, %331
  %333 = fcmp ogt double %328, %332
  br i1 %333, label %334, label %345

334:                                              ; preds = %314
  %335 = load ptr, ptr @stderr, align 8, !tbaa !5
  %336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %335, ptr noundef @.str.26) #6
  %337 = load ptr, ptr @stderr, align 8, !tbaa !5
  %338 = load ptr, ptr %9, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct._param, ptr %338, i32 0, i32 50
  %340 = load double, ptr %339, align 8, !tbaa !35
  %341 = load ptr, ptr %9, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct._param, ptr %341, i32 0, i32 47
  %343 = load double, ptr %342, align 8, !tbaa !27
  %344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %337, ptr noundef @.str.27, double noundef %340, double noundef %343) #6
  br label %345

345:                                              ; preds = %334, %314
  %346 = load ptr, ptr %9, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct._param, ptr %346, i32 0, i32 213
  %348 = load double, ptr %347, align 8, !tbaa !32
  %349 = load ptr, ptr %9, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct._param, ptr %349, i32 0, i32 87
  %351 = load double, ptr %350, align 8, !tbaa !26
  %352 = load double, ptr %4, align 8, !tbaa !20
  %353 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %351, double %352)
  %354 = fcmp ogt double %348, %353
  br i1 %354, label %355, label %366

355:                                              ; preds = %345
  %356 = load ptr, ptr @stderr, align 8, !tbaa !5
  %357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef @.str.28) #6
  %358 = load ptr, ptr @stderr, align 8, !tbaa !5
  %359 = load ptr, ptr %9, align 8, !tbaa !5
  %360 = getelementptr inbounds %struct._param, ptr %359, i32 0, i32 213
  %361 = load double, ptr %360, align 8, !tbaa !32
  %362 = load ptr, ptr %9, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct._param, ptr %362, i32 0, i32 87
  %364 = load double, ptr %363, align 8, !tbaa !26
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef @.str.29, double noundef %361, double noundef %364) #6
  br label %366

366:                                              ; preds = %355, %345
  %367 = load ptr, ptr %9, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct._param, ptr %367, i32 0, i32 213
  %369 = load double, ptr %368, align 8, !tbaa !32
  %370 = load ptr, ptr %9, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct._param, ptr %370, i32 0, i32 43
  %372 = load double, ptr %371, align 8, !tbaa !28
  %373 = fmul double 2.000000e+00, %372
  %374 = fcmp ogt double %369, %373
  br i1 %374, label %375, label %386

375:                                              ; preds = %366
  %376 = load ptr, ptr @stderr, align 8, !tbaa !5
  %377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %376, ptr noundef @.str.30) #6
  %378 = load ptr, ptr @stderr, align 8, !tbaa !5
  %379 = load ptr, ptr %9, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct._param, ptr %379, i32 0, i32 213
  %381 = load double, ptr %380, align 8, !tbaa !32
  %382 = load ptr, ptr %9, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct._param, ptr %382, i32 0, i32 43
  %384 = load double, ptr %383, align 8, !tbaa !28
  %385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %378, ptr noundef @.str.31, double noundef %381, double noundef %384) #6
  br label %386

386:                                              ; preds = %375, %366
  %387 = load ptr, ptr %9, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct._param, ptr %387, i32 0, i32 12
  %389 = load i32, ptr %388, align 8, !tbaa !38
  %390 = icmp eq i32 %389, 1
  br i1 %390, label %391, label %409

391:                                              ; preds = %386
  %392 = load ptr, ptr %9, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct._param, ptr %392, i32 0, i32 15
  %394 = load double, ptr %393, align 8, !tbaa !39
  %395 = load ptr, ptr %9, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct._param, ptr %395, i32 0, i32 246
  %397 = getelementptr inbounds [3 x double], ptr %396, i64 0, i64 0
  %398 = load double, ptr %397, align 8, !tbaa !20
  %399 = fcmp olt double %394, %398
  br i1 %399, label %455, label %400

400:                                              ; preds = %391
  %401 = load ptr, ptr %9, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct._param, ptr %401, i32 0, i32 16
  %403 = load double, ptr %402, align 8, !tbaa !40
  %404 = load ptr, ptr %9, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct._param, ptr %404, i32 0, i32 247
  %406 = getelementptr inbounds [3 x double], ptr %405, i64 0, i64 0
  %407 = load double, ptr %406, align 8, !tbaa !20
  %408 = fcmp ogt double %403, %407
  br i1 %408, label %455, label %409

409:                                              ; preds = %400, %386
  %410 = load ptr, ptr %9, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct._param, ptr %410, i32 0, i32 13
  %412 = load i32, ptr %411, align 4, !tbaa !41
  %413 = icmp eq i32 %412, 1
  br i1 %413, label %414, label %432

414:                                              ; preds = %409
  %415 = load ptr, ptr %9, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct._param, ptr %415, i32 0, i32 17
  %417 = load double, ptr %416, align 8, !tbaa !42
  %418 = load ptr, ptr %9, align 8, !tbaa !5
  %419 = getelementptr inbounds %struct._param, ptr %418, i32 0, i32 246
  %420 = getelementptr inbounds [3 x double], ptr %419, i64 0, i64 1
  %421 = load double, ptr %420, align 8, !tbaa !20
  %422 = fcmp olt double %417, %421
  br i1 %422, label %455, label %423

423:                                              ; preds = %414
  %424 = load ptr, ptr %9, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct._param, ptr %424, i32 0, i32 18
  %426 = load double, ptr %425, align 8, !tbaa !43
  %427 = load ptr, ptr %9, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct._param, ptr %427, i32 0, i32 247
  %429 = getelementptr inbounds [3 x double], ptr %428, i64 0, i64 1
  %430 = load double, ptr %429, align 8, !tbaa !20
  %431 = fcmp ogt double %426, %430
  br i1 %431, label %455, label %432

432:                                              ; preds = %423, %409
  %433 = load ptr, ptr %9, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct._param, ptr %433, i32 0, i32 14
  %435 = load i32, ptr %434, align 8, !tbaa !44
  %436 = icmp eq i32 %435, 1
  br i1 %436, label %437, label %474

437:                                              ; preds = %432
  %438 = load ptr, ptr %9, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct._param, ptr %438, i32 0, i32 19
  %440 = load double, ptr %439, align 8, !tbaa !45
  %441 = load ptr, ptr %9, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct._param, ptr %441, i32 0, i32 246
  %443 = getelementptr inbounds [3 x double], ptr %442, i64 0, i64 2
  %444 = load double, ptr %443, align 8, !tbaa !20
  %445 = fcmp olt double %440, %444
  br i1 %445, label %455, label %446

446:                                              ; preds = %437
  %447 = load ptr, ptr %9, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct._param, ptr %447, i32 0, i32 20
  %449 = load double, ptr %448, align 8, !tbaa !46
  %450 = load ptr, ptr %9, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct._param, ptr %450, i32 0, i32 247
  %452 = getelementptr inbounds [3 x double], ptr %451, i64 0, i64 2
  %453 = load double, ptr %452, align 8, !tbaa !20
  %454 = fcmp ogt double %449, %453
  br i1 %454, label %455, label %474

455:                                              ; preds = %446, %437, %423, %414, %400, %391
  %456 = load ptr, ptr %9, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct._param, ptr %456, i32 0, i32 15
  %458 = load double, ptr %457, align 8, !tbaa !39
  %459 = load ptr, ptr %9, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct._param, ptr %459, i32 0, i32 17
  %461 = load double, ptr %460, align 8, !tbaa !42
  %462 = load ptr, ptr %9, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct._param, ptr %462, i32 0, i32 19
  %464 = load double, ptr %463, align 8, !tbaa !45
  %465 = load ptr, ptr %9, align 8, !tbaa !5
  %466 = getelementptr inbounds %struct._param, ptr %465, i32 0, i32 16
  %467 = load double, ptr %466, align 8, !tbaa !40
  %468 = load ptr, ptr %9, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct._param, ptr %468, i32 0, i32 18
  %470 = load double, ptr %469, align 8, !tbaa !43
  %471 = load ptr, ptr %9, align 8, !tbaa !5
  %472 = getelementptr inbounds %struct._param, ptr %471, i32 0, i32 20
  %473 = load double, ptr %472, align 8, !tbaa !46
  call void (ptr, ...) @Fatal(ptr noundef @.str.32, double noundef %458, double noundef %461, double noundef %464, double noundef %467, double noundef %470, double noundef %473)
  br label %474

474:                                              ; preds = %455, %446, %432
  %475 = load ptr, ptr %9, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct._param, ptr %475, i32 0, i32 12
  %477 = load i32, ptr %476, align 8, !tbaa !38
  %478 = icmp eq i32 %477, 1
  br i1 %478, label %489, label %479

479:                                              ; preds = %474
  %480 = load ptr, ptr %9, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct._param, ptr %480, i32 0, i32 13
  %482 = load i32, ptr %481, align 4, !tbaa !41
  %483 = icmp eq i32 %482, 1
  br i1 %483, label %489, label %484

484:                                              ; preds = %479
  %485 = load ptr, ptr %9, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct._param, ptr %485, i32 0, i32 14
  %487 = load i32, ptr %486, align 8, !tbaa !44
  %488 = icmp eq i32 %487, 1
  br i1 %488, label %489, label %491

489:                                              ; preds = %484, %479, %474
  %490 = call i32 (ptr, ...) @printf(ptr noundef @.str.33)
  br label %491

491:                                              ; preds = %489, %484
  br label %492

492:                                              ; preds = %491, %221
  %493 = load ptr, ptr %9, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct._param, ptr %493, i32 0, i32 12
  %495 = load i32, ptr %494, align 8, !tbaa !38
  %496 = icmp eq i32 %495, 1
  br i1 %496, label %507, label %497

497:                                              ; preds = %492
  %498 = load ptr, ptr %9, align 8, !tbaa !5
  %499 = getelementptr inbounds %struct._param, ptr %498, i32 0, i32 13
  %500 = load i32, ptr %499, align 4, !tbaa !41
  %501 = icmp eq i32 %500, 1
  br i1 %501, label %507, label %502

502:                                              ; preds = %497
  %503 = load ptr, ptr %9, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct._param, ptr %503, i32 0, i32 14
  %505 = load i32, ptr %504, align 8, !tbaa !44
  %506 = icmp eq i32 %505, 1
  br i1 %506, label %507, label %556

507:                                              ; preds = %502, %497, %492
  %508 = load ptr, ptr %9, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct._param, ptr %508, i32 0, i32 12
  %510 = load i32, ptr %509, align 8, !tbaa !38
  %511 = icmp eq i32 %510, 0
  br i1 %511, label %512, label %523

512:                                              ; preds = %507
  %513 = load ptr, ptr %9, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct._param, ptr %513, i32 0, i32 21
  %515 = load double, ptr %514, align 8, !tbaa !47
  %516 = load ptr, ptr %9, align 8, !tbaa !5
  %517 = getelementptr inbounds %struct._param, ptr %516, i32 0, i32 15
  store double %515, ptr %517, align 8, !tbaa !39
  %518 = load ptr, ptr %9, align 8, !tbaa !5
  %519 = getelementptr inbounds %struct._param, ptr %518, i32 0, i32 22
  %520 = load double, ptr %519, align 8, !tbaa !48
  %521 = load ptr, ptr %9, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct._param, ptr %521, i32 0, i32 16
  store double %520, ptr %522, align 8, !tbaa !40
  br label %523

523:                                              ; preds = %512, %507
  %524 = load ptr, ptr %9, align 8, !tbaa !5
  %525 = getelementptr inbounds %struct._param, ptr %524, i32 0, i32 13
  %526 = load i32, ptr %525, align 4, !tbaa !41
  %527 = icmp eq i32 %526, 0
  br i1 %527, label %528, label %539

528:                                              ; preds = %523
  %529 = load ptr, ptr %9, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct._param, ptr %529, i32 0, i32 23
  %531 = load double, ptr %530, align 8, !tbaa !49
  %532 = load ptr, ptr %9, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct._param, ptr %532, i32 0, i32 17
  store double %531, ptr %533, align 8, !tbaa !42
  %534 = load ptr, ptr %9, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct._param, ptr %534, i32 0, i32 24
  %536 = load double, ptr %535, align 8, !tbaa !50
  %537 = load ptr, ptr %9, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct._param, ptr %537, i32 0, i32 18
  store double %536, ptr %538, align 8, !tbaa !43
  br label %539

539:                                              ; preds = %528, %523
  %540 = load ptr, ptr %9, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct._param, ptr %540, i32 0, i32 14
  %542 = load i32, ptr %541, align 8, !tbaa !44
  %543 = icmp eq i32 %542, 0
  br i1 %543, label %544, label %555

544:                                              ; preds = %539
  %545 = load ptr, ptr %9, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct._param, ptr %545, i32 0, i32 25
  %547 = load double, ptr %546, align 8, !tbaa !51
  %548 = load ptr, ptr %9, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct._param, ptr %548, i32 0, i32 19
  store double %547, ptr %549, align 8, !tbaa !45
  %550 = load ptr, ptr %9, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct._param, ptr %550, i32 0, i32 26
  %552 = load double, ptr %551, align 8, !tbaa !52
  %553 = load ptr, ptr %9, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct._param, ptr %553, i32 0, i32 20
  store double %552, ptr %554, align 8, !tbaa !46
  br label %555

555:                                              ; preds = %544, %539
  br label %556

556:                                              ; preds = %555, %502
  %557 = load ptr, ptr %9, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct._param, ptr %557, i32 0, i32 214
  %559 = load i32, ptr %558, align 8, !tbaa !53
  %560 = sext i32 %559 to i64
  %561 = mul i64 %560, 8
  %562 = call noalias ptr @malloc(i64 noundef %561) #7
  %563 = load ptr, ptr %9, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct._param, ptr %563, i32 0, i32 215
  store ptr %562, ptr %564, align 8, !tbaa !54
  %565 = load ptr, ptr %9, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct._param, ptr %565, i32 0, i32 79
  %567 = load i32, ptr %566, align 8, !tbaa !55
  switch i32 %567, label %587 [
    i32 2, label %568
    i32 3, label %568
    i32 4, label %568
    i32 5, label %568
    i32 6, label %568
  ]

568:                                              ; preds = %556, %556, %556, %556, %556
  %569 = load ptr, ptr %9, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct._param, ptr %569, i32 0, i32 89
  %571 = load i32, ptr %570, align 8, !tbaa !56
  %572 = icmp eq i32 %571, 0
  br i1 %572, label %573, label %586

573:                                              ; preds = %568
  %574 = load ptr, ptr %9, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct._param, ptr %574, i32 0, i32 89
  store i32 1, ptr %575, align 8, !tbaa !56
  %576 = load ptr, ptr %2, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct._home, ptr %576, i32 0, i32 0
  %578 = load i32, ptr %577, align 8, !tbaa !25
  %579 = icmp eq i32 %578, 0
  br i1 %579, label %580, label %585

580:                                              ; preds = %573
  %581 = load ptr, ptr %9, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct._param, ptr %581, i32 0, i32 78
  %583 = getelementptr inbounds [256 x i8], ptr %582, i64 0, i64 0
  %584 = call i32 (ptr, ...) @printf(ptr noundef @.str.34, ptr noundef %583)
  br label %585

585:                                              ; preds = %580, %573
  br label %586

586:                                              ; preds = %585, %568
  br label %587

587:                                              ; preds = %586, %556
  %588 = load ptr, ptr %9, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct._param, ptr %588, i32 0, i32 28
  %590 = load i32, ptr %589, align 4, !tbaa !57
  %591 = icmp sgt i32 %590, 0
  br i1 %591, label %592, label %606

592:                                              ; preds = %587
  %593 = load ptr, ptr %9, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct._param, ptr %593, i32 0, i32 27
  %595 = load i32, ptr %594, align 8, !tbaa !58
  %596 = icmp eq i32 %595, 1
  br i1 %596, label %597, label %606

597:                                              ; preds = %592
  %598 = load ptr, ptr %9, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct._param, ptr %598, i32 0, i32 28
  %600 = load i32, ptr %599, align 4, !tbaa !57
  %601 = add nsw i32 %600, 2
  %602 = sdiv i32 %601, 3
  %603 = mul nsw i32 %602, 3
  %604 = load ptr, ptr %9, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct._param, ptr %604, i32 0, i32 28
  store i32 %603, ptr %605, align 4, !tbaa !57
  br label %606

606:                                              ; preds = %597, %592, %587
  %607 = load ptr, ptr %9, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct._param, ptr %607, i32 0, i32 91
  %609 = load i32, ptr %608, align 8, !tbaa !59
  %610 = icmp slt i32 %609, 0
  br i1 %610, label %611, label %622

611:                                              ; preds = %606
  %612 = load ptr, ptr %9, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct._param, ptr %612, i32 0, i32 79
  %614 = load i32, ptr %613, align 8, !tbaa !55
  switch i32 %614, label %618 [
    i32 2, label %615
    i32 3, label %615
    i32 4, label %615
    i32 5, label %615
    i32 6, label %615
  ]

615:                                              ; preds = %611, %611, %611, %611, %611
  %616 = load ptr, ptr %9, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct._param, ptr %616, i32 0, i32 91
  store i32 1, ptr %617, align 8, !tbaa !59
  br label %621

618:                                              ; preds = %611
  %619 = load ptr, ptr %9, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct._param, ptr %619, i32 0, i32 91
  store i32 0, ptr %620, align 8, !tbaa !59
  br label %621

621:                                              ; preds = %618, %615
  br label %622

622:                                              ; preds = %621, %606
  %623 = load ptr, ptr %9, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct._param, ptr %623, i32 0, i32 98
  %625 = load double, ptr %624, align 8, !tbaa !60
  %626 = fcmp ogt double %625, 0.000000e+00
  br i1 %626, label %627, label %633

627:                                              ; preds = %622
  %628 = load ptr, ptr %9, align 8, !tbaa !5
  %629 = getelementptr inbounds %struct._param, ptr %628, i32 0, i32 79
  %630 = load i32, ptr %629, align 8, !tbaa !55
  %631 = icmp ne i32 %630, 4
  br i1 %631, label %632, label %633

632:                                              ; preds = %627
  call void (ptr, ...) @Fatal(ptr noundef @.str.35)
  br label %633

633:                                              ; preds = %632, %627, %622
  %634 = load ptr, ptr %9, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct._param, ptr %634, i32 0, i32 14
  %636 = load i32, ptr %635, align 8, !tbaa !44
  %637 = icmp eq i32 %636, 1
  br i1 %637, label %648, label %638

638:                                              ; preds = %633
  %639 = load ptr, ptr %9, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct._param, ptr %639, i32 0, i32 13
  %641 = load i32, ptr %640, align 4, !tbaa !41
  %642 = icmp eq i32 %641, 1
  br i1 %642, label %648, label %643

643:                                              ; preds = %638
  %644 = load ptr, ptr %9, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct._param, ptr %644, i32 0, i32 12
  %646 = load i32, ptr %645, align 8, !tbaa !38
  %647 = icmp eq i32 %646, 1
  br i1 %647, label %648, label %674

648:                                              ; preds = %643, %638, %633
  %649 = load ptr, ptr %9, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct._param, ptr %649, i32 0, i32 16
  %651 = load double, ptr %650, align 8, !tbaa !40
  %652 = load ptr, ptr %9, align 8, !tbaa !5
  %653 = getelementptr inbounds %struct._param, ptr %652, i32 0, i32 15
  %654 = load double, ptr %653, align 8, !tbaa !39
  %655 = fsub double %651, %654
  %656 = load ptr, ptr %9, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct._param, ptr %656, i32 0, i32 18
  %658 = load double, ptr %657, align 8, !tbaa !43
  %659 = load ptr, ptr %9, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct._param, ptr %659, i32 0, i32 17
  %661 = load double, ptr %660, align 8, !tbaa !42
  %662 = fsub double %658, %661
  %663 = fmul double %655, %662
  %664 = load ptr, ptr %9, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct._param, ptr %664, i32 0, i32 20
  %666 = load double, ptr %665, align 8, !tbaa !46
  %667 = load ptr, ptr %9, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct._param, ptr %667, i32 0, i32 19
  %669 = load double, ptr %668, align 8, !tbaa !45
  %670 = fsub double %666, %669
  %671 = fmul double %663, %670
  %672 = load ptr, ptr %9, align 8, !tbaa !5
  %673 = getelementptr inbounds %struct._param, ptr %672, i32 0, i32 248
  store double %671, ptr %673, align 8, !tbaa !61
  br label %688

674:                                              ; preds = %643
  %675 = load ptr, ptr %9, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct._param, ptr %675, i32 0, i32 206
  %677 = load double, ptr %676, align 8, !tbaa !18
  %678 = load ptr, ptr %9, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct._param, ptr %678, i32 0, i32 207
  %680 = load double, ptr %679, align 8, !tbaa !21
  %681 = fmul double %677, %680
  %682 = load ptr, ptr %9, align 8, !tbaa !5
  %683 = getelementptr inbounds %struct._param, ptr %682, i32 0, i32 208
  %684 = load double, ptr %683, align 8, !tbaa !23
  %685 = fmul double %681, %684
  %686 = load ptr, ptr %9, align 8, !tbaa !5
  %687 = getelementptr inbounds %struct._param, ptr %686, i32 0, i32 248
  store double %685, ptr %687, align 8, !tbaa !61
  br label %688

688:                                              ; preds = %674, %648
  %689 = load ptr, ptr %9, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct._param, ptr %689, i32 0, i32 85
  %691 = load double, ptr %690, align 8, !tbaa !62
  %692 = load ptr, ptr %9, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct._param, ptr %692, i32 0, i32 85
  %694 = load double, ptr %693, align 8, !tbaa !62
  %695 = fmul double %691, %694
  %696 = load ptr, ptr %9, align 8, !tbaa !5
  %697 = getelementptr inbounds %struct._param, ptr %696, i32 0, i32 248
  %698 = load double, ptr %697, align 8, !tbaa !61
  %699 = fmul double %695, %698
  %700 = fdiv double 1.000000e+00, %699
  %701 = load ptr, ptr %9, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct._param, ptr %701, i32 0, i32 249
  store double %700, ptr %702, align 8, !tbaa !63
  %703 = load ptr, ptr %9, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct._param, ptr %703, i32 0, i32 220
  %705 = load i32, ptr %704, align 8, !tbaa !64
  %706 = icmp ne i32 %705, 0
  br i1 %706, label %710, label %707

707:                                              ; preds = %688
  %708 = load ptr, ptr %9, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct._param, ptr %708, i32 0, i32 53
  store i32 0, ptr %709, align 4, !tbaa !65
  br label %710

710:                                              ; preds = %707, %688
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #6
  ret void
}

; Function Attrs: nounwind
declare double @log(double noundef) #2

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

attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #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 allocsize(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 #6 = { nounwind }
attributes #7 = { nounwind allocsize(0) }

!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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !6, i64 16}
!10 = !{!"_home", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !11, i64 96, !11, i64 100, !6, i64 104, !11, i64 112, !11, i64 116, !6, i64 120, !11, i64 128, !11, i64 132, !11, i64 136, !6, i64 144, !11, i64 152, !11, i64 156, !6, i64 160, !6, i64 168, !6, i64 176, !12, i64 184, !12, i64 192, !12, i64 200, !12, i64 208, !12, i64 216, !12, i64 224, !11, i64 232, !11, i64 236, !11, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !11, i64 272, !6, i64 280, !11, i64 288, !6, i64 296, !6, i64 304, !6, i64 312, !11, i64 320, !11, i64 324, !6, i64 328, !11, i64 336, !6, i64 344, !6, i64 352, !6, i64 360, !11, i64 368, !11, i64 372, !11, i64 376, !6, i64 384, !6, i64 392, !11, i64 400, !11, i64 404, !6, i64 408, !6, i64 416, !6, i64 424, !11, i64 432, !11, i64 436, !11, i64 440, !7, i64 448, !7, i64 520, !13, i64 592, !11, i64 632, !11, i64 636, !11, i64 640, !11, i64 644, !11, i64 648, !11, i64 652, !11, i64 656, !14, i64 664}
!11 = !{!"int", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!14 = !{!"timeval", !15, i64 0, !15, i64 8}
!15 = !{!"long", !7, i64 0}
!16 = !{!17, !12, i64 3784}
!17 = !{!"_param", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !12, i64 112, !12, i64 120, !12, i64 128, !12, i64 136, !12, i64 144, !12, i64 152, !11, i64 160, !11, i64 164, !11, i64 168, !11, i64 172, !11, i64 176, !12, i64 184, !12, i64 192, !7, i64 200, !12, i64 456, !12, i64 464, !12, i64 472, !12, i64 480, !12, i64 488, !12, i64 496, !12, i64 504, !11, i64 512, !12, i64 520, !12, i64 528, !11, i64 536, !12, i64 544, !12, i64 552, !11, i64 560, !11, i64 564, !12, i64 568, !12, i64 576, !11, i64 584, !11, i64 588, !11, i64 592, !11, i64 596, !11, i64 600, !11, i64 604, !7, i64 608, !7, i64 864, !7, i64 1120, !12, i64 1376, !11, i64 1384, !7, i64 1392, !7, i64 1440, !12, i64 1488, !11, i64 1496, !7, i64 1504, !12, i64 1528, !12, i64 1536, !12, i64 1544, !12, i64 1552, !11, i64 1560, !12, i64 1568, !11, i64 1576, !7, i64 1584, !7, i64 1608, !7, i64 1632, !7, i64 1656, !11, i64 1912, !11, i64 1916, !12, i64 1920, !12, i64 1928, !12, i64 1936, !12, i64 1944, !12, i64 1952, !12, i64 1960, !12, i64 1968, !12, i64 1976, !11, i64 1984, !11, i64 1988, !11, i64 1992, !6, i64 2000, !12, i64 2008, !12, i64 2016, !12, i64 2024, !12, i64 2032, !12, i64 2040, !12, i64 2048, !7, i64 2056, !7, i64 2296, !11, i64 2536, !12, i64 2544, !11, i64 2552, !12, i64 2560, !12, i64 2568, !12, i64 2576, !11, i64 2584, !11, i64 2588, !12, i64 2592, !12, i64 2600, !7, i64 2608, !11, i64 2864, !11, i64 2868, !11, i64 2872, !11, i64 2876, !11, i64 2880, !11, i64 2884, !11, i64 2888, !12, i64 2896, !12, i64 2904, !11, i64 2912, !11, i64 2916, !11, i64 2920, !12, i64 2928, !12, i64 2936, !11, i64 2944, !11, i64 2948, !11, i64 2952, !12, i64 2960, !12, i64 2968, !11, i64 2976, !11, i64 2980, !11, i64 2984, !12, i64 2992, !12, i64 3000, !11, i64 3008, !11, i64 3012, !11, i64 3016, !12, i64 3024, !12, i64 3032, !11, i64 3040, !11, i64 3044, !11, i64 3048, !12, i64 3056, !12, i64 3064, !11, i64 3072, !11, i64 3076, !11, i64 3080, !12, i64 3088, !12, i64 3096, !12, i64 3104, !11, i64 3112, !11, i64 3116, !12, i64 3120, !12, i64 3128, !11, i64 3136, !11, i64 3140, !11, i64 3144, !12, i64 3152, !12, i64 3160, !11, i64 3168, !11, i64 3172, !12, i64 3176, !12, i64 3184, !11, i64 3192, !11, i64 3196, !11, i64 3200, !12, i64 3208, !12, i64 3216, !7, i64 3224, !11, i64 3236, !11, i64 3240, !11, i64 3244, !12, i64 3248, !12, i64 3256, !11, i64 3264, !11, i64 3268, !11, i64 3272, !12, i64 3280, !12, i64 3288, !11, i64 3296, !11, i64 3300, !11, i64 3304, !12, i64 3312, !12, i64 3320, !11, i64 3328, !11, i64 3332, !11, i64 3336, !12, i64 3344, !12, i64 3352, !11, i64 3360, !11, i64 3364, !11, i64 3368, !12, i64 3376, !12, i64 3384, !11, i64 3392, !11, i64 3396, !11, i64 3400, !11, i64 3404, !11, i64 3408, !11, i64 3412, !11, i64 3416, !12, i64 3424, !12, i64 3432, !7, i64 3440, !12, i64 3696, !12, i64 3704, !12, i64 3712, !12, i64 3720, !12, i64 3728, !12, i64 3736, !12, i64 3744, !12, i64 3752, !11, i64 3760, !6, i64 3768, !12, i64 3776, !12, i64 3784, !7, i64 3792, !12, i64 3904, !11, i64 3912, !7, i64 3920, !7, i64 3968, !7, i64 4016, !7, i64 4064, !7, i64 4112, !7, i64 4160, !7, i64 4208, !7, i64 4256, !7, i64 4304, !7, i64 4352, !7, i64 4400, !7, i64 4528, !7, i64 4752, !7, i64 4880, !7, i64 5104, !7, i64 5296, !7, i64 5632, !7, i64 5824, !7, i64 6160, !7, i64 6184, !11, i64 6440, !11, i64 6444, !11, i64 6448, !11, i64 6452, !7, i64 6456, !7, i64 6472, !7, i64 6496, !12, i64 6520, !12, i64 6528, !11, i64 6536, !7, i64 6540}
!18 = !{!17, !12, i64 3696}
!19 = !{!17, !11, i64 12}
!20 = !{!12, !12, i64 0}
!21 = !{!17, !12, i64 3704}
!22 = !{!17, !11, i64 16}
!23 = !{!17, !12, i64 3712}
!24 = !{!17, !11, i64 20}
!25 = !{!10, !11, i64 0}
!26 = !{!17, !12, i64 1968}
!27 = !{!17, !12, i64 552}
!28 = !{!17, !12, i64 520}
!29 = !{!17, !12, i64 480}
!30 = !{!17, !12, i64 472}
!31 = !{!17, !12, i64 456}
!32 = !{!17, !12, i64 3752}
!33 = !{!17, !12, i64 576}
!34 = !{!17, !12, i64 544}
!35 = !{!17, !12, i64 568}
!36 = !{!17, !12, i64 1976}
!37 = !{!17, !12, i64 1936}
!38 = !{!17, !11, i64 48}
!39 = !{!17, !12, i64 64}
!40 = !{!17, !12, i64 72}
!41 = !{!17, !11, i64 52}
!42 = !{!17, !12, i64 80}
!43 = !{!17, !12, i64 88}
!44 = !{!17, !11, i64 56}
!45 = !{!17, !12, i64 96}
!46 = !{!17, !12, i64 104}
!47 = !{!17, !12, i64 112}
!48 = !{!17, !12, i64 120}
!49 = !{!17, !12, i64 128}
!50 = !{!17, !12, i64 136}
!51 = !{!17, !12, i64 144}
!52 = !{!17, !12, i64 152}
!53 = !{!17, !11, i64 3760}
!54 = !{!17, !6, i64 3768}
!55 = !{!17, !11, i64 1912}
!56 = !{!17, !11, i64 1984}
!57 = !{!17, !11, i64 164}
!58 = !{!17, !11, i64 160}
!59 = !{!17, !11, i64 1992}
!60 = !{!17, !12, i64 2048}
!61 = !{!17, !12, i64 6520}
!62 = !{!17, !12, i64 1952}
!63 = !{!17, !12, i64 6528}
!64 = !{!17, !11, i64 3912}
!65 = !{!17, !11, i64 588}


; 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.18 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [104 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.25 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [51 x i8], align 1

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @Fatal(ptr noundef, ...) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4

; Function Attrs: nounwind uwtable
define dso_local void @SetRemainingDefaults(ptr nocapture noundef readonly %0) local_unnamed_addr #2 {
  %2 = getelementptr inbounds i8, ptr %0, i64 16
  %3 = load ptr, ptr %2, align 8, !tbaa !5
  %4 = getelementptr inbounds i8, ptr %3, i64 3784
  store double 0.000000e+00, ptr %4, align 8, !tbaa !15
  %5 = getelementptr inbounds i8, ptr %3, i64 3696
  %6 = getelementptr inbounds i8, ptr %3, i64 12
  %7 = getelementptr inbounds i8, ptr %3, i64 3704
  %8 = load <2 x double>, ptr %5, align 8, !tbaa !17
  %9 = load <2 x i32>, ptr %6, align 4, !tbaa !18
  %10 = sitofp <2 x i32> %9 to <2 x double>
  %11 = fdiv <2 x double> %8, %10
  %12 = getelementptr inbounds i8, ptr %3, i64 3712
  %13 = load double, ptr %12, align 8, !tbaa !19
  %14 = getelementptr inbounds i8, ptr %3, i64 20
  %15 = load i32, ptr %14, align 4, !tbaa !20
  %16 = sitofp i32 %15 to double
  %17 = fdiv double %13, %16
  %18 = extractelement <2 x double> %11, i64 0
  %19 = extractelement <2 x double> %11, i64 1
  %20 = fcmp olt double %18, %19
  %21 = select i1 %20, double %18, double %19
  %22 = fcmp olt double %21, %17
  %23 = select i1 %22, double %21, double %17
  %24 = load i32, ptr %0, align 8, !tbaa !21
  %25 = icmp eq i32 %24, 0
  br i1 %25, label %26, label %36

26:                                               ; preds = %1
  %27 = getelementptr inbounds i8, ptr %3, i64 1968
  %28 = load double, ptr %27, align 8, !tbaa !22
  %29 = fcmp olt double %28, 0.000000e+00
  br i1 %29, label %30, label %31

30:                                               ; preds = %26
  tail call void (ptr, ...) @Fatal(ptr noundef nonnull @.str.18)
  br label %31

31:                                               ; preds = %30, %26
  %32 = getelementptr inbounds i8, ptr %3, i64 552
  %33 = load double, ptr %32, align 8, !tbaa !23
  %34 = fcmp olt double %33, 0.000000e+00
  br i1 %34, label %35, label %36

35:                                               ; preds = %31
  tail call void (ptr, ...) @Fatal(ptr noundef nonnull @.str.19)
  br label %36

36:                                               ; preds = %31, %35, %1
  %37 = getelementptr inbounds i8, ptr %3, i64 520
  %38 = load double, ptr %37, align 8, !tbaa !24
  %39 = fcmp ugt double %38, 0.000000e+00
  br i1 %39, label %44, label %40

40:                                               ; preds = %36
  %41 = getelementptr inbounds i8, ptr %3, i64 1968
  %42 = load double, ptr %41, align 8, !tbaa !22
  %43 = fmul double %42, 2.500000e-01
  store double %43, ptr %37, align 8, !tbaa !24
  br label %44

44:                                               ; preds = %40, %36
  %45 = phi double [ %43, %40 ], [ %38, %36 ]
  %46 = getelementptr inbounds i8, ptr %3, i64 480
  %47 = load double, ptr %46, align 8, !tbaa !25
  %48 = getelementptr inbounds i8, ptr %3, i64 472
  %49 = load double, ptr %48, align 8, !tbaa !26
  %50 = fcmp olt double %47, %49
  %. = select i1 %50, double %47, double %49
  %51 = getelementptr inbounds i8, ptr %3, i64 456
  %52 = fcmp ugt double %., 0.000000e+00
  %storemerge = select i1 %52, double %., double %47
  store double %storemerge, ptr %51, align 8, !tbaa !27
  %53 = fmul double %45, 2.000000e+00
  %54 = getelementptr inbounds i8, ptr %3, i64 3752
  store double %53, ptr %54, align 8, !tbaa !28
  %55 = getelementptr inbounds i8, ptr %3, i64 552
  %56 = load double, ptr %55, align 8, !tbaa !23
  %57 = fmul double %53, %56
  %58 = getelementptr inbounds i8, ptr %3, i64 576
  store double %57, ptr %58, align 8, !tbaa !29
  %59 = getelementptr inbounds i8, ptr %3, i64 544
  %60 = load double, ptr %59, align 8, !tbaa !30
  %61 = fcmp ogt double %60, 0.000000e+00
  br i1 %61, label %62, label %67

62:                                               ; preds = %44
  %63 = fmul double %60, %60
  %64 = fmul double %63, 0x3FFBB67AE8584CAA
  %65 = fmul double %64, 2.500000e-01
  %66 = fcmp olt double %57, %65
  %.186 = select i1 %66, double %57, double %65
  store double %.186, ptr %58, align 8, !tbaa !29
  br label %67

67:                                               ; preds = %62, %44
  %68 = phi double [ %.186, %62 ], [ %57, %44 ]
  %69 = fmul double %56, %56
  %70 = fmul double %69, 0x3FDBB67AE8584CAA
  %71 = tail call double @llvm.fmuladd.f64(double %68, double 4.000000e+00, double %70)
  %72 = fmul double %71, 5.000000e-01
  %73 = getelementptr inbounds i8, ptr %3, i64 568
  store double %72, ptr %73, align 8, !tbaa !31
  %74 = fcmp ugt double %60, 0.000000e+00
  br i1 %74, label %78, label %75

75:                                               ; preds = %67
  %76 = fmul double %68, 0x400279A74590331D
  %77 = tail call double @sqrt(double noundef %76) #5
  store double %77, ptr %59, align 8, !tbaa !30
  br label %78

78:                                               ; preds = %75, %67
  %79 = getelementptr inbounds i8, ptr %3, i64 1976
  %80 = load double, ptr %79, align 8, !tbaa !32
  %81 = fcmp olt double %80, 0.000000e+00
  br i1 %81, label %82, label %91

82:                                               ; preds = %78
  %83 = getelementptr inbounds i8, ptr %3, i64 1936
  %84 = load double, ptr %83, align 8, !tbaa !33
  %85 = fdiv double %84, 0x402921FB54442D18
  %86 = getelementptr inbounds i8, ptr %3, i64 1968
  %87 = load double, ptr %86, align 8, !tbaa !22
  %88 = fdiv double %87, 1.000000e-01
  %89 = tail call double @log(double noundef %88) #5
  %90 = fmul double %85, %89
  store double %90, ptr %79, align 8, !tbaa !32
  br label %91

91:                                               ; preds = %82, %78
  %92 = load i32, ptr %0, align 8, !tbaa !21
  %93 = icmp eq i32 %92, 0
  br i1 %93, label %94, label %241

94:                                               ; preds = %91
  %95 = load double, ptr %55, align 8, !tbaa !23
  %96 = load double, ptr %37, align 8, !tbaa !24
  %97 = fmul double %96, 0x403279A74590331D
  %98 = fcmp ugt double %95, %97
  br i1 %98, label %100, label %99

99:                                               ; preds = %94
  tail call void (ptr, ...) @Fatal(ptr noundef nonnull @.str.20, double noundef %95, double noundef %96)
  %.pre = load double, ptr %55, align 8, !tbaa !23
  br label %100

100:                                              ; preds = %99, %94
  %101 = phi double [ %.pre, %99 ], [ %95, %94 ]
  %102 = load double, ptr %59, align 8, !tbaa !30
  %103 = fmul double %101, 5.000000e-01
  %104 = fcmp ogt double %102, %103
  br i1 %104, label %105, label %106

105:                                              ; preds = %100
  tail call void (ptr, ...) @Fatal(ptr noundef nonnull @.str.21, double noundef %102, double noundef %101)
  %.pre189 = load double, ptr %55, align 8, !tbaa !23
  %.pre190 = load double, ptr %59, align 8, !tbaa !30
  br label %106

106:                                              ; preds = %105, %100
  %107 = phi double [ %.pre190, %105 ], [ %102, %100 ]
  %108 = phi double [ %.pre189, %105 ], [ %101, %100 ]
  %109 = fcmp ugt double %108, %107
  br i1 %109, label %111, label %110

110:                                              ; preds = %106
  tail call void (ptr, ...) @Fatal(ptr noundef nonnull @.str.22, double noundef %108, double noundef %107)
  %.pre191 = load double, ptr %55, align 8, !tbaa !23
  br label %111

111:                                              ; preds = %110, %106
  %112 = phi double [ %.pre191, %110 ], [ %108, %106 ]
  %113 = fmul double %23, 9.000000e-01
  %114 = fcmp ogt double %112, %113
  br i1 %114, label %115, label %116

115:                                              ; preds = %111
  tail call void (ptr, ...) @Fatal(ptr noundef nonnull @.str.23, double noundef %112, double noundef %23)
  br label %116

116:                                              ; preds = %115, %111
  %117 = load double, ptr %58, align 8, !tbaa !29
  %118 = load double, ptr %73, align 8, !tbaa !31
  %119 = fmul double %118, 2.500000e-01
  %120 = fcmp ogt double %117, %119
  br i1 %120, label %121, label %122

121:                                              ; preds = %116
  tail call void (ptr, ...) @Fatal(ptr noundef nonnull @.str.24, double noundef %117, double noundef %118)
  br label %122

122:                                              ; preds = %121, %116
  %123 = getelementptr inbounds i8, ptr %3, i64 1968
  %124 = load double, ptr %123, align 8, !tbaa !22
  %125 = fcmp olt double %124, 1.000000e-01
  br i1 %125, label %126, label %129

126:                                              ; preds = %122
  %127 = load ptr, ptr @stderr, align 8, !tbaa !34
  %128 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %127, ptr noundef nonnull @.str.25, double noundef %124) #6
  br label %129

129:                                              ; preds = %126, %122
  %130 = load double, ptr %55, align 8, !tbaa !23
  %131 = fmul double %130, %130
  %132 = fmul double %130, %131
  %133 = load double, ptr %73, align 8, !tbaa !31
  %134 = fmul double %132, 0x3FDBB67AE8584CAA
  %135 = fcmp ogt double %133, %134
  br i1 %135, label %136, label %143

136:                                              ; preds = %129
  %137 = load ptr, ptr @stderr, align 8, !tbaa !34
  %138 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull @.str.26) #6
  %139 = load ptr, ptr @stderr, align 8, !tbaa !34
  %140 = load double, ptr %73, align 8, !tbaa !31
  %141 = load double, ptr %55, align 8, !tbaa !23
  %142 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %139, ptr noundef nonnull @.str.27, double noundef %140, double noundef %141) #6
  br label %143

143:                                              ; preds = %136, %129
  %144 = load double, ptr %54, align 8, !tbaa !28
  %145 = load double, ptr %123, align 8, !tbaa !22
  %146 = tail call double @llvm.fmuladd.f64(double %145, double 5.000000e-01, double 1.000000e-02)
  %147 = fcmp ogt double %144, %146
  br i1 %147, label %148, label %155

148:                                              ; preds = %143
  %149 = load ptr, ptr @stderr, align 8, !tbaa !34
  %150 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef nonnull @.str.28) #6
  %151 = load ptr, ptr @stderr, align 8, !tbaa !34
  %152 = load double, ptr %54, align 8, !tbaa !28
  %153 = load double, ptr %123, align 8, !tbaa !22
  %154 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %151, ptr noundef nonnull @.str.29, double noundef %152, double noundef %153) #6
  %.pre192 = load double, ptr %54, align 8, !tbaa !28
  br label %155

155:                                              ; preds = %148, %143
  %156 = phi double [ %.pre192, %148 ], [ %144, %143 ]
  %157 = load double, ptr %37, align 8, !tbaa !24
  %158 = fmul double %157, 2.000000e+00
  %159 = fcmp ogt double %156, %158
  br i1 %159, label %160, label %167

160:                                              ; preds = %155
  %161 = load ptr, ptr @stderr, align 8, !tbaa !34
  %162 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %161, ptr noundef nonnull @.str.30) #6
  %163 = load ptr, ptr @stderr, align 8, !tbaa !34
  %164 = load double, ptr %54, align 8, !tbaa !28
  %165 = load double, ptr %37, align 8, !tbaa !24
  %166 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef nonnull @.str.31, double noundef %164, double noundef %165) #6
  br label %167

167:                                              ; preds = %160, %155
  %168 = getelementptr inbounds i8, ptr %3, i64 48
  %169 = load i32, ptr %168, align 8, !tbaa !35
  %170 = icmp eq i32 %169, 1
  br i1 %170, label %171, label %183

171:                                              ; preds = %167
  %172 = getelementptr inbounds i8, ptr %3, i64 64
  %173 = load double, ptr %172, align 8, !tbaa !36
  %174 = getelementptr inbounds i8, ptr %3, i64 6472
  %175 = load double, ptr %174, align 8, !tbaa !17
  %176 = fcmp olt double %173, %175
  br i1 %176, label %215, label %177

177:                                              ; preds = %171
  %178 = getelementptr inbounds i8, ptr %3, i64 72
  %179 = load double, ptr %178, align 8, !tbaa !37
  %180 = getelementptr inbounds i8, ptr %3, i64 6496
  %181 = load double, ptr %180, align 8, !tbaa !17
  %182 = fcmp ogt double %179, %181
  br i1 %182, label %215, label %183

183:                                              ; preds = %177, %167
  %184 = getelementptr inbounds i8, ptr %3, i64 52
  %185 = load i32, ptr %184, align 4, !tbaa !38
  %186 = icmp eq i32 %185, 1
  br i1 %186, label %187, label %199

187:                                              ; preds = %183
  %188 = getelementptr inbounds i8, ptr %3, i64 80
  %189 = load double, ptr %188, align 8, !tbaa !39
  %190 = getelementptr inbounds i8, ptr %3, i64 6480
  %191 = load double, ptr %190, align 8, !tbaa !17
  %192 = fcmp olt double %189, %191
  br i1 %192, label %215, label %193

193:                                              ; preds = %187
  %194 = getelementptr inbounds i8, ptr %3, i64 88
  %195 = load double, ptr %194, align 8, !tbaa !40
  %196 = getelementptr inbounds i8, ptr %3, i64 6504
  %197 = load double, ptr %196, align 8, !tbaa !17
  %198 = fcmp ogt double %195, %197
  br i1 %198, label %215, label %199

199:                                              ; preds = %193, %183
  %200 = getelementptr inbounds i8, ptr %3, i64 56
  %201 = load i32, ptr %200, align 8, !tbaa !41
  %202 = icmp eq i32 %201, 1
  br i1 %202, label %203, label %228

203:                                              ; preds = %199
  %204 = getelementptr inbounds i8, ptr %3, i64 96
  %205 = load double, ptr %204, align 8, !tbaa !42
  %206 = getelementptr inbounds i8, ptr %3, i64 6488
  %207 = load double, ptr %206, align 8, !tbaa !17
  %208 = fcmp olt double %205, %207
  br i1 %208, label %215, label %209

209:                                              ; preds = %203
  %210 = getelementptr inbounds i8, ptr %3, i64 104
  %211 = load double, ptr %210, align 8, !tbaa !43
  %212 = getelementptr inbounds i8, ptr %3, i64 6512
  %213 = load double, ptr %212, align 8, !tbaa !17
  %214 = fcmp ogt double %211, %213
  br i1 %214, label %215, label %228

215:                                              ; preds = %209, %203, %193, %187, %177, %171
  %216 = getelementptr inbounds i8, ptr %3, i64 64
  %217 = load double, ptr %216, align 8, !tbaa !36
  %218 = getelementptr inbounds i8, ptr %3, i64 80
  %219 = load double, ptr %218, align 8, !tbaa !39
  %220 = getelementptr inbounds i8, ptr %3, i64 96
  %221 = load double, ptr %220, align 8, !tbaa !42
  %222 = getelementptr inbounds i8, ptr %3, i64 72
  %223 = load double, ptr %222, align 8, !tbaa !37
  %224 = getelementptr inbounds i8, ptr %3, i64 88
  %225 = load double, ptr %224, align 8, !tbaa !40
  %226 = getelementptr inbounds i8, ptr %3, i64 104
  %227 = load double, ptr %226, align 8, !tbaa !43
  tail call void (ptr, ...) @Fatal(ptr noundef nonnull @.str.32, double noundef %217, double noundef %219, double noundef %221, double noundef %223, double noundef %225, double noundef %227)
  %.pre193 = load i32, ptr %168, align 8, !tbaa !35
  br label %228

228:                                              ; preds = %215, %209, %199
  %229 = phi i32 [ %.pre193, %215 ], [ %169, %209 ], [ %169, %199 ]
  %230 = icmp eq i32 %229, 1
  br i1 %230, label %239, label %231

231:                                              ; preds = %228
  %232 = getelementptr inbounds i8, ptr %3, i64 52
  %233 = load i32, ptr %232, align 4, !tbaa !38
  %234 = icmp eq i32 %233, 1
  br i1 %234, label %239, label %235

235:                                              ; preds = %231
  %236 = getelementptr inbounds i8, ptr %3, i64 56
  %237 = load i32, ptr %236, align 8, !tbaa !41
  %238 = icmp eq i32 %237, 1
  br i1 %238, label %239, label %241

239:                                              ; preds = %235, %231, %228
  %240 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.33)
  br label %241

241:                                              ; preds = %235, %239, %91
  %242 = getelementptr inbounds i8, ptr %3, i64 48
  %243 = load i32, ptr %242, align 8, !tbaa !35
  %244 = icmp eq i32 %243, 1
  %.phi.trans.insert = getelementptr inbounds i8, ptr %3, i64 52
  %.pre194 = load i32, ptr %.phi.trans.insert, align 4, !tbaa !38
  br i1 %244, label %.thread, label %245

245:                                              ; preds = %241
  %246 = icmp eq i32 %.pre194, 1
  br i1 %246, label %251, label %247

247:                                              ; preds = %245
  %248 = getelementptr inbounds i8, ptr %3, i64 56
  %249 = load i32, ptr %248, align 8, !tbaa !41
  %250 = icmp eq i32 %249, 1
  br i1 %250, label %251, label %270

251:                                              ; preds = %247, %245
  %252 = icmp eq i32 %243, 0
  br i1 %252, label %253, label %.thread

253:                                              ; preds = %251
  %254 = getelementptr inbounds i8, ptr %3, i64 112
  %255 = getelementptr inbounds i8, ptr %3, i64 64
  %256 = load <2 x double>, ptr %254, align 8, !tbaa !17
  store <2 x double> %256, ptr %255, align 8, !tbaa !17
  br label %.thread

.thread:                                          ; preds = %241, %253, %251
  %257 = icmp eq i32 %.pre194, 0
  br i1 %257, label %258, label %262

258:                                              ; preds = %.thread
  %259 = getelementptr inbounds i8, ptr %3, i64 128
  %260 = getelementptr inbounds i8, ptr %3, i64 80
  %261 = load <2 x double>, ptr %259, align 8, !tbaa !17
  store <2 x double> %261, ptr %260, align 8, !tbaa !17
  br label %262

262:                                              ; preds = %258, %.thread
  %263 = getelementptr inbounds i8, ptr %3, i64 56
  %264 = load i32, ptr %263, align 8, !tbaa !41
  %265 = icmp eq i32 %264, 0
  br i1 %265, label %266, label %270

266:                                              ; preds = %262
  %267 = getelementptr inbounds i8, ptr %3, i64 144
  %268 = getelementptr inbounds i8, ptr %3, i64 96
  %269 = load <2 x double>, ptr %267, align 8, !tbaa !17
  store <2 x double> %269, ptr %268, align 8, !tbaa !17
  br label %270

270:                                              ; preds = %262, %266, %247
  %271 = getelementptr inbounds i8, ptr %3, i64 3760
  %272 = load i32, ptr %271, align 8, !tbaa !44
  %273 = sext i32 %272 to i64
  %274 = shl nsw i64 %273, 3
  %275 = tail call noalias ptr @malloc(i64 noundef %274) #7
  %276 = getelementptr inbounds i8, ptr %3, i64 3768
  store ptr %275, ptr %276, align 8, !tbaa !45
  %277 = getelementptr inbounds i8, ptr %3, i64 1912
  %278 = load i32, ptr %277, align 8, !tbaa !46
  %.off = add i32 %278, -2
  %switch = icmp ult i32 %.off, 5
  br i1 %switch, label %279, label %289

279:                                              ; preds = %270
  %280 = getelementptr inbounds i8, ptr %3, i64 1984
  %281 = load i32, ptr %280, align 8, !tbaa !47
  %282 = icmp eq i32 %281, 0
  br i1 %282, label %283, label %289

283:                                              ; preds = %279
  store i32 1, ptr %280, align 8, !tbaa !47
  %284 = load i32, ptr %0, align 8, !tbaa !21
  %285 = icmp eq i32 %284, 0
  br i1 %285, label %286, label %289

286:                                              ; preds = %283
  %287 = getelementptr inbounds i8, ptr %3, i64 1656
  %288 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.34, ptr noundef nonnull %287)
  br label %289

289:                                              ; preds = %270, %279, %286, %283
  %290 = getelementptr inbounds i8, ptr %3, i64 164
  %291 = load i32, ptr %290, align 4, !tbaa !48
  %.fr184 = freeze i32 %291
  %292 = icmp sgt i32 %.fr184, 0
  br i1 %292, label %293, label %301

293:                                              ; preds = %289
  %294 = getelementptr inbounds i8, ptr %3, i64 160
  %295 = load i32, ptr %294, align 8, !tbaa !49
  %296 = icmp eq i32 %295, 1
  br i1 %296, label %297, label %301

297:                                              ; preds = %293
  %298 = add nuw i32 %.fr184, 2
  %299 = urem i32 %298, 3
  %300 = sub nuw i32 %298, %299
  store i32 %300, ptr %290, align 4, !tbaa !48
  br label %301

301:                                              ; preds = %297, %293, %289
  %302 = getelementptr inbounds i8, ptr %3, i64 1992
  %303 = load i32, ptr %302, align 8, !tbaa !50
  %304 = icmp slt i32 %303, 0
  br i1 %304, label %.sink.split, label %306

.sink.split:                                      ; preds = %301
  %305 = load i32, ptr %277, align 8, !tbaa !46
  %.off187 = add i32 %305, -2
  %switch188 = icmp ult i32 %.off187, 5
  %.197 = zext i1 %switch188 to i32
  store i32 %.197, ptr %302, align 8, !tbaa !50
  br label %306

306:                                              ; preds = %.sink.split, %301
  %307 = getelementptr inbounds i8, ptr %3, i64 2048
  %308 = load double, ptr %307, align 8, !tbaa !51
  %309 = fcmp ogt double %308, 0.000000e+00
  br i1 %309, label %310, label %313

310:                                              ; preds = %306
  %311 = load i32, ptr %277, align 8, !tbaa !46
  %.not = icmp eq i32 %311, 4
  br i1 %.not, label %313, label %312

312:                                              ; preds = %310
  tail call void (ptr, ...) @Fatal(ptr noundef nonnull @.str.35)
  br label %313

313:                                              ; preds = %312, %310, %306
  %314 = getelementptr inbounds i8, ptr %3, i64 56
  %315 = load i32, ptr %314, align 8, !tbaa !41
  %316 = icmp eq i32 %315, 1
  br i1 %316, label %324, label %317

317:                                              ; preds = %313
  %318 = getelementptr inbounds i8, ptr %3, i64 52
  %319 = load i32, ptr %318, align 4, !tbaa !38
  %320 = icmp eq i32 %319, 1
  br i1 %320, label %324, label %321

321:                                              ; preds = %317
  %322 = load i32, ptr %242, align 8, !tbaa !35
  %323 = icmp eq i32 %322, 1
  br i1 %323, label %324, label %342

324:                                              ; preds = %321, %317, %313
  %325 = getelementptr inbounds i8, ptr %3, i64 72
  %326 = load double, ptr %325, align 8, !tbaa !37
  %327 = getelementptr inbounds i8, ptr %3, i64 64
  %328 = load double, ptr %327, align 8, !tbaa !36
  %329 = fsub double %326, %328
  %330 = getelementptr inbounds i8, ptr %3, i64 88
  %331 = load double, ptr %330, align 8, !tbaa !40
  %332 = getelementptr inbounds i8, ptr %3, i64 80
  %333 = load double, ptr %332, align 8, !tbaa !39
  %334 = fsub double %331, %333
  %335 = fmul double %329, %334
  %336 = getelementptr inbounds i8, ptr %3, i64 104
  %337 = load double, ptr %336, align 8, !tbaa !43
  %338 = getelementptr inbounds i8, ptr %3, i64 96
  %339 = load double, ptr %338, align 8, !tbaa !42
  %340 = fsub double %337, %339
  %341 = fmul double %335, %340
  br label %348

342:                                              ; preds = %321
  %343 = load double, ptr %5, align 8, !tbaa !52
  %344 = load double, ptr %7, align 8, !tbaa !53
  %345 = fmul double %343, %344
  %346 = load double, ptr %12, align 8, !tbaa !19
  %347 = fmul double %345, %346
  br label %348

348:                                              ; preds = %342, %324
  %.sink195 = phi double [ %347, %342 ], [ %341, %324 ]
  %349 = getelementptr inbounds i8, ptr %3, i64 6520
  store double %.sink195, ptr %349, align 8, !tbaa !54
  %350 = getelementptr inbounds i8, ptr %3, i64 1952
  %351 = load double, ptr %350, align 8, !tbaa !55
  %352 = fmul double %351, %351
  %353 = fmul double %352, %.sink195
  %354 = fdiv double 1.000000e+00, %353
  %355 = getelementptr inbounds i8, ptr %3, i64 6528
  store double %354, ptr %355, align 8, !tbaa !56
  %356 = getelementptr inbounds i8, ptr %3, i64 3912
  %357 = load i32, ptr %356, align 8, !tbaa !57
  %.not185 = icmp eq i32 %357, 0
  br i1 %.not185, label %358, label %360

358:                                              ; preds = %348
  %359 = getelementptr inbounds i8, ptr %3, i64 588
  store i32 0, ptr %359, align 4, !tbaa !58
  br label %360

360:                                              ; preds = %358, %348
  ret void
}

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { 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 #2 = { 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 #3 = { 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 #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 }
attributes #6 = { cold nounwind }
attributes #7 = { nounwind allocsize(0) }

!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, !10, i64 16}
!6 = !{!"_home", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !7, i64 96, !7, i64 100, !10, i64 104, !7, i64 112, !7, i64 116, !10, i64 120, !7, i64 128, !7, i64 132, !7, i64 136, !10, i64 144, !7, i64 152, !7, i64 156, !10, i64 160, !10, i64 168, !10, i64 176, !11, i64 184, !11, i64 192, !11, i64 200, !11, i64 208, !11, i64 216, !11, i64 224, !7, i64 232, !7, i64 236, !7, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !7, i64 272, !10, i64 280, !7, i64 288, !10, i64 296, !10, i64 304, !10, i64 312, !7, i64 320, !7, i64 324, !10, i64 328, !7, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !7, i64 368, !7, i64 372, !7, i64 376, !10, i64 384, !10, i64 392, !7, i64 400, !7, i64 404, !10, i64 408, !10, i64 416, !10, i64 424, !7, i64 432, !7, i64 436, !7, i64 440, !8, i64 448, !8, i64 520, !12, i64 592, !7, i64 632, !7, i64 636, !7, i64 640, !7, i64 644, !7, i64 648, !7, i64 652, !7, i64 656, !13, i64 664}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"double", !8, i64 0}
!12 = !{!"", !7, i64 0, !7, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!13 = !{!"timeval", !14, i64 0, !14, i64 8}
!14 = !{!"long", !8, i64 0}
!15 = !{!16, !11, i64 3784}
!16 = !{!"_param", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88, !11, i64 96, !11, i64 104, !11, i64 112, !11, i64 120, !11, i64 128, !11, i64 136, !11, i64 144, !11, i64 152, !7, i64 160, !7, i64 164, !7, i64 168, !7, i64 172, !7, i64 176, !11, i64 184, !11, i64 192, !8, i64 200, !11, i64 456, !11, i64 464, !11, i64 472, !11, i64 480, !11, i64 488, !11, i64 496, !11, i64 504, !7, i64 512, !11, i64 520, !11, i64 528, !7, i64 536, !11, i64 544, !11, i64 552, !7, i64 560, !7, i64 564, !11, i64 568, !11, i64 576, !7, i64 584, !7, i64 588, !7, i64 592, !7, i64 596, !7, i64 600, !7, i64 604, !8, i64 608, !8, i64 864, !8, i64 1120, !11, i64 1376, !7, i64 1384, !8, i64 1392, !8, i64 1440, !11, i64 1488, !7, i64 1496, !8, i64 1504, !11, i64 1528, !11, i64 1536, !11, i64 1544, !11, i64 1552, !7, i64 1560, !11, i64 1568, !7, i64 1576, !8, i64 1584, !8, i64 1608, !8, i64 1632, !8, i64 1656, !7, i64 1912, !7, i64 1916, !11, i64 1920, !11, i64 1928, !11, i64 1936, !11, i64 1944, !11, i64 1952, !11, i64 1960, !11, i64 1968, !11, i64 1976, !7, i64 1984, !7, i64 1988, !7, i64 1992, !10, i64 2000, !11, i64 2008, !11, i64 2016, !11, i64 2024, !11, i64 2032, !11, i64 2040, !11, i64 2048, !8, i64 2056, !8, i64 2296, !7, i64 2536, !11, i64 2544, !7, i64 2552, !11, i64 2560, !11, i64 2568, !11, i64 2576, !7, i64 2584, !7, i64 2588, !11, i64 2592, !11, i64 2600, !8, i64 2608, !7, i64 2864, !7, i64 2868, !7, i64 2872, !7, i64 2876, !7, i64 2880, !7, i64 2884, !7, i64 2888, !11, i64 2896, !11, i64 2904, !7, i64 2912, !7, i64 2916, !7, i64 2920, !11, i64 2928, !11, i64 2936, !7, i64 2944, !7, i64 2948, !7, i64 2952, !11, i64 2960, !11, i64 2968, !7, i64 2976, !7, i64 2980, !7, i64 2984, !11, i64 2992, !11, i64 3000, !7, i64 3008, !7, i64 3012, !7, i64 3016, !11, i64 3024, !11, i64 3032, !7, i64 3040, !7, i64 3044, !7, i64 3048, !11, i64 3056, !11, i64 3064, !7, i64 3072, !7, i64 3076, !7, i64 3080, !11, i64 3088, !11, i64 3096, !11, i64 3104, !7, i64 3112, !7, i64 3116, !11, i64 3120, !11, i64 3128, !7, i64 3136, !7, i64 3140, !7, i64 3144, !11, i64 3152, !11, i64 3160, !7, i64 3168, !7, i64 3172, !11, i64 3176, !11, i64 3184, !7, i64 3192, !7, i64 3196, !7, i64 3200, !11, i64 3208, !11, i64 3216, !8, i64 3224, !7, i64 3236, !7, i64 3240, !7, i64 3244, !11, i64 3248, !11, i64 3256, !7, i64 3264, !7, i64 3268, !7, i64 3272, !11, i64 3280, !11, i64 3288, !7, i64 3296, !7, i64 3300, !7, i64 3304, !11, i64 3312, !11, i64 3320, !7, i64 3328, !7, i64 3332, !7, i64 3336, !11, i64 3344, !11, i64 3352, !7, i64 3360, !7, i64 3364, !7, i64 3368, !11, i64 3376, !11, i64 3384, !7, i64 3392, !7, i64 3396, !7, i64 3400, !7, i64 3404, !7, i64 3408, !7, i64 3412, !7, i64 3416, !11, i64 3424, !11, i64 3432, !8, i64 3440, !11, i64 3696, !11, i64 3704, !11, i64 3712, !11, i64 3720, !11, i64 3728, !11, i64 3736, !11, i64 3744, !11, i64 3752, !7, i64 3760, !10, i64 3768, !11, i64 3776, !11, i64 3784, !8, i64 3792, !11, i64 3904, !7, i64 3912, !8, i64 3920, !8, i64 3968, !8, i64 4016, !8, i64 4064, !8, i64 4112, !8, i64 4160, !8, i64 4208, !8, i64 4256, !8, i64 4304, !8, i64 4352, !8, i64 4400, !8, i64 4528, !8, i64 4752, !8, i64 4880, !8, i64 5104, !8, i64 5296, !8, i64 5632, !8, i64 5824, !8, i64 6160, !8, i64 6184, !7, i64 6440, !7, i64 6444, !7, i64 6448, !7, i64 6452, !8, i64 6456, !8, i64 6472, !8, i64 6496, !11, i64 6520, !11, i64 6528, !7, i64 6536, !8, i64 6540}
!17 = !{!11, !11, i64 0}
!18 = !{!7, !7, i64 0}
!19 = !{!16, !11, i64 3712}
!20 = !{!16, !7, i64 20}
!21 = !{!6, !7, i64 0}
!22 = !{!16, !11, i64 1968}
!23 = !{!16, !11, i64 552}
!24 = !{!16, !11, i64 520}
!25 = !{!16, !11, i64 480}
!26 = !{!16, !11, i64 472}
!27 = !{!16, !11, i64 456}
!28 = !{!16, !11, i64 3752}
!29 = !{!16, !11, i64 576}
!30 = !{!16, !11, i64 544}
!31 = !{!16, !11, i64 568}
!32 = !{!16, !11, i64 1976}
!33 = !{!16, !11, i64 1936}
!34 = !{!10, !10, i64 0}
!35 = !{!16, !7, i64 48}
!36 = !{!16, !11, i64 64}
!37 = !{!16, !11, i64 72}
!38 = !{!16, !7, i64 52}
!39 = !{!16, !11, i64 80}
!40 = !{!16, !11, i64 88}
!41 = !{!16, !7, i64 56}
!42 = !{!16, !11, i64 96}
!43 = !{!16, !11, i64 104}
!44 = !{!16, !7, i64 3760}
!45 = !{!16, !10, i64 3768}
!46 = !{!16, !7, i64 1912}
!47 = !{!16, !7, i64 1984}
!48 = !{!16, !7, i64 164}
!49 = !{!16, !7, i64 160}
!50 = !{!16, !7, i64 1992}
!51 = !{!16, !11, i64 2048}
!52 = !{!16, !11, i64 3696}
!53 = !{!16, !11, i64 3704}
!54 = !{!16, !11, i64 6520}
!55 = !{!16, !11, i64 1952}
!56 = !{!16, !11, i64 6528}
!57 = !{!16, !7, i64 3912}
!58 = !{!16, !7, i64 588}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass