; LLVM IR from cvxgrp/scs :: test (random_socp_prob)

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

%struct.ScsData = type { i32, i32, ptr, ptr, ptr, ptr }
%struct.ScsSolution = type { ptr, ptr, ptr }
%struct.ScsInfo = type { i32, [128 x i8], [128 x i8], i32, i32, double, double, double, double, double, double, double, double, double, double, double, double, i32, i32, double, double, double }
%struct.ScsSettings = type { i32, double, i32, double, i32, double, double, double, double, double, i32, i32, i32, i32, ptr, ptr }

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [15 x i8], align 1

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

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

; Function Attrs: nounwind allocsize(0,1)
declare noalias ptr @calloc(i64 noundef, i64 noundef) #1

declare ptr @_scs_init_cone(ptr noundef, i32 noundef) #2

declare void @_scs_finish_cone(ptr noundef) #2

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

; Function Attrs: nounwind
declare void @free(ptr noundef) #4

; Function Attrs: nounwind uwtable
define dso_local ptr @verify_solution_correct(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, i32 noundef %5) #5 {
  %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 i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store i32 %5, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %45 = load ptr, ptr %8, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.ScsData, ptr %45, i32 0, i32 1
  %47 = load i32, ptr %46, align 4, !tbaa !11
  store i32 %47, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %48 = load ptr, ptr %8, align 8, !tbaa !5
  %49 = getelementptr inbounds %struct.ScsData, ptr %48, i32 0, i32 0
  %50 = load i32, ptr %49, align 8, !tbaa !13
  store i32 %50, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %51 = load ptr, ptr %12, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.ScsSolution, ptr %51, i32 0, i32 0
  %53 = load ptr, ptr %52, align 8, !tbaa !14
  store ptr %53, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %54 = load ptr, ptr %12, align 8, !tbaa !5
  %55 = getelementptr inbounds %struct.ScsSolution, ptr %54, i32 0, i32 1
  %56 = load ptr, ptr %55, align 8, !tbaa !16
  store ptr %56, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %57 = load ptr, ptr %12, align 8, !tbaa !5
  %58 = getelementptr inbounds %struct.ScsSolution, ptr %57, i32 0, i32 2
  %59 = load ptr, ptr %58, align 8, !tbaa !17
  store ptr %59, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %60 = load ptr, ptr %8, align 8, !tbaa !5
  %61 = getelementptr inbounds %struct.ScsData, ptr %60, i32 0, i32 5
  %62 = load ptr, ptr %61, align 8, !tbaa !18
  store ptr %62, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %63 = load ptr, ptr %8, align 8, !tbaa !5
  %64 = getelementptr inbounds %struct.ScsData, ptr %63, i32 0, i32 4
  %65 = load ptr, ptr %64, align 8, !tbaa !19
  store ptr %65, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %66 = load i32, ptr %15, align 4, !tbaa !9
  %67 = sext i32 %66 to i64
  %68 = call noalias ptr @calloc(i64 noundef %67, i64 noundef 8) #9
  store ptr %68, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %69 = load i32, ptr %15, align 4, !tbaa !9
  %70 = sext i32 %69 to i64
  %71 = call noalias ptr @calloc(i64 noundef %70, i64 noundef 8) #9
  store ptr %71, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %72 = load i32, ptr %14, align 4, !tbaa !9
  %73 = sext i32 %72 to i64
  %74 = call noalias ptr @calloc(i64 noundef %73, i64 noundef 8) #9
  store ptr %74, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %75 = load i32, ptr %14, align 4, !tbaa !9
  %76 = sext i32 %75 to i64
  %77 = call noalias ptr @calloc(i64 noundef %76, i64 noundef 8) #9
  store ptr %77, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %78 = load i32, ptr %14, align 4, !tbaa !9
  %79 = sext i32 %78 to i64
  %80 = call noalias ptr @calloc(i64 noundef %79, i64 noundef 8) #9
  store ptr %80, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  store double 0x7FF8000000000000, ptr %41, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  store double 0x7FF8000000000000, ptr %42, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %81 = load ptr, ptr %9, align 8, !tbaa !5
  %82 = load i32, ptr %15, align 4, !tbaa !9
  %83 = call ptr @_scs_init_cone(ptr noundef %81, i32 noundef %82)
  store ptr %83, ptr %43, align 8, !tbaa !5
  %84 = load ptr, ptr %22, align 8, !tbaa !5
  %85 = load i32, ptr %15, align 4, !tbaa !9
  %86 = sext i32 %85 to i64
  %87 = mul i64 %86, 8
  call void @llvm.memset.p0.i64(ptr align 8 %84, i8 0, i64 %87, i1 false)
  %88 = load ptr, ptr %8, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.ScsData, ptr %88, i32 0, i32 2
  %90 = load ptr, ptr %89, align 8, !tbaa !22
  %91 = load ptr, ptr %16, align 8, !tbaa !5
  %92 = load ptr, ptr %22, align 8, !tbaa !5
  call void @_scs_accum_by_a(ptr noundef %90, ptr noundef %91, ptr noundef %92)
  %93 = load ptr, ptr %21, align 8, !tbaa !5
  %94 = load ptr, ptr %22, align 8, !tbaa !5
  %95 = load i32, ptr %15, align 4, !tbaa !9
  %96 = sext i32 %95 to i64
  %97 = mul i64 %96, 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %93, ptr align 8 %94, i64 %97, i1 false)
  %98 = load ptr, ptr %21, align 8, !tbaa !5
  %99 = load ptr, ptr %18, align 8, !tbaa !5
  %100 = load i32, ptr %15, align 4, !tbaa !9
  call void @_scs_add_scaled_array(ptr noundef %98, ptr noundef %99, i32 noundef %100, double noundef 1.000000e+00)
  %101 = load ptr, ptr %21, align 8, !tbaa !5
  %102 = load i32, ptr %15, align 4, !tbaa !9
  %103 = call double @_scs_norm_inf(ptr noundef %101, i32 noundef %102)
  store double %103, ptr %29, align 8, !tbaa !20
  %104 = load ptr, ptr %21, align 8, !tbaa !5
  %105 = load ptr, ptr %20, align 8, !tbaa !5
  %106 = load i32, ptr %15, align 4, !tbaa !9
  call void @_scs_add_scaled_array(ptr noundef %104, ptr noundef %105, i32 noundef %106, double noundef -1.000000e+00)
  %107 = load ptr, ptr %21, align 8, !tbaa !5
  %108 = load i32, ptr %15, align 4, !tbaa !9
  %109 = call double @_scs_norm_inf(ptr noundef %107, i32 noundef %108)
  store double %109, ptr %26, align 8, !tbaa !20
  %110 = load ptr, ptr %24, align 8, !tbaa !5
  %111 = load i32, ptr %14, align 4, !tbaa !9
  %112 = sext i32 %111 to i64
  %113 = mul i64 %112, 8
  call void @llvm.memset.p0.i64(ptr align 8 %110, i8 0, i64 %113, i1 false)
  %114 = load ptr, ptr %8, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.ScsData, ptr %114, i32 0, i32 3
  %116 = load ptr, ptr %115, align 8, !tbaa !23
  %117 = icmp ne ptr %116, null
  br i1 %117, label %118, label %131

118:                                              ; preds = %6
  %119 = load ptr, ptr %8, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.ScsData, ptr %119, i32 0, i32 3
  %121 = load ptr, ptr %120, align 8, !tbaa !23
  %122 = load ptr, ptr %16, align 8, !tbaa !5
  %123 = load ptr, ptr %24, align 8, !tbaa !5
  call void @_scs_accum_by_p(ptr noundef %121, ptr noundef %122, ptr noundef %123)
  %124 = load ptr, ptr %24, align 8, !tbaa !5
  %125 = load ptr, ptr %16, align 8, !tbaa !5
  %126 = load i32, ptr %14, align 4, !tbaa !9
  %127 = call double @_scs_dot(ptr noundef %124, ptr noundef %125, i32 noundef %126)
  store double %127, ptr %33, align 8, !tbaa !20
  %128 = load ptr, ptr %24, align 8, !tbaa !5
  %129 = load i32, ptr %14, align 4, !tbaa !9
  %130 = call double @_scs_norm_inf(ptr noundef %128, i32 noundef %129)
  store double %130, ptr %30, align 8, !tbaa !20
  br label %132

131:                                              ; preds = %6
  store double 0.000000e+00, ptr %33, align 8, !tbaa !20
  store double 0.000000e+00, ptr %30, align 8, !tbaa !20
  br label %132

132:                                              ; preds = %131, %118
  %133 = load ptr, ptr %25, align 8, !tbaa !5
  %134 = load i32, ptr %14, align 4, !tbaa !9
  %135 = sext i32 %134 to i64
  %136 = mul i64 %135, 8
  call void @llvm.memset.p0.i64(ptr align 8 %133, i8 0, i64 %136, i1 false)
  %137 = load ptr, ptr %8, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.ScsData, ptr %137, i32 0, i32 2
  %139 = load ptr, ptr %138, align 8, !tbaa !22
  %140 = load ptr, ptr %17, align 8, !tbaa !5
  %141 = load ptr, ptr %25, align 8, !tbaa !5
  call void @_scs_accum_by_atrans(ptr noundef %139, ptr noundef %140, ptr noundef %141)
  %142 = load ptr, ptr %25, align 8, !tbaa !5
  %143 = load i32, ptr %14, align 4, !tbaa !9
  %144 = call double @_scs_norm_inf(ptr noundef %142, i32 noundef %143)
  store double %144, ptr %28, align 8, !tbaa !20
  %145 = load ptr, ptr %23, align 8, !tbaa !5
  %146 = load ptr, ptr %25, align 8, !tbaa !5
  %147 = load i32, ptr %14, align 4, !tbaa !9
  %148 = sext i32 %147 to i64
  %149 = mul i64 %148, 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %145, ptr align 8 %146, i64 %149, i1 false)
  %150 = load ptr, ptr %23, align 8, !tbaa !5
  %151 = load ptr, ptr %24, align 8, !tbaa !5
  %152 = load i32, ptr %14, align 4, !tbaa !9
  call void @_scs_add_scaled_array(ptr noundef %150, ptr noundef %151, i32 noundef %152, double noundef 1.000000e+00)
  %153 = load ptr, ptr %23, align 8, !tbaa !5
  %154 = load ptr, ptr %19, align 8, !tbaa !5
  %155 = load i32, ptr %14, align 4, !tbaa !9
  call void @_scs_add_scaled_array(ptr noundef %153, ptr noundef %154, i32 noundef %155, double noundef 1.000000e+00)
  %156 = load ptr, ptr %23, align 8, !tbaa !5
  %157 = load i32, ptr %14, align 4, !tbaa !9
  %158 = call double @_scs_norm_inf(ptr noundef %156, i32 noundef %157)
  store double %158, ptr %27, align 8, !tbaa !20
  %159 = load i32, ptr %13, align 4, !tbaa !9
  %160 = icmp eq i32 %159, 1
  br i1 %160, label %164, label %161

161:                                              ; preds = %132
  %162 = load i32, ptr %13, align 4, !tbaa !9
  %163 = icmp eq i32 %162, -1
  br i1 %163, label %164, label %171

164:                                              ; preds = %161, %132
  %165 = load ptr, ptr %12, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.ScsSolution, ptr %165, i32 0, i32 2
  %167 = load ptr, ptr %166, align 8, !tbaa !17
  %168 = load ptr, ptr %43, align 8, !tbaa !5
  %169 = load i32, ptr %15, align 4, !tbaa !9
  %170 = call double @get_pri_cone_dist(ptr noundef %167, ptr noundef %168, i32 noundef %169)
  store double %170, ptr %41, align 8, !tbaa !20
  br label %171

171:                                              ; preds = %164, %161
  %172 = load i32, ptr %13, align 4, !tbaa !9
  %173 = icmp eq i32 %172, 1
  br i1 %173, label %177, label %174

174:                                              ; preds = %171
  %175 = load i32, ptr %13, align 4, !tbaa !9
  %176 = icmp eq i32 %175, -2
  br i1 %176, label %177, label %184

177:                                              ; preds = %174, %171
  %178 = load ptr, ptr %12, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.ScsSolution, ptr %178, i32 0, i32 1
  %180 = load ptr, ptr %179, align 8, !tbaa !16
  %181 = load ptr, ptr %43, align 8, !tbaa !5
  %182 = load i32, ptr %15, align 4, !tbaa !9
  %183 = call double @get_dual_cone_dist(ptr noundef %180, ptr noundef %181, i32 noundef %182)
  store double %183, ptr %42, align 8, !tbaa !20
  br label %184

184:                                              ; preds = %177, %174
  %185 = load ptr, ptr %17, align 8, !tbaa !5
  %186 = load ptr, ptr %18, align 8, !tbaa !5
  %187 = load i32, ptr %15, align 4, !tbaa !9
  %188 = call double @_scs_dot(ptr noundef %185, ptr noundef %186, i32 noundef %187)
  store double %188, ptr %37, align 8, !tbaa !20
  %189 = load ptr, ptr %17, align 8, !tbaa !5
  %190 = load ptr, ptr %20, align 8, !tbaa !5
  %191 = load i32, ptr %15, align 4, !tbaa !9
  %192 = call double @_scs_dot(ptr noundef %189, ptr noundef %190, i32 noundef %191)
  store double %192, ptr %32, align 8, !tbaa !20
  %193 = load ptr, ptr %16, align 8, !tbaa !5
  %194 = load ptr, ptr %19, align 8, !tbaa !5
  %195 = load i32, ptr %14, align 4, !tbaa !9
  %196 = call double @_scs_dot(ptr noundef %193, ptr noundef %194, i32 noundef %195)
  store double %196, ptr %31, align 8, !tbaa !20
  %197 = load double, ptr %33, align 8, !tbaa !20
  %198 = load double, ptr %31, align 8, !tbaa !20
  %199 = fadd double %197, %198
  %200 = load double, ptr %32, align 8, !tbaa !20
  %201 = fadd double %199, %200
  %202 = fcmp olt double %201, 0.000000e+00
  br i1 %202, label %203, label %210

203:                                              ; preds = %184
  %204 = load double, ptr %33, align 8, !tbaa !20
  %205 = load double, ptr %31, align 8, !tbaa !20
  %206 = fadd double %204, %205
  %207 = load double, ptr %32, align 8, !tbaa !20
  %208 = fadd double %206, %207
  %209 = fneg double %208
  br label %216

210:                                              ; preds = %184
  %211 = load double, ptr %33, align 8, !tbaa !20
  %212 = load double, ptr %31, align 8, !tbaa !20
  %213 = fadd double %211, %212
  %214 = load double, ptr %32, align 8, !tbaa !20
  %215 = fadd double %213, %214
  br label %216

216:                                              ; preds = %210, %203
  %217 = phi double [ %209, %203 ], [ %215, %210 ]
  store double %217, ptr %34, align 8, !tbaa !20
  %218 = load double, ptr %33, align 8, !tbaa !20
  %219 = fdiv double %218, 2.000000e+00
  %220 = load double, ptr %31, align 8, !tbaa !20
  %221 = fadd double %219, %220
  store double %221, ptr %35, align 8, !tbaa !20
  %222 = load double, ptr %33, align 8, !tbaa !20
  %223 = fneg double %222
  %224 = fdiv double %223, 2.000000e+00
  %225 = load double, ptr %32, align 8, !tbaa !20
  %226 = fsub double %224, %225
  store double %226, ptr %36, align 8, !tbaa !20
  %227 = load double, ptr %33, align 8, !tbaa !20
  %228 = fcmp olt double %227, 0.000000e+00
  br i1 %228, label %229, label %232

229:                                              ; preds = %216
  %230 = load double, ptr %33, align 8, !tbaa !20
  %231 = fneg double %230
  br label %234

232:                                              ; preds = %216
  %233 = load double, ptr %33, align 8, !tbaa !20
  br label %234

234:                                              ; preds = %232, %229
  %235 = phi double [ %231, %229 ], [ %233, %232 ]
  %236 = load double, ptr %31, align 8, !tbaa !20
  %237 = fcmp olt double %236, 0.000000e+00
  br i1 %237, label %238, label %241

238:                                              ; preds = %234
  %239 = load double, ptr %31, align 8, !tbaa !20
  %240 = fneg double %239
  br label %243

241:                                              ; preds = %234
  %242 = load double, ptr %31, align 8, !tbaa !20
  br label %243

243:                                              ; preds = %241, %238
  %244 = phi double [ %240, %238 ], [ %242, %241 ]
  %245 = fcmp ogt double %235, %244
  br i1 %245, label %246, label %256

246:                                              ; preds = %243
  %247 = load double, ptr %33, align 8, !tbaa !20
  %248 = fcmp olt double %247, 0.000000e+00
  br i1 %248, label %249, label %252

249:                                              ; preds = %246
  %250 = load double, ptr %33, align 8, !tbaa !20
  %251 = fneg double %250
  br label %254

252:                                              ; preds = %246
  %253 = load double, ptr %33, align 8, !tbaa !20
  br label %254

254:                                              ; preds = %252, %249
  %255 = phi double [ %251, %249 ], [ %253, %252 ]
  br label %266

256:                                              ; preds = %243
  %257 = load double, ptr %31, align 8, !tbaa !20
  %258 = fcmp olt double %257, 0.000000e+00
  br i1 %258, label %259, label %262

259:                                              ; preds = %256
  %260 = load double, ptr %31, align 8, !tbaa !20
  %261 = fneg double %260
  br label %264

262:                                              ; preds = %256
  %263 = load double, ptr %31, align 8, !tbaa !20
  br label %264

264:                                              ; preds = %262, %259
  %265 = phi double [ %261, %259 ], [ %263, %262 ]
  br label %266

266:                                              ; preds = %264, %254
  %267 = phi double [ %255, %254 ], [ %265, %264 ]
  %268 = load double, ptr %32, align 8, !tbaa !20
  %269 = fcmp olt double %268, 0.000000e+00
  br i1 %269, label %270, label %273

270:                                              ; preds = %266
  %271 = load double, ptr %32, align 8, !tbaa !20
  %272 = fneg double %271
  br label %275

273:                                              ; preds = %266
  %274 = load double, ptr %32, align 8, !tbaa !20
  br label %275

275:                                              ; preds = %273, %270
  %276 = phi double [ %272, %270 ], [ %274, %273 ]
  %277 = fcmp ogt double %267, %276
  br i1 %277, label %278, label %320

278:                                              ; preds = %275
  %279 = load double, ptr %33, align 8, !tbaa !20
  %280 = fcmp olt double %279, 0.000000e+00
  br i1 %280, label %281, label %284

281:                                              ; preds = %278
  %282 = load double, ptr %33, align 8, !tbaa !20
  %283 = fneg double %282
  br label %286

284:                                              ; preds = %278
  %285 = load double, ptr %33, align 8, !tbaa !20
  br label %286

286:                                              ; preds = %284, %281
  %287 = phi double [ %283, %281 ], [ %285, %284 ]
  %288 = load double, ptr %31, align 8, !tbaa !20
  %289 = fcmp olt double %288, 0.000000e+00
  br i1 %289, label %290, label %293

290:                                              ; preds = %286
  %291 = load double, ptr %31, align 8, !tbaa !20
  %292 = fneg double %291
  br label %295

293:                                              ; preds = %286
  %294 = load double, ptr %31, align 8, !tbaa !20
  br label %295

295:                                              ; preds = %293, %290
  %296 = phi double [ %292, %290 ], [ %294, %293 ]
  %297 = fcmp ogt double %287, %296
  br i1 %297, label %298, label %308

298:                                              ; preds = %295
  %299 = load double, ptr %33, align 8, !tbaa !20
  %300 = fcmp olt double %299, 0.000000e+00
  br i1 %300, label %301, label %304

301:                                              ; preds = %298
  %302 = load double, ptr %33, align 8, !tbaa !20
  %303 = fneg double %302
  br label %306

304:                                              ; preds = %298
  %305 = load double, ptr %33, align 8, !tbaa !20
  br label %306

306:                                              ; preds = %304, %301
  %307 = phi double [ %303, %301 ], [ %305, %304 ]
  br label %318

308:                                              ; preds = %295
  %309 = load double, ptr %31, align 8, !tbaa !20
  %310 = fcmp olt double %309, 0.000000e+00
  br i1 %310, label %311, label %314

311:                                              ; preds = %308
  %312 = load double, ptr %31, align 8, !tbaa !20
  %313 = fneg double %312
  br label %316

314:                                              ; preds = %308
  %315 = load double, ptr %31, align 8, !tbaa !20
  br label %316

316:                                              ; preds = %314, %311
  %317 = phi double [ %313, %311 ], [ %315, %314 ]
  br label %318

318:                                              ; preds = %316, %306
  %319 = phi double [ %307, %306 ], [ %317, %316 ]
  br label %330

320:                                              ; preds = %275
  %321 = load double, ptr %32, align 8, !tbaa !20
  %322 = fcmp olt double %321, 0.000000e+00
  br i1 %322, label %323, label %326

323:                                              ; preds = %320
  %324 = load double, ptr %32, align 8, !tbaa !20
  %325 = fneg double %324
  br label %328

326:                                              ; preds = %320
  %327 = load double, ptr %32, align 8, !tbaa !20
  br label %328

328:                                              ; preds = %326, %323
  %329 = phi double [ %325, %323 ], [ %327, %326 ]
  br label %330

330:                                              ; preds = %328, %318
  %331 = phi double [ %319, %318 ], [ %329, %328 ]
  store double %331, ptr %38, align 8, !tbaa !20
  %332 = load ptr, ptr %20, align 8, !tbaa !5
  %333 = load i32, ptr %15, align 4, !tbaa !9
  %334 = call double @_scs_norm_inf(ptr noundef %332, i32 noundef %333)
  %335 = load ptr, ptr %18, align 8, !tbaa !5
  %336 = load i32, ptr %15, align 4, !tbaa !9
  %337 = call double @_scs_norm_inf(ptr noundef %335, i32 noundef %336)
  %338 = fcmp ogt double %334, %337
  br i1 %338, label %339, label %343

339:                                              ; preds = %330
  %340 = load ptr, ptr %20, align 8, !tbaa !5
  %341 = load i32, ptr %15, align 4, !tbaa !9
  %342 = call double @_scs_norm_inf(ptr noundef %340, i32 noundef %341)
  br label %347

343:                                              ; preds = %330
  %344 = load ptr, ptr %18, align 8, !tbaa !5
  %345 = load i32, ptr %15, align 4, !tbaa !9
  %346 = call double @_scs_norm_inf(ptr noundef %344, i32 noundef %345)
  br label %347

347:                                              ; preds = %343, %339
  %348 = phi double [ %342, %339 ], [ %346, %343 ]
  %349 = load ptr, ptr %22, align 8, !tbaa !5
  %350 = load i32, ptr %15, align 4, !tbaa !9
  %351 = call double @_scs_norm_inf(ptr noundef %349, i32 noundef %350)
  %352 = fcmp ogt double %348, %351
  br i1 %352, label %353, label %371

353:                                              ; preds = %347
  %354 = load ptr, ptr %20, align 8, !tbaa !5
  %355 = load i32, ptr %15, align 4, !tbaa !9
  %356 = call double @_scs_norm_inf(ptr noundef %354, i32 noundef %355)
  %357 = load ptr, ptr %18, align 8, !tbaa !5
  %358 = load i32, ptr %15, align 4, !tbaa !9
  %359 = call double @_scs_norm_inf(ptr noundef %357, i32 noundef %358)
  %360 = fcmp ogt double %356, %359
  br i1 %360, label %361, label %365

361:                                              ; preds = %353
  %362 = load ptr, ptr %20, align 8, !tbaa !5
  %363 = load i32, ptr %15, align 4, !tbaa !9
  %364 = call double @_scs_norm_inf(ptr noundef %362, i32 noundef %363)
  br label %369

365:                                              ; preds = %353
  %366 = load ptr, ptr %18, align 8, !tbaa !5
  %367 = load i32, ptr %15, align 4, !tbaa !9
  %368 = call double @_scs_norm_inf(ptr noundef %366, i32 noundef %367)
  br label %369

369:                                              ; preds = %365, %361
  %370 = phi double [ %364, %361 ], [ %368, %365 ]
  br label %375

371:                                              ; preds = %347
  %372 = load ptr, ptr %22, align 8, !tbaa !5
  %373 = load i32, ptr %15, align 4, !tbaa !9
  %374 = call double @_scs_norm_inf(ptr noundef %372, i32 noundef %373)
  br label %375

375:                                              ; preds = %371, %369
  %376 = phi double [ %370, %369 ], [ %374, %371 ]
  store double %376, ptr %39, align 8, !tbaa !20
  %377 = load ptr, ptr %19, align 8, !tbaa !5
  %378 = load i32, ptr %14, align 4, !tbaa !9
  %379 = call double @_scs_norm_inf(ptr noundef %377, i32 noundef %378)
  %380 = load ptr, ptr %24, align 8, !tbaa !5
  %381 = load i32, ptr %14, align 4, !tbaa !9
  %382 = call double @_scs_norm_inf(ptr noundef %380, i32 noundef %381)
  %383 = fcmp ogt double %379, %382
  br i1 %383, label %384, label %388

384:                                              ; preds = %375
  %385 = load ptr, ptr %19, align 8, !tbaa !5
  %386 = load i32, ptr %14, align 4, !tbaa !9
  %387 = call double @_scs_norm_inf(ptr noundef %385, i32 noundef %386)
  br label %392

388:                                              ; preds = %375
  %389 = load ptr, ptr %24, align 8, !tbaa !5
  %390 = load i32, ptr %14, align 4, !tbaa !9
  %391 = call double @_scs_norm_inf(ptr noundef %389, i32 noundef %390)
  br label %392

392:                                              ; preds = %388, %384
  %393 = phi double [ %387, %384 ], [ %391, %388 ]
  %394 = load ptr, ptr %25, align 8, !tbaa !5
  %395 = load i32, ptr %14, align 4, !tbaa !9
  %396 = call double @_scs_norm_inf(ptr noundef %394, i32 noundef %395)
  %397 = fcmp ogt double %393, %396
  br i1 %397, label %398, label %416

398:                                              ; preds = %392
  %399 = load ptr, ptr %19, align 8, !tbaa !5
  %400 = load i32, ptr %14, align 4, !tbaa !9
  %401 = call double @_scs_norm_inf(ptr noundef %399, i32 noundef %400)
  %402 = load ptr, ptr %24, align 8, !tbaa !5
  %403 = load i32, ptr %14, align 4, !tbaa !9
  %404 = call double @_scs_norm_inf(ptr noundef %402, i32 noundef %403)
  %405 = fcmp ogt double %401, %404
  br i1 %405, label %406, label %410

406:                                              ; preds = %398
  %407 = load ptr, ptr %19, align 8, !tbaa !5
  %408 = load i32, ptr %14, align 4, !tbaa !9
  %409 = call double @_scs_norm_inf(ptr noundef %407, i32 noundef %408)
  br label %414

410:                                              ; preds = %398
  %411 = load ptr, ptr %24, align 8, !tbaa !5
  %412 = load i32, ptr %14, align 4, !tbaa !9
  %413 = call double @_scs_norm_inf(ptr noundef %411, i32 noundef %412)
  br label %414

414:                                              ; preds = %410, %406
  %415 = phi double [ %409, %406 ], [ %413, %410 ]
  br label %420

416:                                              ; preds = %392
  %417 = load ptr, ptr %25, align 8, !tbaa !5
  %418 = load i32, ptr %14, align 4, !tbaa !9
  %419 = call double @_scs_norm_inf(ptr noundef %417, i32 noundef %418)
  br label %420

420:                                              ; preds = %416, %414
  %421 = phi double [ %415, %414 ], [ %419, %416 ]
  store double %421, ptr %40, align 8, !tbaa !20
  %422 = load ptr, ptr %21, align 8, !tbaa !5
  call void @free(ptr noundef %422) #8
  %423 = load ptr, ptr %23, align 8, !tbaa !5
  call void @free(ptr noundef %423) #8
  %424 = load ptr, ptr %24, align 8, !tbaa !5
  call void @free(ptr noundef %424) #8
  %425 = load ptr, ptr %22, align 8, !tbaa !5
  call void @free(ptr noundef %425) #8
  %426 = load ptr, ptr %25, align 8, !tbaa !5
  call void @free(ptr noundef %426) #8
  %427 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_scs_finish_cone(ptr noundef %427)
  %428 = load i32, ptr %13, align 4, !tbaa !9
  %429 = icmp eq i32 %428, 1
  br i1 %429, label %430, label %928

430:                                              ; preds = %420
  br label %431

431:                                              ; preds = %430
  %432 = load double, ptr %26, align 8, !tbaa !20
  %433 = load ptr, ptr %11, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.ScsInfo, ptr %433, i32 0, i32 7
  %435 = load double, ptr %434, align 8, !tbaa !24
  %436 = fsub double %432, %435
  %437 = fcmp olt double %436, 0.000000e+00
  br i1 %437, label %438, label %445

438:                                              ; preds = %431
  %439 = load double, ptr %26, align 8, !tbaa !20
  %440 = load ptr, ptr %11, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.ScsInfo, ptr %440, i32 0, i32 7
  %442 = load double, ptr %441, align 8, !tbaa !24
  %443 = fsub double %439, %442
  %444 = fneg double %443
  br label %451

445:                                              ; preds = %431
  %446 = load double, ptr %26, align 8, !tbaa !20
  %447 = load ptr, ptr %11, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.ScsInfo, ptr %447, i32 0, i32 7
  %449 = load double, ptr %448, align 8, !tbaa !24
  %450 = fsub double %446, %449
  br label %451

451:                                              ; preds = %445, %438
  %452 = phi double [ %444, %438 ], [ %450, %445 ]
  %453 = fcmp ogt double %452, 1.000000e-10
  br i1 %453, label %454, label %477

454:                                              ; preds = %451
  %455 = load double, ptr %26, align 8, !tbaa !20
  %456 = load ptr, ptr %11, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.ScsInfo, ptr %456, i32 0, i32 7
  %458 = load double, ptr %457, align 8, !tbaa !24
  %459 = fsub double %455, %458
  %460 = fcmp olt double %459, 0.000000e+00
  br i1 %460, label %461, label %468

461:                                              ; preds = %454
  %462 = load double, ptr %26, align 8, !tbaa !20
  %463 = load ptr, ptr %11, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.ScsInfo, ptr %463, i32 0, i32 7
  %465 = load double, ptr %464, align 8, !tbaa !24
  %466 = fsub double %462, %465
  %467 = fneg double %466
  br label %474

468:                                              ; preds = %454
  %469 = load double, ptr %26, align 8, !tbaa !20
  %470 = load ptr, ptr %11, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.ScsInfo, ptr %470, i32 0, i32 7
  %472 = load double, ptr %471, align 8, !tbaa !24
  %473 = fsub double %469, %472
  br label %474

474:                                              ; preds = %468, %461
  %475 = phi double [ %467, %461 ], [ %473, %468 ]
  %476 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.1, double noundef %475, double noundef 1.000000e-10)
  store ptr @.str.1, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

477:                                              ; preds = %451
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  br label %480

480:                                              ; preds = %479
  %481 = load double, ptr %27, align 8, !tbaa !20
  %482 = load ptr, ptr %11, align 8, !tbaa !5
  %483 = getelementptr inbounds %struct.ScsInfo, ptr %482, i32 0, i32 8
  %484 = load double, ptr %483, align 8, !tbaa !26
  %485 = fsub double %481, %484
  %486 = fcmp olt double %485, 0.000000e+00
  br i1 %486, label %487, label %494

487:                                              ; preds = %480
  %488 = load double, ptr %27, align 8, !tbaa !20
  %489 = load ptr, ptr %11, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.ScsInfo, ptr %489, i32 0, i32 8
  %491 = load double, ptr %490, align 8, !tbaa !26
  %492 = fsub double %488, %491
  %493 = fneg double %492
  br label %500

494:                                              ; preds = %480
  %495 = load double, ptr %27, align 8, !tbaa !20
  %496 = load ptr, ptr %11, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.ScsInfo, ptr %496, i32 0, i32 8
  %498 = load double, ptr %497, align 8, !tbaa !26
  %499 = fsub double %495, %498
  br label %500

500:                                              ; preds = %494, %487
  %501 = phi double [ %493, %487 ], [ %499, %494 ]
  %502 = fcmp ogt double %501, 1.000000e-10
  br i1 %502, label %503, label %526

503:                                              ; preds = %500
  %504 = load double, ptr %27, align 8, !tbaa !20
  %505 = load ptr, ptr %11, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.ScsInfo, ptr %505, i32 0, i32 8
  %507 = load double, ptr %506, align 8, !tbaa !26
  %508 = fsub double %504, %507
  %509 = fcmp olt double %508, 0.000000e+00
  br i1 %509, label %510, label %517

510:                                              ; preds = %503
  %511 = load double, ptr %27, align 8, !tbaa !20
  %512 = load ptr, ptr %11, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.ScsInfo, ptr %512, i32 0, i32 8
  %514 = load double, ptr %513, align 8, !tbaa !26
  %515 = fsub double %511, %514
  %516 = fneg double %515
  br label %523

517:                                              ; preds = %503
  %518 = load double, ptr %27, align 8, !tbaa !20
  %519 = load ptr, ptr %11, align 8, !tbaa !5
  %520 = getelementptr inbounds %struct.ScsInfo, ptr %519, i32 0, i32 8
  %521 = load double, ptr %520, align 8, !tbaa !26
  %522 = fsub double %518, %521
  br label %523

523:                                              ; preds = %517, %510
  %524 = phi double [ %516, %510 ], [ %522, %517 ]
  %525 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.2, double noundef %524, double noundef 1.000000e-10)
  store ptr @.str.2, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

526:                                              ; preds = %500
  br label %527

527:                                              ; preds = %526
  br label %528

528:                                              ; preds = %527
  br label %529

529:                                              ; preds = %528
  %530 = load double, ptr %34, align 8, !tbaa !20
  %531 = load ptr, ptr %11, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.ScsInfo, ptr %531, i32 0, i32 9
  %533 = load double, ptr %532, align 8, !tbaa !27
  %534 = fsub double %530, %533
  %535 = fcmp olt double %534, 0.000000e+00
  br i1 %535, label %536, label %543

536:                                              ; preds = %529
  %537 = load double, ptr %34, align 8, !tbaa !20
  %538 = load ptr, ptr %11, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.ScsInfo, ptr %538, i32 0, i32 9
  %540 = load double, ptr %539, align 8, !tbaa !27
  %541 = fsub double %537, %540
  %542 = fneg double %541
  br label %549

543:                                              ; preds = %529
  %544 = load double, ptr %34, align 8, !tbaa !20
  %545 = load ptr, ptr %11, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.ScsInfo, ptr %545, i32 0, i32 9
  %547 = load double, ptr %546, align 8, !tbaa !27
  %548 = fsub double %544, %547
  br label %549

549:                                              ; preds = %543, %536
  %550 = phi double [ %542, %536 ], [ %548, %543 ]
  %551 = load double, ptr %34, align 8, !tbaa !20
  %552 = fcmp olt double %551, 0.000000e+00
  br i1 %552, label %553, label %556

553:                                              ; preds = %549
  %554 = load double, ptr %34, align 8, !tbaa !20
  %555 = fneg double %554
  br label %558

556:                                              ; preds = %549
  %557 = load double, ptr %34, align 8, !tbaa !20
  br label %558

558:                                              ; preds = %556, %553
  %559 = phi double [ %555, %553 ], [ %557, %556 ]
  %560 = fadd double 1.000000e+00, %559
  %561 = fmul double 0x3E7AD7F29ABCAF48, %560
  %562 = fcmp ogt double %550, %561
  br i1 %562, label %563, label %597

563:                                              ; preds = %558
  %564 = load double, ptr %34, align 8, !tbaa !20
  %565 = load ptr, ptr %11, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.ScsInfo, ptr %565, i32 0, i32 9
  %567 = load double, ptr %566, align 8, !tbaa !27
  %568 = fsub double %564, %567
  %569 = fcmp olt double %568, 0.000000e+00
  br i1 %569, label %570, label %577

570:                                              ; preds = %563
  %571 = load double, ptr %34, align 8, !tbaa !20
  %572 = load ptr, ptr %11, align 8, !tbaa !5
  %573 = getelementptr inbounds %struct.ScsInfo, ptr %572, i32 0, i32 9
  %574 = load double, ptr %573, align 8, !tbaa !27
  %575 = fsub double %571, %574
  %576 = fneg double %575
  br label %583

577:                                              ; preds = %563
  %578 = load double, ptr %34, align 8, !tbaa !20
  %579 = load ptr, ptr %11, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.ScsInfo, ptr %579, i32 0, i32 9
  %581 = load double, ptr %580, align 8, !tbaa !27
  %582 = fsub double %578, %581
  br label %583

583:                                              ; preds = %577, %570
  %584 = phi double [ %576, %570 ], [ %582, %577 ]
  %585 = load double, ptr %34, align 8, !tbaa !20
  %586 = fcmp olt double %585, 0.000000e+00
  br i1 %586, label %587, label %590

587:                                              ; preds = %583
  %588 = load double, ptr %34, align 8, !tbaa !20
  %589 = fneg double %588
  br label %592

590:                                              ; preds = %583
  %591 = load double, ptr %34, align 8, !tbaa !20
  br label %592

592:                                              ; preds = %590, %587
  %593 = phi double [ %589, %587 ], [ %591, %590 ]
  %594 = fadd double 1.000000e+00, %593
  %595 = fmul double 0x3E7AD7F29ABCAF48, %594
  %596 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.3, double noundef %584, double noundef %595)
  store ptr @.str.3, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

597:                                              ; preds = %558
  br label %598

598:                                              ; preds = %597
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  %601 = load double, ptr %35, align 8, !tbaa !20
  %602 = load ptr, ptr %11, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.ScsInfo, ptr %602, i32 0, i32 5
  %604 = load double, ptr %603, align 8, !tbaa !28
  %605 = fsub double %601, %604
  %606 = fcmp olt double %605, 0.000000e+00
  br i1 %606, label %607, label %614

607:                                              ; preds = %600
  %608 = load double, ptr %35, align 8, !tbaa !20
  %609 = load ptr, ptr %11, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ScsInfo, ptr %609, i32 0, i32 5
  %611 = load double, ptr %610, align 8, !tbaa !28
  %612 = fsub double %608, %611
  %613 = fneg double %612
  br label %620

614:                                              ; preds = %600
  %615 = load double, ptr %35, align 8, !tbaa !20
  %616 = load ptr, ptr %11, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ScsInfo, ptr %616, i32 0, i32 5
  %618 = load double, ptr %617, align 8, !tbaa !28
  %619 = fsub double %615, %618
  br label %620

620:                                              ; preds = %614, %607
  %621 = phi double [ %613, %607 ], [ %619, %614 ]
  %622 = load double, ptr %35, align 8, !tbaa !20
  %623 = fcmp olt double %622, 0.000000e+00
  br i1 %623, label %624, label %627

624:                                              ; preds = %620
  %625 = load double, ptr %35, align 8, !tbaa !20
  %626 = fneg double %625
  br label %629

627:                                              ; preds = %620
  %628 = load double, ptr %35, align 8, !tbaa !20
  br label %629

629:                                              ; preds = %627, %624
  %630 = phi double [ %626, %624 ], [ %628, %627 ]
  %631 = fadd double 1.000000e+00, %630
  %632 = fmul double 1.000000e-09, %631
  %633 = fcmp ogt double %621, %632
  br i1 %633, label %634, label %668

634:                                              ; preds = %629
  %635 = load double, ptr %35, align 8, !tbaa !20
  %636 = load ptr, ptr %11, align 8, !tbaa !5
  %637 = getelementptr inbounds %struct.ScsInfo, ptr %636, i32 0, i32 5
  %638 = load double, ptr %637, align 8, !tbaa !28
  %639 = fsub double %635, %638
  %640 = fcmp olt double %639, 0.000000e+00
  br i1 %640, label %641, label %648

641:                                              ; preds = %634
  %642 = load double, ptr %35, align 8, !tbaa !20
  %643 = load ptr, ptr %11, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.ScsInfo, ptr %643, i32 0, i32 5
  %645 = load double, ptr %644, align 8, !tbaa !28
  %646 = fsub double %642, %645
  %647 = fneg double %646
  br label %654

648:                                              ; preds = %634
  %649 = load double, ptr %35, align 8, !tbaa !20
  %650 = load ptr, ptr %11, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.ScsInfo, ptr %650, i32 0, i32 5
  %652 = load double, ptr %651, align 8, !tbaa !28
  %653 = fsub double %649, %652
  br label %654

654:                                              ; preds = %648, %641
  %655 = phi double [ %647, %641 ], [ %653, %648 ]
  %656 = load double, ptr %35, align 8, !tbaa !20
  %657 = fcmp olt double %656, 0.000000e+00
  br i1 %657, label %658, label %661

658:                                              ; preds = %654
  %659 = load double, ptr %35, align 8, !tbaa !20
  %660 = fneg double %659
  br label %663

661:                                              ; preds = %654
  %662 = load double, ptr %35, align 8, !tbaa !20
  br label %663

663:                                              ; preds = %661, %658
  %664 = phi double [ %660, %658 ], [ %662, %661 ]
  %665 = fadd double 1.000000e+00, %664
  %666 = fmul double 1.000000e-09, %665
  %667 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.4, double noundef %655, double noundef %666)
  store ptr @.str.4, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

668:                                              ; preds = %629
  br label %669

669:                                              ; preds = %668
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670
  %672 = load double, ptr %36, align 8, !tbaa !20
  %673 = load ptr, ptr %11, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.ScsInfo, ptr %673, i32 0, i32 6
  %675 = load double, ptr %674, align 8, !tbaa !29
  %676 = fsub double %672, %675
  %677 = fcmp olt double %676, 0.000000e+00
  br i1 %677, label %678, label %685

678:                                              ; preds = %671
  %679 = load double, ptr %36, align 8, !tbaa !20
  %680 = load ptr, ptr %11, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.ScsInfo, ptr %680, i32 0, i32 6
  %682 = load double, ptr %681, align 8, !tbaa !29
  %683 = fsub double %679, %682
  %684 = fneg double %683
  br label %691

685:                                              ; preds = %671
  %686 = load double, ptr %36, align 8, !tbaa !20
  %687 = load ptr, ptr %11, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.ScsInfo, ptr %687, i32 0, i32 6
  %689 = load double, ptr %688, align 8, !tbaa !29
  %690 = fsub double %686, %689
  br label %691

691:                                              ; preds = %685, %678
  %692 = phi double [ %684, %678 ], [ %690, %685 ]
  %693 = load double, ptr %36, align 8, !tbaa !20
  %694 = fcmp olt double %693, 0.000000e+00
  br i1 %694, label %695, label %698

695:                                              ; preds = %691
  %696 = load double, ptr %36, align 8, !tbaa !20
  %697 = fneg double %696
  br label %700

698:                                              ; preds = %691
  %699 = load double, ptr %36, align 8, !tbaa !20
  br label %700

700:                                              ; preds = %698, %695
  %701 = phi double [ %697, %695 ], [ %699, %698 ]
  %702 = fadd double 1.000000e+00, %701
  %703 = fmul double 1.000000e-09, %702
  %704 = fcmp ogt double %692, %703
  br i1 %704, label %705, label %739

705:                                              ; preds = %700
  %706 = load double, ptr %36, align 8, !tbaa !20
  %707 = load ptr, ptr %11, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.ScsInfo, ptr %707, i32 0, i32 6
  %709 = load double, ptr %708, align 8, !tbaa !29
  %710 = fsub double %706, %709
  %711 = fcmp olt double %710, 0.000000e+00
  br i1 %711, label %712, label %719

712:                                              ; preds = %705
  %713 = load double, ptr %36, align 8, !tbaa !20
  %714 = load ptr, ptr %11, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.ScsInfo, ptr %714, i32 0, i32 6
  %716 = load double, ptr %715, align 8, !tbaa !29
  %717 = fsub double %713, %716
  %718 = fneg double %717
  br label %725

719:                                              ; preds = %705
  %720 = load double, ptr %36, align 8, !tbaa !20
  %721 = load ptr, ptr %11, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.ScsInfo, ptr %721, i32 0, i32 6
  %723 = load double, ptr %722, align 8, !tbaa !29
  %724 = fsub double %720, %723
  br label %725

725:                                              ; preds = %719, %712
  %726 = phi double [ %718, %712 ], [ %724, %719 ]
  %727 = load double, ptr %36, align 8, !tbaa !20
  %728 = fcmp olt double %727, 0.000000e+00
  br i1 %728, label %729, label %732

729:                                              ; preds = %725
  %730 = load double, ptr %36, align 8, !tbaa !20
  %731 = fneg double %730
  br label %734

732:                                              ; preds = %725
  %733 = load double, ptr %36, align 8, !tbaa !20
  br label %734

734:                                              ; preds = %732, %729
  %735 = phi double [ %731, %729 ], [ %733, %732 ]
  %736 = fadd double 1.000000e+00, %735
  %737 = fmul double 1.000000e-09, %736
  %738 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.5, double noundef %726, double noundef %737)
  store ptr @.str.5, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

739:                                              ; preds = %700
  br label %740

740:                                              ; preds = %739
  br label %741

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741
  %743 = load double, ptr %37, align 8, !tbaa !20
  %744 = fcmp olt double %743, 0.000000e+00
  br i1 %744, label %745, label %748

745:                                              ; preds = %742
  %746 = load double, ptr %37, align 8, !tbaa !20
  %747 = fneg double %746
  br label %750

748:                                              ; preds = %742
  %749 = load double, ptr %37, align 8, !tbaa !20
  br label %750

750:                                              ; preds = %748, %745
  %751 = phi double [ %747, %745 ], [ %749, %748 ]
  %752 = load ptr, ptr %18, align 8, !tbaa !5
  %753 = load i32, ptr %15, align 4, !tbaa !9
  %754 = call double @_scs_norm_inf(ptr noundef %752, i32 noundef %753)
  %755 = load ptr, ptr %17, align 8, !tbaa !5
  %756 = load i32, ptr %15, align 4, !tbaa !9
  %757 = call double @_scs_norm_inf(ptr noundef %755, i32 noundef %756)
  %758 = fcmp ogt double %754, %757
  br i1 %758, label %759, label %763

759:                                              ; preds = %750
  %760 = load ptr, ptr %18, align 8, !tbaa !5
  %761 = load i32, ptr %15, align 4, !tbaa !9
  %762 = call double @_scs_norm_inf(ptr noundef %760, i32 noundef %761)
  br label %767

763:                                              ; preds = %750
  %764 = load ptr, ptr %17, align 8, !tbaa !5
  %765 = load i32, ptr %15, align 4, !tbaa !9
  %766 = call double @_scs_norm_inf(ptr noundef %764, i32 noundef %765)
  br label %767

767:                                              ; preds = %763, %759
  %768 = phi double [ %762, %759 ], [ %766, %763 ]
  %769 = fmul double 5.000000e-08, %768
  %770 = fcmp ogt double %751, %769
  br i1 %770, label %771, label %800

771:                                              ; preds = %767
  %772 = load double, ptr %37, align 8, !tbaa !20
  %773 = fcmp olt double %772, 0.000000e+00
  br i1 %773, label %774, label %777

774:                                              ; preds = %771
  %775 = load double, ptr %37, align 8, !tbaa !20
  %776 = fneg double %775
  br label %779

777:                                              ; preds = %771
  %778 = load double, ptr %37, align 8, !tbaa !20
  br label %779

779:                                              ; preds = %777, %774
  %780 = phi double [ %776, %774 ], [ %778, %777 ]
  %781 = load ptr, ptr %18, align 8, !tbaa !5
  %782 = load i32, ptr %15, align 4, !tbaa !9
  %783 = call double @_scs_norm_inf(ptr noundef %781, i32 noundef %782)
  %784 = load ptr, ptr %17, align 8, !tbaa !5
  %785 = load i32, ptr %15, align 4, !tbaa !9
  %786 = call double @_scs_norm_inf(ptr noundef %784, i32 noundef %785)
  %787 = fcmp ogt double %783, %786
  br i1 %787, label %788, label %792

788:                                              ; preds = %779
  %789 = load ptr, ptr %18, align 8, !tbaa !5
  %790 = load i32, ptr %15, align 4, !tbaa !9
  %791 = call double @_scs_norm_inf(ptr noundef %789, i32 noundef %790)
  br label %796

792:                                              ; preds = %779
  %793 = load ptr, ptr %17, align 8, !tbaa !5
  %794 = load i32, ptr %15, align 4, !tbaa !9
  %795 = call double @_scs_norm_inf(ptr noundef %793, i32 noundef %794)
  br label %796

796:                                              ; preds = %792, %788
  %797 = phi double [ %791, %788 ], [ %795, %792 ]
  %798 = fmul double 5.000000e-08, %797
  %799 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.6, double noundef %780, double noundef %798)
  store ptr @.str.6, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

800:                                              ; preds = %767
  br label %801

801:                                              ; preds = %800
  br label %802

802:                                              ; preds = %801
  br label %803

803:                                              ; preds = %802
  %804 = load double, ptr %41, align 8, !tbaa !20
  %805 = fcmp olt double %804, 0.000000e+00
  br i1 %805, label %806, label %809

806:                                              ; preds = %803
  %807 = load double, ptr %41, align 8, !tbaa !20
  %808 = fneg double %807
  br label %811

809:                                              ; preds = %803
  %810 = load double, ptr %41, align 8, !tbaa !20
  br label %811

811:                                              ; preds = %809, %806
  %812 = phi double [ %808, %806 ], [ %810, %809 ]
  %813 = fcmp ogt double %812, 1.000000e-05
  br i1 %813, label %814, label %825

814:                                              ; preds = %811
  %815 = load double, ptr %41, align 8, !tbaa !20
  %816 = fcmp olt double %815, 0.000000e+00
  br i1 %816, label %817, label %820

817:                                              ; preds = %814
  %818 = load double, ptr %41, align 8, !tbaa !20
  %819 = fneg double %818
  br label %822

820:                                              ; preds = %814
  %821 = load double, ptr %41, align 8, !tbaa !20
  br label %822

822:                                              ; preds = %820, %817
  %823 = phi double [ %819, %817 ], [ %821, %820 ]
  %824 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.7, double noundef %823, double noundef 1.000000e-05)
  store ptr @.str.7, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

825:                                              ; preds = %811
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827
  %829 = load double, ptr %42, align 8, !tbaa !20
  %830 = fcmp olt double %829, 0.000000e+00
  br i1 %830, label %831, label %834

831:                                              ; preds = %828
  %832 = load double, ptr %42, align 8, !tbaa !20
  %833 = fneg double %832
  br label %836

834:                                              ; preds = %828
  %835 = load double, ptr %42, align 8, !tbaa !20
  br label %836

836:                                              ; preds = %834, %831
  %837 = phi double [ %833, %831 ], [ %835, %834 ]
  %838 = fcmp ogt double %837, 1.000000e-05
  br i1 %838, label %839, label %850

839:                                              ; preds = %836
  %840 = load double, ptr %42, align 8, !tbaa !20
  %841 = fcmp olt double %840, 0.000000e+00
  br i1 %841, label %842, label %845

842:                                              ; preds = %839
  %843 = load double, ptr %42, align 8, !tbaa !20
  %844 = fneg double %843
  br label %847

845:                                              ; preds = %839
  %846 = load double, ptr %42, align 8, !tbaa !20
  br label %847

847:                                              ; preds = %845, %842
  %848 = phi double [ %844, %842 ], [ %846, %845 ]
  %849 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.8, double noundef %848, double noundef 1.000000e-05)
  store ptr @.str.8, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

850:                                              ; preds = %836
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852
  %854 = load double, ptr %26, align 8, !tbaa !20
  %855 = load ptr, ptr %10, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.ScsSettings, ptr %855, i32 0, i32 5
  %857 = load double, ptr %856, align 8, !tbaa !30
  %858 = load ptr, ptr %10, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.ScsSettings, ptr %858, i32 0, i32 6
  %860 = load double, ptr %859, align 8, !tbaa !32
  %861 = load double, ptr %39, align 8, !tbaa !20
  %862 = call double @llvm.fmuladd.f64(double %860, double %861, double %857)
  %863 = fcmp ogt double %854, %862
  br i1 %863, label %864, label %875

864:                                              ; preds = %853
  %865 = load double, ptr %26, align 8, !tbaa !20
  %866 = load ptr, ptr %10, align 8, !tbaa !5
  %867 = getelementptr inbounds %struct.ScsSettings, ptr %866, i32 0, i32 5
  %868 = load double, ptr %867, align 8, !tbaa !30
  %869 = load ptr, ptr %10, align 8, !tbaa !5
  %870 = getelementptr inbounds %struct.ScsSettings, ptr %869, i32 0, i32 6
  %871 = load double, ptr %870, align 8, !tbaa !32
  %872 = load double, ptr %39, align 8, !tbaa !20
  %873 = call double @llvm.fmuladd.f64(double %871, double %872, double %868)
  %874 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.9, double noundef %865, double noundef %873)
  store ptr @.str.9, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

875:                                              ; preds = %853
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876
  br label %878

878:                                              ; preds = %877
  %879 = load double, ptr %27, align 8, !tbaa !20
  %880 = load ptr, ptr %10, align 8, !tbaa !5
  %881 = getelementptr inbounds %struct.ScsSettings, ptr %880, i32 0, i32 5
  %882 = load double, ptr %881, align 8, !tbaa !30
  %883 = load ptr, ptr %10, align 8, !tbaa !5
  %884 = getelementptr inbounds %struct.ScsSettings, ptr %883, i32 0, i32 6
  %885 = load double, ptr %884, align 8, !tbaa !32
  %886 = load double, ptr %40, align 8, !tbaa !20
  %887 = call double @llvm.fmuladd.f64(double %885, double %886, double %882)
  %888 = fcmp ogt double %879, %887
  br i1 %888, label %889, label %900

889:                                              ; preds = %878
  %890 = load double, ptr %27, align 8, !tbaa !20
  %891 = load ptr, ptr %10, align 8, !tbaa !5
  %892 = getelementptr inbounds %struct.ScsSettings, ptr %891, i32 0, i32 5
  %893 = load double, ptr %892, align 8, !tbaa !30
  %894 = load ptr, ptr %10, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.ScsSettings, ptr %894, i32 0, i32 6
  %896 = load double, ptr %895, align 8, !tbaa !32
  %897 = load double, ptr %40, align 8, !tbaa !20
  %898 = call double @llvm.fmuladd.f64(double %896, double %897, double %893)
  %899 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.10, double noundef %890, double noundef %898)
  store ptr @.str.10, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

900:                                              ; preds = %878
  br label %901

901:                                              ; preds = %900
  br label %902

902:                                              ; preds = %901
  br label %903

903:                                              ; preds = %902
  %904 = load double, ptr %34, align 8, !tbaa !20
  %905 = load ptr, ptr %10, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.ScsSettings, ptr %905, i32 0, i32 5
  %907 = load double, ptr %906, align 8, !tbaa !30
  %908 = load ptr, ptr %10, align 8, !tbaa !5
  %909 = getelementptr inbounds %struct.ScsSettings, ptr %908, i32 0, i32 6
  %910 = load double, ptr %909, align 8, !tbaa !32
  %911 = load double, ptr %38, align 8, !tbaa !20
  %912 = call double @llvm.fmuladd.f64(double %910, double %911, double %907)
  %913 = fcmp ogt double %904, %912
  br i1 %913, label %914, label %925

914:                                              ; preds = %903
  %915 = load double, ptr %34, align 8, !tbaa !20
  %916 = load ptr, ptr %10, align 8, !tbaa !5
  %917 = getelementptr inbounds %struct.ScsSettings, ptr %916, i32 0, i32 5
  %918 = load double, ptr %917, align 8, !tbaa !30
  %919 = load ptr, ptr %10, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.ScsSettings, ptr %919, i32 0, i32 6
  %921 = load double, ptr %920, align 8, !tbaa !32
  %922 = load double, ptr %38, align 8, !tbaa !20
  %923 = call double @llvm.fmuladd.f64(double %921, double %922, double %918)
  %924 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.11, double noundef %915, double noundef %923)
  store ptr @.str.11, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

925:                                              ; preds = %903
  br label %926

926:                                              ; preds = %925
  br label %927

927:                                              ; preds = %926
  br label %1243

928:                                              ; preds = %420
  %929 = load i32, ptr %13, align 4, !tbaa !9
  %930 = icmp eq i32 %929, -2
  br i1 %930, label %931, label %1052

931:                                              ; preds = %928
  br label %932

932:                                              ; preds = %931
  %933 = load double, ptr %28, align 8, !tbaa !20
  %934 = load ptr, ptr %11, align 8, !tbaa !5
  %935 = getelementptr inbounds %struct.ScsInfo, ptr %934, i32 0, i32 10
  %936 = load double, ptr %935, align 8, !tbaa !33
  %937 = fsub double %933, %936
  %938 = fcmp olt double %937, 0.000000e+00
  br i1 %938, label %939, label %946

939:                                              ; preds = %932
  %940 = load double, ptr %28, align 8, !tbaa !20
  %941 = load ptr, ptr %11, align 8, !tbaa !5
  %942 = getelementptr inbounds %struct.ScsInfo, ptr %941, i32 0, i32 10
  %943 = load double, ptr %942, align 8, !tbaa !33
  %944 = fsub double %940, %943
  %945 = fneg double %944
  br label %952

946:                                              ; preds = %932
  %947 = load double, ptr %28, align 8, !tbaa !20
  %948 = load ptr, ptr %11, align 8, !tbaa !5
  %949 = getelementptr inbounds %struct.ScsInfo, ptr %948, i32 0, i32 10
  %950 = load double, ptr %949, align 8, !tbaa !33
  %951 = fsub double %947, %950
  br label %952

952:                                              ; preds = %946, %939
  %953 = phi double [ %945, %939 ], [ %951, %946 ]
  %954 = fcmp ogt double %953, 1.000000e-08
  br i1 %954, label %955, label %978

955:                                              ; preds = %952
  %956 = load double, ptr %28, align 8, !tbaa !20
  %957 = load ptr, ptr %11, align 8, !tbaa !5
  %958 = getelementptr inbounds %struct.ScsInfo, ptr %957, i32 0, i32 10
  %959 = load double, ptr %958, align 8, !tbaa !33
  %960 = fsub double %956, %959
  %961 = fcmp olt double %960, 0.000000e+00
  br i1 %961, label %962, label %969

962:                                              ; preds = %955
  %963 = load double, ptr %28, align 8, !tbaa !20
  %964 = load ptr, ptr %11, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.ScsInfo, ptr %964, i32 0, i32 10
  %966 = load double, ptr %965, align 8, !tbaa !33
  %967 = fsub double %963, %966
  %968 = fneg double %967
  br label %975

969:                                              ; preds = %955
  %970 = load double, ptr %28, align 8, !tbaa !20
  %971 = load ptr, ptr %11, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.ScsInfo, ptr %971, i32 0, i32 10
  %973 = load double, ptr %972, align 8, !tbaa !33
  %974 = fsub double %970, %973
  br label %975

975:                                              ; preds = %969, %962
  %976 = phi double [ %968, %962 ], [ %974, %969 ]
  %977 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.12, double noundef %976, double noundef 1.000000e-08)
  store ptr @.str.12, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

978:                                              ; preds = %952
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  br label %981

981:                                              ; preds = %980
  %982 = load double, ptr %32, align 8, !tbaa !20
  %983 = fadd double %982, 1.000000e+00
  %984 = fcmp olt double %983, 0.000000e+00
  br i1 %984, label %985, label %989

985:                                              ; preds = %981
  %986 = load double, ptr %32, align 8, !tbaa !20
  %987 = fadd double %986, 1.000000e+00
  %988 = fneg double %987
  br label %992

989:                                              ; preds = %981
  %990 = load double, ptr %32, align 8, !tbaa !20
  %991 = fadd double %990, 1.000000e+00
  br label %992

992:                                              ; preds = %989, %985
  %993 = phi double [ %988, %985 ], [ %991, %989 ]
  %994 = fcmp ogt double %993, 0x3D719799812DEA11
  br i1 %994, label %995, label %1009

995:                                              ; preds = %992
  %996 = load double, ptr %32, align 8, !tbaa !20
  %997 = fadd double %996, 1.000000e+00
  %998 = fcmp olt double %997, 0.000000e+00
  br i1 %998, label %999, label %1003

999:                                              ; preds = %995
  %1000 = load double, ptr %32, align 8, !tbaa !20
  %1001 = fadd double %1000, 1.000000e+00
  %1002 = fneg double %1001
  br label %1006

1003:                                             ; preds = %995
  %1004 = load double, ptr %32, align 8, !tbaa !20
  %1005 = fadd double %1004, 1.000000e+00
  br label %1006

1006:                                             ; preds = %1003, %999
  %1007 = phi double [ %1002, %999 ], [ %1005, %1003 ]
  %1008 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.13, double noundef %1007, double noundef 0x3D719799812DEA11)
  store ptr @.str.13, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1009:                                             ; preds = %992
  br label %1010

1010:                                             ; preds = %1009
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

1012:                                             ; preds = %1011
  %1013 = load double, ptr %42, align 8, !tbaa !20
  %1014 = fcmp olt double %1013, 0.000000e+00
  br i1 %1014, label %1015, label %1018

1015:                                             ; preds = %1012
  %1016 = load double, ptr %42, align 8, !tbaa !20
  %1017 = fneg double %1016
  br label %1020

1018:                                             ; preds = %1012
  %1019 = load double, ptr %42, align 8, !tbaa !20
  br label %1020

1020:                                             ; preds = %1018, %1015
  %1021 = phi double [ %1017, %1015 ], [ %1019, %1018 ]
  %1022 = fcmp ogt double %1021, 1.000000e-05
  br i1 %1022, label %1023, label %1034

1023:                                             ; preds = %1020
  %1024 = load double, ptr %42, align 8, !tbaa !20
  %1025 = fcmp olt double %1024, 0.000000e+00
  br i1 %1025, label %1026, label %1029

1026:                                             ; preds = %1023
  %1027 = load double, ptr %42, align 8, !tbaa !20
  %1028 = fneg double %1027
  br label %1031

1029:                                             ; preds = %1023
  %1030 = load double, ptr %42, align 8, !tbaa !20
  br label %1031

1031:                                             ; preds = %1029, %1026
  %1032 = phi double [ %1028, %1026 ], [ %1030, %1029 ]
  %1033 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.8, double noundef %1032, double noundef 1.000000e-05)
  store ptr @.str.8, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1034:                                             ; preds = %1020
  br label %1035

1035:                                             ; preds = %1034
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036
  %1038 = load double, ptr %28, align 8, !tbaa !20
  %1039 = load ptr, ptr %10, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.ScsSettings, ptr %1039, i32 0, i32 7
  %1041 = load double, ptr %1040, align 8, !tbaa !34
  %1042 = fcmp ogt double %1038, %1041
  br i1 %1042, label %1043, label %1049

1043:                                             ; preds = %1037
  %1044 = load double, ptr %28, align 8, !tbaa !20
  %1045 = load ptr, ptr %10, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.ScsSettings, ptr %1045, i32 0, i32 7
  %1047 = load double, ptr %1046, align 8, !tbaa !34
  %1048 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.14, double noundef %1044, double noundef %1047)
  store ptr @.str.14, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1049:                                             ; preds = %1037
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050
  br label %1242

1052:                                             ; preds = %928
  %1053 = load i32, ptr %13, align 4, !tbaa !9
  %1054 = icmp eq i32 %1053, -1
  br i1 %1054, label %1055, label %1240

1055:                                             ; preds = %1052
  br label %1056

1056:                                             ; preds = %1055
  %1057 = load double, ptr %29, align 8, !tbaa !20
  %1058 = load ptr, ptr %11, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.ScsInfo, ptr %1058, i32 0, i32 11
  %1060 = load double, ptr %1059, align 8, !tbaa !35
  %1061 = fsub double %1057, %1060
  %1062 = fcmp olt double %1061, 0.000000e+00
  br i1 %1062, label %1063, label %1070

1063:                                             ; preds = %1056
  %1064 = load double, ptr %29, align 8, !tbaa !20
  %1065 = load ptr, ptr %11, align 8, !tbaa !5
  %1066 = getelementptr inbounds %struct.ScsInfo, ptr %1065, i32 0, i32 11
  %1067 = load double, ptr %1066, align 8, !tbaa !35
  %1068 = fsub double %1064, %1067
  %1069 = fneg double %1068
  br label %1076

1070:                                             ; preds = %1056
  %1071 = load double, ptr %29, align 8, !tbaa !20
  %1072 = load ptr, ptr %11, align 8, !tbaa !5
  %1073 = getelementptr inbounds %struct.ScsInfo, ptr %1072, i32 0, i32 11
  %1074 = load double, ptr %1073, align 8, !tbaa !35
  %1075 = fsub double %1071, %1074
  br label %1076

1076:                                             ; preds = %1070, %1063
  %1077 = phi double [ %1069, %1063 ], [ %1075, %1070 ]
  %1078 = fcmp ogt double %1077, 1.000000e-08
  br i1 %1078, label %1079, label %1102

1079:                                             ; preds = %1076
  %1080 = load double, ptr %29, align 8, !tbaa !20
  %1081 = load ptr, ptr %11, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.ScsInfo, ptr %1081, i32 0, i32 11
  %1083 = load double, ptr %1082, align 8, !tbaa !35
  %1084 = fsub double %1080, %1083
  %1085 = fcmp olt double %1084, 0.000000e+00
  br i1 %1085, label %1086, label %1093

1086:                                             ; preds = %1079
  %1087 = load double, ptr %29, align 8, !tbaa !20
  %1088 = load ptr, ptr %11, align 8, !tbaa !5
  %1089 = getelementptr inbounds %struct.ScsInfo, ptr %1088, i32 0, i32 11
  %1090 = load double, ptr %1089, align 8, !tbaa !35
  %1091 = fsub double %1087, %1090
  %1092 = fneg double %1091
  br label %1099

1093:                                             ; preds = %1079
  %1094 = load double, ptr %29, align 8, !tbaa !20
  %1095 = load ptr, ptr %11, align 8, !tbaa !5
  %1096 = getelementptr inbounds %struct.ScsInfo, ptr %1095, i32 0, i32 11
  %1097 = load double, ptr %1096, align 8, !tbaa !35
  %1098 = fsub double %1094, %1097
  br label %1099

1099:                                             ; preds = %1093, %1086
  %1100 = phi double [ %1092, %1086 ], [ %1098, %1093 ]
  %1101 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.15, double noundef %1100, double noundef 1.000000e-08)
  store ptr @.str.15, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1102:                                             ; preds = %1076
  br label %1103

1103:                                             ; preds = %1102
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

1105:                                             ; preds = %1104
  %1106 = load double, ptr %30, align 8, !tbaa !20
  %1107 = load ptr, ptr %11, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.ScsInfo, ptr %1107, i32 0, i32 12
  %1109 = load double, ptr %1108, align 8, !tbaa !36
  %1110 = fsub double %1106, %1109
  %1111 = fcmp olt double %1110, 0.000000e+00
  br i1 %1111, label %1112, label %1119

1112:                                             ; preds = %1105
  %1113 = load double, ptr %30, align 8, !tbaa !20
  %1114 = load ptr, ptr %11, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.ScsInfo, ptr %1114, i32 0, i32 12
  %1116 = load double, ptr %1115, align 8, !tbaa !36
  %1117 = fsub double %1113, %1116
  %1118 = fneg double %1117
  br label %1125

1119:                                             ; preds = %1105
  %1120 = load double, ptr %30, align 8, !tbaa !20
  %1121 = load ptr, ptr %11, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.ScsInfo, ptr %1121, i32 0, i32 12
  %1123 = load double, ptr %1122, align 8, !tbaa !36
  %1124 = fsub double %1120, %1123
  br label %1125

1125:                                             ; preds = %1119, %1112
  %1126 = phi double [ %1118, %1112 ], [ %1124, %1119 ]
  %1127 = fcmp ogt double %1126, 1.000000e-08
  br i1 %1127, label %1128, label %1151

1128:                                             ; preds = %1125
  %1129 = load double, ptr %30, align 8, !tbaa !20
  %1130 = load ptr, ptr %11, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.ScsInfo, ptr %1130, i32 0, i32 12
  %1132 = load double, ptr %1131, align 8, !tbaa !36
  %1133 = fsub double %1129, %1132
  %1134 = fcmp olt double %1133, 0.000000e+00
  br i1 %1134, label %1135, label %1142

1135:                                             ; preds = %1128
  %1136 = load double, ptr %30, align 8, !tbaa !20
  %1137 = load ptr, ptr %11, align 8, !tbaa !5
  %1138 = getelementptr inbounds %struct.ScsInfo, ptr %1137, i32 0, i32 12
  %1139 = load double, ptr %1138, align 8, !tbaa !36
  %1140 = fsub double %1136, %1139
  %1141 = fneg double %1140
  br label %1148

1142:                                             ; preds = %1128
  %1143 = load double, ptr %30, align 8, !tbaa !20
  %1144 = load ptr, ptr %11, align 8, !tbaa !5
  %1145 = getelementptr inbounds %struct.ScsInfo, ptr %1144, i32 0, i32 12
  %1146 = load double, ptr %1145, align 8, !tbaa !36
  %1147 = fsub double %1143, %1146
  br label %1148

1148:                                             ; preds = %1142, %1135
  %1149 = phi double [ %1141, %1135 ], [ %1147, %1142 ]
  %1150 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.16, double noundef %1149, double noundef 1.000000e-08)
  store ptr @.str.16, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1151:                                             ; preds = %1125
  br label %1152

1152:                                             ; preds = %1151
  br label %1153

1153:                                             ; preds = %1152
  br label %1154

1154:                                             ; preds = %1153
  %1155 = load double, ptr %31, align 8, !tbaa !20
  %1156 = fadd double %1155, 1.000000e+00
  %1157 = fcmp olt double %1156, 0.000000e+00
  br i1 %1157, label %1158, label %1162

1158:                                             ; preds = %1154
  %1159 = load double, ptr %31, align 8, !tbaa !20
  %1160 = fadd double %1159, 1.000000e+00
  %1161 = fneg double %1160
  br label %1165

1162:                                             ; preds = %1154
  %1163 = load double, ptr %31, align 8, !tbaa !20
  %1164 = fadd double %1163, 1.000000e+00
  br label %1165

1165:                                             ; preds = %1162, %1158
  %1166 = phi double [ %1161, %1158 ], [ %1164, %1162 ]
  %1167 = fcmp ogt double %1166, 0x3D719799812DEA11
  br i1 %1167, label %1168, label %1182

1168:                                             ; preds = %1165
  %1169 = load double, ptr %31, align 8, !tbaa !20
  %1170 = fadd double %1169, 1.000000e+00
  %1171 = fcmp olt double %1170, 0.000000e+00
  br i1 %1171, label %1172, label %1176

1172:                                             ; preds = %1168
  %1173 = load double, ptr %31, align 8, !tbaa !20
  %1174 = fadd double %1173, 1.000000e+00
  %1175 = fneg double %1174
  br label %1179

1176:                                             ; preds = %1168
  %1177 = load double, ptr %31, align 8, !tbaa !20
  %1178 = fadd double %1177, 1.000000e+00
  br label %1179

1179:                                             ; preds = %1176, %1172
  %1180 = phi double [ %1175, %1172 ], [ %1178, %1176 ]
  %1181 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.17, double noundef %1180, double noundef 0x3D719799812DEA11)
  store ptr @.str.17, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1182:                                             ; preds = %1165
  br label %1183

1183:                                             ; preds = %1182
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

1185:                                             ; preds = %1184
  %1186 = load double, ptr %41, align 8, !tbaa !20
  %1187 = fcmp olt double %1186, 0.000000e+00
  br i1 %1187, label %1188, label %1191

1188:                                             ; preds = %1185
  %1189 = load double, ptr %41, align 8, !tbaa !20
  %1190 = fneg double %1189
  br label %1193

1191:                                             ; preds = %1185
  %1192 = load double, ptr %41, align 8, !tbaa !20
  br label %1193

1193:                                             ; preds = %1191, %1188
  %1194 = phi double [ %1190, %1188 ], [ %1192, %1191 ]
  %1195 = fcmp ogt double %1194, 1.000000e-05
  br i1 %1195, label %1196, label %1207

1196:                                             ; preds = %1193
  %1197 = load double, ptr %41, align 8, !tbaa !20
  %1198 = fcmp olt double %1197, 0.000000e+00
  br i1 %1198, label %1199, label %1202

1199:                                             ; preds = %1196
  %1200 = load double, ptr %41, align 8, !tbaa !20
  %1201 = fneg double %1200
  br label %1204

1202:                                             ; preds = %1196
  %1203 = load double, ptr %41, align 8, !tbaa !20
  br label %1204

1204:                                             ; preds = %1202, %1199
  %1205 = phi double [ %1201, %1199 ], [ %1203, %1202 ]
  %1206 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.7, double noundef %1205, double noundef 1.000000e-05)
  store ptr @.str.7, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1207:                                             ; preds = %1193
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208
  br label %1210

1210:                                             ; preds = %1209
  %1211 = load double, ptr %30, align 8, !tbaa !20
  %1212 = load ptr, ptr %10, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.ScsSettings, ptr %1212, i32 0, i32 7
  %1214 = load double, ptr %1213, align 8, !tbaa !34
  %1215 = fcmp ogt double %1211, %1214
  br i1 %1215, label %1216, label %1222

1216:                                             ; preds = %1210
  %1217 = load double, ptr %30, align 8, !tbaa !20
  %1218 = load ptr, ptr %10, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.ScsSettings, ptr %1218, i32 0, i32 7
  %1220 = load double, ptr %1219, align 8, !tbaa !34
  %1221 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.18, double noundef %1217, double noundef %1220)
  store ptr @.str.18, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1222:                                             ; preds = %1210
  br label %1223

1223:                                             ; preds = %1222
  br label %1224

1224:                                             ; preds = %1223
  br label %1225

1225:                                             ; preds = %1224
  %1226 = load double, ptr %29, align 8, !tbaa !20
  %1227 = load ptr, ptr %10, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.ScsSettings, ptr %1227, i32 0, i32 7
  %1229 = load double, ptr %1228, align 8, !tbaa !34
  %1230 = fcmp ogt double %1226, %1229
  br i1 %1230, label %1231, label %1237

1231:                                             ; preds = %1225
  %1232 = load double, ptr %29, align 8, !tbaa !20
  %1233 = load ptr, ptr %10, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.ScsSettings, ptr %1233, i32 0, i32 7
  %1235 = load double, ptr %1234, align 8, !tbaa !34
  %1236 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @.str.19, double noundef %1232, double noundef %1235)
  store ptr @.str.19, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1237:                                             ; preds = %1225
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238
  br label %1241

1240:                                             ; preds = %1052
  store ptr @.str.20, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1241:                                             ; preds = %1239
  br label %1242

1242:                                             ; preds = %1241, %1051
  br label %1243

1243:                                             ; preds = %1242, %927
  store ptr null, ptr %7, align 8
  store i32 1, ptr %44, align 4
  br label %1244

1244:                                             ; preds = %1243, %1240, %1231, %1216, %1204, %1179, %1148, %1099, %1043, %1031, %1006, %975, %914, %889, %864, %847, %822, %796, %734, %663, %592, %523, %474
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  %1245 = load ptr, ptr %7, align 8
  ret ptr %1245
}

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

declare void @_scs_accum_by_a(ptr noundef, ptr noundef, ptr noundef) #2

; 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) #7

declare void @_scs_add_scaled_array(ptr noundef, ptr noundef, i32 noundef, double noundef) #2

declare double @_scs_norm_inf(ptr noundef, i32 noundef) #2

declare void @_scs_accum_by_p(ptr noundef, ptr noundef, ptr noundef) #2

declare double @_scs_dot(ptr noundef, ptr noundef, i32 noundef) #2

declare void @_scs_accum_by_atrans(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden double @get_pri_cone_dist(ptr noundef, ptr noundef, i32 noundef) #5

; Function Attrs: nounwind uwtable
declare hidden double @get_dual_cone_dist(ptr noundef, ptr noundef, i32 noundef) #5

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 4}
!12 = !{!"", !10, i64 0, !10, i64 4, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!13 = !{!12, !10, i64 0}
!14 = !{!15, !6, i64 0}
!15 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!15, !6, i64 8}
!17 = !{!15, !6, i64 16}
!18 = !{!12, !6, i64 32}
!19 = !{!12, !6, i64 24}
!20 = !{!21, !21, i64 0}
!21 = !{!"double", !7, i64 0}
!22 = !{!12, !6, i64 8}
!23 = !{!12, !6, i64 16}
!24 = !{!25, !21, i64 288}
!25 = !{!"", !10, i64 0, !7, i64 4, !7, i64 132, !10, i64 260, !10, i64 264, !21, i64 272, !21, i64 280, !21, i64 288, !21, i64 296, !21, i64 304, !21, i64 312, !21, i64 320, !21, i64 328, !21, i64 336, !21, i64 344, !21, i64 352, !21, i64 360, !10, i64 368, !10, i64 372, !21, i64 376, !21, i64 384, !21, i64 392}
!26 = !{!25, !21, i64 296}
!27 = !{!25, !21, i64 304}
!28 = !{!25, !21, i64 272}
!29 = !{!25, !21, i64 280}
!30 = !{!31, !21, i64 40}
!31 = !{!"", !10, i64 0, !21, i64 8, !10, i64 16, !21, i64 24, !10, i64 32, !21, i64 40, !21, i64 48, !21, i64 56, !21, i64 64, !21, i64 72, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !6, i64 96, !6, i64 104}
!32 = !{!31, !21, i64 48}
!33 = !{!25, !21, i64 312}
!34 = !{!31, !21, i64 56}
!35 = !{!25, !21, i64 320}
!36 = !{!25, !21, i64 328}


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

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [15 x i8], align 1

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

declare ptr @_scs_init_cone(ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @_scs_finish_cone(ptr noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local noundef ptr @verify_solution_correct(ptr nocapture noundef readonly %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, i32 noundef %5) local_unnamed_addr #4 {
  %7 = getelementptr inbounds i8, ptr %0, i64 4
  %8 = load i32, ptr %7, align 4, !tbaa !5
  %9 = load i32, ptr %0, align 8, !tbaa !11
  %10 = load ptr, ptr %4, align 8, !tbaa !12
  %11 = getelementptr inbounds i8, ptr %4, i64 8
  %12 = load ptr, ptr %11, align 8, !tbaa !14
  %13 = getelementptr inbounds i8, ptr %4, i64 16
  %14 = load ptr, ptr %13, align 8, !tbaa !15
  %15 = getelementptr inbounds i8, ptr %0, i64 32
  %16 = load ptr, ptr %15, align 8, !tbaa !16
  %17 = getelementptr inbounds i8, ptr %0, i64 24
  %18 = load ptr, ptr %17, align 8, !tbaa !17
  %19 = sext i32 %9 to i64
  %20 = tail call noalias ptr @calloc(i64 noundef %19, i64 noundef 8) #8
  %21 = tail call noalias ptr @calloc(i64 noundef %19, i64 noundef 8) #8
  %22 = sext i32 %8 to i64
  %23 = tail call noalias ptr @calloc(i64 noundef %22, i64 noundef 8) #8
  %24 = tail call noalias ptr @calloc(i64 noundef %22, i64 noundef 8) #8
  %25 = tail call noalias ptr @calloc(i64 noundef %22, i64 noundef 8) #8
  %26 = tail call ptr @_scs_init_cone(ptr noundef %1, i32 noundef %9) #9
  %27 = shl nsw i64 %19, 3
  %28 = getelementptr inbounds i8, ptr %0, i64 8
  %29 = load ptr, ptr %28, align 8, !tbaa !18
  tail call void @_scs_accum_by_a(ptr noundef %29, ptr noundef %10, ptr noundef %21) #9
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %20, ptr align 8 %21, i64 %27, i1 false)
  tail call void @_scs_add_scaled_array(ptr noundef %20, ptr noundef %14, i32 noundef %9, double noundef 1.000000e+00) #9
  %30 = tail call double @_scs_norm_inf(ptr noundef %20, i32 noundef %9) #9
  tail call void @_scs_add_scaled_array(ptr noundef %20, ptr noundef %18, i32 noundef %9, double noundef -1.000000e+00) #9
  %31 = tail call double @_scs_norm_inf(ptr noundef %20, i32 noundef %9) #9
  %32 = shl nsw i64 %22, 3
  %33 = getelementptr inbounds i8, ptr %0, i64 16
  %34 = load ptr, ptr %33, align 8, !tbaa !19
  %.not = icmp eq ptr %34, null
  br i1 %.not, label %38, label %35

35:                                               ; preds = %6
  tail call void @_scs_accum_by_p(ptr noundef nonnull %34, ptr noundef %10, ptr noundef %24) #9
  %36 = tail call double @_scs_dot(ptr noundef %24, ptr noundef %10, i32 noundef %8) #9
  %37 = tail call double @_scs_norm_inf(ptr noundef %24, i32 noundef %8) #9
  br label %38

38:                                               ; preds = %6, %35
  %.0386 = phi double [ %36, %35 ], [ 0.000000e+00, %6 ]
  %.0385 = phi double [ %37, %35 ], [ 0.000000e+00, %6 ]
  tail call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 %32, i1 false)
  %39 = load ptr, ptr %28, align 8, !tbaa !18
  tail call void @_scs_accum_by_atrans(ptr noundef %39, ptr noundef %12, ptr noundef %25) #9
  %40 = tail call double @_scs_norm_inf(ptr noundef %25, i32 noundef %8) #9
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %23, ptr align 8 %25, i64 %32, i1 false)
  tail call void @_scs_add_scaled_array(ptr noundef %23, ptr noundef %24, i32 noundef %8, double noundef 1.000000e+00) #9
  tail call void @_scs_add_scaled_array(ptr noundef %23, ptr noundef %16, i32 noundef %8, double noundef 1.000000e+00) #9
  %41 = tail call double @_scs_norm_inf(ptr noundef %23, i32 noundef %8) #9
  switch i32 %5, label %45 [
    i32 -1, label %42
    i32 1, label %42
  ]

42:                                               ; preds = %38, %38
  %43 = load ptr, ptr %13, align 8, !tbaa !15
  %44 = tail call double @get_pri_cone_dist(ptr noundef %43, ptr noundef %26, i32 noundef %9)
  br label %45

45:                                               ; preds = %38, %42
  %.0384 = phi double [ %44, %42 ], [ 0x7FF8000000000000, %38 ]
  switch i32 %5, label %49 [
    i32 -2, label %46
    i32 1, label %46
  ]

46:                                               ; preds = %45, %45
  %47 = load ptr, ptr %11, align 8, !tbaa !14
  %48 = tail call double @get_dual_cone_dist(ptr noundef %47, ptr noundef %26, i32 noundef %9)
  br label %49

49:                                               ; preds = %45, %46
  %.0383 = phi double [ %48, %46 ], [ 0x7FF8000000000000, %45 ]
  %50 = tail call double @_scs_dot(ptr noundef %12, ptr noundef %14, i32 noundef %9) #9
  %51 = tail call double @_scs_dot(ptr noundef %12, ptr noundef %18, i32 noundef %9) #9
  %52 = tail call double @_scs_dot(ptr noundef %10, ptr noundef %16, i32 noundef %8) #9
  %53 = fadd double %.0386, %52
  %54 = fadd double %51, %53
  %55 = fcmp olt double %54, 0.000000e+00
  %56 = fneg double %54
  %57 = select i1 %55, double %56, double %54
  %58 = fmul double %.0386, 5.000000e-01
  %59 = fadd double %58, %52
  %60 = fmul double %.0386, -5.000000e-01
  %61 = fsub double %60, %51
  %62 = insertelement <2 x double> poison, double %.0386, i64 0
  %63 = insertelement <2 x double> %62, double %52, i64 1
  %64 = fcmp olt <2 x double> %63, zeroinitializer
  %65 = fneg <2 x double> %63
  %66 = select <2 x i1> %64, <2 x double> %65, <2 x double> %63
  %67 = extractelement <2 x double> %66, i64 0
  %68 = extractelement <2 x double> %66, i64 1
  %69 = fcmp ogt double %67, %68
  %70 = select i1 %69, double %67, double %68
  %71 = fcmp olt double %51, 0.000000e+00
  %72 = fneg double %51
  %73 = select i1 %71, double %72, double %51
  %74 = fcmp ogt double %70, %73
  %75 = select i1 %74, double %70, double %73
  %76 = tail call double @_scs_norm_inf(ptr noundef %18, i32 noundef %9) #9
  %77 = tail call double @_scs_norm_inf(ptr noundef %14, i32 noundef %9) #9
  %78 = fcmp ogt double %76, %77
  %. = select i1 %78, ptr %18, ptr %14
  %79 = tail call double @_scs_norm_inf(ptr noundef %., i32 noundef %9) #9
  %80 = tail call double @_scs_norm_inf(ptr noundef %21, i32 noundef %9) #9
  %81 = fcmp ogt double %79, %80
  br i1 %81, label %82, label %86

82:                                               ; preds = %49
  %83 = tail call double @_scs_norm_inf(ptr noundef %18, i32 noundef %9) #9
  %84 = tail call double @_scs_norm_inf(ptr noundef %14, i32 noundef %9) #9
  %85 = fcmp ogt double %83, %84
  %.456 = select i1 %85, ptr %18, ptr %14
  br label %86

86:                                               ; preds = %49, %82
  %.sink451 = phi ptr [ %.456, %82 ], [ %21, %49 ]
  %87 = tail call double @_scs_norm_inf(ptr noundef %.sink451, i32 noundef %9) #9
  %88 = tail call double @_scs_norm_inf(ptr noundef %16, i32 noundef %8) #9
  %89 = tail call double @_scs_norm_inf(ptr noundef %24, i32 noundef %8) #9
  %90 = fcmp ogt double %88, %89
  %.457 = select i1 %90, ptr %16, ptr %24
  %91 = tail call double @_scs_norm_inf(ptr noundef %.457, i32 noundef %8) #9
  %92 = tail call double @_scs_norm_inf(ptr noundef %25, i32 noundef %8) #9
  %93 = fcmp ogt double %91, %92
  br i1 %93, label %94, label %98

94:                                               ; preds = %86
  %95 = tail call double @_scs_norm_inf(ptr noundef %16, i32 noundef %8) #9
  %96 = tail call double @_scs_norm_inf(ptr noundef %24, i32 noundef %8) #9
  %97 = fcmp ogt double %95, %96
  %.458 = select i1 %97, ptr %16, ptr %24
  br label %98

98:                                               ; preds = %86, %94
  %.sink453 = phi ptr [ %.458, %94 ], [ %25, %86 ]
  %99 = tail call double @_scs_norm_inf(ptr noundef %.sink453, i32 noundef %8) #9
  tail call void @free(ptr noundef %20) #9
  tail call void @free(ptr noundef %23) #9
  tail call void @free(ptr noundef %24) #9
  tail call void @free(ptr noundef %21) #9
  tail call void @free(ptr noundef %25) #9
  tail call void @_scs_finish_cone(ptr noundef %26) #9
  switch i32 %5, label %288 [
    i32 1, label %100
    i32 -2, label %212
    i32 -1, label %243
  ]

100:                                              ; preds = %98
  %101 = getelementptr inbounds i8, ptr %3, i64 288
  %102 = load double, ptr %101, align 8, !tbaa !20
  %103 = fsub double %31, %102
  %104 = fcmp olt double %103, 0.000000e+00
  %105 = fneg double %103
  %106 = select i1 %104, double %105, double %103
  %107 = fcmp ogt double %106, 1.000000e-10
  br i1 %107, label %108, label %110

108:                                              ; preds = %100
  %109 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.1, double noundef %106, double noundef 1.000000e-10)
  br label %288

110:                                              ; preds = %100
  %111 = getelementptr inbounds i8, ptr %3, i64 296
  %112 = load double, ptr %111, align 8, !tbaa !23
  %113 = fsub double %41, %112
  %114 = fcmp olt double %113, 0.000000e+00
  %115 = fneg double %113
  %116 = select i1 %114, double %115, double %113
  %117 = fcmp ogt double %116, 1.000000e-10
  br i1 %117, label %118, label %120

118:                                              ; preds = %110
  %119 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.2, double noundef %116, double noundef 1.000000e-10)
  br label %288

120:                                              ; preds = %110
  %121 = getelementptr inbounds i8, ptr %3, i64 304
  %122 = load double, ptr %121, align 8, !tbaa !24
  %123 = fsub double %57, %122
  %124 = fcmp olt double %123, 0.000000e+00
  %125 = fneg double %123
  %126 = select i1 %124, double %125, double %123
  %127 = fadd double %57, 1.000000e+00
  %128 = fmul double %127, 0x3E7AD7F29ABCAF48
  %129 = fcmp ogt double %126, %128
  br i1 %129, label %130, label %132

130:                                              ; preds = %120
  %131 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.3, double noundef %126, double noundef %128)
  br label %288

132:                                              ; preds = %120
  %133 = getelementptr inbounds i8, ptr %3, i64 272
  %134 = load double, ptr %133, align 8, !tbaa !25
  %135 = fsub double %59, %134
  %136 = fcmp olt double %135, 0.000000e+00
  %137 = fneg double %135
  %138 = select i1 %136, double %137, double %135
  %139 = fcmp olt double %59, 0.000000e+00
  %140 = fneg double %59
  %141 = select i1 %139, double %140, double %59
  %142 = fadd double %141, 1.000000e+00
  %143 = fmul double %142, 1.000000e-09
  %144 = fcmp ogt double %138, %143
  br i1 %144, label %145, label %147

145:                                              ; preds = %132
  %146 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.4, double noundef %138, double noundef %143)
  br label %288

147:                                              ; preds = %132
  %148 = getelementptr inbounds i8, ptr %3, i64 280
  %149 = load double, ptr %148, align 8, !tbaa !26
  %150 = fsub double %61, %149
  %151 = fcmp olt double %150, 0.000000e+00
  %152 = fneg double %150
  %153 = select i1 %151, double %152, double %150
  %154 = fcmp olt double %61, 0.000000e+00
  %155 = fneg double %61
  %156 = select i1 %154, double %155, double %61
  %157 = fadd double %156, 1.000000e+00
  %158 = fmul double %157, 1.000000e-09
  %159 = fcmp ogt double %153, %158
  br i1 %159, label %160, label %162

160:                                              ; preds = %147
  %161 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.5, double noundef %153, double noundef %158)
  br label %288

162:                                              ; preds = %147
  %163 = fcmp olt double %50, 0.000000e+00
  %164 = fneg double %50
  %165 = select i1 %163, double %164, double %50
  %166 = tail call double @_scs_norm_inf(ptr noundef %14, i32 noundef %9) #9
  %167 = tail call double @_scs_norm_inf(ptr noundef %12, i32 noundef %9) #9
  %168 = fcmp ogt double %166, %167
  %.459 = select i1 %168, ptr %14, ptr %12
  %169 = tail call double @_scs_norm_inf(ptr noundef %.459, i32 noundef %9) #9
  %170 = fmul double %169, 5.000000e-08
  %171 = fcmp ogt double %165, %170
  br i1 %171, label %172, label %179

172:                                              ; preds = %162
  %173 = tail call double @_scs_norm_inf(ptr noundef %14, i32 noundef %9) #9
  %174 = tail call double @_scs_norm_inf(ptr noundef %12, i32 noundef %9) #9
  %175 = fcmp ogt double %173, %174
  %.460 = select i1 %175, ptr %14, ptr %12
  %176 = tail call double @_scs_norm_inf(ptr noundef %.460, i32 noundef %9) #9
  %177 = fmul double %176, 5.000000e-08
  %178 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.6, double noundef %165, double noundef %177)
  br label %288

179:                                              ; preds = %162
  %180 = fcmp olt double %.0384, 0.000000e+00
  %181 = fneg double %.0384
  %182 = select i1 %180, double %181, double %.0384
  %183 = fcmp ogt double %182, 1.000000e-05
  br i1 %183, label %184, label %186

184:                                              ; preds = %179
  %185 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.7, double noundef %182, double noundef 1.000000e-05)
  br label %288

186:                                              ; preds = %179
  %187 = fcmp olt double %.0383, 0.000000e+00
  %188 = fneg double %.0383
  %189 = select i1 %187, double %188, double %.0383
  %190 = fcmp ogt double %189, 1.000000e-05
  br i1 %190, label %191, label %193

191:                                              ; preds = %186
  %192 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.8, double noundef %189, double noundef 1.000000e-05)
  br label %288

193:                                              ; preds = %186
  %194 = getelementptr inbounds i8, ptr %2, i64 40
  %195 = load double, ptr %194, align 8, !tbaa !27
  %196 = getelementptr inbounds i8, ptr %2, i64 48
  %197 = load double, ptr %196, align 8, !tbaa !29
  %198 = tail call double @llvm.fmuladd.f64(double %197, double %87, double %195)
  %199 = fcmp ogt double %31, %198
  br i1 %199, label %200, label %202

200:                                              ; preds = %193
  %201 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.9, double noundef %31, double noundef %198)
  br label %288

202:                                              ; preds = %193
  %203 = tail call double @llvm.fmuladd.f64(double %197, double %99, double %195)
  %204 = fcmp ogt double %41, %203
  br i1 %204, label %205, label %207

205:                                              ; preds = %202
  %206 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.10, double noundef %41, double noundef %203)
  br label %288

207:                                              ; preds = %202
  %208 = tail call double @llvm.fmuladd.f64(double %197, double %75, double %195)
  %209 = fcmp ogt double %57, %208
  br i1 %209, label %210, label %288

210:                                              ; preds = %207
  %211 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.11, double noundef %57, double noundef %208)
  br label %288

212:                                              ; preds = %98
  %213 = getelementptr inbounds i8, ptr %3, i64 312
  %214 = load double, ptr %213, align 8, !tbaa !30
  %215 = fsub double %40, %214
  %216 = fcmp olt double %215, 0.000000e+00
  %217 = fneg double %215
  %218 = select i1 %216, double %217, double %215
  %219 = fcmp ogt double %218, 1.000000e-08
  br i1 %219, label %220, label %222

220:                                              ; preds = %212
  %221 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.12, double noundef %218, double noundef 1.000000e-08)
  br label %288

222:                                              ; preds = %212
  %223 = fadd double %51, 1.000000e+00
  %224 = fcmp olt double %223, 0.000000e+00
  %225 = fneg double %223
  %226 = select i1 %224, double %225, double %223
  %227 = fcmp ogt double %226, 0x3D719799812DEA11
  br i1 %227, label %228, label %230

228:                                              ; preds = %222
  %229 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.13, double noundef %226, double noundef 0x3D719799812DEA11)
  br label %288

230:                                              ; preds = %222
  %231 = fcmp olt double %.0383, 0.000000e+00
  %232 = fneg double %.0383
  %233 = select i1 %231, double %232, double %.0383
  %234 = fcmp ogt double %233, 1.000000e-05
  br i1 %234, label %235, label %237

235:                                              ; preds = %230
  %236 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.8, double noundef %233, double noundef 1.000000e-05)
  br label %288

237:                                              ; preds = %230
  %238 = getelementptr inbounds i8, ptr %2, i64 56
  %239 = load double, ptr %238, align 8, !tbaa !31
  %240 = fcmp ogt double %40, %239
  br i1 %240, label %241, label %288

241:                                              ; preds = %237
  %242 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.14, double noundef %40, double noundef %239)
  br label %288

243:                                              ; preds = %98
  %244 = getelementptr inbounds i8, ptr %3, i64 320
  %245 = load double, ptr %244, align 8, !tbaa !32
  %246 = fsub double %30, %245
  %247 = fcmp olt double %246, 0.000000e+00
  %248 = fneg double %246
  %249 = select i1 %247, double %248, double %246
  %250 = fcmp ogt double %249, 1.000000e-08
  br i1 %250, label %251, label %253

251:                                              ; preds = %243
  %252 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.15, double noundef %249, double noundef 1.000000e-08)
  br label %288

253:                                              ; preds = %243
  %254 = getelementptr inbounds i8, ptr %3, i64 328
  %255 = load double, ptr %254, align 8, !tbaa !33
  %256 = fsub double %.0385, %255
  %257 = fcmp olt double %256, 0.000000e+00
  %258 = fneg double %256
  %259 = select i1 %257, double %258, double %256
  %260 = fcmp ogt double %259, 1.000000e-08
  br i1 %260, label %261, label %263

261:                                              ; preds = %253
  %262 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.16, double noundef %259, double noundef 1.000000e-08)
  br label %288

263:                                              ; preds = %253
  %264 = fadd double %52, 1.000000e+00
  %265 = fcmp olt double %264, 0.000000e+00
  %266 = fneg double %264
  %267 = select i1 %265, double %266, double %264
  %268 = fcmp ogt double %267, 0x3D719799812DEA11
  br i1 %268, label %269, label %271

269:                                              ; preds = %263
  %270 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.17, double noundef %267, double noundef 0x3D719799812DEA11)
  br label %288

271:                                              ; preds = %263
  %272 = fcmp olt double %.0384, 0.000000e+00
  %273 = fneg double %.0384
  %274 = select i1 %272, double %273, double %.0384
  %275 = fcmp ogt double %274, 1.000000e-05
  br i1 %275, label %276, label %278

276:                                              ; preds = %271
  %277 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.7, double noundef %274, double noundef 1.000000e-05)
  br label %288

278:                                              ; preds = %271
  %279 = getelementptr inbounds i8, ptr %2, i64 56
  %280 = load double, ptr %279, align 8, !tbaa !31
  %281 = fcmp ogt double %.0385, %280
  br i1 %281, label %282, label %284

282:                                              ; preds = %278
  %283 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.18, double noundef %.0385, double noundef %280)
  br label %288

284:                                              ; preds = %278
  %285 = fcmp ogt double %30, %280
  br i1 %285, label %286, label %288

286:                                              ; preds = %284
  %287 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @.str.19, double noundef %30, double noundef %280)
  br label %288

288:                                              ; preds = %207, %284, %237, %98, %286, %282, %276, %269, %261, %251, %241, %235, %228, %220, %210, %205, %200, %191, %184, %172, %160, %145, %130, %118, %108
  %.0 = phi ptr [ @.str.1, %108 ], [ @.str.2, %118 ], [ @.str.3, %130 ], [ @.str.4, %145 ], [ @.str.5, %160 ], [ @.str.6, %172 ], [ @.str.7, %184 ], [ @.str.8, %191 ], [ @.str.9, %200 ], [ @.str.10, %205 ], [ @.str.11, %210 ], [ @.str.12, %220 ], [ @.str.13, %228 ], [ @.str.8, %235 ], [ @.str.14, %241 ], [ @.str.15, %251 ], [ @.str.16, %261 ], [ @.str.17, %269 ], [ @.str.7, %276 ], [ @.str.18, %282 ], [ @.str.19, %286 ], [ @.str.20, %98 ], [ null, %237 ], [ null, %284 ], [ null, %207 ]
  ret ptr %.0
}

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

declare void @_scs_accum_by_a(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; 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) #6

declare void @_scs_add_scaled_array(ptr noundef, ptr noundef, i32 noundef, double noundef) local_unnamed_addr #1

declare double @_scs_norm_inf(ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @_scs_accum_by_p(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare double @_scs_dot(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @_scs_accum_by_atrans(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden double @get_pri_cone_dist(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: nounwind uwtable
declare hidden double @get_dual_cone_dist(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

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

attributes #0 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { 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 #8 = { nounwind allocsize(0,1) }
attributes #9 = { 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, !7, i64 4}
!6 = !{!"", !7, i64 0, !7, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!6, !7, i64 0}
!12 = !{!13, !10, i64 0}
!13 = !{!"", !10, i64 0, !10, i64 8, !10, i64 16}
!14 = !{!13, !10, i64 8}
!15 = !{!13, !10, i64 16}
!16 = !{!6, !10, i64 32}
!17 = !{!6, !10, i64 24}
!18 = !{!6, !10, i64 8}
!19 = !{!6, !10, i64 16}
!20 = !{!21, !22, i64 288}
!21 = !{!"", !7, i64 0, !8, i64 4, !8, i64 132, !7, i64 260, !7, i64 264, !22, i64 272, !22, i64 280, !22, i64 288, !22, i64 296, !22, i64 304, !22, i64 312, !22, i64 320, !22, i64 328, !22, i64 336, !22, i64 344, !22, i64 352, !22, i64 360, !7, i64 368, !7, i64 372, !22, i64 376, !22, i64 384, !22, i64 392}
!22 = !{!"double", !8, i64 0}
!23 = !{!21, !22, i64 296}
!24 = !{!21, !22, i64 304}
!25 = !{!21, !22, i64 272}
!26 = !{!21, !22, i64 280}
!27 = !{!28, !22, i64 40}
!28 = !{!"", !7, i64 0, !22, i64 8, !7, i64 16, !22, i64 24, !7, i64 32, !22, i64 40, !22, i64 48, !22, i64 56, !22, i64 64, !22, i64 72, !7, i64 80, !7, i64 84, !7, i64 88, !7, i64 92, !10, i64 96, !10, i64 104}
!29 = !{!28, !22, i64 48}
!30 = !{!21, !22, i64 312}
!31 = !{!28, !22, i64 56}
!32 = !{!21, !22, i64 320}
!33 = !{!21, !22, i64 328}


; Effective O3 passes: DSEPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass