; LLVM IR from dartsim/dart :: dart/external/odelcpsolver/lcp.ll (ZN4dart8external3ode13dTestSolveLCPEv)

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

@.str.6 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [31 x i8], align 1

declare void @_ZN4dart8external3ode9_dSetZeroEPdm(ptr noundef, i64 noundef) #0

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

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

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

declare void @_ZN4dart8external3ode6dDebugEiPKcz(i32 noundef, ptr noundef, ...) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4dart8external3ode9dSolveLCPEiPdS2_S2_S2_iS2_S2_Pib(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #3

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) #5

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) #6

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4dart8external3ode13dTestSolveLCPEv() #4 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca double, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca double, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %1) #7
  store i32 100, ptr %1, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #7
  store i32 100, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #7
  store double 1.000000e-09, ptr %4, align 8, !tbaa !9
  %23 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %24 = load i32, ptr %3, align 4, !tbaa !5
  %25 = mul nsw i32 100, %24
  %26 = sext i32 %25 to i64
  %27 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %26, i64 8)
  %28 = extractvalue { i64, i1 } %27, 1
  %29 = extractvalue { i64, i1 } %27, 0
  %30 = select i1 %28, i64 -1, i64 %29
  %31 = call noalias noundef nonnull ptr @_Znam(i64 noundef %30) #8
  store ptr %31, ptr %5, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %32 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %32, ptr %6, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %33 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %33, ptr %7, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %34 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %34, ptr %8, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %35 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %35, ptr %9, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %36 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %36, ptr %10, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %37 = load i32, ptr %3, align 4, !tbaa !5
  %38 = mul nsw i32 100, %37
  %39 = sext i32 %38 to i64
  %40 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %39, i64 8)
  %41 = extractvalue { i64, i1 } %40, 1
  %42 = extractvalue { i64, i1 } %40, 0
  %43 = select i1 %41, i64 -1, i64 %42
  %44 = call noalias noundef nonnull ptr @_Znam(i64 noundef %43) #8
  store ptr %44, ptr %11, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %45 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %45, ptr %12, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %46 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %46, ptr %13, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %47 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %47, ptr %14, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %48 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %48, ptr %15, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %49 = call noalias noundef nonnull ptr @_Znam(i64 noundef 800) #8
  store ptr %49, ptr %16, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  store i32 0, ptr %17, align 4, !tbaa !5
  br label %50

50:                                               ; preds = %307, %0
  %51 = load i32, ptr %17, align 4, !tbaa !5
  %52 = icmp slt i32 %51, 1000
  br i1 %52, label %54, label %53

53:                                               ; preds = %50
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %310

54:                                               ; preds = %50
  %55 = load ptr, ptr %11, align 8, !tbaa !11
  call void @_ZN4dart8external3ode17dMakeRandomMatrixEPdiid(ptr noundef %55, i32 noundef 100, i32 noundef 100, double noundef 1.000000e+00)
  %56 = load ptr, ptr %5, align 8, !tbaa !11
  %57 = load ptr, ptr %11, align 8, !tbaa !11
  %58 = load ptr, ptr %11, align 8, !tbaa !11
  call void @_ZN4dart8external3ode11_dMultiply2EPdPKdS4_iii(ptr noundef %56, ptr noundef %57, ptr noundef %58, i32 noundef 100, i32 noundef 100, i32 noundef 100)
  %59 = load ptr, ptr %6, align 8, !tbaa !11
  call void @_ZN4dart8external3ode17dMakeRandomMatrixEPdiid(ptr noundef %59, i32 noundef 100, i32 noundef 1, double noundef 1.000000e+00)
  %60 = load ptr, ptr %7, align 8, !tbaa !11
  %61 = load ptr, ptr %5, align 8, !tbaa !11
  %62 = load ptr, ptr %6, align 8, !tbaa !11
  call void @_ZN4dart8external3ode11_dMultiply0EPdPKdS4_iii(ptr noundef %60, ptr noundef %61, ptr noundef %62, i32 noundef 100, i32 noundef 100, i32 noundef 1)
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %63

63:                                               ; preds = %75, %54
  %64 = load i32, ptr %2, align 4, !tbaa !5
  %65 = icmp slt i32 %64, 100
  br i1 %65, label %66, label %78

66:                                               ; preds = %63
  %67 = call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %68 = call double @llvm.fmuladd.f64(double %67, double 2.000000e-01, double -1.000000e-01)
  %69 = load ptr, ptr %7, align 8, !tbaa !11
  %70 = load i32, ptr %2, align 4, !tbaa !5
  %71 = sext i32 %70 to i64
  %72 = getelementptr inbounds double, ptr %69, i64 %71
  %73 = load double, ptr %72, align 8, !tbaa !9
  %74 = fadd double %73, %68
  store double %74, ptr %72, align 8, !tbaa !9
  br label %75

75:                                               ; preds = %66
  %76 = load i32, ptr %2, align 4, !tbaa !5
  %77 = add nsw i32 %76, 1
  store i32 %77, ptr %2, align 4, !tbaa !5
  br label %63, !llvm.loop !13

78:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  store i32 50, ptr %18, align 4, !tbaa !5
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %79

79:                                               ; preds = %88, %78
  %80 = load i32, ptr %2, align 4, !tbaa !5
  %81 = load i32, ptr %18, align 4, !tbaa !5
  %82 = icmp slt i32 %80, %81
  br i1 %82, label %83, label %91

83:                                               ; preds = %79
  %84 = load ptr, ptr %9, align 8, !tbaa !11
  %85 = load i32, ptr %2, align 4, !tbaa !5
  %86 = sext i32 %85 to i64
  %87 = getelementptr inbounds double, ptr %84, i64 %86
  store double 0xFFF0000000000000, ptr %87, align 8, !tbaa !9
  br label %88

88:                                               ; preds = %83
  %89 = load i32, ptr %2, align 4, !tbaa !5
  %90 = add nsw i32 %89, 1
  store i32 %90, ptr %2, align 4, !tbaa !5
  br label %79, !llvm.loop !15

91:                                               ; preds = %79
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %92

92:                                               ; preds = %101, %91
  %93 = load i32, ptr %2, align 4, !tbaa !5
  %94 = load i32, ptr %18, align 4, !tbaa !5
  %95 = icmp slt i32 %93, %94
  br i1 %95, label %96, label %104

96:                                               ; preds = %92
  %97 = load ptr, ptr %10, align 8, !tbaa !11
  %98 = load i32, ptr %2, align 4, !tbaa !5
  %99 = sext i32 %98 to i64
  %100 = getelementptr inbounds double, ptr %97, i64 %99
  store double 0x7FF0000000000000, ptr %100, align 8, !tbaa !9
  br label %101

101:                                              ; preds = %96
  %102 = load i32, ptr %2, align 4, !tbaa !5
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr %2, align 4, !tbaa !5
  br label %92, !llvm.loop !16

104:                                              ; preds = %92
  %105 = load i32, ptr %18, align 4, !tbaa !5
  store i32 %105, ptr %2, align 4, !tbaa !5
  br label %106

106:                                              ; preds = %117, %104
  %107 = load i32, ptr %2, align 4, !tbaa !5
  %108 = icmp slt i32 %107, 100
  br i1 %108, label %109, label %120

109:                                              ; preds = %106
  %110 = call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %111 = fneg double %110
  %112 = call double @llvm.fmuladd.f64(double %111, double 1.000000e+00, double -1.000000e-02)
  %113 = load ptr, ptr %9, align 8, !tbaa !11
  %114 = load i32, ptr %2, align 4, !tbaa !5
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds double, ptr %113, i64 %115
  store double %112, ptr %116, align 8, !tbaa !9
  br label %117

117:                                              ; preds = %109
  %118 = load i32, ptr %2, align 4, !tbaa !5
  %119 = add nsw i32 %118, 1
  store i32 %119, ptr %2, align 4, !tbaa !5
  br label %106, !llvm.loop !17

120:                                              ; preds = %106
  %121 = load i32, ptr %18, align 4, !tbaa !5
  store i32 %121, ptr %2, align 4, !tbaa !5
  br label %122

122:                                              ; preds = %132, %120
  %123 = load i32, ptr %2, align 4, !tbaa !5
  %124 = icmp slt i32 %123, 100
  br i1 %124, label %125, label %135

125:                                              ; preds = %122
  %126 = call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %127 = call double @llvm.fmuladd.f64(double %126, double 1.000000e+00, double 1.000000e-02)
  %128 = load ptr, ptr %10, align 8, !tbaa !11
  %129 = load i32, ptr %2, align 4, !tbaa !5
  %130 = sext i32 %129 to i64
  %131 = getelementptr inbounds double, ptr %128, i64 %130
  store double %127, ptr %131, align 8, !tbaa !9
  br label %132

132:                                              ; preds = %125
  %133 = load i32, ptr %2, align 4, !tbaa !5
  %134 = add nsw i32 %133, 1
  store i32 %134, ptr %2, align 4, !tbaa !5
  br label %122, !llvm.loop !18

135:                                              ; preds = %122
  %136 = load ptr, ptr %11, align 8, !tbaa !11
  %137 = load ptr, ptr %5, align 8, !tbaa !11
  %138 = load i32, ptr %3, align 4, !tbaa !5
  %139 = mul nsw i32 100, %138
  %140 = sext i32 %139 to i64
  %141 = mul i64 %140, 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %136, ptr align 8 %137, i64 %141, i1 false)
  %142 = load ptr, ptr %11, align 8, !tbaa !11
  call void @_ZN4dart8external3ode19dClearUpperTriangleEPdi(ptr noundef %142, i32 noundef 100)
  %143 = load ptr, ptr %12, align 8, !tbaa !11
  %144 = load ptr, ptr %7, align 8, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %143, ptr align 8 %144, i64 800, i1 false)
  %145 = load ptr, ptr %13, align 8, !tbaa !11
  %146 = load ptr, ptr %9, align 8, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %145, ptr align 8 %146, i64 800, i1 false)
  %147 = load ptr, ptr %14, align 8, !tbaa !11
  %148 = load ptr, ptr %10, align 8, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %147, ptr align 8 %148, i64 800, i1 false)
  %149 = load ptr, ptr %6, align 8, !tbaa !11
  call void @_ZN4dart8external3ode9_dSetZeroEPdm(ptr noundef %149, i64 noundef 100)
  %150 = load ptr, ptr %8, align 8, !tbaa !11
  call void @_ZN4dart8external3ode9_dSetZeroEPdm(ptr noundef %150, i64 noundef 100)
  %151 = load ptr, ptr %11, align 8, !tbaa !11
  %152 = load ptr, ptr %6, align 8, !tbaa !11
  %153 = load ptr, ptr %12, align 8, !tbaa !11
  %154 = load ptr, ptr %8, align 8, !tbaa !11
  %155 = load i32, ptr %18, align 4, !tbaa !5
  %156 = load ptr, ptr %13, align 8, !tbaa !11
  %157 = load ptr, ptr %14, align 8, !tbaa !11
  %158 = call noundef zeroext i1 @_ZN4dart8external3ode9dSolveLCPEiPdS2_S2_S2_iS2_S2_Pib(i32 noundef 100, ptr noundef %151, ptr noundef %152, ptr noundef %153, ptr noundef %154, i32 noundef %155, ptr noundef %156, ptr noundef %157, ptr noundef null, i1 noundef zeroext false)
  %159 = load ptr, ptr %15, align 8, !tbaa !11
  %160 = load ptr, ptr %5, align 8, !tbaa !11
  %161 = load ptr, ptr %6, align 8, !tbaa !11
  call void @_ZN4dart8external3ode11_dMultiply0EPdPKdS4_iii(ptr noundef %159, ptr noundef %160, ptr noundef %161, i32 noundef 100, i32 noundef 100, i32 noundef 1)
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %162

162:                                              ; preds = %181, %135
  %163 = load i32, ptr %2, align 4, !tbaa !5
  %164 = icmp slt i32 %163, 100
  br i1 %164, label %165, label %184

165:                                              ; preds = %162
  %166 = load ptr, ptr %7, align 8, !tbaa !11
  %167 = load i32, ptr %2, align 4, !tbaa !5
  %168 = sext i32 %167 to i64
  %169 = getelementptr inbounds double, ptr %166, i64 %168
  %170 = load double, ptr %169, align 8, !tbaa !9
  %171 = load ptr, ptr %8, align 8, !tbaa !11
  %172 = load i32, ptr %2, align 4, !tbaa !5
  %173 = sext i32 %172 to i64
  %174 = getelementptr inbounds double, ptr %171, i64 %173
  %175 = load double, ptr %174, align 8, !tbaa !9
  %176 = fadd double %170, %175
  %177 = load ptr, ptr %16, align 8, !tbaa !11
  %178 = load i32, ptr %2, align 4, !tbaa !5
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds double, ptr %177, i64 %179
  store double %176, ptr %180, align 8, !tbaa !9
  br label %181

181:                                              ; preds = %165
  %182 = load i32, ptr %2, align 4, !tbaa !5
  %183 = add nsw i32 %182, 1
  store i32 %183, ptr %2, align 4, !tbaa !5
  br label %162, !llvm.loop !19

184:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %185 = load ptr, ptr %15, align 8, !tbaa !11
  %186 = load ptr, ptr %16, align 8, !tbaa !11
  %187 = call noundef double @_ZN4dart8external3ode14dMaxDifferenceEPKdS3_ii(ptr noundef %185, ptr noundef %186, i32 noundef 100, i32 noundef 1)
  store double %187, ptr %19, align 8, !tbaa !9
  %188 = load double, ptr %19, align 8, !tbaa !9
  %189 = fcmp ogt double %188, 1.000000e-09
  br i1 %189, label %190, label %192

190:                                              ; preds = %184
  %191 = load double, ptr %19, align 8, !tbaa !9
  call void (i32, ptr, ...) @_ZN4dart8external3ode6dDebugEiPKcz(i32 noundef 0, ptr noundef @.str.7, double noundef %191)
  br label %192

192:                                              ; preds = %190, %184
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  store i32 0, ptr %20, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  store i32 0, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  store i32 0, ptr %22, align 4, !tbaa !5
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %193

193:                                              ; preds = %299, %192
  %194 = load i32, ptr %2, align 4, !tbaa !5
  %195 = icmp slt i32 %194, 100
  br i1 %195, label %196, label %302

196:                                              ; preds = %193
  %197 = load ptr, ptr %6, align 8, !tbaa !11
  %198 = load i32, ptr %2, align 4, !tbaa !5
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds double, ptr %197, i64 %199
  %201 = load double, ptr %200, align 8, !tbaa !9
  %202 = load ptr, ptr %9, align 8, !tbaa !11
  %203 = load i32, ptr %2, align 4, !tbaa !5
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds double, ptr %202, i64 %204
  %206 = load double, ptr %205, align 8, !tbaa !9
  %207 = fcmp oeq double %201, %206
  br i1 %207, label %208, label %218

208:                                              ; preds = %196
  %209 = load ptr, ptr %8, align 8, !tbaa !11
  %210 = load i32, ptr %2, align 4, !tbaa !5
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds double, ptr %209, i64 %211
  %213 = load double, ptr %212, align 8, !tbaa !9
  %214 = fcmp oge double %213, 0.000000e+00
  br i1 %214, label %215, label %218

215:                                              ; preds = %208
  %216 = load i32, ptr %20, align 4, !tbaa !5
  %217 = add nsw i32 %216, 1
  store i32 %217, ptr %20, align 4, !tbaa !5
  br label %298

218:                                              ; preds = %208, %196
  %219 = load ptr, ptr %6, align 8, !tbaa !11
  %220 = load i32, ptr %2, align 4, !tbaa !5
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds double, ptr %219, i64 %221
  %223 = load double, ptr %222, align 8, !tbaa !9
  %224 = load ptr, ptr %10, align 8, !tbaa !11
  %225 = load i32, ptr %2, align 4, !tbaa !5
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds double, ptr %224, i64 %226
  %228 = load double, ptr %227, align 8, !tbaa !9
  %229 = fcmp oeq double %223, %228
  br i1 %229, label %230, label %240

230:                                              ; preds = %218
  %231 = load ptr, ptr %8, align 8, !tbaa !11
  %232 = load i32, ptr %2, align 4, !tbaa !5
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds double, ptr %231, i64 %233
  %235 = load double, ptr %234, align 8, !tbaa !9
  %236 = fcmp ole double %235, 0.000000e+00
  br i1 %236, label %237, label %240

237:                                              ; preds = %230
  %238 = load i32, ptr %21, align 4, !tbaa !5
  %239 = add nsw i32 %238, 1
  store i32 %239, ptr %21, align 4, !tbaa !5
  br label %297

240:                                              ; preds = %230, %218
  %241 = load ptr, ptr %6, align 8, !tbaa !11
  %242 = load i32, ptr %2, align 4, !tbaa !5
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds double, ptr %241, i64 %243
  %245 = load double, ptr %244, align 8, !tbaa !9
  %246 = load ptr, ptr %9, align 8, !tbaa !11
  %247 = load i32, ptr %2, align 4, !tbaa !5
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds double, ptr %246, i64 %248
  %250 = load double, ptr %249, align 8, !tbaa !9
  %251 = fcmp oge double %245, %250
  br i1 %251, label %252, label %274

252:                                              ; preds = %240
  %253 = load ptr, ptr %6, align 8, !tbaa !11
  %254 = load i32, ptr %2, align 4, !tbaa !5
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds double, ptr %253, i64 %255
  %257 = load double, ptr %256, align 8, !tbaa !9
  %258 = load ptr, ptr %10, align 8, !tbaa !11
  %259 = load i32, ptr %2, align 4, !tbaa !5
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds double, ptr %258, i64 %260
  %262 = load double, ptr %261, align 8, !tbaa !9
  %263 = fcmp ole double %257, %262
  br i1 %263, label %264, label %274

264:                                              ; preds = %252
  %265 = load ptr, ptr %8, align 8, !tbaa !11
  %266 = load i32, ptr %2, align 4, !tbaa !5
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds double, ptr %265, i64 %267
  %269 = load double, ptr %268, align 8, !tbaa !9
  %270 = fcmp oeq double %269, 0.000000e+00
  br i1 %270, label %271, label %274

271:                                              ; preds = %264
  %272 = load i32, ptr %22, align 4, !tbaa !5
  %273 = add nsw i32 %272, 1
  store i32 %273, ptr %22, align 4, !tbaa !5
  br label %296

274:                                              ; preds = %264, %252, %240
  %275 = load i32, ptr %2, align 4, !tbaa !5
  %276 = load ptr, ptr %6, align 8, !tbaa !11
  %277 = load i32, ptr %2, align 4, !tbaa !5
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds double, ptr %276, i64 %278
  %280 = load double, ptr %279, align 8, !tbaa !9
  %281 = load ptr, ptr %8, align 8, !tbaa !11
  %282 = load i32, ptr %2, align 4, !tbaa !5
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds double, ptr %281, i64 %283
  %285 = load double, ptr %284, align 8, !tbaa !9
  %286 = load ptr, ptr %9, align 8, !tbaa !11
  %287 = load i32, ptr %2, align 4, !tbaa !5
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds double, ptr %286, i64 %288
  %290 = load double, ptr %289, align 8, !tbaa !9
  %291 = load ptr, ptr %10, align 8, !tbaa !11
  %292 = load i32, ptr %2, align 4, !tbaa !5
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds double, ptr %291, i64 %293
  %295 = load double, ptr %294, align 8, !tbaa !9
  call void (i32, ptr, ...) @_ZN4dart8external3ode6dDebugEiPKcz(i32 noundef 0, ptr noundef @.str.8, i32 noundef %275, double noundef %280, double noundef %285, double noundef %290, double noundef %295)
  br label %296

296:                                              ; preds = %274, %271
  br label %297

297:                                              ; preds = %296, %237
  br label %298

298:                                              ; preds = %297, %215
  br label %299

299:                                              ; preds = %298
  %300 = load i32, ptr %2, align 4, !tbaa !5
  %301 = add nsw i32 %300, 1
  store i32 %301, ptr %2, align 4, !tbaa !5
  br label %193, !llvm.loop !20

302:                                              ; preds = %193
  %303 = load i32, ptr %20, align 4, !tbaa !5
  %304 = load i32, ptr %21, align 4, !tbaa !5
  %305 = load i32, ptr %22, align 4, !tbaa !5
  %306 = call i32 (ptr, ...) @printf(ptr noundef @.str.9, i32 noundef %303, i32 noundef %304, i32 noundef %305)
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %307

307:                                              ; preds = %302
  %308 = load i32, ptr %17, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr %17, align 4, !tbaa !5
  br label %50, !llvm.loop !21

310:                                              ; preds = %53
  %311 = load ptr, ptr %5, align 8, !tbaa !11
  %312 = icmp eq ptr %311, null
  br i1 %312, label %314, label %313

313:                                              ; preds = %310
  call void @_ZdaPv(ptr noundef %311) #9
  br label %314

314:                                              ; preds = %313, %310
  %315 = load ptr, ptr %6, align 8, !tbaa !11
  %316 = icmp eq ptr %315, null
  br i1 %316, label %318, label %317

317:                                              ; preds = %314
  call void @_ZdaPv(ptr noundef %315) #9
  br label %318

318:                                              ; preds = %317, %314
  %319 = load ptr, ptr %7, align 8, !tbaa !11
  %320 = icmp eq ptr %319, null
  br i1 %320, label %322, label %321

321:                                              ; preds = %318
  call void @_ZdaPv(ptr noundef %319) #9
  br label %322

322:                                              ; preds = %321, %318
  %323 = load ptr, ptr %8, align 8, !tbaa !11
  %324 = icmp eq ptr %323, null
  br i1 %324, label %326, label %325

325:                                              ; preds = %322
  call void @_ZdaPv(ptr noundef %323) #9
  br label %326

326:                                              ; preds = %325, %322
  %327 = load ptr, ptr %9, align 8, !tbaa !11
  %328 = icmp eq ptr %327, null
  br i1 %328, label %330, label %329

329:                                              ; preds = %326
  call void @_ZdaPv(ptr noundef %327) #9
  br label %330

330:                                              ; preds = %329, %326
  %331 = load ptr, ptr %10, align 8, !tbaa !11
  %332 = icmp eq ptr %331, null
  br i1 %332, label %334, label %333

333:                                              ; preds = %330
  call void @_ZdaPv(ptr noundef %331) #9
  br label %334

334:                                              ; preds = %333, %330
  %335 = load ptr, ptr %11, align 8, !tbaa !11
  %336 = icmp eq ptr %335, null
  br i1 %336, label %338, label %337

337:                                              ; preds = %334
  call void @_ZdaPv(ptr noundef %335) #9
  br label %338

338:                                              ; preds = %337, %334
  %339 = load ptr, ptr %12, align 8, !tbaa !11
  %340 = icmp eq ptr %339, null
  br i1 %340, label %342, label %341

341:                                              ; preds = %338
  call void @_ZdaPv(ptr noundef %339) #9
  br label %342

342:                                              ; preds = %341, %338
  %343 = load ptr, ptr %13, align 8, !tbaa !11
  %344 = icmp eq ptr %343, null
  br i1 %344, label %346, label %345

345:                                              ; preds = %342
  call void @_ZdaPv(ptr noundef %343) #9
  br label %346

346:                                              ; preds = %345, %342
  %347 = load ptr, ptr %14, align 8, !tbaa !11
  %348 = icmp eq ptr %347, null
  br i1 %348, label %350, label %349

349:                                              ; preds = %346
  call void @_ZdaPv(ptr noundef %347) #9
  br label %350

350:                                              ; preds = %349, %346
  %351 = load ptr, ptr %15, align 8, !tbaa !11
  %352 = icmp eq ptr %351, null
  br i1 %352, label %354, label %353

353:                                              ; preds = %350
  call void @_ZdaPv(ptr noundef %351) #9
  br label %354

354:                                              ; preds = %353, %350
  %355 = load ptr, ptr %16, align 8, !tbaa !11
  %356 = icmp eq ptr %355, null
  br i1 %356, label %358, label %357

357:                                              ; preds = %354
  call void @_ZdaPv(ptr noundef %355) #9
  br label %358

358:                                              ; preds = %357, %354
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %1) #7
  ret i32 1
}

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

declare void @_ZN4dart8external3ode17dMakeRandomMatrixEPdiid(ptr noundef, i32 noundef, i32 noundef, double noundef) #0

declare void @_ZN4dart8external3ode11_dMultiply2EPdPKdS4_iii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #0

declare void @_ZN4dart8external3ode11_dMultiply0EPdPKdS4_iii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #0

declare noundef double @_ZN4dart8external3ode9dRandRealEv() #0

declare void @_ZN4dart8external3ode19dClearUpperTriangleEPdi(ptr noundef, i32 noundef) #0

declare noundef double @_ZN4dart8external3ode14dMaxDifferenceEPKdS3_ii(ptr noundef, ptr noundef, i32 noundef, i32 noundef) #0

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { mustprogress 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 #5 = { nobuiltin 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 = { nobuiltin 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 #7 = { nounwind }
attributes #8 = { builtin allocsize(0) }
attributes #9 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}


; 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.6 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [31 x i8], align 1

declare void @_ZN4dart8external3ode9_dSetZeroEPdm(ptr noundef, i64 noundef) local_unnamed_addr #0

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

declare void @_ZN4dart8external3ode6dDebugEiPKcz(i32 noundef, ptr noundef, ...) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4dart8external3ode9dSolveLCPEiPdS2_S2_S2_iS2_S2_Pib(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #3

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) local_unnamed_addr #4

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4dart8external3ode13dTestSolveLCPEv() local_unnamed_addr #3 {
  %1 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.6)
  %2 = tail call noalias noundef nonnull dereferenceable(80000) ptr @_Znam(i64 noundef 80000) #7
  %3 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %4 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %5 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %6 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %7 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %8 = tail call noalias noundef nonnull dereferenceable(80000) ptr @_Znam(i64 noundef 80000) #7
  %9 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %10 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %11 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %12 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %13 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znam(i64 noundef 800) #7
  %14 = getelementptr inbounds i8, ptr %6, i64 16
  %15 = getelementptr inbounds i8, ptr %6, i64 32
  %16 = getelementptr inbounds i8, ptr %6, i64 48
  %17 = getelementptr inbounds i8, ptr %6, i64 64
  %18 = getelementptr inbounds i8, ptr %6, i64 80
  %19 = getelementptr inbounds i8, ptr %6, i64 96
  %20 = getelementptr inbounds i8, ptr %6, i64 112
  %21 = getelementptr inbounds i8, ptr %6, i64 128
  %22 = getelementptr inbounds i8, ptr %6, i64 144
  %23 = getelementptr inbounds i8, ptr %6, i64 160
  %24 = getelementptr inbounds i8, ptr %6, i64 176
  %25 = getelementptr inbounds i8, ptr %6, i64 192
  %26 = getelementptr inbounds i8, ptr %6, i64 208
  %27 = getelementptr inbounds i8, ptr %6, i64 224
  %28 = getelementptr inbounds i8, ptr %6, i64 240
  %29 = getelementptr inbounds i8, ptr %6, i64 256
  %30 = getelementptr inbounds i8, ptr %6, i64 272
  %31 = getelementptr inbounds i8, ptr %6, i64 288
  %32 = getelementptr inbounds i8, ptr %6, i64 304
  %33 = getelementptr inbounds i8, ptr %6, i64 320
  %34 = getelementptr inbounds i8, ptr %6, i64 336
  %35 = getelementptr inbounds i8, ptr %6, i64 352
  %36 = getelementptr inbounds i8, ptr %6, i64 368
  %37 = getelementptr inbounds i8, ptr %6, i64 384
  %38 = getelementptr inbounds i8, ptr %7, i64 16
  %39 = getelementptr inbounds i8, ptr %7, i64 32
  %40 = getelementptr inbounds i8, ptr %7, i64 48
  %41 = getelementptr inbounds i8, ptr %7, i64 64
  %42 = getelementptr inbounds i8, ptr %7, i64 80
  %43 = getelementptr inbounds i8, ptr %7, i64 96
  %44 = getelementptr inbounds i8, ptr %7, i64 112
  %45 = getelementptr inbounds i8, ptr %7, i64 128
  %46 = getelementptr inbounds i8, ptr %7, i64 144
  %47 = getelementptr inbounds i8, ptr %7, i64 160
  %48 = getelementptr inbounds i8, ptr %7, i64 176
  %49 = getelementptr inbounds i8, ptr %7, i64 192
  %50 = getelementptr inbounds i8, ptr %7, i64 208
  %51 = getelementptr inbounds i8, ptr %7, i64 224
  %52 = getelementptr inbounds i8, ptr %7, i64 240
  %53 = getelementptr inbounds i8, ptr %7, i64 256
  %54 = getelementptr inbounds i8, ptr %7, i64 272
  %55 = getelementptr inbounds i8, ptr %7, i64 288
  %56 = getelementptr inbounds i8, ptr %7, i64 304
  %57 = getelementptr inbounds i8, ptr %7, i64 320
  %58 = getelementptr inbounds i8, ptr %7, i64 336
  %59 = getelementptr inbounds i8, ptr %7, i64 352
  %60 = getelementptr inbounds i8, ptr %7, i64 368
  %61 = getelementptr inbounds i8, ptr %7, i64 384
  %62 = getelementptr inbounds i8, ptr %6, i64 400
  %63 = getelementptr inbounds i8, ptr %6, i64 408
  %64 = getelementptr inbounds i8, ptr %6, i64 416
  %65 = getelementptr inbounds i8, ptr %6, i64 424
  %66 = getelementptr inbounds i8, ptr %6, i64 432
  %67 = getelementptr inbounds i8, ptr %6, i64 440
  %68 = getelementptr inbounds i8, ptr %6, i64 448
  %69 = getelementptr inbounds i8, ptr %6, i64 456
  %70 = getelementptr inbounds i8, ptr %6, i64 464
  %71 = getelementptr inbounds i8, ptr %6, i64 472
  %72 = getelementptr inbounds i8, ptr %6, i64 480
  %73 = getelementptr inbounds i8, ptr %6, i64 488
  %74 = getelementptr inbounds i8, ptr %6, i64 496
  %75 = getelementptr inbounds i8, ptr %6, i64 504
  %76 = getelementptr inbounds i8, ptr %6, i64 512
  %77 = getelementptr inbounds i8, ptr %6, i64 520
  %78 = getelementptr inbounds i8, ptr %6, i64 528
  %79 = getelementptr inbounds i8, ptr %6, i64 536
  %80 = getelementptr inbounds i8, ptr %6, i64 544
  %81 = getelementptr inbounds i8, ptr %6, i64 552
  %82 = getelementptr inbounds i8, ptr %6, i64 560
  %83 = getelementptr inbounds i8, ptr %6, i64 568
  %84 = getelementptr inbounds i8, ptr %6, i64 576
  %85 = getelementptr inbounds i8, ptr %6, i64 584
  %86 = getelementptr inbounds i8, ptr %6, i64 592
  %87 = getelementptr inbounds i8, ptr %6, i64 600
  %88 = getelementptr inbounds i8, ptr %6, i64 608
  %89 = getelementptr inbounds i8, ptr %6, i64 616
  %90 = getelementptr inbounds i8, ptr %6, i64 624
  %91 = getelementptr inbounds i8, ptr %6, i64 632
  %92 = getelementptr inbounds i8, ptr %6, i64 640
  %93 = getelementptr inbounds i8, ptr %6, i64 648
  %94 = getelementptr inbounds i8, ptr %6, i64 656
  %95 = getelementptr inbounds i8, ptr %6, i64 664
  %96 = getelementptr inbounds i8, ptr %6, i64 672
  %97 = getelementptr inbounds i8, ptr %6, i64 680
  %98 = getelementptr inbounds i8, ptr %6, i64 688
  %99 = getelementptr inbounds i8, ptr %6, i64 696
  %100 = getelementptr inbounds i8, ptr %6, i64 704
  %101 = getelementptr inbounds i8, ptr %6, i64 712
  %102 = getelementptr inbounds i8, ptr %6, i64 720
  %103 = getelementptr inbounds i8, ptr %6, i64 728
  %104 = getelementptr inbounds i8, ptr %6, i64 736
  %105 = getelementptr inbounds i8, ptr %6, i64 744
  %106 = getelementptr inbounds i8, ptr %6, i64 752
  %107 = getelementptr inbounds i8, ptr %6, i64 760
  %108 = getelementptr inbounds i8, ptr %6, i64 768
  %109 = getelementptr inbounds i8, ptr %6, i64 776
  %110 = getelementptr inbounds i8, ptr %6, i64 784
  %111 = getelementptr inbounds i8, ptr %6, i64 792
  %112 = getelementptr inbounds i8, ptr %7, i64 400
  %113 = getelementptr inbounds i8, ptr %7, i64 408
  %114 = getelementptr inbounds i8, ptr %7, i64 416
  %115 = getelementptr inbounds i8, ptr %7, i64 424
  %116 = getelementptr inbounds i8, ptr %7, i64 432
  %117 = getelementptr inbounds i8, ptr %7, i64 440
  %118 = getelementptr inbounds i8, ptr %7, i64 448
  %119 = getelementptr inbounds i8, ptr %7, i64 456
  %120 = getelementptr inbounds i8, ptr %7, i64 464
  %121 = getelementptr inbounds i8, ptr %7, i64 472
  %122 = getelementptr inbounds i8, ptr %7, i64 480
  %123 = getelementptr inbounds i8, ptr %7, i64 488
  %124 = getelementptr inbounds i8, ptr %7, i64 496
  %125 = getelementptr inbounds i8, ptr %7, i64 504
  %126 = getelementptr inbounds i8, ptr %7, i64 512
  %127 = getelementptr inbounds i8, ptr %7, i64 520
  %128 = getelementptr inbounds i8, ptr %7, i64 528
  %129 = getelementptr inbounds i8, ptr %7, i64 536
  %130 = getelementptr inbounds i8, ptr %7, i64 544
  %131 = getelementptr inbounds i8, ptr %7, i64 552
  %132 = getelementptr inbounds i8, ptr %7, i64 560
  %133 = getelementptr inbounds i8, ptr %7, i64 568
  %134 = getelementptr inbounds i8, ptr %7, i64 576
  %135 = getelementptr inbounds i8, ptr %7, i64 584
  %136 = getelementptr inbounds i8, ptr %7, i64 592
  %137 = getelementptr inbounds i8, ptr %7, i64 600
  %138 = getelementptr inbounds i8, ptr %7, i64 608
  %139 = getelementptr inbounds i8, ptr %7, i64 616
  %140 = getelementptr inbounds i8, ptr %7, i64 624
  %141 = getelementptr inbounds i8, ptr %7, i64 632
  %142 = getelementptr inbounds i8, ptr %7, i64 640
  %143 = getelementptr inbounds i8, ptr %7, i64 648
  %144 = getelementptr inbounds i8, ptr %7, i64 656
  %145 = getelementptr inbounds i8, ptr %7, i64 664
  %146 = getelementptr inbounds i8, ptr %7, i64 672
  %147 = getelementptr inbounds i8, ptr %7, i64 680
  %148 = getelementptr inbounds i8, ptr %7, i64 688
  %149 = getelementptr inbounds i8, ptr %7, i64 696
  %150 = getelementptr inbounds i8, ptr %7, i64 704
  %151 = getelementptr inbounds i8, ptr %7, i64 712
  %152 = getelementptr inbounds i8, ptr %7, i64 720
  %153 = getelementptr inbounds i8, ptr %7, i64 728
  %154 = getelementptr inbounds i8, ptr %7, i64 736
  %155 = getelementptr inbounds i8, ptr %7, i64 744
  %156 = getelementptr inbounds i8, ptr %7, i64 752
  %157 = getelementptr inbounds i8, ptr %7, i64 760
  %158 = getelementptr inbounds i8, ptr %7, i64 768
  %159 = getelementptr inbounds i8, ptr %7, i64 776
  %160 = getelementptr inbounds i8, ptr %7, i64 784
  %161 = getelementptr inbounds i8, ptr %7, i64 792
  %162 = getelementptr inbounds i8, ptr %4, i64 16
  %163 = getelementptr inbounds i8, ptr %5, i64 16
  %164 = getelementptr inbounds i8, ptr %13, i64 16
  %165 = getelementptr inbounds i8, ptr %4, i64 32
  %166 = getelementptr inbounds i8, ptr %4, i64 48
  %167 = getelementptr inbounds i8, ptr %5, i64 32
  %168 = getelementptr inbounds i8, ptr %5, i64 48
  %169 = getelementptr inbounds i8, ptr %13, i64 32
  %170 = getelementptr inbounds i8, ptr %13, i64 48
  %171 = getelementptr inbounds i8, ptr %4, i64 64
  %172 = getelementptr inbounds i8, ptr %4, i64 80
  %173 = getelementptr inbounds i8, ptr %5, i64 64
  %174 = getelementptr inbounds i8, ptr %5, i64 80
  %175 = getelementptr inbounds i8, ptr %13, i64 64
  %176 = getelementptr inbounds i8, ptr %13, i64 80
  %177 = getelementptr inbounds i8, ptr %4, i64 96
  %178 = getelementptr inbounds i8, ptr %4, i64 112
  %179 = getelementptr inbounds i8, ptr %5, i64 96
  %180 = getelementptr inbounds i8, ptr %5, i64 112
  %181 = getelementptr inbounds i8, ptr %13, i64 96
  %182 = getelementptr inbounds i8, ptr %13, i64 112
  %183 = getelementptr inbounds i8, ptr %4, i64 128
  %184 = getelementptr inbounds i8, ptr %4, i64 144
  %185 = getelementptr inbounds i8, ptr %5, i64 128
  %186 = getelementptr inbounds i8, ptr %5, i64 144
  %187 = getelementptr inbounds i8, ptr %13, i64 128
  %188 = getelementptr inbounds i8, ptr %13, i64 144
  %189 = getelementptr inbounds i8, ptr %4, i64 160
  %190 = getelementptr inbounds i8, ptr %4, i64 176
  %191 = getelementptr inbounds i8, ptr %5, i64 160
  %192 = getelementptr inbounds i8, ptr %5, i64 176
  %193 = getelementptr inbounds i8, ptr %13, i64 160
  %194 = getelementptr inbounds i8, ptr %13, i64 176
  %195 = getelementptr inbounds i8, ptr %4, i64 192
  %196 = getelementptr inbounds i8, ptr %4, i64 208
  %197 = getelementptr inbounds i8, ptr %5, i64 192
  %198 = getelementptr inbounds i8, ptr %5, i64 208
  %199 = getelementptr inbounds i8, ptr %13, i64 192
  %200 = getelementptr inbounds i8, ptr %13, i64 208
  %201 = getelementptr inbounds i8, ptr %4, i64 224
  %202 = getelementptr inbounds i8, ptr %4, i64 240
  %203 = getelementptr inbounds i8, ptr %5, i64 224
  %204 = getelementptr inbounds i8, ptr %5, i64 240
  %205 = getelementptr inbounds i8, ptr %13, i64 224
  %206 = getelementptr inbounds i8, ptr %13, i64 240
  %207 = getelementptr inbounds i8, ptr %4, i64 256
  %208 = getelementptr inbounds i8, ptr %4, i64 272
  %209 = getelementptr inbounds i8, ptr %5, i64 256
  %210 = getelementptr inbounds i8, ptr %5, i64 272
  %211 = getelementptr inbounds i8, ptr %13, i64 256
  %212 = getelementptr inbounds i8, ptr %13, i64 272
  %213 = getelementptr inbounds i8, ptr %4, i64 288
  %214 = getelementptr inbounds i8, ptr %4, i64 304
  %215 = getelementptr inbounds i8, ptr %5, i64 288
  %216 = getelementptr inbounds i8, ptr %5, i64 304
  %217 = getelementptr inbounds i8, ptr %13, i64 288
  %218 = getelementptr inbounds i8, ptr %13, i64 304
  %219 = getelementptr inbounds i8, ptr %4, i64 320
  %220 = getelementptr inbounds i8, ptr %4, i64 336
  %221 = getelementptr inbounds i8, ptr %5, i64 320
  %222 = getelementptr inbounds i8, ptr %5, i64 336
  %223 = getelementptr inbounds i8, ptr %13, i64 320
  %224 = getelementptr inbounds i8, ptr %13, i64 336
  %225 = getelementptr inbounds i8, ptr %4, i64 352
  %226 = getelementptr inbounds i8, ptr %4, i64 368
  %227 = getelementptr inbounds i8, ptr %5, i64 352
  %228 = getelementptr inbounds i8, ptr %5, i64 368
  %229 = getelementptr inbounds i8, ptr %13, i64 352
  %230 = getelementptr inbounds i8, ptr %13, i64 368
  %231 = getelementptr inbounds i8, ptr %4, i64 384
  %232 = getelementptr inbounds i8, ptr %4, i64 400
  %233 = getelementptr inbounds i8, ptr %5, i64 384
  %234 = getelementptr inbounds i8, ptr %5, i64 400
  %235 = getelementptr inbounds i8, ptr %13, i64 384
  %236 = getelementptr inbounds i8, ptr %13, i64 400
  %237 = getelementptr inbounds i8, ptr %4, i64 416
  %238 = getelementptr inbounds i8, ptr %4, i64 432
  %239 = getelementptr inbounds i8, ptr %5, i64 416
  %240 = getelementptr inbounds i8, ptr %5, i64 432
  %241 = getelementptr inbounds i8, ptr %13, i64 416
  %242 = getelementptr inbounds i8, ptr %13, i64 432
  %243 = getelementptr inbounds i8, ptr %4, i64 448
  %244 = getelementptr inbounds i8, ptr %4, i64 464
  %245 = getelementptr inbounds i8, ptr %5, i64 448
  %246 = getelementptr inbounds i8, ptr %5, i64 464
  %247 = getelementptr inbounds i8, ptr %13, i64 448
  %248 = getelementptr inbounds i8, ptr %13, i64 464
  %249 = getelementptr inbounds i8, ptr %4, i64 480
  %250 = getelementptr inbounds i8, ptr %4, i64 496
  %251 = getelementptr inbounds i8, ptr %5, i64 480
  %252 = getelementptr inbounds i8, ptr %5, i64 496
  %253 = getelementptr inbounds i8, ptr %13, i64 480
  %254 = getelementptr inbounds i8, ptr %13, i64 496
  %255 = getelementptr inbounds i8, ptr %4, i64 512
  %256 = getelementptr inbounds i8, ptr %4, i64 528
  %257 = getelementptr inbounds i8, ptr %5, i64 512
  %258 = getelementptr inbounds i8, ptr %5, i64 528
  %259 = getelementptr inbounds i8, ptr %13, i64 512
  %260 = getelementptr inbounds i8, ptr %13, i64 528
  %261 = getelementptr inbounds i8, ptr %4, i64 544
  %262 = getelementptr inbounds i8, ptr %4, i64 560
  %263 = getelementptr inbounds i8, ptr %5, i64 544
  %264 = getelementptr inbounds i8, ptr %5, i64 560
  %265 = getelementptr inbounds i8, ptr %13, i64 544
  %266 = getelementptr inbounds i8, ptr %13, i64 560
  %267 = getelementptr inbounds i8, ptr %4, i64 576
  %268 = getelementptr inbounds i8, ptr %4, i64 592
  %269 = getelementptr inbounds i8, ptr %5, i64 576
  %270 = getelementptr inbounds i8, ptr %5, i64 592
  %271 = getelementptr inbounds i8, ptr %13, i64 576
  %272 = getelementptr inbounds i8, ptr %13, i64 592
  %273 = getelementptr inbounds i8, ptr %4, i64 608
  %274 = getelementptr inbounds i8, ptr %4, i64 624
  %275 = getelementptr inbounds i8, ptr %5, i64 608
  %276 = getelementptr inbounds i8, ptr %5, i64 624
  %277 = getelementptr inbounds i8, ptr %13, i64 608
  %278 = getelementptr inbounds i8, ptr %13, i64 624
  %279 = getelementptr inbounds i8, ptr %4, i64 640
  %280 = getelementptr inbounds i8, ptr %4, i64 656
  %281 = getelementptr inbounds i8, ptr %5, i64 640
  %282 = getelementptr inbounds i8, ptr %5, i64 656
  %283 = getelementptr inbounds i8, ptr %13, i64 640
  %284 = getelementptr inbounds i8, ptr %13, i64 656
  %285 = getelementptr inbounds i8, ptr %4, i64 672
  %286 = getelementptr inbounds i8, ptr %4, i64 688
  %287 = getelementptr inbounds i8, ptr %5, i64 672
  %288 = getelementptr inbounds i8, ptr %5, i64 688
  %289 = getelementptr inbounds i8, ptr %13, i64 672
  %290 = getelementptr inbounds i8, ptr %13, i64 688
  %291 = getelementptr inbounds i8, ptr %4, i64 704
  %292 = getelementptr inbounds i8, ptr %4, i64 720
  %293 = getelementptr inbounds i8, ptr %5, i64 704
  %294 = getelementptr inbounds i8, ptr %5, i64 720
  %295 = getelementptr inbounds i8, ptr %13, i64 704
  %296 = getelementptr inbounds i8, ptr %13, i64 720
  %297 = getelementptr inbounds i8, ptr %4, i64 736
  %298 = getelementptr inbounds i8, ptr %4, i64 752
  %299 = getelementptr inbounds i8, ptr %5, i64 736
  %300 = getelementptr inbounds i8, ptr %5, i64 752
  %301 = getelementptr inbounds i8, ptr %13, i64 736
  %302 = getelementptr inbounds i8, ptr %13, i64 752
  %303 = getelementptr inbounds i8, ptr %4, i64 768
  %304 = getelementptr inbounds i8, ptr %4, i64 784
  %305 = getelementptr inbounds i8, ptr %5, i64 768
  %306 = getelementptr inbounds i8, ptr %5, i64 784
  %307 = getelementptr inbounds i8, ptr %13, i64 768
  %308 = getelementptr inbounds i8, ptr %13, i64 784
  br label %309

309:                                              ; preds = %0, %600
  %.0126142 = phi i32 [ 0, %0 ], [ %602, %600 ]
  tail call void @_ZN4dart8external3ode17dMakeRandomMatrixEPdiid(ptr noundef nonnull %8, i32 noundef 100, i32 noundef 100, double noundef 1.000000e+00)
  tail call void @_ZN4dart8external3ode11_dMultiply2EPdPKdS4_iii(ptr noundef nonnull %2, ptr noundef nonnull %8, ptr noundef nonnull %8, i32 noundef 100, i32 noundef 100, i32 noundef 100)
  tail call void @_ZN4dart8external3ode17dMakeRandomMatrixEPdiid(ptr noundef nonnull %3, i32 noundef 100, i32 noundef 1, double noundef 1.000000e+00)
  tail call void @_ZN4dart8external3ode11_dMultiply0EPdPKdS4_iii(ptr noundef nonnull %4, ptr noundef nonnull %2, ptr noundef nonnull %3, i32 noundef 100, i32 noundef 100, i32 noundef 1)
  br label %310

310:                                              ; preds = %309, %310
  %indvars.iv = phi i64 [ 0, %309 ], [ %indvars.iv.next, %310 ]
  %311 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %312 = tail call double @llvm.fmuladd.f64(double %311, double 2.000000e-01, double -1.000000e-01)
  %313 = getelementptr inbounds double, ptr %4, i64 %indvars.iv
  %314 = load double, ptr %313, align 8, !tbaa !5
  %315 = fadd double %314, %312
  store double %315, ptr %313, align 8, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 100
  br i1 %exitcond.not, label %.preheader131.preheader, label %310, !llvm.loop !9

.preheader131.preheader:                          ; preds = %310
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %6, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %14, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %15, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %16, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %17, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %18, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %19, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %20, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %21, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %22, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %23, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %24, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %25, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %26, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %27, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %28, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %29, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %30, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %31, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %32, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %33, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %34, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %35, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %36, align 8, !tbaa !5
  store <2 x double> <double 0xFFF0000000000000, double 0xFFF0000000000000>, ptr %37, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %7, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %38, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %39, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %40, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %41, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %42, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %43, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %44, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %45, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %46, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %47, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %48, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %49, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %50, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %51, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %52, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %53, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %54, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %55, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %56, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %57, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %58, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %59, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %60, align 8, !tbaa !5
  store <2 x double> <double 0x7FF0000000000000, double 0x7FF0000000000000>, ptr %61, align 8, !tbaa !5
  %316 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %317 = fsub double -1.000000e-02, %316
  store double %317, ptr %62, align 8, !tbaa !5
  %318 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %319 = fsub double -1.000000e-02, %318
  store double %319, ptr %63, align 8, !tbaa !5
  %320 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %321 = fsub double -1.000000e-02, %320
  store double %321, ptr %64, align 8, !tbaa !5
  %322 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %323 = fsub double -1.000000e-02, %322
  store double %323, ptr %65, align 8, !tbaa !5
  %324 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %325 = fsub double -1.000000e-02, %324
  store double %325, ptr %66, align 8, !tbaa !5
  %326 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %327 = fsub double -1.000000e-02, %326
  store double %327, ptr %67, align 8, !tbaa !5
  %328 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %329 = fsub double -1.000000e-02, %328
  store double %329, ptr %68, align 8, !tbaa !5
  %330 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %331 = fsub double -1.000000e-02, %330
  store double %331, ptr %69, align 8, !tbaa !5
  %332 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %333 = fsub double -1.000000e-02, %332
  store double %333, ptr %70, align 8, !tbaa !5
  %334 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %335 = fsub double -1.000000e-02, %334
  store double %335, ptr %71, align 8, !tbaa !5
  %336 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %337 = fsub double -1.000000e-02, %336
  store double %337, ptr %72, align 8, !tbaa !5
  %338 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %339 = fsub double -1.000000e-02, %338
  store double %339, ptr %73, align 8, !tbaa !5
  %340 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %341 = fsub double -1.000000e-02, %340
  store double %341, ptr %74, align 8, !tbaa !5
  %342 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %343 = fsub double -1.000000e-02, %342
  store double %343, ptr %75, align 8, !tbaa !5
  %344 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %345 = fsub double -1.000000e-02, %344
  store double %345, ptr %76, align 8, !tbaa !5
  %346 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %347 = fsub double -1.000000e-02, %346
  store double %347, ptr %77, align 8, !tbaa !5
  %348 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %349 = fsub double -1.000000e-02, %348
  store double %349, ptr %78, align 8, !tbaa !5
  %350 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %351 = fsub double -1.000000e-02, %350
  store double %351, ptr %79, align 8, !tbaa !5
  %352 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %353 = fsub double -1.000000e-02, %352
  store double %353, ptr %80, align 8, !tbaa !5
  %354 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %355 = fsub double -1.000000e-02, %354
  store double %355, ptr %81, align 8, !tbaa !5
  %356 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %357 = fsub double -1.000000e-02, %356
  store double %357, ptr %82, align 8, !tbaa !5
  %358 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %359 = fsub double -1.000000e-02, %358
  store double %359, ptr %83, align 8, !tbaa !5
  %360 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %361 = fsub double -1.000000e-02, %360
  store double %361, ptr %84, align 8, !tbaa !5
  %362 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %363 = fsub double -1.000000e-02, %362
  store double %363, ptr %85, align 8, !tbaa !5
  %364 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %365 = fsub double -1.000000e-02, %364
  store double %365, ptr %86, align 8, !tbaa !5
  %366 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %367 = fsub double -1.000000e-02, %366
  store double %367, ptr %87, align 8, !tbaa !5
  %368 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %369 = fsub double -1.000000e-02, %368
  store double %369, ptr %88, align 8, !tbaa !5
  %370 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %371 = fsub double -1.000000e-02, %370
  store double %371, ptr %89, align 8, !tbaa !5
  %372 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %373 = fsub double -1.000000e-02, %372
  store double %373, ptr %90, align 8, !tbaa !5
  %374 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %375 = fsub double -1.000000e-02, %374
  store double %375, ptr %91, align 8, !tbaa !5
  %376 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %377 = fsub double -1.000000e-02, %376
  store double %377, ptr %92, align 8, !tbaa !5
  %378 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %379 = fsub double -1.000000e-02, %378
  store double %379, ptr %93, align 8, !tbaa !5
  %380 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %381 = fsub double -1.000000e-02, %380
  store double %381, ptr %94, align 8, !tbaa !5
  %382 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %383 = fsub double -1.000000e-02, %382
  store double %383, ptr %95, align 8, !tbaa !5
  %384 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %385 = fsub double -1.000000e-02, %384
  store double %385, ptr %96, align 8, !tbaa !5
  %386 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %387 = fsub double -1.000000e-02, %386
  store double %387, ptr %97, align 8, !tbaa !5
  %388 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %389 = fsub double -1.000000e-02, %388
  store double %389, ptr %98, align 8, !tbaa !5
  %390 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %391 = fsub double -1.000000e-02, %390
  store double %391, ptr %99, align 8, !tbaa !5
  %392 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %393 = fsub double -1.000000e-02, %392
  store double %393, ptr %100, align 8, !tbaa !5
  %394 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %395 = fsub double -1.000000e-02, %394
  store double %395, ptr %101, align 8, !tbaa !5
  %396 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %397 = fsub double -1.000000e-02, %396
  store double %397, ptr %102, align 8, !tbaa !5
  %398 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %399 = fsub double -1.000000e-02, %398
  store double %399, ptr %103, align 8, !tbaa !5
  %400 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %401 = fsub double -1.000000e-02, %400
  store double %401, ptr %104, align 8, !tbaa !5
  %402 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %403 = fsub double -1.000000e-02, %402
  store double %403, ptr %105, align 8, !tbaa !5
  %404 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %405 = fsub double -1.000000e-02, %404
  store double %405, ptr %106, align 8, !tbaa !5
  %406 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %407 = fsub double -1.000000e-02, %406
  store double %407, ptr %107, align 8, !tbaa !5
  %408 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %409 = fsub double -1.000000e-02, %408
  store double %409, ptr %108, align 8, !tbaa !5
  %410 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %411 = fsub double -1.000000e-02, %410
  store double %411, ptr %109, align 8, !tbaa !5
  %412 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %413 = fsub double -1.000000e-02, %412
  store double %413, ptr %110, align 8, !tbaa !5
  %414 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %415 = fsub double -1.000000e-02, %414
  store double %415, ptr %111, align 8, !tbaa !5
  %416 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %417 = fadd double %416, 1.000000e-02
  store double %417, ptr %112, align 8, !tbaa !5
  %418 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %419 = fadd double %418, 1.000000e-02
  store double %419, ptr %113, align 8, !tbaa !5
  %420 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %421 = fadd double %420, 1.000000e-02
  store double %421, ptr %114, align 8, !tbaa !5
  %422 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %423 = fadd double %422, 1.000000e-02
  store double %423, ptr %115, align 8, !tbaa !5
  %424 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %425 = fadd double %424, 1.000000e-02
  store double %425, ptr %116, align 8, !tbaa !5
  %426 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %427 = fadd double %426, 1.000000e-02
  store double %427, ptr %117, align 8, !tbaa !5
  %428 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %429 = fadd double %428, 1.000000e-02
  store double %429, ptr %118, align 8, !tbaa !5
  %430 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %431 = fadd double %430, 1.000000e-02
  store double %431, ptr %119, align 8, !tbaa !5
  %432 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %433 = fadd double %432, 1.000000e-02
  store double %433, ptr %120, align 8, !tbaa !5
  %434 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %435 = fadd double %434, 1.000000e-02
  store double %435, ptr %121, align 8, !tbaa !5
  %436 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %437 = fadd double %436, 1.000000e-02
  store double %437, ptr %122, align 8, !tbaa !5
  %438 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %439 = fadd double %438, 1.000000e-02
  store double %439, ptr %123, align 8, !tbaa !5
  %440 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %441 = fadd double %440, 1.000000e-02
  store double %441, ptr %124, align 8, !tbaa !5
  %442 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %443 = fadd double %442, 1.000000e-02
  store double %443, ptr %125, align 8, !tbaa !5
  %444 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %445 = fadd double %444, 1.000000e-02
  store double %445, ptr %126, align 8, !tbaa !5
  %446 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %447 = fadd double %446, 1.000000e-02
  store double %447, ptr %127, align 8, !tbaa !5
  %448 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %449 = fadd double %448, 1.000000e-02
  store double %449, ptr %128, align 8, !tbaa !5
  %450 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %451 = fadd double %450, 1.000000e-02
  store double %451, ptr %129, align 8, !tbaa !5
  %452 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %453 = fadd double %452, 1.000000e-02
  store double %453, ptr %130, align 8, !tbaa !5
  %454 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %455 = fadd double %454, 1.000000e-02
  store double %455, ptr %131, align 8, !tbaa !5
  %456 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %457 = fadd double %456, 1.000000e-02
  store double %457, ptr %132, align 8, !tbaa !5
  %458 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %459 = fadd double %458, 1.000000e-02
  store double %459, ptr %133, align 8, !tbaa !5
  %460 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %461 = fadd double %460, 1.000000e-02
  store double %461, ptr %134, align 8, !tbaa !5
  %462 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %463 = fadd double %462, 1.000000e-02
  store double %463, ptr %135, align 8, !tbaa !5
  %464 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %465 = fadd double %464, 1.000000e-02
  store double %465, ptr %136, align 8, !tbaa !5
  %466 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %467 = fadd double %466, 1.000000e-02
  store double %467, ptr %137, align 8, !tbaa !5
  %468 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %469 = fadd double %468, 1.000000e-02
  store double %469, ptr %138, align 8, !tbaa !5
  %470 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %471 = fadd double %470, 1.000000e-02
  store double %471, ptr %139, align 8, !tbaa !5
  %472 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %473 = fadd double %472, 1.000000e-02
  store double %473, ptr %140, align 8, !tbaa !5
  %474 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %475 = fadd double %474, 1.000000e-02
  store double %475, ptr %141, align 8, !tbaa !5
  %476 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %477 = fadd double %476, 1.000000e-02
  store double %477, ptr %142, align 8, !tbaa !5
  %478 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %479 = fadd double %478, 1.000000e-02
  store double %479, ptr %143, align 8, !tbaa !5
  %480 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %481 = fadd double %480, 1.000000e-02
  store double %481, ptr %144, align 8, !tbaa !5
  %482 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %483 = fadd double %482, 1.000000e-02
  store double %483, ptr %145, align 8, !tbaa !5
  %484 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %485 = fadd double %484, 1.000000e-02
  store double %485, ptr %146, align 8, !tbaa !5
  %486 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %487 = fadd double %486, 1.000000e-02
  store double %487, ptr %147, align 8, !tbaa !5
  %488 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %489 = fadd double %488, 1.000000e-02
  store double %489, ptr %148, align 8, !tbaa !5
  %490 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %491 = fadd double %490, 1.000000e-02
  store double %491, ptr %149, align 8, !tbaa !5
  %492 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %493 = fadd double %492, 1.000000e-02
  store double %493, ptr %150, align 8, !tbaa !5
  %494 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %495 = fadd double %494, 1.000000e-02
  store double %495, ptr %151, align 8, !tbaa !5
  %496 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %497 = fadd double %496, 1.000000e-02
  store double %497, ptr %152, align 8, !tbaa !5
  %498 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %499 = fadd double %498, 1.000000e-02
  store double %499, ptr %153, align 8, !tbaa !5
  %500 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %501 = fadd double %500, 1.000000e-02
  store double %501, ptr %154, align 8, !tbaa !5
  %502 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %503 = fadd double %502, 1.000000e-02
  store double %503, ptr %155, align 8, !tbaa !5
  %504 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %505 = fadd double %504, 1.000000e-02
  store double %505, ptr %156, align 8, !tbaa !5
  %506 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %507 = fadd double %506, 1.000000e-02
  store double %507, ptr %157, align 8, !tbaa !5
  %508 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %509 = fadd double %508, 1.000000e-02
  store double %509, ptr %158, align 8, !tbaa !5
  %510 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %511 = fadd double %510, 1.000000e-02
  store double %511, ptr %159, align 8, !tbaa !5
  %512 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %513 = fadd double %512, 1.000000e-02
  store double %513, ptr %160, align 8, !tbaa !5
  %514 = tail call noundef double @_ZN4dart8external3ode9dRandRealEv()
  %515 = fadd double %514, 1.000000e-02
  store double %515, ptr %161, align 8, !tbaa !5
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80000) %8, ptr noundef nonnull align 8 dereferenceable(80000) %2, i64 80000, i1 false)
  tail call void @_ZN4dart8external3ode19dClearUpperTriangleEPdi(ptr noundef nonnull %8, i32 noundef 100)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(800) %9, ptr noundef nonnull align 8 dereferenceable(800) %4, i64 800, i1 false)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(800) %10, ptr noundef nonnull align 8 dereferenceable(800) %6, i64 800, i1 false)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(800) %11, ptr noundef nonnull align 8 dereferenceable(800) %7, i64 800, i1 false)
  tail call void @_ZN4dart8external3ode9_dSetZeroEPdm(ptr noundef nonnull %3, i64 noundef 100)
  tail call void @_ZN4dart8external3ode9_dSetZeroEPdm(ptr noundef nonnull %5, i64 noundef 100)
  %516 = tail call noundef zeroext i1 @_ZN4dart8external3ode9dSolveLCPEiPdS2_S2_S2_iS2_S2_Pib(i32 noundef 100, ptr noundef nonnull %8, ptr noundef nonnull %3, ptr noundef nonnull %9, ptr noundef nonnull %5, i32 noundef 50, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef null, i1 noundef zeroext false)
  tail call void @_ZN4dart8external3ode11_dMultiply0EPdPKdS4_iii(ptr noundef nonnull %12, ptr noundef nonnull %2, ptr noundef nonnull %3, i32 noundef 100, i32 noundef 100, i32 noundef 1)
  %wide.load = load <2 x double>, ptr %4, align 8, !tbaa !5
  %wide.load172 = load <2 x double>, ptr %162, align 8, !tbaa !5
  %wide.load173 = load <2 x double>, ptr %5, align 8, !tbaa !5
  %wide.load174 = load <2 x double>, ptr %163, align 8, !tbaa !5
  %517 = fadd <2 x double> %wide.load, %wide.load173
  %518 = fadd <2 x double> %wide.load172, %wide.load174
  store <2 x double> %517, ptr %13, align 8, !tbaa !5
  store <2 x double> %518, ptr %164, align 8, !tbaa !5
  %wide.load.1 = load <2 x double>, ptr %165, align 8, !tbaa !5
  %wide.load172.1 = load <2 x double>, ptr %166, align 8, !tbaa !5
  %wide.load173.1 = load <2 x double>, ptr %167, align 8, !tbaa !5
  %wide.load174.1 = load <2 x double>, ptr %168, align 8, !tbaa !5
  %519 = fadd <2 x double> %wide.load.1, %wide.load173.1
  %520 = fadd <2 x double> %wide.load172.1, %wide.load174.1
  store <2 x double> %519, ptr %169, align 8, !tbaa !5
  store <2 x double> %520, ptr %170, align 8, !tbaa !5
  %wide.load.2 = load <2 x double>, ptr %171, align 8, !tbaa !5
  %wide.load172.2 = load <2 x double>, ptr %172, align 8, !tbaa !5
  %wide.load173.2 = load <2 x double>, ptr %173, align 8, !tbaa !5
  %wide.load174.2 = load <2 x double>, ptr %174, align 8, !tbaa !5
  %521 = fadd <2 x double> %wide.load.2, %wide.load173.2
  %522 = fadd <2 x double> %wide.load172.2, %wide.load174.2
  store <2 x double> %521, ptr %175, align 8, !tbaa !5
  store <2 x double> %522, ptr %176, align 8, !tbaa !5
  %wide.load.3 = load <2 x double>, ptr %177, align 8, !tbaa !5
  %wide.load172.3 = load <2 x double>, ptr %178, align 8, !tbaa !5
  %wide.load173.3 = load <2 x double>, ptr %179, align 8, !tbaa !5
  %wide.load174.3 = load <2 x double>, ptr %180, align 8, !tbaa !5
  %523 = fadd <2 x double> %wide.load.3, %wide.load173.3
  %524 = fadd <2 x double> %wide.load172.3, %wide.load174.3
  store <2 x double> %523, ptr %181, align 8, !tbaa !5
  store <2 x double> %524, ptr %182, align 8, !tbaa !5
  %wide.load.4 = load <2 x double>, ptr %183, align 8, !tbaa !5
  %wide.load172.4 = load <2 x double>, ptr %184, align 8, !tbaa !5
  %wide.load173.4 = load <2 x double>, ptr %185, align 8, !tbaa !5
  %wide.load174.4 = load <2 x double>, ptr %186, align 8, !tbaa !5
  %525 = fadd <2 x double> %wide.load.4, %wide.load173.4
  %526 = fadd <2 x double> %wide.load172.4, %wide.load174.4
  store <2 x double> %525, ptr %187, align 8, !tbaa !5
  store <2 x double> %526, ptr %188, align 8, !tbaa !5
  %wide.load.5 = load <2 x double>, ptr %189, align 8, !tbaa !5
  %wide.load172.5 = load <2 x double>, ptr %190, align 8, !tbaa !5
  %wide.load173.5 = load <2 x double>, ptr %191, align 8, !tbaa !5
  %wide.load174.5 = load <2 x double>, ptr %192, align 8, !tbaa !5
  %527 = fadd <2 x double> %wide.load.5, %wide.load173.5
  %528 = fadd <2 x double> %wide.load172.5, %wide.load174.5
  store <2 x double> %527, ptr %193, align 8, !tbaa !5
  store <2 x double> %528, ptr %194, align 8, !tbaa !5
  %wide.load.6 = load <2 x double>, ptr %195, align 8, !tbaa !5
  %wide.load172.6 = load <2 x double>, ptr %196, align 8, !tbaa !5
  %wide.load173.6 = load <2 x double>, ptr %197, align 8, !tbaa !5
  %wide.load174.6 = load <2 x double>, ptr %198, align 8, !tbaa !5
  %529 = fadd <2 x double> %wide.load.6, %wide.load173.6
  %530 = fadd <2 x double> %wide.load172.6, %wide.load174.6
  store <2 x double> %529, ptr %199, align 8, !tbaa !5
  store <2 x double> %530, ptr %200, align 8, !tbaa !5
  %wide.load.7 = load <2 x double>, ptr %201, align 8, !tbaa !5
  %wide.load172.7 = load <2 x double>, ptr %202, align 8, !tbaa !5
  %wide.load173.7 = load <2 x double>, ptr %203, align 8, !tbaa !5
  %wide.load174.7 = load <2 x double>, ptr %204, align 8, !tbaa !5
  %531 = fadd <2 x double> %wide.load.7, %wide.load173.7
  %532 = fadd <2 x double> %wide.load172.7, %wide.load174.7
  store <2 x double> %531, ptr %205, align 8, !tbaa !5
  store <2 x double> %532, ptr %206, align 8, !tbaa !5
  %wide.load.8 = load <2 x double>, ptr %207, align 8, !tbaa !5
  %wide.load172.8 = load <2 x double>, ptr %208, align 8, !tbaa !5
  %wide.load173.8 = load <2 x double>, ptr %209, align 8, !tbaa !5
  %wide.load174.8 = load <2 x double>, ptr %210, align 8, !tbaa !5
  %533 = fadd <2 x double> %wide.load.8, %wide.load173.8
  %534 = fadd <2 x double> %wide.load172.8, %wide.load174.8
  store <2 x double> %533, ptr %211, align 8, !tbaa !5
  store <2 x double> %534, ptr %212, align 8, !tbaa !5
  %wide.load.9 = load <2 x double>, ptr %213, align 8, !tbaa !5
  %wide.load172.9 = load <2 x double>, ptr %214, align 8, !tbaa !5
  %wide.load173.9 = load <2 x double>, ptr %215, align 8, !tbaa !5
  %wide.load174.9 = load <2 x double>, ptr %216, align 8, !tbaa !5
  %535 = fadd <2 x double> %wide.load.9, %wide.load173.9
  %536 = fadd <2 x double> %wide.load172.9, %wide.load174.9
  store <2 x double> %535, ptr %217, align 8, !tbaa !5
  store <2 x double> %536, ptr %218, align 8, !tbaa !5
  %wide.load.10 = load <2 x double>, ptr %219, align 8, !tbaa !5
  %wide.load172.10 = load <2 x double>, ptr %220, align 8, !tbaa !5
  %wide.load173.10 = load <2 x double>, ptr %221, align 8, !tbaa !5
  %wide.load174.10 = load <2 x double>, ptr %222, align 8, !tbaa !5
  %537 = fadd <2 x double> %wide.load.10, %wide.load173.10
  %538 = fadd <2 x double> %wide.load172.10, %wide.load174.10
  store <2 x double> %537, ptr %223, align 8, !tbaa !5
  store <2 x double> %538, ptr %224, align 8, !tbaa !5
  %wide.load.11 = load <2 x double>, ptr %225, align 8, !tbaa !5
  %wide.load172.11 = load <2 x double>, ptr %226, align 8, !tbaa !5
  %wide.load173.11 = load <2 x double>, ptr %227, align 8, !tbaa !5
  %wide.load174.11 = load <2 x double>, ptr %228, align 8, !tbaa !5
  %539 = fadd <2 x double> %wide.load.11, %wide.load173.11
  %540 = fadd <2 x double> %wide.load172.11, %wide.load174.11
  store <2 x double> %539, ptr %229, align 8, !tbaa !5
  store <2 x double> %540, ptr %230, align 8, !tbaa !5
  %wide.load.12 = load <2 x double>, ptr %231, align 8, !tbaa !5
  %wide.load172.12 = load <2 x double>, ptr %232, align 8, !tbaa !5
  %wide.load173.12 = load <2 x double>, ptr %233, align 8, !tbaa !5
  %wide.load174.12 = load <2 x double>, ptr %234, align 8, !tbaa !5
  %541 = fadd <2 x double> %wide.load.12, %wide.load173.12
  %542 = fadd <2 x double> %wide.load172.12, %wide.load174.12
  store <2 x double> %541, ptr %235, align 8, !tbaa !5
  store <2 x double> %542, ptr %236, align 8, !tbaa !5
  %wide.load.13 = load <2 x double>, ptr %237, align 8, !tbaa !5
  %wide.load172.13 = load <2 x double>, ptr %238, align 8, !tbaa !5
  %wide.load173.13 = load <2 x double>, ptr %239, align 8, !tbaa !5
  %wide.load174.13 = load <2 x double>, ptr %240, align 8, !tbaa !5
  %543 = fadd <2 x double> %wide.load.13, %wide.load173.13
  %544 = fadd <2 x double> %wide.load172.13, %wide.load174.13
  store <2 x double> %543, ptr %241, align 8, !tbaa !5
  store <2 x double> %544, ptr %242, align 8, !tbaa !5
  %wide.load.14 = load <2 x double>, ptr %243, align 8, !tbaa !5
  %wide.load172.14 = load <2 x double>, ptr %244, align 8, !tbaa !5
  %wide.load173.14 = load <2 x double>, ptr %245, align 8, !tbaa !5
  %wide.load174.14 = load <2 x double>, ptr %246, align 8, !tbaa !5
  %545 = fadd <2 x double> %wide.load.14, %wide.load173.14
  %546 = fadd <2 x double> %wide.load172.14, %wide.load174.14
  store <2 x double> %545, ptr %247, align 8, !tbaa !5
  store <2 x double> %546, ptr %248, align 8, !tbaa !5
  %wide.load.15 = load <2 x double>, ptr %249, align 8, !tbaa !5
  %wide.load172.15 = load <2 x double>, ptr %250, align 8, !tbaa !5
  %wide.load173.15 = load <2 x double>, ptr %251, align 8, !tbaa !5
  %wide.load174.15 = load <2 x double>, ptr %252, align 8, !tbaa !5
  %547 = fadd <2 x double> %wide.load.15, %wide.load173.15
  %548 = fadd <2 x double> %wide.load172.15, %wide.load174.15
  store <2 x double> %547, ptr %253, align 8, !tbaa !5
  store <2 x double> %548, ptr %254, align 8, !tbaa !5
  %wide.load.16 = load <2 x double>, ptr %255, align 8, !tbaa !5
  %wide.load172.16 = load <2 x double>, ptr %256, align 8, !tbaa !5
  %wide.load173.16 = load <2 x double>, ptr %257, align 8, !tbaa !5
  %wide.load174.16 = load <2 x double>, ptr %258, align 8, !tbaa !5
  %549 = fadd <2 x double> %wide.load.16, %wide.load173.16
  %550 = fadd <2 x double> %wide.load172.16, %wide.load174.16
  store <2 x double> %549, ptr %259, align 8, !tbaa !5
  store <2 x double> %550, ptr %260, align 8, !tbaa !5
  %wide.load.17 = load <2 x double>, ptr %261, align 8, !tbaa !5
  %wide.load172.17 = load <2 x double>, ptr %262, align 8, !tbaa !5
  %wide.load173.17 = load <2 x double>, ptr %263, align 8, !tbaa !5
  %wide.load174.17 = load <2 x double>, ptr %264, align 8, !tbaa !5
  %551 = fadd <2 x double> %wide.load.17, %wide.load173.17
  %552 = fadd <2 x double> %wide.load172.17, %wide.load174.17
  store <2 x double> %551, ptr %265, align 8, !tbaa !5
  store <2 x double> %552, ptr %266, align 8, !tbaa !5
  %wide.load.18 = load <2 x double>, ptr %267, align 8, !tbaa !5
  %wide.load172.18 = load <2 x double>, ptr %268, align 8, !tbaa !5
  %wide.load173.18 = load <2 x double>, ptr %269, align 8, !tbaa !5
  %wide.load174.18 = load <2 x double>, ptr %270, align 8, !tbaa !5
  %553 = fadd <2 x double> %wide.load.18, %wide.load173.18
  %554 = fadd <2 x double> %wide.load172.18, %wide.load174.18
  store <2 x double> %553, ptr %271, align 8, !tbaa !5
  store <2 x double> %554, ptr %272, align 8, !tbaa !5
  %wide.load.19 = load <2 x double>, ptr %273, align 8, !tbaa !5
  %wide.load172.19 = load <2 x double>, ptr %274, align 8, !tbaa !5
  %wide.load173.19 = load <2 x double>, ptr %275, align 8, !tbaa !5
  %wide.load174.19 = load <2 x double>, ptr %276, align 8, !tbaa !5
  %555 = fadd <2 x double> %wide.load.19, %wide.load173.19
  %556 = fadd <2 x double> %wide.load172.19, %wide.load174.19
  store <2 x double> %555, ptr %277, align 8, !tbaa !5
  store <2 x double> %556, ptr %278, align 8, !tbaa !5
  %wide.load.20 = load <2 x double>, ptr %279, align 8, !tbaa !5
  %wide.load172.20 = load <2 x double>, ptr %280, align 8, !tbaa !5
  %wide.load173.20 = load <2 x double>, ptr %281, align 8, !tbaa !5
  %wide.load174.20 = load <2 x double>, ptr %282, align 8, !tbaa !5
  %557 = fadd <2 x double> %wide.load.20, %wide.load173.20
  %558 = fadd <2 x double> %wide.load172.20, %wide.load174.20
  store <2 x double> %557, ptr %283, align 8, !tbaa !5
  store <2 x double> %558, ptr %284, align 8, !tbaa !5
  %wide.load.21 = load <2 x double>, ptr %285, align 8, !tbaa !5
  %wide.load172.21 = load <2 x double>, ptr %286, align 8, !tbaa !5
  %wide.load173.21 = load <2 x double>, ptr %287, align 8, !tbaa !5
  %wide.load174.21 = load <2 x double>, ptr %288, align 8, !tbaa !5
  %559 = fadd <2 x double> %wide.load.21, %wide.load173.21
  %560 = fadd <2 x double> %wide.load172.21, %wide.load174.21
  store <2 x double> %559, ptr %289, align 8, !tbaa !5
  store <2 x double> %560, ptr %290, align 8, !tbaa !5
  %wide.load.22 = load <2 x double>, ptr %291, align 8, !tbaa !5
  %wide.load172.22 = load <2 x double>, ptr %292, align 8, !tbaa !5
  %wide.load173.22 = load <2 x double>, ptr %293, align 8, !tbaa !5
  %wide.load174.22 = load <2 x double>, ptr %294, align 8, !tbaa !5
  %561 = fadd <2 x double> %wide.load.22, %wide.load173.22
  %562 = fadd <2 x double> %wide.load172.22, %wide.load174.22
  store <2 x double> %561, ptr %295, align 8, !tbaa !5
  store <2 x double> %562, ptr %296, align 8, !tbaa !5
  %wide.load.23 = load <2 x double>, ptr %297, align 8, !tbaa !5
  %wide.load172.23 = load <2 x double>, ptr %298, align 8, !tbaa !5
  %wide.load173.23 = load <2 x double>, ptr %299, align 8, !tbaa !5
  %wide.load174.23 = load <2 x double>, ptr %300, align 8, !tbaa !5
  %563 = fadd <2 x double> %wide.load.23, %wide.load173.23
  %564 = fadd <2 x double> %wide.load172.23, %wide.load174.23
  store <2 x double> %563, ptr %301, align 8, !tbaa !5
  store <2 x double> %564, ptr %302, align 8, !tbaa !5
  %wide.load.24 = load <2 x double>, ptr %303, align 8, !tbaa !5
  %wide.load172.24 = load <2 x double>, ptr %304, align 8, !tbaa !5
  %wide.load173.24 = load <2 x double>, ptr %305, align 8, !tbaa !5
  %wide.load174.24 = load <2 x double>, ptr %306, align 8, !tbaa !5
  %565 = fadd <2 x double> %wide.load.24, %wide.load173.24
  %566 = fadd <2 x double> %wide.load172.24, %wide.load174.24
  store <2 x double> %565, ptr %307, align 8, !tbaa !5
  store <2 x double> %566, ptr %308, align 8, !tbaa !5
  %567 = tail call noundef double @_ZN4dart8external3ode14dMaxDifferenceEPKdS3_ii(ptr noundef nonnull %12, ptr noundef nonnull %13, i32 noundef 100, i32 noundef 1)
  %568 = fcmp ogt double %567, 1.000000e-09
  br i1 %568, label %569, label %.preheader

569:                                              ; preds = %.preheader131.preheader
  tail call void (i32, ptr, ...) @_ZN4dart8external3ode6dDebugEiPKcz(i32 noundef 0, ptr noundef nonnull @.str.7, double noundef %567)
  br label %.preheader

.preheader:                                       ; preds = %569, %.preheader131.preheader
  br label %570

570:                                              ; preds = %.preheader, %599
  %indvars.iv164 = phi i64 [ %indvars.iv.next165, %599 ], [ 0, %.preheader ]
  %.0141 = phi i32 [ %.1, %599 ], [ 0, %.preheader ]
  %.0120140 = phi i32 [ %.1121, %599 ], [ 0, %.preheader ]
  %.0122139 = phi i32 [ %.1123, %599 ], [ 0, %.preheader ]
  %571 = getelementptr inbounds double, ptr %3, i64 %indvars.iv164
  %572 = load double, ptr %571, align 8, !tbaa !5
  %573 = getelementptr inbounds double, ptr %6, i64 %indvars.iv164
  %574 = load double, ptr %573, align 8, !tbaa !5
  %575 = fcmp oeq double %572, %574
  br i1 %575, label %576, label %582

576:                                              ; preds = %570
  %577 = getelementptr inbounds double, ptr %5, i64 %indvars.iv164
  %578 = load double, ptr %577, align 8, !tbaa !5
  %579 = fcmp ult double %578, 0.000000e+00
  br i1 %579, label %582, label %580

580:                                              ; preds = %576
  %581 = add nsw i32 %.0122139, 1
  br label %599

582:                                              ; preds = %576, %570
  %583 = getelementptr inbounds double, ptr %7, i64 %indvars.iv164
  %584 = load double, ptr %583, align 8, !tbaa !5
  %585 = fcmp oeq double %572, %584
  br i1 %585, label %586, label %592

586:                                              ; preds = %582
  %587 = getelementptr inbounds double, ptr %5, i64 %indvars.iv164
  %588 = load double, ptr %587, align 8, !tbaa !5
  %589 = fcmp ugt double %588, 0.000000e+00
  br i1 %589, label %592, label %590

590:                                              ; preds = %586
  %591 = add nsw i32 %.0120140, 1
  br label %599

592:                                              ; preds = %586, %582
  %593 = fcmp oge double %572, %574
  %594 = fcmp ole double %572, %584
  %or.cond.not171 = and i1 %593, %594
  %.phi.trans.insert = getelementptr inbounds double, ptr %5, i64 %indvars.iv164
  %.pre = load double, ptr %.phi.trans.insert, align 8, !tbaa !5
  %595 = fcmp oeq double %.pre, 0.000000e+00
  %or.cond169 = select i1 %or.cond.not171, i1 %595, i1 false
  br i1 %or.cond169, label %596, label %._crit_edge

596:                                              ; preds = %592
  %597 = add nsw i32 %.0141, 1
  br label %599

._crit_edge:                                      ; preds = %592
  %598 = trunc nuw nsw i64 %indvars.iv164 to i32
  tail call void (i32, ptr, ...) @_ZN4dart8external3ode6dDebugEiPKcz(i32 noundef 0, ptr noundef nonnull @.str.8, i32 noundef %598, double noundef %572, double noundef %.pre, double noundef %574, double noundef %584)
  br label %599

599:                                              ; preds = %580, %596, %._crit_edge, %590
  %.1123 = phi i32 [ %581, %580 ], [ %.0122139, %590 ], [ %.0122139, %596 ], [ %.0122139, %._crit_edge ]
  %.1121 = phi i32 [ %.0120140, %580 ], [ %591, %590 ], [ %.0120140, %596 ], [ %.0120140, %._crit_edge ]
  %.1 = phi i32 [ %.0141, %580 ], [ %.0141, %590 ], [ %597, %596 ], [ %.0141, %._crit_edge ]
  %indvars.iv.next165 = add nuw nsw i64 %indvars.iv164, 1
  %exitcond167.not = icmp eq i64 %indvars.iv.next165, 100
  br i1 %exitcond167.not, label %600, label %570, !llvm.loop !11

600:                                              ; preds = %599
  %601 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9, i32 noundef %.1123, i32 noundef %.1121, i32 noundef %.1)
  %602 = add nuw nsw i32 %.0126142, 1
  %exitcond168.not = icmp eq i32 %602, 1000
  br i1 %exitcond168.not, label %603, label %309, !llvm.loop !12

603:                                              ; preds = %600
  tail call void @_ZdaPv(ptr noundef nonnull %2) #8
  tail call void @_ZdaPv(ptr noundef nonnull %3) #8
  tail call void @_ZdaPv(ptr noundef nonnull %4) #8
  tail call void @_ZdaPv(ptr noundef nonnull %5) #8
  tail call void @_ZdaPv(ptr noundef nonnull %6) #8
  tail call void @_ZdaPv(ptr noundef nonnull %7) #8
  tail call void @_ZdaPv(ptr noundef nonnull %8) #8
  tail call void @_ZdaPv(ptr noundef nonnull %9) #8
  tail call void @_ZdaPv(ptr noundef nonnull %10) #8
  tail call void @_ZdaPv(ptr noundef nonnull %11) #8
  tail call void @_ZdaPv(ptr noundef nonnull %12) #8
  tail call void @_ZdaPv(ptr noundef nonnull %13) #8
  ret i32 1
}

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

declare void @_ZN4dart8external3ode17dMakeRandomMatrixEPdiid(ptr noundef, i32 noundef, i32 noundef, double noundef) local_unnamed_addr #0

declare void @_ZN4dart8external3ode11_dMultiply2EPdPKdS4_iii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

declare void @_ZN4dart8external3ode11_dMultiply0EPdPKdS4_iii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

declare noundef double @_ZN4dart8external3ode9dRandRealEv() local_unnamed_addr #0

declare void @_ZN4dart8external3ode19dClearUpperTriangleEPdi(ptr noundef, i32 noundef) local_unnamed_addr #0

declare noundef double @_ZN4dart8external3ode14dMaxDifferenceEPKdS3_ii(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { mustprogress 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 = { nobuiltin 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 #5 = { nobuiltin 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 #6 = { 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 #7 = { builtin allocsize(0) }
attributes #8 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = distinct !{!12, !10}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass