; LLVM IR from robotics-upo/Heuristic_path_planners :: include/voro++-0.4.6/src (cmd_line)

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

%"class.voro::wall_list" = type <{ ptr, ptr, ptr, i32, [4 x i8] }>
%"class.voro::particle_order" = type <{ ptr, ptr, i32, [4 x i8] }>
%"class.voro::container_poly" = type { %"class.voro::container_base.base", %"class.voro::radius_poly", %"class.voro::voro_compute" }
%"class.voro::container_base.base" = type <{ %"class.voro::voro_base", %"class.voro::wall_list.base", [4 x i8], double, double, double, double, double, double, i8, i8, i8, [5 x i8], ptr, ptr, ptr, ptr, i32 }>
%"class.voro::voro_base" = type { i32, i32, i32, i32, i32, double, double, double, double, double, double, ptr }
%"class.voro::wall_list.base" = type <{ ptr, ptr, ptr, i32 }>
%"class.voro::radius_poly" = type { ptr, double, double, double, double }
%"class.voro::voro_compute" = type { ptr, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, double, i32, i32, ptr, ptr, ptr, ptr, ptr }
%"class.voro::c_loop_order" = type { %"class.voro::c_loop_base.base", ptr, ptr, ptr, i32, i32 }
%"class.voro::c_loop_base.base" = type <{ i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, i32, i32, i32, i32, i32 }>
%"class.voro::c_loop_all" = type { %"class.voro::c_loop_base.base", [4 x i8] }
%"class.voro::container" = type { %"class.voro::container_base.base", %"class.voro::voro_compute.0" }
%"class.voro::voro_compute.0" = type { ptr, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, double, i32, i32, ptr, ptr, ptr, ptr, ptr }

@stderr = external global ptr, align 8
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [147 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z12help_messagev() #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z21custom_output_messagev() #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15version_messagev() #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13error_messagev() #0

declare i32 @fputs(ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca double, align 8
  %14 = alloca i32, align 4
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i8, align 1
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca %"class.voro::wall_list", align 8
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %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 double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca double, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca %"class.voro::particle_order", align 8
  %78 = alloca %"class.voro::container_poly", align 8
  %79 = alloca %"class.voro::c_loop_order", align 8
  %80 = alloca %"class.voro::container_poly", align 8
  %81 = alloca %"class.voro::c_loop_all", align 8
  %82 = alloca %"class.voro::particle_order", align 8
  %83 = alloca %"class.voro::container", align 8
  %84 = alloca %"class.voro::c_loop_order", align 8
  %85 = alloca %"class.voro::container", align 8
  %86 = alloca %"class.voro::c_loop_all", align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #13
  store i32 1, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #13
  store i32 -7, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #13
  store i32 0, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #13
  store i32 8, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #13
  store double 0.000000e+00, ptr %13, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #13
  store i32 0, ptr %14, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #13
  store i8 0, ptr %15, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #13
  store i8 0, ptr %16, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #13
  store i8 0, ptr %17, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #13
  store i8 0, ptr %18, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #13
  store i8 0, ptr %19, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #13
  store i8 0, ptr %20, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #13
  store i8 0, ptr %21, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #13
  store i8 0, ptr %22, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #13
  store i8 0, ptr %23, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #13
  store ptr null, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #13
  store ptr null, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #13
  call void @_ZN4voro9wall_listC1Ev(ptr noundef nonnull align 8 dereferenceable(28) %26)
  %87 = load i32, ptr %4, align 4, !tbaa !5
  %88 = icmp eq i32 %87, 2
  br i1 %88, label %89, label %125

89:                                               ; preds = %2
  %90 = load ptr, ptr %5, align 8, !tbaa !9
  %91 = getelementptr inbounds ptr, ptr %90, i64 1
  %92 = load ptr, ptr %91, align 8, !tbaa !9
  %93 = call i32 @strcmp(ptr noundef %92, ptr noundef @.str.4) #14
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %101, label %95

95:                                               ; preds = %89
  %96 = load ptr, ptr %5, align 8, !tbaa !9
  %97 = getelementptr inbounds ptr, ptr %96, i64 1
  %98 = load ptr, ptr %97, align 8, !tbaa !9
  %99 = call i32 @strcmp(ptr noundef %98, ptr noundef @.str.5) #14
  %100 = icmp eq i32 %99, 0
  br i1 %100, label %101, label %107

101:                                              ; preds = %95, %89
  invoke void @_Z12help_messagev()
          to label %102 unwind label %103

102:                                              ; preds = %101
  store i32 0, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

103:                                              ; preds = %901, %898, %868, %867, %764, %763, %674, %673, %608, %607, %542, %541, %402, %401, %386, %385, %311, %308, %275, %272, %267, %266, %225, %222, %217, %216, %201, %200, %190, %189, %161, %158, %150, %149, %128, %123, %121, %113, %101
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %27, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %28, align 4
  br label %1595

107:                                              ; preds = %95
  %108 = load ptr, ptr %5, align 8, !tbaa !9
  %109 = getelementptr inbounds ptr, ptr %108, i64 1
  %110 = load ptr, ptr %109, align 8, !tbaa !9
  %111 = call i32 @strcmp(ptr noundef %110, ptr noundef @.str.6) #14
  %112 = icmp eq i32 %111, 0
  br i1 %112, label %113, label %115

113:                                              ; preds = %107
  invoke void @_Z21custom_output_messagev()
          to label %114 unwind label %103

114:                                              ; preds = %113
  store i32 0, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

115:                                              ; preds = %107
  %116 = load ptr, ptr %5, align 8, !tbaa !9
  %117 = getelementptr inbounds ptr, ptr %116, i64 1
  %118 = load ptr, ptr %117, align 8, !tbaa !9
  %119 = call i32 @strcmp(ptr noundef %118, ptr noundef @.str.7) #14
  %120 = icmp eq i32 %119, 0
  br i1 %120, label %121, label %123

121:                                              ; preds = %115
  invoke void @_Z15version_messagev()
          to label %122 unwind label %103

122:                                              ; preds = %121
  store i32 0, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

123:                                              ; preds = %115
  invoke void @_Z13error_messagev()
          to label %124 unwind label %103

124:                                              ; preds = %123
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

125:                                              ; preds = %2
  %126 = load i32, ptr %4, align 4, !tbaa !5
  %127 = icmp slt i32 %126, 7
  br i1 %127, label %128, label %130

128:                                              ; preds = %125
  invoke void @_Z13error_messagev()
          to label %129 unwind label %103

129:                                              ; preds = %128
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

130:                                              ; preds = %125
  br label %131

131:                                              ; preds = %892, %130
  %132 = load i32, ptr %6, align 4, !tbaa !5
  %133 = load i32, ptr %4, align 4, !tbaa !5
  %134 = sub nsw i32 %133, 7
  %135 = icmp slt i32 %132, %134
  br i1 %135, label %136, label %895

136:                                              ; preds = %131
  %137 = load ptr, ptr %5, align 8, !tbaa !9
  %138 = load i32, ptr %6, align 4, !tbaa !5
  %139 = sext i32 %138 to i64
  %140 = getelementptr inbounds ptr, ptr %137, i64 %139
  %141 = load ptr, ptr %140, align 8, !tbaa !9
  %142 = call i32 @strcmp(ptr noundef %141, ptr noundef @.str.8) #14
  %143 = icmp eq i32 %142, 0
  br i1 %143, label %144, label %164

144:                                              ; preds = %136
  %145 = load i32, ptr %6, align 4, !tbaa !5
  %146 = load i32, ptr %4, align 4, !tbaa !5
  %147 = sub nsw i32 %146, 8
  %148 = icmp sge i32 %145, %147
  br i1 %148, label %149, label %152

149:                                              ; preds = %144
  invoke void @_Z13error_messagev()
          to label %150 unwind label %103

150:                                              ; preds = %149
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %151 unwind label %103

151:                                              ; preds = %150
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

152:                                              ; preds = %144
  %153 = load i32, ptr %8, align 4, !tbaa !5
  %154 = icmp eq i32 %153, 0
  br i1 %154, label %155, label %158

155:                                              ; preds = %152
  %156 = load i32, ptr %6, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr %6, align 4, !tbaa !5
  store i32 %157, ptr %8, align 4, !tbaa !5
  br label %163

158:                                              ; preds = %152
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = invoke i32 @fputs(ptr noundef @.str.9, ptr noundef %159)
          to label %161 unwind label %103

161:                                              ; preds = %158
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %162 unwind label %103

162:                                              ; preds = %161
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

163:                                              ; preds = %155
  br label %892

164:                                              ; preds = %136
  %165 = load ptr, ptr %5, align 8, !tbaa !9
  %166 = load i32, ptr %6, align 4, !tbaa !5
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds ptr, ptr %165, i64 %167
  %169 = load ptr, ptr %168, align 8, !tbaa !9
  %170 = call i32 @strcmp(ptr noundef %169, ptr noundef @.str.10) #14
  %171 = icmp eq i32 %170, 0
  br i1 %171, label %172, label %173

172:                                              ; preds = %164
  store i8 1, ptr %15, align 1, !tbaa !15
  br label %891

173:                                              ; preds = %164
  %174 = load ptr, ptr %5, align 8, !tbaa !9
  %175 = load i32, ptr %6, align 4, !tbaa !5
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds ptr, ptr %174, i64 %176
  %178 = load ptr, ptr %177, align 8, !tbaa !9
  %179 = call i32 @strcmp(ptr noundef %178, ptr noundef @.str.4) #14
  %180 = icmp eq i32 %179, 0
  br i1 %180, label %189, label %181

181:                                              ; preds = %173
  %182 = load ptr, ptr %5, align 8, !tbaa !9
  %183 = load i32, ptr %6, align 4, !tbaa !5
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds ptr, ptr %182, i64 %184
  %186 = load ptr, ptr %185, align 8, !tbaa !9
  %187 = call i32 @strcmp(ptr noundef %186, ptr noundef @.str.5) #14
  %188 = icmp eq i32 %187, 0
  br i1 %188, label %189, label %192

189:                                              ; preds = %181, %173
  invoke void @_Z12help_messagev()
          to label %190 unwind label %103

190:                                              ; preds = %189
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %191 unwind label %103

191:                                              ; preds = %190
  store i32 0, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

192:                                              ; preds = %181
  %193 = load ptr, ptr %5, align 8, !tbaa !9
  %194 = load i32, ptr %6, align 4, !tbaa !5
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds ptr, ptr %193, i64 %195
  %197 = load ptr, ptr %196, align 8, !tbaa !9
  %198 = call i32 @strcmp(ptr noundef %197, ptr noundef @.str.6) #14
  %199 = icmp eq i32 %198, 0
  br i1 %199, label %200, label %203

200:                                              ; preds = %192
  invoke void @_Z21custom_output_messagev()
          to label %201 unwind label %103

201:                                              ; preds = %200
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %202 unwind label %103

202:                                              ; preds = %201
  store i32 0, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

203:                                              ; preds = %192
  %204 = load ptr, ptr %5, align 8, !tbaa !9
  %205 = load i32, ptr %6, align 4, !tbaa !5
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds ptr, ptr %204, i64 %206
  %208 = load ptr, ptr %207, align 8, !tbaa !9
  %209 = call i32 @strcmp(ptr noundef %208, ptr noundef @.str.11) #14
  %210 = icmp eq i32 %209, 0
  br i1 %210, label %211, label %236

211:                                              ; preds = %203
  %212 = load i32, ptr %6, align 4, !tbaa !5
  %213 = load i32, ptr %4, align 4, !tbaa !5
  %214 = sub nsw i32 %213, 8
  %215 = icmp sge i32 %212, %214
  br i1 %215, label %216, label %219

216:                                              ; preds = %211
  invoke void @_Z13error_messagev()
          to label %217 unwind label %103

217:                                              ; preds = %216
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %218 unwind label %103

218:                                              ; preds = %217
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

219:                                              ; preds = %211
  %220 = load i32, ptr %14, align 4, !tbaa !13
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %222, label %227

222:                                              ; preds = %219
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = invoke i32 @fputs(ptr noundef @.str.12, ptr noundef %223)
          to label %225 unwind label %103

225:                                              ; preds = %222
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %226 unwind label %103

226:                                              ; preds = %225
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

227:                                              ; preds = %219
  store i32 1, ptr %14, align 4, !tbaa !13
  %228 = load i32, ptr %6, align 4, !tbaa !5
  %229 = add nsw i32 %228, 1
  store i32 %229, ptr %6, align 4, !tbaa !5
  %230 = load ptr, ptr %5, align 8, !tbaa !9
  %231 = load i32, ptr %6, align 4, !tbaa !5
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds ptr, ptr %230, i64 %232
  %234 = load ptr, ptr %233, align 8, !tbaa !9
  %235 = call double @atof(ptr noundef %234) #14
  store double %235, ptr %13, align 8, !tbaa !11
  br label %888

236:                                              ; preds = %203
  %237 = load ptr, ptr %5, align 8, !tbaa !9
  %238 = load i32, ptr %6, align 4, !tbaa !5
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds ptr, ptr %237, i64 %239
  %241 = load ptr, ptr %240, align 8, !tbaa !9
  %242 = call i32 @strcmp(ptr noundef %241, ptr noundef @.str.13) #14
  %243 = icmp eq i32 %242, 0
  br i1 %243, label %244, label %253

244:                                              ; preds = %236
  %245 = load i32, ptr %6, align 4, !tbaa !5
  %246 = add nsw i32 %245, 1
  store i32 %246, ptr %6, align 4, !tbaa !5
  %247 = load ptr, ptr %5, align 8, !tbaa !9
  %248 = load i32, ptr %6, align 4, !tbaa !5
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds ptr, ptr %247, i64 %249
  %251 = load ptr, ptr %250, align 8, !tbaa !9
  %252 = call i32 @atoi(ptr noundef %251) #14
  store i32 %252, ptr %12, align 4, !tbaa !5
  br label %887

253:                                              ; preds = %236
  %254 = load ptr, ptr %5, align 8, !tbaa !9
  %255 = load i32, ptr %6, align 4, !tbaa !5
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds ptr, ptr %254, i64 %256
  %258 = load ptr, ptr %257, align 8, !tbaa !9
  %259 = call i32 @strcmp(ptr noundef %258, ptr noundef @.str.14) #14
  %260 = icmp eq i32 %259, 0
  br i1 %260, label %261, label %314

261:                                              ; preds = %253
  %262 = load i32, ptr %6, align 4, !tbaa !5
  %263 = load i32, ptr %4, align 4, !tbaa !5
  %264 = sub nsw i32 %263, 10
  %265 = icmp sge i32 %262, %264
  br i1 %265, label %266, label %269

266:                                              ; preds = %261
  invoke void @_Z13error_messagev()
          to label %267 unwind label %103

267:                                              ; preds = %266
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %268 unwind label %103

268:                                              ; preds = %267
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

269:                                              ; preds = %261
  %270 = load i32, ptr %14, align 4, !tbaa !13
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %272, label %277

272:                                              ; preds = %269
  %273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %274 = invoke i32 @fputs(ptr noundef @.str.12, ptr noundef %273)
          to label %275 unwind label %103

275:                                              ; preds = %272
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %276 unwind label %103

276:                                              ; preds = %275
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

277:                                              ; preds = %269
  store i32 2, ptr %14, align 4, !tbaa !13
  %278 = load i32, ptr %6, align 4, !tbaa !5
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr %6, align 4, !tbaa !5
  %280 = load ptr, ptr %5, align 8, !tbaa !9
  %281 = load i32, ptr %6, align 4, !tbaa !5
  %282 = add nsw i32 %281, 1
  store i32 %282, ptr %6, align 4, !tbaa !5
  %283 = sext i32 %281 to i64
  %284 = getelementptr inbounds ptr, ptr %280, i64 %283
  %285 = load ptr, ptr %284, align 8, !tbaa !9
  %286 = call i32 @atoi(ptr noundef %285) #14
  store i32 %286, ptr %9, align 4, !tbaa !5
  %287 = load ptr, ptr %5, align 8, !tbaa !9
  %288 = load i32, ptr %6, align 4, !tbaa !5
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr %6, align 4, !tbaa !5
  %290 = sext i32 %288 to i64
  %291 = getelementptr inbounds ptr, ptr %287, i64 %290
  %292 = load ptr, ptr %291, align 8, !tbaa !9
  %293 = call i32 @atoi(ptr noundef %292) #14
  store i32 %293, ptr %10, align 4, !tbaa !5
  %294 = load ptr, ptr %5, align 8, !tbaa !9
  %295 = load i32, ptr %6, align 4, !tbaa !5
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds ptr, ptr %294, i64 %296
  %298 = load ptr, ptr %297, align 8, !tbaa !9
  %299 = call i32 @atoi(ptr noundef %298) #14
  store i32 %299, ptr %11, align 4, !tbaa !5
  %300 = load i32, ptr %9, align 4, !tbaa !5
  %301 = icmp sle i32 %300, 0
  br i1 %301, label %308, label %302

302:                                              ; preds = %277
  %303 = load i32, ptr %10, align 4, !tbaa !5
  %304 = icmp sle i32 %303, 0
  br i1 %304, label %308, label %305

305:                                              ; preds = %302
  %306 = load i32, ptr %11, align 4, !tbaa !5
  %307 = icmp sle i32 %306, 0
  br i1 %307, label %308, label %313

308:                                              ; preds = %305, %302, %277
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = invoke i32 @fputs(ptr noundef @.str.15, ptr noundef %309)
          to label %311 unwind label %103

311:                                              ; preds = %308
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %312 unwind label %103

312:                                              ; preds = %311
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

313:                                              ; preds = %305
  br label %886

314:                                              ; preds = %253
  %315 = load ptr, ptr %5, align 8, !tbaa !9
  %316 = load i32, ptr %6, align 4, !tbaa !5
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds ptr, ptr %315, i64 %317
  %319 = load ptr, ptr %318, align 8, !tbaa !9
  %320 = call i32 @strcmp(ptr noundef %319, ptr noundef @.str.16) #14
  %321 = icmp eq i32 %320, 0
  br i1 %321, label %322, label %323

322:                                              ; preds = %314
  store i8 1, ptr %22, align 1, !tbaa !15
  br label %885

323:                                              ; preds = %314
  %324 = load ptr, ptr %5, align 8, !tbaa !9
  %325 = load i32, ptr %6, align 4, !tbaa !5
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds ptr, ptr %324, i64 %326
  %328 = load ptr, ptr %327, align 8, !tbaa !9
  %329 = call i32 @strcmp(ptr noundef %328, ptr noundef @.str.17) #14
  %330 = icmp eq i32 %329, 0
  br i1 %330, label %331, label %332

331:                                              ; preds = %323
  store i8 1, ptr %21, align 1, !tbaa !15
  store i8 1, ptr %20, align 1, !tbaa !15
  store i8 1, ptr %19, align 1, !tbaa !15
  br label %884

332:                                              ; preds = %323
  %333 = load ptr, ptr %5, align 8, !tbaa !9
  %334 = load i32, ptr %6, align 4, !tbaa !5
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds ptr, ptr %333, i64 %335
  %337 = load ptr, ptr %336, align 8, !tbaa !9
  %338 = call i32 @strcmp(ptr noundef %337, ptr noundef @.str.18) #14
  %339 = icmp eq i32 %338, 0
  br i1 %339, label %340, label %341

340:                                              ; preds = %332
  store i8 1, ptr %19, align 1, !tbaa !15
  br label %883

341:                                              ; preds = %332
  %342 = load ptr, ptr %5, align 8, !tbaa !9
  %343 = load i32, ptr %6, align 4, !tbaa !5
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds ptr, ptr %342, i64 %344
  %346 = load ptr, ptr %345, align 8, !tbaa !9
  %347 = call i32 @strcmp(ptr noundef %346, ptr noundef @.str.19) #14
  %348 = icmp eq i32 %347, 0
  br i1 %348, label %349, label %350

349:                                              ; preds = %341
  store i8 1, ptr %20, align 1, !tbaa !15
  br label %882

350:                                              ; preds = %341
  %351 = load ptr, ptr %5, align 8, !tbaa !9
  %352 = load i32, ptr %6, align 4, !tbaa !5
  %353 = sext i32 %352 to i64
  %354 = getelementptr inbounds ptr, ptr %351, i64 %353
  %355 = load ptr, ptr %354, align 8, !tbaa !9
  %356 = call i32 @strcmp(ptr noundef %355, ptr noundef @.str.20) #14
  %357 = icmp eq i32 %356, 0
  br i1 %357, label %358, label %359

358:                                              ; preds = %350
  store i8 1, ptr %21, align 1, !tbaa !15
  br label %881

359:                                              ; preds = %350
  %360 = load ptr, ptr %5, align 8, !tbaa !9
  %361 = load i32, ptr %6, align 4, !tbaa !5
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds ptr, ptr %360, i64 %362
  %364 = load ptr, ptr %363, align 8, !tbaa !9
  %365 = call i32 @strcmp(ptr noundef %364, ptr noundef @.str.21) #14
  %366 = icmp eq i32 %365, 0
  br i1 %366, label %367, label %368

367:                                              ; preds = %359
  store i8 1, ptr %18, align 1, !tbaa !15
  br label %880

368:                                              ; preds = %359
  %369 = load ptr, ptr %5, align 8, !tbaa !9
  %370 = load i32, ptr %6, align 4, !tbaa !5
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds ptr, ptr %369, i64 %371
  %373 = load ptr, ptr %372, align 8, !tbaa !9
  %374 = call i32 @strcmp(ptr noundef %373, ptr noundef @.str.22) #14
  %375 = icmp eq i32 %374, 0
  br i1 %375, label %376, label %377

376:                                              ; preds = %368
  store i8 1, ptr %23, align 1, !tbaa !15
  br label %879

377:                                              ; preds = %368
  %378 = load ptr, ptr %5, align 8, !tbaa !9
  %379 = load i32, ptr %6, align 4, !tbaa !5
  %380 = sext i32 %379 to i64
  %381 = getelementptr inbounds ptr, ptr %378, i64 %380
  %382 = load ptr, ptr %381, align 8, !tbaa !9
  %383 = call i32 @strcmp(ptr noundef %382, ptr noundef @.str.7) #14
  %384 = icmp eq i32 %383, 0
  br i1 %384, label %385, label %388

385:                                              ; preds = %377
  invoke void @_Z15version_messagev()
          to label %386 unwind label %103

386:                                              ; preds = %385
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %387 unwind label %103

387:                                              ; preds = %386
  store i32 0, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

388:                                              ; preds = %377
  %389 = load ptr, ptr %5, align 8, !tbaa !9
  %390 = load i32, ptr %6, align 4, !tbaa !5
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds ptr, ptr %389, i64 %391
  %393 = load ptr, ptr %392, align 8, !tbaa !9
  %394 = call i32 @strcmp(ptr noundef %393, ptr noundef @.str.23) #14
  %395 = icmp eq i32 %394, 0
  br i1 %395, label %396, label %528

396:                                              ; preds = %388
  %397 = load i32, ptr %6, align 4, !tbaa !5
  %398 = load i32, ptr %4, align 4, !tbaa !5
  %399 = sub nsw i32 %398, 13
  %400 = icmp sge i32 %397, %399
  br i1 %400, label %401, label %404

401:                                              ; preds = %396
  invoke void @_Z13error_messagev()
          to label %402 unwind label %103

402:                                              ; preds = %401
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %403 unwind label %103

403:                                              ; preds = %402
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

404:                                              ; preds = %396
  %405 = load i32, ptr %6, align 4, !tbaa !5
  %406 = add nsw i32 %405, 1
  store i32 %406, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #13
  %407 = load ptr, ptr %5, align 8, !tbaa !9
  %408 = load i32, ptr %6, align 4, !tbaa !5
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr %6, align 4, !tbaa !5
  %410 = sext i32 %408 to i64
  %411 = getelementptr inbounds ptr, ptr %407, i64 %410
  %412 = load ptr, ptr %411, align 8, !tbaa !9
  %413 = call double @atof(ptr noundef %412) #14
  store double %413, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #13
  %414 = load ptr, ptr %5, align 8, !tbaa !9
  %415 = load i32, ptr %6, align 4, !tbaa !5
  %416 = add nsw i32 %415, 1
  store i32 %416, ptr %6, align 4, !tbaa !5
  %417 = sext i32 %415 to i64
  %418 = getelementptr inbounds ptr, ptr %414, i64 %417
  %419 = load ptr, ptr %418, align 8, !tbaa !9
  %420 = call double @atof(ptr noundef %419) #14
  store double %420, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #13
  %421 = load ptr, ptr %5, align 8, !tbaa !9
  %422 = load i32, ptr %6, align 4, !tbaa !5
  %423 = add nsw i32 %422, 1
  store i32 %423, ptr %6, align 4, !tbaa !5
  %424 = sext i32 %422 to i64
  %425 = getelementptr inbounds ptr, ptr %421, i64 %424
  %426 = load ptr, ptr %425, align 8, !tbaa !9
  %427 = call double @atof(ptr noundef %426) #14
  store double %427, ptr %32, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #13
  %428 = load ptr, ptr %5, align 8, !tbaa !9
  %429 = load i32, ptr %6, align 4, !tbaa !5
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr %6, align 4, !tbaa !5
  %431 = sext i32 %429 to i64
  %432 = getelementptr inbounds ptr, ptr %428, i64 %431
  %433 = load ptr, ptr %432, align 8, !tbaa !9
  %434 = call double @atof(ptr noundef %433) #14
  store double %434, ptr %33, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #13
  %435 = load ptr, ptr %5, align 8, !tbaa !9
  %436 = load i32, ptr %6, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr %6, align 4, !tbaa !5
  %438 = sext i32 %436 to i64
  %439 = getelementptr inbounds ptr, ptr %435, i64 %438
  %440 = load ptr, ptr %439, align 8, !tbaa !9
  %441 = call double @atof(ptr noundef %440) #14
  store double %441, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #13
  %442 = load ptr, ptr %5, align 8, !tbaa !9
  %443 = load i32, ptr %6, align 4, !tbaa !5
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds ptr, ptr %442, i64 %444
  %446 = load ptr, ptr %445, align 8, !tbaa !9
  %447 = call double @atof(ptr noundef %446) #14
  store double %447, ptr %35, align 8, !tbaa !11
  %448 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %449 unwind label %499

449:                                              ; preds = %404
  %450 = load double, ptr %30, align 8, !tbaa !11
  %451 = fneg double %450
  %452 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %448, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %451, i32 noundef %452)
          to label %453 unwind label %503

453:                                              ; preds = %449
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %448)
          to label %454 unwind label %499

454:                                              ; preds = %453
  %455 = load i32, ptr %7, align 4, !tbaa !5
  %456 = add nsw i32 %455, -1
  store i32 %456, ptr %7, align 4, !tbaa !5
  %457 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %458 unwind label %499

458:                                              ; preds = %454
  %459 = load double, ptr %31, align 8, !tbaa !11
  %460 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %457, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %459, i32 noundef %460)
          to label %461 unwind label %507

461:                                              ; preds = %458
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %457)
          to label %462 unwind label %499

462:                                              ; preds = %461
  %463 = load i32, ptr %7, align 4, !tbaa !5
  %464 = add nsw i32 %463, -1
  store i32 %464, ptr %7, align 4, !tbaa !5
  %465 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %466 unwind label %499

466:                                              ; preds = %462
  %467 = load double, ptr %32, align 8, !tbaa !11
  %468 = fneg double %467
  %469 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %465, double noundef 0.000000e+00, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef %468, i32 noundef %469)
          to label %470 unwind label %511

470:                                              ; preds = %466
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %465)
          to label %471 unwind label %499

471:                                              ; preds = %470
  %472 = load i32, ptr %7, align 4, !tbaa !5
  %473 = add nsw i32 %472, -1
  store i32 %473, ptr %7, align 4, !tbaa !5
  %474 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %475 unwind label %499

475:                                              ; preds = %471
  %476 = load double, ptr %33, align 8, !tbaa !11
  %477 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %474, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef %476, i32 noundef %477)
          to label %478 unwind label %515

478:                                              ; preds = %475
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %474)
          to label %479 unwind label %499

479:                                              ; preds = %478
  %480 = load i32, ptr %7, align 4, !tbaa !5
  %481 = add nsw i32 %480, -1
  store i32 %481, ptr %7, align 4, !tbaa !5
  %482 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %483 unwind label %499

483:                                              ; preds = %479
  %484 = load double, ptr %34, align 8, !tbaa !11
  %485 = fneg double %484
  %486 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %482, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -1.000000e+00, double noundef %485, i32 noundef %486)
          to label %487 unwind label %519

487:                                              ; preds = %483
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %482)
          to label %488 unwind label %499

488:                                              ; preds = %487
  %489 = load i32, ptr %7, align 4, !tbaa !5
  %490 = add nsw i32 %489, -1
  store i32 %490, ptr %7, align 4, !tbaa !5
  %491 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %492 unwind label %499

492:                                              ; preds = %488
  %493 = load double, ptr %35, align 8, !tbaa !11
  %494 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %491, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef %493, i32 noundef %494)
          to label %495 unwind label %523

495:                                              ; preds = %492
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %491)
          to label %496 unwind label %499

496:                                              ; preds = %495
  %497 = load i32, ptr %7, align 4, !tbaa !5
  %498 = add nsw i32 %497, -1
  store i32 %498, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #13
  br label %877

499:                                              ; preds = %495, %488, %487, %479, %478, %471, %470, %462, %461, %454, %453, %404
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %27, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %28, align 4
  br label %527

503:                                              ; preds = %449
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %27, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %448, i64 noundef 48) #16
  br label %527

507:                                              ; preds = %458
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %27, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %457, i64 noundef 48) #16
  br label %527

511:                                              ; preds = %466
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %27, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %465, i64 noundef 48) #16
  br label %527

515:                                              ; preds = %475
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %27, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %474, i64 noundef 48) #16
  br label %527

519:                                              ; preds = %483
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %27, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %482, i64 noundef 48) #16
  br label %527

523:                                              ; preds = %492
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %27, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %491, i64 noundef 48) #16
  br label %527

527:                                              ; preds = %523, %519, %515, %511, %507, %503, %499
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #13
  br label %1595

528:                                              ; preds = %388
  %529 = load ptr, ptr %5, align 8, !tbaa !9
  %530 = load i32, ptr %6, align 4, !tbaa !5
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds ptr, ptr %529, i64 %531
  %533 = load ptr, ptr %532, align 8, !tbaa !9
  %534 = call i32 @strcmp(ptr noundef %533, ptr noundef @.str.24) #14
  %535 = icmp eq i32 %534, 0
  br i1 %535, label %536, label %594

536:                                              ; preds = %528
  %537 = load i32, ptr %6, align 4, !tbaa !5
  %538 = load i32, ptr %4, align 4, !tbaa !5
  %539 = sub nsw i32 %538, 11
  %540 = icmp sge i32 %537, %539
  br i1 %540, label %541, label %544

541:                                              ; preds = %536
  invoke void @_Z13error_messagev()
          to label %542 unwind label %103

542:                                              ; preds = %541
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %543 unwind label %103

543:                                              ; preds = %542
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

544:                                              ; preds = %536
  %545 = load i32, ptr %6, align 4, !tbaa !5
  %546 = add nsw i32 %545, 1
  store i32 %546, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #13
  %547 = load ptr, ptr %5, align 8, !tbaa !9
  %548 = load i32, ptr %6, align 4, !tbaa !5
  %549 = add nsw i32 %548, 1
  store i32 %549, ptr %6, align 4, !tbaa !5
  %550 = sext i32 %548 to i64
  %551 = getelementptr inbounds ptr, ptr %547, i64 %550
  %552 = load ptr, ptr %551, align 8, !tbaa !9
  %553 = call double @atof(ptr noundef %552) #14
  store double %553, ptr %36, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #13
  %554 = load ptr, ptr %5, align 8, !tbaa !9
  %555 = load i32, ptr %6, align 4, !tbaa !5
  %556 = add nsw i32 %555, 1
  store i32 %556, ptr %6, align 4, !tbaa !5
  %557 = sext i32 %555 to i64
  %558 = getelementptr inbounds ptr, ptr %554, i64 %557
  %559 = load ptr, ptr %558, align 8, !tbaa !9
  %560 = call double @atof(ptr noundef %559) #14
  store double %560, ptr %37, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #13
  %561 = load ptr, ptr %5, align 8, !tbaa !9
  %562 = load i32, ptr %6, align 4, !tbaa !5
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr %6, align 4, !tbaa !5
  %564 = sext i32 %562 to i64
  %565 = getelementptr inbounds ptr, ptr %561, i64 %564
  %566 = load ptr, ptr %565, align 8, !tbaa !9
  %567 = call double @atof(ptr noundef %566) #14
  store double %567, ptr %38, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #13
  %568 = load ptr, ptr %5, align 8, !tbaa !9
  %569 = load i32, ptr %6, align 4, !tbaa !5
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds ptr, ptr %568, i64 %570
  %572 = load ptr, ptr %571, align 8, !tbaa !9
  %573 = call double @atof(ptr noundef %572) #14
  store double %573, ptr %39, align 8, !tbaa !11
  %574 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %575 unwind label %585

575:                                              ; preds = %544
  %576 = load double, ptr %36, align 8, !tbaa !11
  %577 = load double, ptr %37, align 8, !tbaa !11
  %578 = load double, ptr %38, align 8, !tbaa !11
  %579 = load double, ptr %39, align 8, !tbaa !11
  %580 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro11wall_sphereC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %574, double noundef %576, double noundef %577, double noundef %578, double noundef %579, i32 noundef %580)
          to label %581 unwind label %589

581:                                              ; preds = %575
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %574)
          to label %582 unwind label %585

582:                                              ; preds = %581
  %583 = load i32, ptr %7, align 4, !tbaa !5
  %584 = add nsw i32 %583, -1
  store i32 %584, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #13
  br label %876

585:                                              ; preds = %581, %544
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %27, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %28, align 4
  br label %593

589:                                              ; preds = %575
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %27, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %574, i64 noundef 48) #16
  br label %593

593:                                              ; preds = %589, %585
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #13
  br label %1595

594:                                              ; preds = %528
  %595 = load ptr, ptr %5, align 8, !tbaa !9
  %596 = load i32, ptr %6, align 4, !tbaa !5
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds ptr, ptr %595, i64 %597
  %599 = load ptr, ptr %598, align 8, !tbaa !9
  %600 = call i32 @strcmp(ptr noundef %599, ptr noundef @.str.25) #14
  %601 = icmp eq i32 %600, 0
  br i1 %601, label %602, label %660

602:                                              ; preds = %594
  %603 = load i32, ptr %6, align 4, !tbaa !5
  %604 = load i32, ptr %4, align 4, !tbaa !5
  %605 = sub nsw i32 %604, 11
  %606 = icmp sge i32 %603, %605
  br i1 %606, label %607, label %610

607:                                              ; preds = %602
  invoke void @_Z13error_messagev()
          to label %608 unwind label %103

608:                                              ; preds = %607
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %609 unwind label %103

609:                                              ; preds = %608
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

610:                                              ; preds = %602
  %611 = load i32, ptr %6, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #13
  %613 = load ptr, ptr %5, align 8, !tbaa !9
  %614 = load i32, ptr %6, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr %6, align 4, !tbaa !5
  %616 = sext i32 %614 to i64
  %617 = getelementptr inbounds ptr, ptr %613, i64 %616
  %618 = load ptr, ptr %617, align 8, !tbaa !9
  %619 = call double @atof(ptr noundef %618) #14
  store double %619, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #13
  %620 = load ptr, ptr %5, align 8, !tbaa !9
  %621 = load i32, ptr %6, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr %6, align 4, !tbaa !5
  %623 = sext i32 %621 to i64
  %624 = getelementptr inbounds ptr, ptr %620, i64 %623
  %625 = load ptr, ptr %624, align 8, !tbaa !9
  %626 = call double @atof(ptr noundef %625) #14
  store double %626, ptr %41, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #13
  %627 = load ptr, ptr %5, align 8, !tbaa !9
  %628 = load i32, ptr %6, align 4, !tbaa !5
  %629 = add nsw i32 %628, 1
  store i32 %629, ptr %6, align 4, !tbaa !5
  %630 = sext i32 %628 to i64
  %631 = getelementptr inbounds ptr, ptr %627, i64 %630
  %632 = load ptr, ptr %631, align 8, !tbaa !9
  %633 = call double @atof(ptr noundef %632) #14
  store double %633, ptr %42, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #13
  %634 = load ptr, ptr %5, align 8, !tbaa !9
  %635 = load i32, ptr %6, align 4, !tbaa !5
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds ptr, ptr %634, i64 %636
  %638 = load ptr, ptr %637, align 8, !tbaa !9
  %639 = call double @atof(ptr noundef %638) #14
  store double %639, ptr %43, align 8, !tbaa !11
  %640 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %641 unwind label %651

641:                                              ; preds = %610
  %642 = load double, ptr %40, align 8, !tbaa !11
  %643 = load double, ptr %41, align 8, !tbaa !11
  %644 = load double, ptr %42, align 8, !tbaa !11
  %645 = load double, ptr %43, align 8, !tbaa !11
  %646 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %640, double noundef %642, double noundef %643, double noundef %644, double noundef %645, i32 noundef %646)
          to label %647 unwind label %655

647:                                              ; preds = %641
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %640)
          to label %648 unwind label %651

648:                                              ; preds = %647
  %649 = load i32, ptr %7, align 4, !tbaa !5
  %650 = add nsw i32 %649, -1
  store i32 %650, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #13
  br label %875

651:                                              ; preds = %647, %610
  %652 = landingpad { ptr, i32 }
          cleanup
  %653 = extractvalue { ptr, i32 } %652, 0
  store ptr %653, ptr %27, align 8
  %654 = extractvalue { ptr, i32 } %652, 1
  store i32 %654, ptr %28, align 4
  br label %659

655:                                              ; preds = %641
  %656 = landingpad { ptr, i32 }
          cleanup
  %657 = extractvalue { ptr, i32 } %656, 0
  store ptr %657, ptr %27, align 8
  %658 = extractvalue { ptr, i32 } %656, 1
  store i32 %658, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %640, i64 noundef 48) #16
  br label %659

659:                                              ; preds = %655, %651
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #13
  br label %1595

660:                                              ; preds = %594
  %661 = load ptr, ptr %5, align 8, !tbaa !9
  %662 = load i32, ptr %6, align 4, !tbaa !5
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds ptr, ptr %661, i64 %663
  %665 = load ptr, ptr %664, align 8, !tbaa !9
  %666 = call i32 @strcmp(ptr noundef %665, ptr noundef @.str.26) #14
  %667 = icmp eq i32 %666, 0
  br i1 %667, label %668, label %750

668:                                              ; preds = %660
  %669 = load i32, ptr %6, align 4, !tbaa !5
  %670 = load i32, ptr %4, align 4, !tbaa !5
  %671 = sub nsw i32 %670, 14
  %672 = icmp sge i32 %669, %671
  br i1 %672, label %673, label %676

673:                                              ; preds = %668
  invoke void @_Z13error_messagev()
          to label %674 unwind label %103

674:                                              ; preds = %673
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %675 unwind label %103

675:                                              ; preds = %674
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

676:                                              ; preds = %668
  %677 = load i32, ptr %6, align 4, !tbaa !5
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #13
  %679 = load ptr, ptr %5, align 8, !tbaa !9
  %680 = load i32, ptr %6, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr %6, align 4, !tbaa !5
  %682 = sext i32 %680 to i64
  %683 = getelementptr inbounds ptr, ptr %679, i64 %682
  %684 = load ptr, ptr %683, align 8, !tbaa !9
  %685 = call double @atof(ptr noundef %684) #14
  store double %685, ptr %44, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #13
  %686 = load ptr, ptr %5, align 8, !tbaa !9
  %687 = load i32, ptr %6, align 4, !tbaa !5
  %688 = add nsw i32 %687, 1
  store i32 %688, ptr %6, align 4, !tbaa !5
  %689 = sext i32 %687 to i64
  %690 = getelementptr inbounds ptr, ptr %686, i64 %689
  %691 = load ptr, ptr %690, align 8, !tbaa !9
  %692 = call double @atof(ptr noundef %691) #14
  store double %692, ptr %45, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #13
  %693 = load ptr, ptr %5, align 8, !tbaa !9
  %694 = load i32, ptr %6, align 4, !tbaa !5
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr %6, align 4, !tbaa !5
  %696 = sext i32 %694 to i64
  %697 = getelementptr inbounds ptr, ptr %693, i64 %696
  %698 = load ptr, ptr %697, align 8, !tbaa !9
  %699 = call double @atof(ptr noundef %698) #14
  store double %699, ptr %46, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #13
  %700 = load ptr, ptr %5, align 8, !tbaa !9
  %701 = load i32, ptr %6, align 4, !tbaa !5
  %702 = add nsw i32 %701, 1
  store i32 %702, ptr %6, align 4, !tbaa !5
  %703 = sext i32 %701 to i64
  %704 = getelementptr inbounds ptr, ptr %700, i64 %703
  %705 = load ptr, ptr %704, align 8, !tbaa !9
  %706 = call double @atof(ptr noundef %705) #14
  store double %706, ptr %47, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #13
  %707 = load ptr, ptr %5, align 8, !tbaa !9
  %708 = load i32, ptr %6, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr %6, align 4, !tbaa !5
  %710 = sext i32 %708 to i64
  %711 = getelementptr inbounds ptr, ptr %707, i64 %710
  %712 = load ptr, ptr %711, align 8, !tbaa !9
  %713 = call double @atof(ptr noundef %712) #14
  store double %713, ptr %48, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #13
  %714 = load ptr, ptr %5, align 8, !tbaa !9
  %715 = load i32, ptr %6, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr %6, align 4, !tbaa !5
  %717 = sext i32 %715 to i64
  %718 = getelementptr inbounds ptr, ptr %714, i64 %717
  %719 = load ptr, ptr %718, align 8, !tbaa !9
  %720 = call double @atof(ptr noundef %719) #14
  store double %720, ptr %49, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #13
  %721 = load ptr, ptr %5, align 8, !tbaa !9
  %722 = load i32, ptr %6, align 4, !tbaa !5
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds ptr, ptr %721, i64 %723
  %725 = load ptr, ptr %724, align 8, !tbaa !9
  %726 = call double @atof(ptr noundef %725) #14
  store double %726, ptr %50, align 8, !tbaa !11
  %727 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 80) #15
          to label %728 unwind label %741

728:                                              ; preds = %676
  %729 = load double, ptr %44, align 8, !tbaa !11
  %730 = load double, ptr %45, align 8, !tbaa !11
  %731 = load double, ptr %46, align 8, !tbaa !11
  %732 = load double, ptr %47, align 8, !tbaa !11
  %733 = load double, ptr %48, align 8, !tbaa !11
  %734 = load double, ptr %49, align 8, !tbaa !11
  %735 = load double, ptr %50, align 8, !tbaa !11
  %736 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro13wall_cylinderC2Edddddddi(ptr noundef nonnull align 8 dereferenceable(80) %727, double noundef %729, double noundef %730, double noundef %731, double noundef %732, double noundef %733, double noundef %734, double noundef %735, i32 noundef %736)
          to label %737 unwind label %745

737:                                              ; preds = %728
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %727)
          to label %738 unwind label %741

738:                                              ; preds = %737
  %739 = load i32, ptr %7, align 4, !tbaa !5
  %740 = add nsw i32 %739, -1
  store i32 %740, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #13
  br label %874

741:                                              ; preds = %737, %676
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %27, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %28, align 4
  br label %749

745:                                              ; preds = %728
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %27, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %727, i64 noundef 80) #16
  br label %749

749:                                              ; preds = %745, %741
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #13
  br label %1595

750:                                              ; preds = %660
  %751 = load ptr, ptr %5, align 8, !tbaa !9
  %752 = load i32, ptr %6, align 4, !tbaa !5
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds ptr, ptr %751, i64 %753
  %755 = load ptr, ptr %754, align 8, !tbaa !9
  %756 = call i32 @strcmp(ptr noundef %755, ptr noundef @.str.27) #14
  %757 = icmp eq i32 %756, 0
  br i1 %757, label %758, label %840

758:                                              ; preds = %750
  %759 = load i32, ptr %6, align 4, !tbaa !5
  %760 = load i32, ptr %4, align 4, !tbaa !5
  %761 = sub nsw i32 %760, 14
  %762 = icmp sge i32 %759, %761
  br i1 %762, label %763, label %766

763:                                              ; preds = %758
  invoke void @_Z13error_messagev()
          to label %764 unwind label %103

764:                                              ; preds = %763
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %765 unwind label %103

765:                                              ; preds = %764
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

766:                                              ; preds = %758
  %767 = load i32, ptr %6, align 4, !tbaa !5
  %768 = add nsw i32 %767, 1
  store i32 %768, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #13
  %769 = load ptr, ptr %5, align 8, !tbaa !9
  %770 = load i32, ptr %6, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr %6, align 4, !tbaa !5
  %772 = sext i32 %770 to i64
  %773 = getelementptr inbounds ptr, ptr %769, i64 %772
  %774 = load ptr, ptr %773, align 8, !tbaa !9
  %775 = call double @atof(ptr noundef %774) #14
  store double %775, ptr %51, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #13
  %776 = load ptr, ptr %5, align 8, !tbaa !9
  %777 = load i32, ptr %6, align 4, !tbaa !5
  %778 = add nsw i32 %777, 1
  store i32 %778, ptr %6, align 4, !tbaa !5
  %779 = sext i32 %777 to i64
  %780 = getelementptr inbounds ptr, ptr %776, i64 %779
  %781 = load ptr, ptr %780, align 8, !tbaa !9
  %782 = call double @atof(ptr noundef %781) #14
  store double %782, ptr %52, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #13
  %783 = load ptr, ptr %5, align 8, !tbaa !9
  %784 = load i32, ptr %6, align 4, !tbaa !5
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr %6, align 4, !tbaa !5
  %786 = sext i32 %784 to i64
  %787 = getelementptr inbounds ptr, ptr %783, i64 %786
  %788 = load ptr, ptr %787, align 8, !tbaa !9
  %789 = call double @atof(ptr noundef %788) #14
  store double %789, ptr %53, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #13
  %790 = load ptr, ptr %5, align 8, !tbaa !9
  %791 = load i32, ptr %6, align 4, !tbaa !5
  %792 = add nsw i32 %791, 1
  store i32 %792, ptr %6, align 4, !tbaa !5
  %793 = sext i32 %791 to i64
  %794 = getelementptr inbounds ptr, ptr %790, i64 %793
  %795 = load ptr, ptr %794, align 8, !tbaa !9
  %796 = call double @atof(ptr noundef %795) #14
  store double %796, ptr %54, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #13
  %797 = load ptr, ptr %5, align 8, !tbaa !9
  %798 = load i32, ptr %6, align 4, !tbaa !5
  %799 = add nsw i32 %798, 1
  store i32 %799, ptr %6, align 4, !tbaa !5
  %800 = sext i32 %798 to i64
  %801 = getelementptr inbounds ptr, ptr %797, i64 %800
  %802 = load ptr, ptr %801, align 8, !tbaa !9
  %803 = call double @atof(ptr noundef %802) #14
  store double %803, ptr %55, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #13
  %804 = load ptr, ptr %5, align 8, !tbaa !9
  %805 = load i32, ptr %6, align 4, !tbaa !5
  %806 = add nsw i32 %805, 1
  store i32 %806, ptr %6, align 4, !tbaa !5
  %807 = sext i32 %805 to i64
  %808 = getelementptr inbounds ptr, ptr %804, i64 %807
  %809 = load ptr, ptr %808, align 8, !tbaa !9
  %810 = call double @atof(ptr noundef %809) #14
  store double %810, ptr %56, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #13
  %811 = load ptr, ptr %5, align 8, !tbaa !9
  %812 = load i32, ptr %6, align 4, !tbaa !5
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds ptr, ptr %811, i64 %813
  %815 = load ptr, ptr %814, align 8, !tbaa !9
  %816 = call double @atof(ptr noundef %815) #14
  store double %816, ptr %57, align 8, !tbaa !11
  %817 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #15
          to label %818 unwind label %831

818:                                              ; preds = %766
  %819 = load double, ptr %51, align 8, !tbaa !11
  %820 = load double, ptr %52, align 8, !tbaa !11
  %821 = load double, ptr %53, align 8, !tbaa !11
  %822 = load double, ptr %54, align 8, !tbaa !11
  %823 = load double, ptr %55, align 8, !tbaa !11
  %824 = load double, ptr %56, align 8, !tbaa !11
  %825 = load double, ptr %57, align 8, !tbaa !11
  %826 = load i32, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4voro9wall_coneC2Edddddddi(ptr noundef nonnull align 8 dereferenceable(96) %817, double noundef %819, double noundef %820, double noundef %821, double noundef %822, double noundef %823, double noundef %824, double noundef %825, i32 noundef %826)
          to label %827 unwind label %835

827:                                              ; preds = %818
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %26, ptr noundef %817)
          to label %828 unwind label %831

828:                                              ; preds = %827
  %829 = load i32, ptr %7, align 4, !tbaa !5
  %830 = add nsw i32 %829, -1
  store i32 %830, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #13
  br label %873

831:                                              ; preds = %827, %766
  %832 = landingpad { ptr, i32 }
          cleanup
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %27, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %28, align 4
  br label %839

835:                                              ; preds = %818
  %836 = landingpad { ptr, i32 }
          cleanup
  %837 = extractvalue { ptr, i32 } %836, 0
  store ptr %837, ptr %27, align 8
  %838 = extractvalue { ptr, i32 } %836, 1
  store i32 %838, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %817, i64 noundef 96) #16
  br label %839

839:                                              ; preds = %835, %831
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #13
  br label %1595

840:                                              ; preds = %750
  %841 = load ptr, ptr %5, align 8, !tbaa !9
  %842 = load i32, ptr %6, align 4, !tbaa !5
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds ptr, ptr %841, i64 %843
  %845 = load ptr, ptr %844, align 8, !tbaa !9
  %846 = call i32 @strcmp(ptr noundef %845, ptr noundef @.str.28) #14
  %847 = icmp eq i32 %846, 0
  br i1 %847, label %848, label %849

848:                                              ; preds = %840
  store i8 1, ptr %17, align 1, !tbaa !15
  store i8 1, ptr %16, align 1, !tbaa !15
  br label %872

849:                                              ; preds = %840
  %850 = load ptr, ptr %5, align 8, !tbaa !9
  %851 = load i32, ptr %6, align 4, !tbaa !5
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds ptr, ptr %850, i64 %852
  %854 = load ptr, ptr %853, align 8, !tbaa !9
  %855 = call i32 @strcmp(ptr noundef %854, ptr noundef @.str.29) #14
  %856 = icmp eq i32 %855, 0
  br i1 %856, label %857, label %858

857:                                              ; preds = %849
  store i8 1, ptr %16, align 1, !tbaa !15
  br label %871

858:                                              ; preds = %849
  %859 = load ptr, ptr %5, align 8, !tbaa !9
  %860 = load i32, ptr %6, align 4, !tbaa !5
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds ptr, ptr %859, i64 %861
  %863 = load ptr, ptr %862, align 8, !tbaa !9
  %864 = call i32 @strcmp(ptr noundef %863, ptr noundef @.str.30) #14
  %865 = icmp eq i32 %864, 0
  br i1 %865, label %866, label %867

866:                                              ; preds = %858
  store i8 1, ptr %17, align 1, !tbaa !15
  br label %870

867:                                              ; preds = %858
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %868 unwind label %103

868:                                              ; preds = %867
  invoke void @_Z13error_messagev()
          to label %869 unwind label %103

869:                                              ; preds = %868
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

870:                                              ; preds = %866
  br label %871

871:                                              ; preds = %870, %857
  br label %872

872:                                              ; preds = %871, %848
  br label %873

873:                                              ; preds = %872, %828
  br label %874

874:                                              ; preds = %873, %738
  br label %875

875:                                              ; preds = %874, %648
  br label %876

876:                                              ; preds = %875, %582
  br label %877

877:                                              ; preds = %876, %496
  br label %878

878:                                              ; preds = %877
  br label %879

879:                                              ; preds = %878, %376
  br label %880

880:                                              ; preds = %879, %367
  br label %881

881:                                              ; preds = %880, %358
  br label %882

882:                                              ; preds = %881, %349
  br label %883

883:                                              ; preds = %882, %340
  br label %884

884:                                              ; preds = %883, %331
  br label %885

885:                                              ; preds = %884, %322
  br label %886

886:                                              ; preds = %885, %313
  br label %887

887:                                              ; preds = %886, %244
  br label %888

888:                                              ; preds = %887, %227
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890, %172
  br label %892

892:                                              ; preds = %891, %163
  %893 = load i32, ptr %6, align 4, !tbaa !5
  %894 = add nsw i32 %893, 1
  store i32 %894, ptr %6, align 4, !tbaa !5
  br label %131, !llvm.loop !17

895:                                              ; preds = %131
  %896 = load i32, ptr %12, align 4, !tbaa !5
  %897 = icmp sle i32 %896, 0
  br i1 %897, label %898, label %903

898:                                              ; preds = %895
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = invoke i32 @fputs(ptr noundef @.str.31, ptr noundef %899)
          to label %901 unwind label %103

901:                                              ; preds = %898
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %902 unwind label %103

902:                                              ; preds = %901
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1593

903:                                              ; preds = %895
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #13
  %904 = load ptr, ptr %5, align 8, !tbaa !9
  %905 = load i32, ptr %6, align 4, !tbaa !5
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds ptr, ptr %904, i64 %906
  %908 = load ptr, ptr %907, align 8, !tbaa !9
  %909 = call double @atof(ptr noundef %908) #14
  store double %909, ptr %58, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #13
  %910 = load ptr, ptr %5, align 8, !tbaa !9
  %911 = load i32, ptr %6, align 4, !tbaa !5
  %912 = add nsw i32 %911, 1
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds ptr, ptr %910, i64 %913
  %915 = load ptr, ptr %914, align 8, !tbaa !9
  %916 = call double @atof(ptr noundef %915) #14
  store double %916, ptr %59, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #13
  %917 = load ptr, ptr %5, align 8, !tbaa !9
  %918 = load i32, ptr %6, align 4, !tbaa !5
  %919 = add nsw i32 %918, 2
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds ptr, ptr %917, i64 %920
  %922 = load ptr, ptr %921, align 8, !tbaa !9
  %923 = call double @atof(ptr noundef %922) #14
  store double %923, ptr %60, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #13
  %924 = load ptr, ptr %5, align 8, !tbaa !9
  %925 = load i32, ptr %6, align 4, !tbaa !5
  %926 = add nsw i32 %925, 3
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds ptr, ptr %924, i64 %927
  %929 = load ptr, ptr %928, align 8, !tbaa !9
  %930 = call double @atof(ptr noundef %929) #14
  store double %930, ptr %61, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #13
  %931 = load ptr, ptr %5, align 8, !tbaa !9
  %932 = load i32, ptr %6, align 4, !tbaa !5
  %933 = add nsw i32 %932, 4
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds ptr, ptr %931, i64 %934
  %936 = load ptr, ptr %935, align 8, !tbaa !9
  %937 = call double @atof(ptr noundef %936) #14
  store double %937, ptr %62, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #13
  %938 = load ptr, ptr %5, align 8, !tbaa !9
  %939 = load i32, ptr %6, align 4, !tbaa !5
  %940 = add nsw i32 %939, 5
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds ptr, ptr %938, i64 %941
  %943 = load ptr, ptr %942, align 8, !tbaa !9
  %944 = call double @atof(ptr noundef %943) #14
  store double %944, ptr %63, align 8, !tbaa !11
  %945 = load double, ptr %59, align 8, !tbaa !11
  %946 = load double, ptr %58, align 8, !tbaa !11
  %947 = fcmp olt double %945, %946
  br i1 %947, label %948, label %957

948:                                              ; preds = %903
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = invoke i32 @fputs(ptr noundef @.str.32, ptr noundef %949)
          to label %951 unwind label %953

951:                                              ; preds = %948
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %952 unwind label %953

952:                                              ; preds = %951
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1591

953:                                              ; preds = %1034, %1026, %1011, %1004, %996, %981, %973, %970, %964, %961, %951, %948
  %954 = landingpad { ptr, i32 }
          cleanup
  %955 = extractvalue { ptr, i32 } %954, 0
  store ptr %955, ptr %27, align 8
  %956 = extractvalue { ptr, i32 } %954, 1
  store i32 %956, ptr %28, align 4
  br label %1592

957:                                              ; preds = %903
  %958 = load double, ptr %61, align 8, !tbaa !11
  %959 = load double, ptr %60, align 8, !tbaa !11
  %960 = fcmp olt double %958, %959
  br i1 %960, label %961, label %966

961:                                              ; preds = %957
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = invoke i32 @fputs(ptr noundef @.str.33, ptr noundef %962)
          to label %964 unwind label %953

964:                                              ; preds = %961
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %965 unwind label %953

965:                                              ; preds = %964
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1591

966:                                              ; preds = %957
  %967 = load double, ptr %63, align 8, !tbaa !11
  %968 = load double, ptr %62, align 8, !tbaa !11
  %969 = fcmp olt double %967, %968
  br i1 %969, label %970, label %975

970:                                              ; preds = %966
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = invoke i32 @fputs(ptr noundef @.str.34, ptr noundef %971)
          to label %973 unwind label %953

973:                                              ; preds = %970
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %974 unwind label %953

974:                                              ; preds = %973
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1591

975:                                              ; preds = %966
  %976 = load i32, ptr %14, align 4, !tbaa !13
  %977 = icmp eq i32 %976, 0
  br i1 %977, label %978, label %1042

978:                                              ; preds = %975
  %979 = load i8, ptr %18, align 1, !tbaa !15, !range !19, !noundef !20
  %980 = trunc i8 %979 to i1
  br i1 %980, label %981, label %1011

981:                                              ; preds = %978
  %982 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 128) #15
          to label %983 unwind label %953

983:                                              ; preds = %981
  %984 = load double, ptr %58, align 8, !tbaa !11
  %985 = load double, ptr %59, align 8, !tbaa !11
  %986 = load double, ptr %60, align 8, !tbaa !11
  %987 = load double, ptr %61, align 8, !tbaa !11
  %988 = load double, ptr %62, align 8, !tbaa !11
  %989 = load double, ptr %63, align 8, !tbaa !11
  %990 = load i8, ptr %19, align 1, !tbaa !15, !range !19, !noundef !20
  %991 = trunc i8 %990 to i1
  %992 = load i8, ptr %20, align 1, !tbaa !15, !range !19, !noundef !20
  %993 = trunc i8 %992 to i1
  %994 = load i8, ptr %21, align 1, !tbaa !15, !range !19, !noundef !20
  %995 = trunc i8 %994 to i1
  invoke void @_ZN4voro18pre_container_polyC2Eddddddbbb(ptr noundef nonnull align 8 dereferenceable(128) %982, double noundef %984, double noundef %985, double noundef %986, double noundef %987, double noundef %988, double noundef %989, i1 noundef zeroext %991, i1 noundef zeroext %993, i1 noundef zeroext %995)
          to label %996 unwind label %1007

996:                                              ; preds = %983
  store ptr %982, ptr %25, align 8, !tbaa !9
  %997 = load ptr, ptr %25, align 8, !tbaa !9
  %998 = load ptr, ptr %5, align 8, !tbaa !9
  %999 = load i32, ptr %6, align 4, !tbaa !5
  %1000 = add nsw i32 %999, 6
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds ptr, ptr %998, i64 %1001
  %1003 = load ptr, ptr %1002, align 8, !tbaa !9
  invoke void @_ZN4voro18pre_container_poly6importEPKc(ptr noundef nonnull align 8 dereferenceable(128) %997, ptr noundef %1003)
          to label %1004 unwind label %953

1004:                                             ; preds = %996
  %1005 = load ptr, ptr %25, align 8, !tbaa !9
  invoke void @_ZN4voro18pre_container_base13guess_optimalERiS1_S1_(ptr noundef nonnull align 8 dereferenceable(128) %1005, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %1006 unwind label %953

1006:                                             ; preds = %1004
  br label %1041

1007:                                             ; preds = %983
  %1008 = landingpad { ptr, i32 }
          cleanup
  %1009 = extractvalue { ptr, i32 } %1008, 0
  store ptr %1009, ptr %27, align 8
  %1010 = extractvalue { ptr, i32 } %1008, 1
  store i32 %1010, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %982, i64 noundef 128) #16
  br label %1592

1011:                                             ; preds = %978
  %1012 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 128) #15
          to label %1013 unwind label %953

1013:                                             ; preds = %1011
  %1014 = load double, ptr %58, align 8, !tbaa !11
  %1015 = load double, ptr %59, align 8, !tbaa !11
  %1016 = load double, ptr %60, align 8, !tbaa !11
  %1017 = load double, ptr %61, align 8, !tbaa !11
  %1018 = load double, ptr %62, align 8, !tbaa !11
  %1019 = load double, ptr %63, align 8, !tbaa !11
  %1020 = load i8, ptr %19, align 1, !tbaa !15, !range !19, !noundef !20
  %1021 = trunc i8 %1020 to i1
  %1022 = load i8, ptr %20, align 1, !tbaa !15, !range !19, !noundef !20
  %1023 = trunc i8 %1022 to i1
  %1024 = load i8, ptr %21, align 1, !tbaa !15, !range !19, !noundef !20
  %1025 = trunc i8 %1024 to i1
  invoke void @_ZN4voro13pre_containerC2Eddddddbbb(ptr noundef nonnull align 8 dereferenceable(128) %1012, double noundef %1014, double noundef %1015, double noundef %1016, double noundef %1017, double noundef %1018, double noundef %1019, i1 noundef zeroext %1021, i1 noundef zeroext %1023, i1 noundef zeroext %1025)
          to label %1026 unwind label %1037

1026:                                             ; preds = %1013
  store ptr %1012, ptr %24, align 8, !tbaa !9
  %1027 = load ptr, ptr %24, align 8, !tbaa !9
  %1028 = load ptr, ptr %5, align 8, !tbaa !9
  %1029 = load i32, ptr %6, align 4, !tbaa !5
  %1030 = add nsw i32 %1029, 6
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds ptr, ptr %1028, i64 %1031
  %1033 = load ptr, ptr %1032, align 8, !tbaa !9
  invoke void @_ZN4voro13pre_container6importEPKc(ptr noundef nonnull align 8 dereferenceable(128) %1027, ptr noundef %1033)
          to label %1034 unwind label %953

1034:                                             ; preds = %1026
  %1035 = load ptr, ptr %24, align 8, !tbaa !9
  invoke void @_ZN4voro18pre_container_base13guess_optimalERiS1_S1_(ptr noundef nonnull align 8 dereferenceable(128) %1035, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %1036 unwind label %953

1036:                                             ; preds = %1034
  br label %1041

1037:                                             ; preds = %1013
  %1038 = landingpad { ptr, i32 }
          cleanup
  %1039 = extractvalue { ptr, i32 } %1038, 0
  store ptr %1039, ptr %27, align 8
  %1040 = extractvalue { ptr, i32 } %1038, 1
  store i32 %1040, ptr %28, align 4
  call void @_ZdlPvm(ptr noundef %1012, i64 noundef 128) #16
  br label %1592

1041:                                             ; preds = %1036, %1006
  br label %1113

1042:                                             ; preds = %975
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #13
  %1043 = load i32, ptr %14, align 4, !tbaa !13
  %1044 = icmp eq i32 %1043, 1
  br i1 %1044, label %1045, label %1091

1045:                                             ; preds = %1042
  %1046 = load double, ptr %13, align 8, !tbaa !11
  %1047 = fcmp olt double %1046, 0x3DA5FD7FE1796495
  br i1 %1047, label %1048, label %1067

1048:                                             ; preds = %1045
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = invoke i32 @fputs(ptr noundef @.str.35, ptr noundef %1049)
          to label %1051 unwind label %1058

1051:                                             ; preds = %1048
  %1052 = load double, ptr %13, align 8, !tbaa !11
  %1053 = fcmp olt double %1052, 0.000000e+00
  br i1 %1053, label %1054, label %1062

1054:                                             ; preds = %1051
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = invoke i32 @fputs(ptr noundef @.str.36, ptr noundef %1055)
          to label %1057 unwind label %1058

1057:                                             ; preds = %1054
  br label %1065

1058:                                             ; preds = %1105, %1065, %1054, %1048
  %1059 = landingpad { ptr, i32 }
          cleanup
  %1060 = extractvalue { ptr, i32 } %1059, 0
  store ptr %1060, ptr %27, align 8
  %1061 = extractvalue { ptr, i32 } %1059, 1
  store i32 %1061, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #13
  br label %1592

1062:                                             ; preds = %1051
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1063, ptr noundef @.str.37, double noundef 0x3DA5FD7FE1796495) #13
  br label %1065

1065:                                             ; preds = %1062, %1057
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %1066 unwind label %1058

1066:                                             ; preds = %1065
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1110

1067:                                             ; preds = %1045
  %1068 = load double, ptr %13, align 8, !tbaa !11
  %1069 = fdiv double 6.000000e-01, %1068
  store double %1069, ptr %13, align 8, !tbaa !11
  %1070 = load double, ptr %59, align 8, !tbaa !11
  %1071 = load double, ptr %58, align 8, !tbaa !11
  %1072 = fsub double %1070, %1071
  %1073 = load double, ptr %13, align 8, !tbaa !11
  %1074 = call double @llvm.fmuladd.f64(double %1072, double %1073, double 1.000000e+00)
  store double %1074, ptr %64, align 8, !tbaa !11
  %1075 = load double, ptr %61, align 8, !tbaa !11
  %1076 = load double, ptr %60, align 8, !tbaa !11
  %1077 = fsub double %1075, %1076
  %1078 = load double, ptr %13, align 8, !tbaa !11
  %1079 = call double @llvm.fmuladd.f64(double %1077, double %1078, double 1.000000e+00)
  store double %1079, ptr %65, align 8, !tbaa !11
  %1080 = load double, ptr %63, align 8, !tbaa !11
  %1081 = load double, ptr %62, align 8, !tbaa !11
  %1082 = fsub double %1080, %1081
  %1083 = load double, ptr %13, align 8, !tbaa !11
  %1084 = call double @llvm.fmuladd.f64(double %1082, double %1083, double 1.000000e+00)
  store double %1084, ptr %66, align 8, !tbaa !11
  %1085 = load double, ptr %64, align 8, !tbaa !11
  %1086 = fptosi double %1085 to i32
  store i32 %1086, ptr %9, align 4, !tbaa !5
  %1087 = load double, ptr %65, align 8, !tbaa !11
  %1088 = fptosi double %1087 to i32
  store i32 %1088, ptr %10, align 4, !tbaa !5
  %1089 = load double, ptr %66, align 8, !tbaa !11
  %1090 = fptosi double %1089 to i32
  store i32 %1090, ptr %11, align 4, !tbaa !5
  br label %1098

1091:                                             ; preds = %1042
  %1092 = load i32, ptr %9, align 4, !tbaa !5
  %1093 = sitofp i32 %1092 to double
  store double %1093, ptr %64, align 8, !tbaa !11
  %1094 = load i32, ptr %10, align 4, !tbaa !5
  %1095 = sitofp i32 %1094 to double
  store double %1095, ptr %65, align 8, !tbaa !11
  %1096 = load i32, ptr %11, align 4, !tbaa !5
  %1097 = sitofp i32 %1096 to double
  store double %1097, ptr %66, align 8, !tbaa !11
  br label %1098

1098:                                             ; preds = %1091, %1067
  %1099 = load double, ptr %64, align 8, !tbaa !11
  %1100 = load double, ptr %65, align 8, !tbaa !11
  %1101 = fmul double %1099, %1100
  %1102 = load double, ptr %66, align 8, !tbaa !11
  %1103 = fmul double %1101, %1102
  %1104 = fcmp ogt double %1103, 0x4170000000000000
  br i1 %1104, label %1105, label %1109

1105:                                             ; preds = %1098
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef @.str.38, i32 noundef 16777216) #13
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %1108 unwind label %1058

1108:                                             ; preds = %1105
  store i32 2, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1110

1109:                                             ; preds = %1098
  store i32 0, ptr %29, align 4
  br label %1110

1110:                                             ; preds = %1109, %1108, %1066
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #13
  %1111 = load i32, ptr %29, align 4
  switch i32 %1111, label %1591 [
    i32 0, label %1112
  ]

1112:                                             ; preds = %1110
  br label %1113

1113:                                             ; preds = %1112, %1041
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #13
  %1114 = load ptr, ptr %5, align 8, !tbaa !9
  %1115 = load i32, ptr %6, align 4, !tbaa !5
  %1116 = add nsw i32 %1115, 6
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds ptr, ptr %1114, i64 %1117
  %1119 = load ptr, ptr %1118, align 8, !tbaa !9
  %1120 = call i64 @strlen(ptr noundef %1119) #14
  %1121 = trunc i64 %1120 to i32
  store i32 %1121, ptr %67, align 4, !tbaa !5
  %1122 = load i32, ptr %67, align 4, !tbaa !5
  %1123 = icmp sgt i32 %1122, 4096
  br i1 %1123, label %1124, label %1133

1124:                                             ; preds = %1113
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = invoke i32 @fputs(ptr noundef @.str.39, ptr noundef %1125)
          to label %1127 unwind label %1129

1127:                                             ; preds = %1124
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %1128 unwind label %1129

1128:                                             ; preds = %1127
  store i32 4, ptr %3, align 4
  store i32 1, ptr %29, align 4
  br label %1589

1129:                                             ; preds = %1127, %1124
  %1130 = landingpad { ptr, i32 }
          cleanup
  %1131 = extractvalue { ptr, i32 } %1130, 0
  store ptr %1131, ptr %27, align 8
  %1132 = extractvalue { ptr, i32 } %1130, 1
  store i32 %1132, ptr %28, align 4
  br label %1590

1133:                                             ; preds = %1113
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #13
  %1134 = load i32, ptr %67, align 4, !tbaa !5
  %1135 = add nsw i32 %1134, 7
  %1136 = sext i32 %1135 to i64
  %1137 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %1136) #15
          to label %1138 unwind label %1164

1138:                                             ; preds = %1133
  store ptr %1137, ptr %68, align 8, !tbaa !9
  %1139 = load ptr, ptr %68, align 8, !tbaa !9
  %1140 = load ptr, ptr %5, align 8, !tbaa !9
  %1141 = load i32, ptr %6, align 4, !tbaa !5
  %1142 = add nsw i32 %1141, 6
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds ptr, ptr %1140, i64 %1143
  %1145 = load ptr, ptr %1144, align 8, !tbaa !9
  %1146 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %1139, ptr noundef @.str.40, ptr noundef %1145) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #13
  %1147 = load ptr, ptr %68, align 8, !tbaa !9
  %1148 = invoke noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef %1147, ptr noundef @.str.41)
          to label %1149 unwind label %1168

1149:                                             ; preds = %1138
  store ptr %1148, ptr %69, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #13
  %1150 = load i8, ptr %15, align 1, !tbaa !15, !range !19, !noundef !20
  %1151 = trunc i8 %1150 to i1
  br i1 %1151, label %1152, label %1176

1152:                                             ; preds = %1149
  %1153 = load ptr, ptr %68, align 8, !tbaa !9
  %1154 = load ptr, ptr %5, align 8, !tbaa !9
  %1155 = load i32, ptr %6, align 4, !tbaa !5
  %1156 = add nsw i32 %1155, 6
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds ptr, ptr %1154, i64 %1157
  %1159 = load ptr, ptr %1158, align 8, !tbaa !9
  %1160 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %1153, ptr noundef @.str.42, ptr noundef %1159) #13
  %1161 = load ptr, ptr %68, align 8, !tbaa !9
  %1162 = invoke noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef %1161, ptr noundef @.str.41)
          to label %1163 unwind label %1172

1163:                                             ; preds = %1152
  store ptr %1162, ptr %70, align 8, !tbaa !9
  br label %1177

1164:                                             ; preds = %1133
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %27, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %28, align 4
  br label %1588

1168:                                             ; preds = %1138
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %27, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %28, align 4
  br label %1587

1172:                                             ; preds = %1196, %1180, %1152
  %1173 = landingpad { ptr, i32 }
          cleanup
  %1174 = extractvalue { ptr, i32 } %1173, 0
  store ptr %1174, ptr %27, align 8
  %1175 = extractvalue { ptr, i32 } %1173, 1
  store i32 %1175, ptr %28, align 4
  br label %1586

1176:                                             ; preds = %1149
  store ptr null, ptr %70, align 8, !tbaa !9
  br label %1177

1177:                                             ; preds = %1176, %1163
  %1178 = load i8, ptr %16, align 1, !tbaa !15, !range !19, !noundef !20
  %1179 = trunc i8 %1178 to i1
  br i1 %1179, label %1180, label %1192

1180:                                             ; preds = %1177
  %1181 = load ptr, ptr %68, align 8, !tbaa !9
  %1182 = load ptr, ptr %5, align 8, !tbaa !9
  %1183 = load i32, ptr %6, align 4, !tbaa !5
  %1184 = add nsw i32 %1183, 6
  %1185 = sext i32 %1184 to i64
  %1186 = getelementptr inbounds ptr, ptr %1182, i64 %1185
  %1187 = load ptr, ptr %1186, align 8, !tbaa !9
  %1188 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %1181, ptr noundef @.str.43, ptr noundef %1187) #13
  %1189 = load ptr, ptr %68, align 8, !tbaa !9
  %1190 = invoke noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef %1189, ptr noundef @.str.41)
          to label %1191 unwind label %1172

1191:                                             ; preds = %1180
  store ptr %1190, ptr %71, align 8, !tbaa !9
  br label %1193

1192:                                             ; preds = %1177
  store ptr null, ptr %71, align 8, !tbaa !9
  br label %1193

1193:                                             ; preds = %1192, %1191
  %1194 = load i8, ptr %17, align 1, !tbaa !15, !range !19, !noundef !20
  %1195 = trunc i8 %1194 to i1
  br i1 %1195, label %1196, label %1208

1196:                                             ; preds = %1193
  %1197 = load ptr, ptr %68, align 8, !tbaa !9
  %1198 = load ptr, ptr %5, align 8, !tbaa !9
  %1199 = load i32, ptr %6, align 4, !tbaa !5
  %1200 = add nsw i32 %1199, 6
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds ptr, ptr %1198, i64 %1201
  %1203 = load ptr, ptr %1202, align 8, !tbaa !9
  %1204 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %1197, ptr noundef @.str.44, ptr noundef %1203) #13
  %1205 = load ptr, ptr %68, align 8, !tbaa !9
  %1206 = invoke noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef %1205, ptr noundef @.str.41)
          to label %1207 unwind label %1172

1207:                                             ; preds = %1196
  store ptr %1206, ptr %72, align 8, !tbaa !9
  br label %1209

1208:                                             ; preds = %1193
  store ptr null, ptr %72, align 8, !tbaa !9
  br label %1209

1209:                                             ; preds = %1208, %1207
  %1210 = load ptr, ptr %68, align 8, !tbaa !9
  %1211 = icmp eq ptr %1210, null
  br i1 %1211, label %1213, label %1212

1212:                                             ; preds = %1209
  call void @_ZdaPv(ptr noundef %1210) #16
  br label %1213

1213:                                             ; preds = %1212, %1209
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #13
  %1214 = load i32, ptr %8, align 4, !tbaa !5
  %1215 = icmp eq i32 %1214, 0
  br i1 %1215, label %1216, label %1221

1216:                                             ; preds = %1213
  %1217 = load i8, ptr %18, align 1, !tbaa !15, !range !19, !noundef !20
  %1218 = trunc i8 %1217 to i1
  %1219 = zext i1 %1218 to i64
  %1220 = select i1 %1218, ptr @.str.45, ptr @.str.46
  br label %1227

1221:                                             ; preds = %1213
  %1222 = load ptr, ptr %5, align 8, !tbaa !9
  %1223 = load i32, ptr %8, align 4, !tbaa !5
  %1224 = sext i32 %1223 to i64
  %1225 = getelementptr inbounds ptr, ptr %1222, i64 %1224
  %1226 = load ptr, ptr %1225, align 8, !tbaa !9
  br label %1227

1227:                                             ; preds = %1221, %1216
  %1228 = phi ptr [ %1220, %1216 ], [ %1226, %1221 ]
  store ptr %1228, ptr %73, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #13
  store double 0.000000e+00, ptr %74, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #13
  store i32 0, ptr %75, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #13
  store i32 0, ptr %76, align 4, !tbaa !5
  %1229 = load i8, ptr %18, align 1, !tbaa !15, !range !19, !noundef !20
  %1230 = trunc i8 %1229 to i1
  br i1 %1230, label %1231, label %1363

1231:                                             ; preds = %1227
  %1232 = load i8, ptr %22, align 1, !tbaa !15, !range !19, !noundef !20
  %1233 = trunc i8 %1232 to i1
  br i1 %1233, label %1234, label %1301

1234:                                             ; preds = %1231
  call void @llvm.lifetime.start.p0(i64 24, ptr %77) #13
  invoke void @_ZN4voro14particle_orderC2Ei(ptr noundef nonnull align 8 dereferenceable(20) %77, i32 noundef 4096)
          to label %1235 unwind label %1264

1235:                                             ; preds = %1234
  call void @llvm.lifetime.start.p0(i64 408, ptr %78) #13
  %1236 = load double, ptr %58, align 8, !tbaa !11
  %1237 = load double, ptr %59, align 8, !tbaa !11
  %1238 = load double, ptr %60, align 8, !tbaa !11
  %1239 = load double, ptr %61, align 8, !tbaa !11
  %1240 = load double, ptr %62, align 8, !tbaa !11
  %1241 = load double, ptr %63, align 8, !tbaa !11
  %1242 = load i32, ptr %9, align 4, !tbaa !5
  %1243 = load i32, ptr %10, align 4, !tbaa !5
  %1244 = load i32, ptr %11, align 4, !tbaa !5
  %1245 = load i8, ptr %19, align 1, !tbaa !15, !range !19, !noundef !20
  %1246 = trunc i8 %1245 to i1
  %1247 = load i8, ptr %20, align 1, !tbaa !15, !range !19, !noundef !20
  %1248 = trunc i8 %1247 to i1
  %1249 = load i8, ptr %21, align 1, !tbaa !15, !range !19, !noundef !20
  %1250 = trunc i8 %1249 to i1
  %1251 = load i32, ptr %12, align 4, !tbaa !5
  invoke void @_ZN4voro14container_polyC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(408) %78, double noundef %1236, double noundef %1237, double noundef %1238, double noundef %1239, double noundef %1240, double noundef %1241, i32 noundef %1242, i32 noundef %1243, i32 noundef %1244, i1 noundef zeroext %1246, i1 noundef zeroext %1248, i1 noundef zeroext %1250, i32 noundef %1251)
          to label %1252 unwind label %1268

1252:                                             ; preds = %1235
  %1253 = getelementptr inbounds i8, ptr %78, i64 80
  invoke void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28) %1253, ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %1254 unwind label %1272

1254:                                             ; preds = %1252
  %1255 = load i32, ptr %14, align 4, !tbaa !13
  %1256 = icmp eq i32 %1255, 0
  br i1 %1256, label %1257, label %1276

1257:                                             ; preds = %1254
  %1258 = load ptr, ptr %25, align 8, !tbaa !9
  invoke void @_ZN4voro18pre_container_poly5setupERNS_14particle_orderERNS_14container_polyE(ptr noundef nonnull align 8 dereferenceable(128) %1258, ptr noundef nonnull align 8 dereferenceable(20) %77, ptr noundef nonnull align 8 dereferenceable(408) %78)
          to label %1259 unwind label %1272

1259:                                             ; preds = %1257
  %1260 = load ptr, ptr %25, align 8, !tbaa !9
  %1261 = icmp eq ptr %1260, null
  br i1 %1261, label %1263, label %1262

1262:                                             ; preds = %1259
  call void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %1260) #13
  call void @_ZdlPvm(ptr noundef %1260, i64 noundef 128) #16
  br label %1263

1263:                                             ; preds = %1262, %1259
  br label %1284

1264:                                             ; preds = %1234
  %1265 = landingpad { ptr, i32 }
          cleanup
  %1266 = extractvalue { ptr, i32 } %1265, 0
  store ptr %1266, ptr %27, align 8
  %1267 = extractvalue { ptr, i32 } %1265, 1
  store i32 %1267, ptr %28, align 4
  br label %1300

1268:                                             ; preds = %1235
  %1269 = landingpad { ptr, i32 }
          cleanup
  %1270 = extractvalue { ptr, i32 } %1269, 0
  store ptr %1270, ptr %27, align 8
  %1271 = extractvalue { ptr, i32 } %1269, 1
  store i32 %1271, ptr %28, align 4
  br label %1299

1272:                                             ; preds = %1276, %1257, %1252
  %1273 = landingpad { ptr, i32 }
          cleanup
  %1274 = extractvalue { ptr, i32 } %1273, 0
  store ptr %1274, ptr %27, align 8
  %1275 = extractvalue { ptr, i32 } %1273, 1
  store i32 %1275, ptr %28, align 4
  br label %1298

1276:                                             ; preds = %1254
  %1277 = load ptr, ptr %5, align 8, !tbaa !9
  %1278 = load i32, ptr %6, align 4, !tbaa !5
  %1279 = add nsw i32 %1278, 6
  %1280 = sext i32 %1279 to i64
  %1281 = getelementptr inbounds ptr, ptr %1277, i64 %1280
  %1282 = load ptr, ptr %1281, align 8, !tbaa !9
  invoke void @_ZN4voro14container_poly6importERNS_14particle_orderEPKc(ptr noundef nonnull align 8 dereferenceable(408) %78, ptr noundef nonnull align 8 dereferenceable(20) %77, ptr noundef %1282)
          to label %1283 unwind label %1272

1283:                                             ; preds = %1276
  br label %1284

1284:                                             ; preds = %1283, %1263
  call void @llvm.lifetime.start.p0(i64 104, ptr %79) #13
  invoke void @_ZN4voro12c_loop_orderC2INS_14container_polyEEERT_RNS_14particle_orderE(ptr noundef nonnull align 8 dereferenceable(104) %79, ptr noundef nonnull align 8 dereferenceable(408) %78, ptr noundef nonnull align 8 dereferenceable(20) %77)
          to label %1285 unwind label %1294

1285:                                             ; preds = %1284
  %1286 = load ptr, ptr %73, align 8, !tbaa !9
  %1287 = load ptr, ptr %69, align 8, !tbaa !9
  %1288 = load ptr, ptr %70, align 8, !tbaa !9
  %1289 = load ptr, ptr %71, align 8, !tbaa !9
  %1290 = load ptr, ptr %72, align 8, !tbaa !9
  %1291 = load i8, ptr %23, align 1, !tbaa !15, !range !19, !noundef !20
  %1292 = trunc i8 %1291 to i1
  invoke void @_Z15cmd_line_outputIN4voro12c_loop_orderENS0_14container_polyEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(104) %79, ptr noundef nonnull align 8 dereferenceable(408) %78, ptr noundef %1286, ptr noundef %1287, ptr noundef %1288, ptr noundef %1289, ptr noundef %1290, i1 noundef zeroext %1292, ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %1293 unwind label %1294

1293:                                             ; preds = %1285
  call void @llvm.lifetime.end.p0(i64 104, ptr %79) #13
  call void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %78) #13
  call void @llvm.lifetime.end.p0(i64 408, ptr %78) #13
  call void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20) %77) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #13
  br label %1362

1294:                                             ; preds = %1285, %1284
  %1295 = landingpad { ptr, i32 }
          cleanup
  %1296 = extractvalue { ptr, i32 } %1295, 0
  store ptr %1296, ptr %27, align 8
  %1297 = extractvalue { ptr, i32 } %1295, 1
  store i32 %1297, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 104, ptr %79) #13
  br label %1298

1298:                                             ; preds = %1294, %1272
  call void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %78) #13
  br label %1299

1299:                                             ; preds = %1298, %1268
  call void @llvm.lifetime.end.p0(i64 408, ptr %78) #13
  call void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20) %77) #13
  br label %1300

1300:                                             ; preds = %1299, %1264
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #13
  br label %1585

1301:                                             ; preds = %1231
  call void @llvm.lifetime.start.p0(i64 408, ptr %80) #13
  %1302 = load double, ptr %58, align 8, !tbaa !11
  %1303 = load double, ptr %59, align 8, !tbaa !11
  %1304 = load double, ptr %60, align 8, !tbaa !11
  %1305 = load double, ptr %61, align 8, !tbaa !11
  %1306 = load double, ptr %62, align 8, !tbaa !11
  %1307 = load double, ptr %63, align 8, !tbaa !11
  %1308 = load i32, ptr %9, align 4, !tbaa !5
  %1309 = load i32, ptr %10, align 4, !tbaa !5
  %1310 = load i32, ptr %11, align 4, !tbaa !5
  %1311 = load i8, ptr %19, align 1, !tbaa !15, !range !19, !noundef !20
  %1312 = trunc i8 %1311 to i1
  %1313 = load i8, ptr %20, align 1, !tbaa !15, !range !19, !noundef !20
  %1314 = trunc i8 %1313 to i1
  %1315 = load i8, ptr %21, align 1, !tbaa !15, !range !19, !noundef !20
  %1316 = trunc i8 %1315 to i1
  %1317 = load i32, ptr %12, align 4, !tbaa !5
  invoke void @_ZN4voro14container_polyC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(408) %80, double noundef %1302, double noundef %1303, double noundef %1304, double noundef %1305, double noundef %1306, double noundef %1307, i32 noundef %1308, i32 noundef %1309, i32 noundef %1310, i1 noundef zeroext %1312, i1 noundef zeroext %1314, i1 noundef zeroext %1316, i32 noundef %1317)
          to label %1318 unwind label %1330

1318:                                             ; preds = %1301
  %1319 = getelementptr inbounds i8, ptr %80, i64 80
  invoke void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28) %1319, ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %1320 unwind label %1334

1320:                                             ; preds = %1318
  %1321 = load i32, ptr %14, align 4, !tbaa !13
  %1322 = icmp eq i32 %1321, 0
  br i1 %1322, label %1323, label %1338

1323:                                             ; preds = %1320
  %1324 = load ptr, ptr %25, align 8, !tbaa !9
  invoke void @_ZN4voro18pre_container_poly5setupERNS_14container_polyE(ptr noundef nonnull align 8 dereferenceable(128) %1324, ptr noundef nonnull align 8 dereferenceable(408) %80)
          to label %1325 unwind label %1334

1325:                                             ; preds = %1323
  %1326 = load ptr, ptr %25, align 8, !tbaa !9
  %1327 = icmp eq ptr %1326, null
  br i1 %1327, label %1329, label %1328

1328:                                             ; preds = %1325
  call void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %1326) #13
  call void @_ZdlPvm(ptr noundef %1326, i64 noundef 128) #16
  br label %1329

1329:                                             ; preds = %1328, %1325
  br label %1346

1330:                                             ; preds = %1301
  %1331 = landingpad { ptr, i32 }
          cleanup
  %1332 = extractvalue { ptr, i32 } %1331, 0
  store ptr %1332, ptr %27, align 8
  %1333 = extractvalue { ptr, i32 } %1331, 1
  store i32 %1333, ptr %28, align 4
  br label %1361

1334:                                             ; preds = %1338, %1323, %1318
  %1335 = landingpad { ptr, i32 }
          cleanup
  %1336 = extractvalue { ptr, i32 } %1335, 0
  store ptr %1336, ptr %27, align 8
  %1337 = extractvalue { ptr, i32 } %1335, 1
  store i32 %1337, ptr %28, align 4
  br label %1360

1338:                                             ; preds = %1320
  %1339 = load ptr, ptr %5, align 8, !tbaa !9
  %1340 = load i32, ptr %6, align 4, !tbaa !5
  %1341 = add nsw i32 %1340, 6
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds ptr, ptr %1339, i64 %1342
  %1344 = load ptr, ptr %1343, align 8, !tbaa !9
  invoke void @_ZN4voro14container_poly6importEPKc(ptr noundef nonnull align 8 dereferenceable(408) %80, ptr noundef %1344)
          to label %1345 unwind label %1334

1345:                                             ; preds = %1338
  br label %1346

1346:                                             ; preds = %1345, %1329
  call void @llvm.lifetime.start.p0(i64 72, ptr %81) #13
  invoke void @_ZN4voro10c_loop_allC2INS_14container_polyEEERT_(ptr noundef nonnull align 8 dereferenceable(68) %81, ptr noundef nonnull align 8 dereferenceable(408) %80)
          to label %1347 unwind label %1356

1347:                                             ; preds = %1346
  %1348 = load ptr, ptr %73, align 8, !tbaa !9
  %1349 = load ptr, ptr %69, align 8, !tbaa !9
  %1350 = load ptr, ptr %70, align 8, !tbaa !9
  %1351 = load ptr, ptr %71, align 8, !tbaa !9
  %1352 = load ptr, ptr %72, align 8, !tbaa !9
  %1353 = load i8, ptr %23, align 1, !tbaa !15, !range !19, !noundef !20
  %1354 = trunc i8 %1353 to i1
  invoke void @_Z15cmd_line_outputIN4voro10c_loop_allENS0_14container_polyEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(68) %81, ptr noundef nonnull align 8 dereferenceable(408) %80, ptr noundef %1348, ptr noundef %1349, ptr noundef %1350, ptr noundef %1351, ptr noundef %1352, i1 noundef zeroext %1354, ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %1355 unwind label %1356

1355:                                             ; preds = %1347
  call void @llvm.lifetime.end.p0(i64 72, ptr %81) #13
  call void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %80) #13
  call void @llvm.lifetime.end.p0(i64 408, ptr %80) #13
  br label %1362

1356:                                             ; preds = %1347, %1346
  %1357 = landingpad { ptr, i32 }
          cleanup
  %1358 = extractvalue { ptr, i32 } %1357, 0
  store ptr %1358, ptr %27, align 8
  %1359 = extractvalue { ptr, i32 } %1357, 1
  store i32 %1359, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 72, ptr %81) #13
  br label %1360

1360:                                             ; preds = %1356, %1334
  call void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %80) #13
  br label %1361

1361:                                             ; preds = %1360, %1330
  call void @llvm.lifetime.end.p0(i64 408, ptr %80) #13
  br label %1585

1362:                                             ; preds = %1355, %1293
  br label %1495

1363:                                             ; preds = %1227
  %1364 = load i8, ptr %22, align 1, !tbaa !15, !range !19, !noundef !20
  %1365 = trunc i8 %1364 to i1
  br i1 %1365, label %1366, label %1433

1366:                                             ; preds = %1363
  call void @llvm.lifetime.start.p0(i64 24, ptr %82) #13
  invoke void @_ZN4voro14particle_orderC2Ei(ptr noundef nonnull align 8 dereferenceable(20) %82, i32 noundef 4096)
          to label %1367 unwind label %1396

1367:                                             ; preds = %1366
  call void @llvm.lifetime.start.p0(i64 368, ptr %83) #13
  %1368 = load double, ptr %58, align 8, !tbaa !11
  %1369 = load double, ptr %59, align 8, !tbaa !11
  %1370 = load double, ptr %60, align 8, !tbaa !11
  %1371 = load double, ptr %61, align 8, !tbaa !11
  %1372 = load double, ptr %62, align 8, !tbaa !11
  %1373 = load double, ptr %63, align 8, !tbaa !11
  %1374 = load i32, ptr %9, align 4, !tbaa !5
  %1375 = load i32, ptr %10, align 4, !tbaa !5
  %1376 = load i32, ptr %11, align 4, !tbaa !5
  %1377 = load i8, ptr %19, align 1, !tbaa !15, !range !19, !noundef !20
  %1378 = trunc i8 %1377 to i1
  %1379 = load i8, ptr %20, align 1, !tbaa !15, !range !19, !noundef !20
  %1380 = trunc i8 %1379 to i1
  %1381 = load i8, ptr %21, align 1, !tbaa !15, !range !19, !noundef !20
  %1382 = trunc i8 %1381 to i1
  %1383 = load i32, ptr %12, align 4, !tbaa !5
  invoke void @_ZN4voro9containerC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(368) %83, double noundef %1368, double noundef %1369, double noundef %1370, double noundef %1371, double noundef %1372, double noundef %1373, i32 noundef %1374, i32 noundef %1375, i32 noundef %1376, i1 noundef zeroext %1378, i1 noundef zeroext %1380, i1 noundef zeroext %1382, i32 noundef %1383)
          to label %1384 unwind label %1400

1384:                                             ; preds = %1367
  %1385 = getelementptr inbounds i8, ptr %83, i64 80
  invoke void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28) %1385, ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %1386 unwind label %1404

1386:                                             ; preds = %1384
  %1387 = load i32, ptr %14, align 4, !tbaa !13
  %1388 = icmp eq i32 %1387, 0
  br i1 %1388, label %1389, label %1408

1389:                                             ; preds = %1386
  %1390 = load ptr, ptr %24, align 8, !tbaa !9
  invoke void @_ZN4voro13pre_container5setupERNS_14particle_orderERNS_9containerE(ptr noundef nonnull align 8 dereferenceable(128) %1390, ptr noundef nonnull align 8 dereferenceable(20) %82, ptr noundef nonnull align 8 dereferenceable(368) %83)
          to label %1391 unwind label %1404

1391:                                             ; preds = %1389
  %1392 = load ptr, ptr %24, align 8, !tbaa !9
  %1393 = icmp eq ptr %1392, null
  br i1 %1393, label %1395, label %1394

1394:                                             ; preds = %1391
  call void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %1392) #13
  call void @_ZdlPvm(ptr noundef %1392, i64 noundef 128) #16
  br label %1395

1395:                                             ; preds = %1394, %1391
  br label %1416

1396:                                             ; preds = %1366
  %1397 = landingpad { ptr, i32 }
          cleanup
  %1398 = extractvalue { ptr, i32 } %1397, 0
  store ptr %1398, ptr %27, align 8
  %1399 = extractvalue { ptr, i32 } %1397, 1
  store i32 %1399, ptr %28, align 4
  br label %1432

1400:                                             ; preds = %1367
  %1401 = landingpad { ptr, i32 }
          cleanup
  %1402 = extractvalue { ptr, i32 } %1401, 0
  store ptr %1402, ptr %27, align 8
  %1403 = extractvalue { ptr, i32 } %1401, 1
  store i32 %1403, ptr %28, align 4
  br label %1431

1404:                                             ; preds = %1408, %1389, %1384
  %1405 = landingpad { ptr, i32 }
          cleanup
  %1406 = extractvalue { ptr, i32 } %1405, 0
  store ptr %1406, ptr %27, align 8
  %1407 = extractvalue { ptr, i32 } %1405, 1
  store i32 %1407, ptr %28, align 4
  br label %1430

1408:                                             ; preds = %1386
  %1409 = load ptr, ptr %5, align 8, !tbaa !9
  %1410 = load i32, ptr %6, align 4, !tbaa !5
  %1411 = add nsw i32 %1410, 6
  %1412 = sext i32 %1411 to i64
  %1413 = getelementptr inbounds ptr, ptr %1409, i64 %1412
  %1414 = load ptr, ptr %1413, align 8, !tbaa !9
  invoke void @_ZN4voro9container6importERNS_14particle_orderEPKc(ptr noundef nonnull align 8 dereferenceable(368) %83, ptr noundef nonnull align 8 dereferenceable(20) %82, ptr noundef %1414)
          to label %1415 unwind label %1404

1415:                                             ; preds = %1408
  br label %1416

1416:                                             ; preds = %1415, %1395
  call void @llvm.lifetime.start.p0(i64 104, ptr %84) #13
  invoke void @_ZN4voro12c_loop_orderC2INS_9containerEEERT_RNS_14particle_orderE(ptr noundef nonnull align 8 dereferenceable(104) %84, ptr noundef nonnull align 8 dereferenceable(368) %83, ptr noundef nonnull align 8 dereferenceable(20) %82)
          to label %1417 unwind label %1426

1417:                                             ; preds = %1416
  %1418 = load ptr, ptr %73, align 8, !tbaa !9
  %1419 = load ptr, ptr %69, align 8, !tbaa !9
  %1420 = load ptr, ptr %70, align 8, !tbaa !9
  %1421 = load ptr, ptr %71, align 8, !tbaa !9
  %1422 = load ptr, ptr %72, align 8, !tbaa !9
  %1423 = load i8, ptr %23, align 1, !tbaa !15, !range !19, !noundef !20
  %1424 = trunc i8 %1423 to i1
  invoke void @_Z15cmd_line_outputIN4voro12c_loop_orderENS0_9containerEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(104) %84, ptr noundef nonnull align 8 dereferenceable(368) %83, ptr noundef %1418, ptr noundef %1419, ptr noundef %1420, ptr noundef %1421, ptr noundef %1422, i1 noundef zeroext %1424, ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %1425 unwind label %1426

1425:                                             ; preds = %1417
  call void @llvm.lifetime.end.p0(i64 104, ptr %84) #13
  call void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %83) #13
  call void @llvm.lifetime.end.p0(i64 368, ptr %83) #13
  call void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20) %82) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #13
  br label %1494

1426:                                             ; preds = %1417, %1416
  %1427 = landingpad { ptr, i32 }
          cleanup
  %1428 = extractvalue { ptr, i32 } %1427, 0
  store ptr %1428, ptr %27, align 8
  %1429 = extractvalue { ptr, i32 } %1427, 1
  store i32 %1429, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 104, ptr %84) #13
  br label %1430

1430:                                             ; preds = %1426, %1404
  call void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %83) #13
  br label %1431

1431:                                             ; preds = %1430, %1400
  call void @llvm.lifetime.end.p0(i64 368, ptr %83) #13
  call void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20) %82) #13
  br label %1432

1432:                                             ; preds = %1431, %1396
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #13
  br label %1585

1433:                                             ; preds = %1363
  call void @llvm.lifetime.start.p0(i64 368, ptr %85) #13
  %1434 = load double, ptr %58, align 8, !tbaa !11
  %1435 = load double, ptr %59, align 8, !tbaa !11
  %1436 = load double, ptr %60, align 8, !tbaa !11
  %1437 = load double, ptr %61, align 8, !tbaa !11
  %1438 = load double, ptr %62, align 8, !tbaa !11
  %1439 = load double, ptr %63, align 8, !tbaa !11
  %1440 = load i32, ptr %9, align 4, !tbaa !5
  %1441 = load i32, ptr %10, align 4, !tbaa !5
  %1442 = load i32, ptr %11, align 4, !tbaa !5
  %1443 = load i8, ptr %19, align 1, !tbaa !15, !range !19, !noundef !20
  %1444 = trunc i8 %1443 to i1
  %1445 = load i8, ptr %20, align 1, !tbaa !15, !range !19, !noundef !20
  %1446 = trunc i8 %1445 to i1
  %1447 = load i8, ptr %21, align 1, !tbaa !15, !range !19, !noundef !20
  %1448 = trunc i8 %1447 to i1
  %1449 = load i32, ptr %12, align 4, !tbaa !5
  invoke void @_ZN4voro9containerC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(368) %85, double noundef %1434, double noundef %1435, double noundef %1436, double noundef %1437, double noundef %1438, double noundef %1439, i32 noundef %1440, i32 noundef %1441, i32 noundef %1442, i1 noundef zeroext %1444, i1 noundef zeroext %1446, i1 noundef zeroext %1448, i32 noundef %1449)
          to label %1450 unwind label %1462

1450:                                             ; preds = %1433
  %1451 = getelementptr inbounds i8, ptr %85, i64 80
  invoke void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28) %1451, ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %1452 unwind label %1466

1452:                                             ; preds = %1450
  %1453 = load i32, ptr %14, align 4, !tbaa !13
  %1454 = icmp eq i32 %1453, 0
  br i1 %1454, label %1455, label %1470

1455:                                             ; preds = %1452
  %1456 = load ptr, ptr %24, align 8, !tbaa !9
  invoke void @_ZN4voro13pre_container5setupERNS_9containerE(ptr noundef nonnull align 8 dereferenceable(128) %1456, ptr noundef nonnull align 8 dereferenceable(368) %85)
          to label %1457 unwind label %1466

1457:                                             ; preds = %1455
  %1458 = load ptr, ptr %24, align 8, !tbaa !9
  %1459 = icmp eq ptr %1458, null
  br i1 %1459, label %1461, label %1460

1460:                                             ; preds = %1457
  call void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %1458) #13
  call void @_ZdlPvm(ptr noundef %1458, i64 noundef 128) #16
  br label %1461

1461:                                             ; preds = %1460, %1457
  br label %1478

1462:                                             ; preds = %1433
  %1463 = landingpad { ptr, i32 }
          cleanup
  %1464 = extractvalue { ptr, i32 } %1463, 0
  store ptr %1464, ptr %27, align 8
  %1465 = extractvalue { ptr, i32 } %1463, 1
  store i32 %1465, ptr %28, align 4
  br label %1493

1466:                                             ; preds = %1470, %1455, %1450
  %1467 = landingpad { ptr, i32 }
          cleanup
  %1468 = extractvalue { ptr, i32 } %1467, 0
  store ptr %1468, ptr %27, align 8
  %1469 = extractvalue { ptr, i32 } %1467, 1
  store i32 %1469, ptr %28, align 4
  br label %1492

1470:                                             ; preds = %1452
  %1471 = load ptr, ptr %5, align 8, !tbaa !9
  %1472 = load i32, ptr %6, align 4, !tbaa !5
  %1473 = add nsw i32 %1472, 6
  %1474 = sext i32 %1473 to i64
  %1475 = getelementptr inbounds ptr, ptr %1471, i64 %1474
  %1476 = load ptr, ptr %1475, align 8, !tbaa !9
  invoke void @_ZN4voro9container6importEPKc(ptr noundef nonnull align 8 dereferenceable(368) %85, ptr noundef %1476)
          to label %1477 unwind label %1466

1477:                                             ; preds = %1470
  br label %1478

1478:                                             ; preds = %1477, %1461
  call void @llvm.lifetime.start.p0(i64 72, ptr %86) #13
  invoke void @_ZN4voro10c_loop_allC2INS_9containerEEERT_(ptr noundef nonnull align 8 dereferenceable(68) %86, ptr noundef nonnull align 8 dereferenceable(368) %85)
          to label %1479 unwind label %1488

1479:                                             ; preds = %1478
  %1480 = load ptr, ptr %73, align 8, !tbaa !9
  %1481 = load ptr, ptr %69, align 8, !tbaa !9
  %1482 = load ptr, ptr %70, align 8, !tbaa !9
  %1483 = load ptr, ptr %71, align 8, !tbaa !9
  %1484 = load ptr, ptr %72, align 8, !tbaa !9
  %1485 = load i8, ptr %23, align 1, !tbaa !15, !range !19, !noundef !20
  %1486 = trunc i8 %1485 to i1
  invoke void @_Z15cmd_line_outputIN4voro10c_loop_allENS0_9containerEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(68) %86, ptr noundef nonnull align 8 dereferenceable(368) %85, ptr noundef %1480, ptr noundef %1481, ptr noundef %1482, ptr noundef %1483, ptr noundef %1484, i1 noundef zeroext %1486, ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %1487 unwind label %1488

1487:                                             ; preds = %1479
  call void @llvm.lifetime.end.p0(i64 72, ptr %86) #13
  call void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %85) #13
  call void @llvm.lifetime.end.p0(i64 368, ptr %85) #13
  br label %1494

1488:                                             ; preds = %1479, %1478
  %1489 = landingpad { ptr, i32 }
          cleanup
  %1490 = extractvalue { ptr, i32 } %1489, 0
  store ptr %1490, ptr %27, align 8
  %1491 = extractvalue { ptr, i32 } %1489, 1
  store i32 %1491, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 72, ptr %86) #13
  br label %1492

1492:                                             ; preds = %1488, %1466
  call void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %85) #13
  br label %1493

1493:                                             ; preds = %1492, %1462
  call void @llvm.lifetime.end.p0(i64 368, ptr %85) #13
  br label %1585

1494:                                             ; preds = %1487, %1425
  br label %1495

1495:                                             ; preds = %1494, %1362
  %1496 = load i8, ptr %23, align 1, !tbaa !15, !range !19, !noundef !20
  %1497 = trunc i8 %1496 to i1
  br i1 %1497, label %1498, label %1560

1498:                                             ; preds = %1495
  %1499 = load double, ptr %58, align 8, !tbaa !11
  %1500 = load double, ptr %59, align 8, !tbaa !11
  %1501 = load double, ptr %60, align 8, !tbaa !11
  %1502 = load double, ptr %61, align 8, !tbaa !11
  %1503 = load double, ptr %62, align 8, !tbaa !11
  %1504 = load double, ptr %63, align 8, !tbaa !11
  %1505 = load i32, ptr %9, align 4, !tbaa !5
  %1506 = load i32, ptr %10, align 4, !tbaa !5
  %1507 = load i32, ptr %11, align 4, !tbaa !5
  %1508 = load i32, ptr %14, align 4, !tbaa !13
  %1509 = icmp eq i32 %1508, 0
  br i1 %1509, label %1510, label %1511

1510:                                             ; preds = %1498
  br label %1516

1511:                                             ; preds = %1498
  %1512 = load i32, ptr %14, align 4, !tbaa !13
  %1513 = icmp eq i32 %1512, 1
  %1514 = zext i1 %1513 to i64
  %1515 = select i1 %1513, ptr @.str.49, ptr @.str.50
  br label %1516

1516:                                             ; preds = %1511, %1510
  %1517 = phi ptr [ @.str.48, %1510 ], [ %1515, %1511 ]
  %1518 = load ptr, ptr %5, align 8, !tbaa !9
  %1519 = load i32, ptr %6, align 4, !tbaa !5
  %1520 = add nsw i32 %1519, 6
  %1521 = sext i32 %1520 to i64
  %1522 = getelementptr inbounds ptr, ptr %1518, i64 %1521
  %1523 = load ptr, ptr %1522, align 8, !tbaa !9
  %1524 = load ptr, ptr %73, align 8, !tbaa !9
  %1525 = load i32, ptr %8, align 4, !tbaa !5
  %1526 = icmp eq i32 %1525, 0
  %1527 = zext i1 %1526 to i64
  %1528 = select i1 %1526, ptr @.str.51, ptr @.str.52
  %1529 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.47, double noundef %1499, double noundef %1500, double noundef %1501, double noundef %1502, double noundef %1503, double noundef %1504, i32 noundef %1505, i32 noundef %1506, i32 noundef %1507, ptr noundef %1517, ptr noundef %1523, ptr noundef %1524, ptr noundef %1528)
          to label %1530 unwind label %1556

1530:                                             ; preds = %1516
  %1531 = load i32, ptr %75, align 4, !tbaa !5
  %1532 = load i32, ptr %75, align 4, !tbaa !5
  %1533 = sitofp i32 %1532 to double
  %1534 = load i32, ptr %9, align 4, !tbaa !5
  %1535 = load i32, ptr %10, align 4, !tbaa !5
  %1536 = mul nsw i32 %1534, %1535
  %1537 = load i32, ptr %11, align 4, !tbaa !5
  %1538 = mul nsw i32 %1536, %1537
  %1539 = sitofp i32 %1538 to double
  %1540 = fdiv double %1533, %1539
  %1541 = load i32, ptr %76, align 4, !tbaa !5
  %1542 = load double, ptr %59, align 8, !tbaa !11
  %1543 = load double, ptr %58, align 8, !tbaa !11
  %1544 = fsub double %1542, %1543
  %1545 = load double, ptr %61, align 8, !tbaa !11
  %1546 = load double, ptr %60, align 8, !tbaa !11
  %1547 = fsub double %1545, %1546
  %1548 = fmul double %1544, %1547
  %1549 = load double, ptr %63, align 8, !tbaa !11
  %1550 = load double, ptr %62, align 8, !tbaa !11
  %1551 = fsub double %1549, %1550
  %1552 = fmul double %1548, %1551
  %1553 = load double, ptr %74, align 8, !tbaa !11
  %1554 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.53, i32 noundef %1531, double noundef %1540, i32 noundef %1541, double noundef %1552, double noundef %1553)
          to label %1555 unwind label %1556

1555:                                             ; preds = %1530
  br label %1560

1556:                                             ; preds = %1580, %1573, %1566, %1560, %1530, %1516
  %1557 = landingpad { ptr, i32 }
          cleanup
  %1558 = extractvalue { ptr, i32 } %1557, 0
  store ptr %1558, ptr %27, align 8
  %1559 = extractvalue { ptr, i32 } %1557, 1
  store i32 %1559, ptr %28, align 4
  br label %1585

1560:                                             ; preds = %1555, %1495
  %1561 = load ptr, ptr %69, align 8, !tbaa !9
  %1562 = invoke i32 @fclose(ptr noundef %1561)
          to label %1563 unwind label %1556

1563:                                             ; preds = %1560
  %1564 = load ptr, ptr %70, align 8, !tbaa !9
  %1565 = icmp ne ptr %1564, null
  br i1 %1565, label %1566, label %1570

1566:                                             ; preds = %1563
  %1567 = load ptr, ptr %70, align 8, !tbaa !9
  %1568 = invoke i32 @fclose(ptr noundef %1567)
          to label %1569 unwind label %1556

1569:                                             ; preds = %1566
  br label %1570

1570:                                             ; preds = %1569, %1563
  %1571 = load ptr, ptr %71, align 8, !tbaa !9
  %1572 = icmp ne ptr %1571, null
  br i1 %1572, label %1573, label %1577

1573:                                             ; preds = %1570
  %1574 = load ptr, ptr %71, align 8, !tbaa !9
  %1575 = invoke i32 @fclose(ptr noundef %1574)
          to label %1576 unwind label %1556

1576:                                             ; preds = %1573
  br label %1577

1577:                                             ; preds = %1576, %1570
  %1578 = load ptr, ptr %72, align 8, !tbaa !9
  %1579 = icmp ne ptr %1578, null
  br i1 %1579, label %1580, label %1584

1580:                                             ; preds = %1577
  %1581 = load ptr, ptr %72, align 8, !tbaa !9
  %1582 = invoke i32 @fclose(ptr noundef %1581)
          to label %1583 unwind label %1556

1583:                                             ; preds = %1580
  br label %1584

1584:                                             ; preds = %1583, %1577
  store i32 0, ptr %3, align 4
  store i32 1, ptr %29, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #13
  br label %1589

1585:                                             ; preds = %1556, %1493, %1432, %1361, %1300
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #13
  br label %1586

1586:                                             ; preds = %1585, %1172
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #13
  br label %1587

1587:                                             ; preds = %1586, %1168
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #13
  br label %1588

1588:                                             ; preds = %1587, %1164
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #13
  br label %1590

1589:                                             ; preds = %1584, %1128
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #13
  br label %1591

1590:                                             ; preds = %1588, %1129
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #13
  br label %1592

1591:                                             ; preds = %1589, %1110, %974, %965, %952
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #13
  br label %1593

1592:                                             ; preds = %1590, %1058, %1037, %1007, %953
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #13
  br label %1595

1593:                                             ; preds = %1591, %902, %869, %765, %675, %609, %543, %403, %387, %312, %276, %268, %226, %218, %202, %191, %162, %151, %129, %124, %122, %114, %102
  call void @_ZN4voro9wall_listD1Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #13
  %1594 = load i32, ptr %3, align 4
  ret i32 %1594

1595:                                             ; preds = %1592, %839, %749, %659, %593, %527, %103
  call void @_ZN4voro9wall_listD1Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #13
  br label %1596

1596:                                             ; preds = %1595
  %1597 = load ptr, ptr %27, align 8
  %1598 = load i32, ptr %28, align 4
  %1599 = insertvalue { ptr, i32 } poison, ptr %1597, 0
  %1600 = insertvalue { ptr, i32 } %1599, i32 %1598, 1
  resume { ptr, i32 } %1600
}

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

declare void @_ZN4voro9wall_listC1Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #1

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #4

declare i32 @__gxx_personality_v0(...)

declare void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28)) #1

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare double @atof(ptr noundef nonnull) #5

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28), ptr noundef) #6 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef, double noundef, i32 noundef) unnamed_addr #8 align 2

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #9

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro11wall_sphereC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef, double noundef, i32 noundef) unnamed_addr #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro13wall_cylinderC2Edddddddi(ptr noundef nonnull align 8 dereferenceable(80), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef) unnamed_addr #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro9wall_coneC2Edddddddi(ptr noundef nonnull align 8 dereferenceable(96), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef) unnamed_addr #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro18pre_container_polyC2Eddddddbbb(ptr noundef nonnull align 8 dereferenceable(128), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro18pre_container_poly6importEPKc(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef) #6 align 2

declare void @_ZN4voro18pre_container_base13guess_optimalERiS1_S1_(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro13pre_containerC2Eddddddbbb(ptr noundef nonnull align 8 dereferenceable(128), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro13pre_container6importEPKc(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef) #6 align 2

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #4

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

; Function Attrs: nounwind
declare i32 @sprintf(ptr noundef, ptr noundef, ...) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef, ptr noundef) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro14particle_orderC2Ei(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef) unnamed_addr #0 align 2

declare void @_ZN4voro14container_polyC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(408), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i32 noundef) unnamed_addr #1

declare void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28), ptr noundef nonnull align 8 dereferenceable(28)) #1

declare void @_ZN4voro18pre_container_poly5setupERNS_14particle_orderERNS_14container_polyE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(408)) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro14container_poly6importERNS_14particle_orderEPKc(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(20), ptr noundef) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro12c_loop_orderC2INS_14container_polyEEERT_RNS_14particle_orderE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(20)) unnamed_addr #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15cmd_line_outputIN4voro12c_loop_orderENS0_14container_polyEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(408), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408)) unnamed_addr #12 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20)) unnamed_addr #8 align 2

declare void @_ZN4voro18pre_container_poly5setupERNS_14container_polyE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(408)) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro14container_poly6importEPKc(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro10c_loop_allC2INS_14container_polyEEERT_(ptr noundef nonnull align 8 dereferenceable(68), ptr noundef nonnull align 8 dereferenceable(408)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15cmd_line_outputIN4voro10c_loop_allENS0_14container_polyEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(68), ptr noundef nonnull align 8 dereferenceable(408), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #0

declare void @_ZN4voro9containerC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(368), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i32 noundef) unnamed_addr #1

declare void @_ZN4voro13pre_container5setupERNS_14particle_orderERNS_9containerE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(368)) #1

; Function Attrs: nounwind
declare void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro9container6importERNS_14particle_orderEPKc(ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(20), ptr noundef) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro12c_loop_orderC2INS_9containerEEERT_RNS_14particle_orderE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(20)) unnamed_addr #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15cmd_line_outputIN4voro12c_loop_orderENS0_9containerEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(368), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368)) unnamed_addr #12 align 2

declare void @_ZN4voro13pre_container5setupERNS_9containerE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(368)) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro9container6importEPKc(ptr noundef nonnull align 8 dereferenceable(368), ptr noundef) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro10c_loop_allC2INS_9containerEEERT_(ptr noundef nonnull align 8 dereferenceable(68), ptr noundef nonnull align 8 dereferenceable(368)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15cmd_line_outputIN4voro10c_loop_allENS0_9containerEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(68), ptr noundef nonnull align 8 dereferenceable(368), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #0

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

declare i32 @fclose(ptr noundef) #1

; Function Attrs: nounwind
declare void @_ZN4voro9wall_listD1Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #10

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(read) "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 = { inlinehint mustprogress nounwind willreturn memory(read) 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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress 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 #9 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { 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 #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #12 = { inlinehint mustprogress 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 #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(read) }
attributes #15 = { builtin allocsize(0) }
attributes #16 = { builtin nounwind }

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

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


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

%"class.voro::wall_list" = type <{ ptr, ptr, ptr, i32, [4 x i8] }>
%"class.voro::particle_order" = type <{ ptr, ptr, i32, [4 x i8] }>
%"class.voro::container_poly" = type { %"class.voro::container_base.base", %"class.voro::radius_poly", %"class.voro::voro_compute" }
%"class.voro::container_base.base" = type <{ %"class.voro::voro_base", %"class.voro::wall_list.base", [4 x i8], double, double, double, double, double, double, i8, i8, i8, [5 x i8], ptr, ptr, ptr, ptr, i32 }>
%"class.voro::voro_base" = type { i32, i32, i32, i32, i32, double, double, double, double, double, double, ptr }
%"class.voro::wall_list.base" = type <{ ptr, ptr, ptr, i32 }>
%"class.voro::radius_poly" = type { ptr, double, double, double, double }
%"class.voro::voro_compute" = type { ptr, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, double, i32, i32, ptr, ptr, ptr, ptr, ptr }
%"class.voro::c_loop_order" = type { %"class.voro::c_loop_base.base", ptr, ptr, ptr, i32, i32 }
%"class.voro::c_loop_base.base" = type <{ i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, i32, i32, i32, i32, i32 }>
%"class.voro::c_loop_all" = type { %"class.voro::c_loop_base.base", [4 x i8] }
%"class.voro::container" = type { %"class.voro::container_base.base", %"class.voro::voro_compute.0" }
%"class.voro::voro_compute.0" = type { ptr, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, double, i32, i32, ptr, ptr, ptr, ptr, ptr }

@stderr = external local_unnamed_addr global ptr, align 8
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [147 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z12help_messagev() local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z21custom_output_messagev() local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15version_messagev() local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13error_messagev() local_unnamed_addr #0

; Function Attrs: nofree nounwind
declare noundef i32 @fputs(ptr nocapture noundef readonly, ptr nocapture noundef) local_unnamed_addr #1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 5) i32 @main(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"class.voro::wall_list", align 8
  %7 = alloca double, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca %"class.voro::particle_order", align 8
  %11 = alloca %"class.voro::container_poly", align 8
  %12 = alloca %"class.voro::c_loop_order", align 8
  %13 = alloca %"class.voro::container_poly", align 8
  %14 = alloca %"class.voro::c_loop_all", align 8
  %15 = alloca %"class.voro::particle_order", align 8
  %16 = alloca %"class.voro::container", align 8
  %17 = alloca %"class.voro::c_loop_order", align 8
  %18 = alloca %"class.voro::container", align 8
  %19 = alloca %"class.voro::c_loop_all", align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #14
  call void @_ZN4voro9wall_listC1Ev(ptr noundef nonnull align 8 dereferenceable(28) %6)
  %20 = icmp eq i32 %0, 2
  br i1 %20, label %21, label %40

21:                                               ; preds = %2
  %22 = getelementptr inbounds i8, ptr %1, i64 8
  %23 = load ptr, ptr %22, align 8, !tbaa !5
  %24 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) @.str.4) #15
  %25 = icmp eq i32 %24, 0
  br i1 %25, label %29, label %26

26:                                               ; preds = %21
  %27 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) @.str.5) #15
  %28 = icmp eq i32 %27, 0
  br i1 %28, label %29, label %32

29:                                               ; preds = %26, %21
  invoke void @_Z12help_messagev()
          to label %.thread unwind label %30

30:                                               ; preds = %.invoke871, %.invoke869, %.invoke868, %.invoke, %320, %138, %73, %69, %39, %35, %29
  %31 = landingpad { ptr, i32 }
          cleanup
  br label %627

32:                                               ; preds = %26
  %33 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) @.str.6) #15
  %34 = icmp eq i32 %33, 0
  br i1 %34, label %35, label %36

35:                                               ; preds = %32
  invoke void @_Z21custom_output_messagev()
          to label %.thread unwind label %30

36:                                               ; preds = %32
  %37 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %23, ptr noundef nonnull dereferenceable(1) @.str.7) #15
  %38 = icmp eq i32 %37, 0
  br i1 %38, label %39, label %.invoke868

39:                                               ; preds = %36
  invoke void @_Z15version_messagev()
          to label %.thread unwind label %30

40:                                               ; preds = %2
  %41 = icmp slt i32 %0, 7
  br i1 %41, label %.invoke868, label %.preheader

.preheader:                                       ; preds = %40
  %42 = add nsw i32 %0, -7
  %43 = icmp ugt i32 %0, 8
  br i1 %43, label %.lr.ph, label %._crit_edge.thread

.lr.ph:                                           ; preds = %.preheader
  %44 = add nsw i32 %0, -14
  %45 = add nsw i32 %0, -11
  %46 = add nsw i32 %0, -13
  %47 = add nsw i32 %0, -10
  %48 = add nsw i32 %0, -8
  br label %49

49:                                               ; preds = %.lr.ph, %321
  %.0415825 = phi i32 [ 1, %.lr.ph ], [ %322, %321 ]
  %.0417824 = phi i32 [ -7, %.lr.ph ], [ %.1418, %321 ]
  %.0419823 = phi i32 [ 0, %.lr.ph ], [ %.1420, %321 ]
  %.0424822 = phi i32 [ 8, %.lr.ph ], [ %.1425, %321 ]
  %.0426821 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1427, %321 ]
  %.0428820 = phi i32 [ 0, %.lr.ph ], [ %.1429, %321 ]
  %.0430819 = phi i1 [ false, %.lr.ph ], [ %.1431, %321 ]
  %.0432818 = phi i1 [ false, %.lr.ph ], [ %.1433, %321 ]
  %.0434817 = phi i1 [ false, %.lr.ph ], [ %.1435, %321 ]
  %.0436816 = phi i8 [ 0, %.lr.ph ], [ %.1437, %321 ]
  %.0438815 = phi i8 [ 0, %.lr.ph ], [ %.1439, %321 ]
  %.0440814 = phi i8 [ 0, %.lr.ph ], [ %.1441, %321 ]
  %.0442813 = phi i8 [ 0, %.lr.ph ], [ %.1443, %321 ]
  %.0444812 = phi i8 [ 0, %.lr.ph ], [ %.1445, %321 ]
  %.0446811 = phi i8 [ 0, %.lr.ph ], [ %.1447, %321 ]
  %50 = sext i32 %.0415825 to i64
  %51 = getelementptr inbounds ptr, ptr %1, i64 %50
  %52 = load ptr, ptr %51, align 8, !tbaa !5
  %53 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.8) #15
  %54 = icmp eq i32 %53, 0
  br i1 %54, label %55, label %60

55:                                               ; preds = %49
  %.not512 = icmp slt i32 %.0415825, %48
  br i1 %.not512, label %56, label %.invoke871

56:                                               ; preds = %55
  %57 = icmp eq i32 %.0419823, 0
  br i1 %57, label %58, label %.invoke.sink.split

58:                                               ; preds = %56
  %59 = add nsw i32 %.0415825, 1
  br label %321

60:                                               ; preds = %49
  %61 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.10) #15
  %62 = icmp eq i32 %61, 0
  br i1 %62, label %321, label %63

63:                                               ; preds = %60
  %64 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.4) #15
  %65 = icmp eq i32 %64, 0
  br i1 %65, label %69, label %66

66:                                               ; preds = %63
  %67 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.5) #15
  %68 = icmp eq i32 %67, 0
  br i1 %68, label %69, label %70

69:                                               ; preds = %66, %63
  invoke void @_Z12help_messagev()
          to label %.invoke869 unwind label %30

70:                                               ; preds = %66
  %71 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.6) #15
  %72 = icmp eq i32 %71, 0
  br i1 %72, label %73, label %74

73:                                               ; preds = %70
  invoke void @_Z21custom_output_messagev()
          to label %.invoke869 unwind label %30

74:                                               ; preds = %70
  %75 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.11) #15
  %76 = icmp eq i32 %75, 0
  br i1 %76, label %77, label %85

77:                                               ; preds = %74
  %.not510 = icmp slt i32 %.0415825, %48
  br i1 %.not510, label %78, label %.invoke871

78:                                               ; preds = %77
  %.not511 = icmp eq i32 %.0428820, 0
  br i1 %.not511, label %79, label %.invoke.sink.split

79:                                               ; preds = %78
  %80 = add nsw i32 %.0415825, 1
  %81 = sext i32 %80 to i64
  %82 = getelementptr inbounds ptr, ptr %1, i64 %81
  %83 = load ptr, ptr %82, align 8, !tbaa !5
  %84 = call double @atof(ptr noundef %83) #15
  br label %321

85:                                               ; preds = %74
  %86 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.13) #15
  %87 = icmp eq i32 %86, 0
  br i1 %87, label %88, label %94

88:                                               ; preds = %85
  %89 = add nsw i32 %.0415825, 1
  %90 = sext i32 %89 to i64
  %91 = getelementptr inbounds ptr, ptr %1, i64 %90
  %92 = load ptr, ptr %91, align 8, !tbaa !5
  %93 = call i32 @atoi(ptr nocapture noundef %92) #15
  br label %321

94:                                               ; preds = %85
  %95 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.14) #15
  %96 = icmp eq i32 %95, 0
  br i1 %96, label %97, label %114

97:                                               ; preds = %94
  %.not508 = icmp slt i32 %.0415825, %47
  br i1 %.not508, label %98, label %.invoke871

98:                                               ; preds = %97
  %.not509 = icmp eq i32 %.0428820, 0
  br i1 %.not509, label %99, label %.invoke.sink.split

99:                                               ; preds = %98
  %100 = getelementptr i8, ptr %51, i64 8
  %101 = load ptr, ptr %100, align 8, !tbaa !5
  %102 = call i32 @atoi(ptr nocapture noundef %101) #15
  store i32 %102, ptr %3, align 4, !tbaa !9
  %103 = add nsw i32 %.0415825, 3
  %104 = getelementptr i8, ptr %51, i64 16
  %105 = load ptr, ptr %104, align 8, !tbaa !5
  %106 = call i32 @atoi(ptr nocapture noundef %105) #15
  store i32 %106, ptr %4, align 4, !tbaa !9
  %107 = sext i32 %103 to i64
  %108 = getelementptr inbounds ptr, ptr %1, i64 %107
  %109 = load ptr, ptr %108, align 8, !tbaa !5
  %110 = call i32 @atoi(ptr nocapture noundef %109) #15
  store i32 %110, ptr %5, align 4, !tbaa !9
  %111 = icmp slt i32 %102, 1
  %112 = icmp slt i32 %106, 1
  %or.cond = select i1 %111, i1 true, i1 %112
  %113 = icmp slt i32 %110, 1
  %or.cond3 = select i1 %or.cond, i1 true, i1 %113
  br i1 %or.cond3, label %.invoke.sink.split, label %321

114:                                              ; preds = %94
  %115 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.16) #15
  %116 = icmp eq i32 %115, 0
  br i1 %116, label %321, label %117

117:                                              ; preds = %114
  %118 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.17) #15
  %119 = icmp eq i32 %118, 0
  br i1 %119, label %321, label %120

120:                                              ; preds = %117
  %121 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.18) #15
  %122 = icmp eq i32 %121, 0
  br i1 %122, label %321, label %123

123:                                              ; preds = %120
  %124 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.19) #15
  %125 = icmp eq i32 %124, 0
  br i1 %125, label %321, label %126

126:                                              ; preds = %123
  %127 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.20) #15
  %128 = icmp eq i32 %127, 0
  br i1 %128, label %321, label %129

129:                                              ; preds = %126
  %130 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.21) #15
  %131 = icmp eq i32 %130, 0
  br i1 %131, label %321, label %132

132:                                              ; preds = %129
  %133 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.22) #15
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %321, label %135

135:                                              ; preds = %132
  %136 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.7) #15
  %137 = icmp eq i32 %136, 0
  br i1 %137, label %138, label %139

138:                                              ; preds = %135
  invoke void @_Z15version_messagev()
          to label %.invoke869 unwind label %30

.invoke869:                                       ; preds = %138, %73, %69
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %.thread unwind label %30

139:                                              ; preds = %135
  %140 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.23) #15
  %141 = icmp eq i32 %140, 0
  br i1 %141, label %142, label %193

142:                                              ; preds = %139
  %.not507 = icmp slt i32 %.0415825, %46
  br i1 %.not507, label %143, label %.invoke871

143:                                              ; preds = %142
  %144 = getelementptr i8, ptr %51, i64 8
  %145 = load ptr, ptr %144, align 8, !tbaa !5
  %146 = call double @atof(ptr noundef %145) #15
  %147 = getelementptr i8, ptr %51, i64 16
  %148 = load ptr, ptr %147, align 8, !tbaa !5
  %149 = call double @atof(ptr noundef %148) #15
  %150 = getelementptr i8, ptr %51, i64 24
  %151 = load ptr, ptr %150, align 8, !tbaa !5
  %152 = call double @atof(ptr noundef %151) #15
  %153 = getelementptr i8, ptr %51, i64 32
  %154 = load ptr, ptr %153, align 8, !tbaa !5
  %155 = call double @atof(ptr noundef %154) #15
  %156 = add nsw i32 %.0415825, 6
  %157 = getelementptr i8, ptr %51, i64 40
  %158 = load ptr, ptr %157, align 8, !tbaa !5
  %159 = call double @atof(ptr noundef %158) #15
  %160 = sext i32 %156 to i64
  %161 = getelementptr inbounds ptr, ptr %1, i64 %160
  %162 = load ptr, ptr %161, align 8, !tbaa !5
  %163 = call double @atof(ptr noundef %162) #15
  %164 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #16
          to label %165 unwind label %191

165:                                              ; preds = %143
  %166 = fneg double %146
  call void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %164, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %166, i32 noundef %.0417824)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %164)
          to label %167 unwind label %191

167:                                              ; preds = %165
  %168 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #16
          to label %169 unwind label %191

169:                                              ; preds = %167
  %170 = add nsw i32 %.0417824, -1
  call void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %168, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %149, i32 noundef %170)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %168)
          to label %171 unwind label %191

171:                                              ; preds = %169
  %172 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #16
          to label %173 unwind label %191

173:                                              ; preds = %171
  %174 = add nsw i32 %.0417824, -2
  %175 = fneg double %152
  call void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %172, double noundef 0.000000e+00, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef %175, i32 noundef %174)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %172)
          to label %176 unwind label %191

176:                                              ; preds = %173
  %177 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #16
          to label %178 unwind label %191

178:                                              ; preds = %176
  %179 = add nsw i32 %.0417824, -3
  call void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %177, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef %155, i32 noundef %179)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %177)
          to label %180 unwind label %191

180:                                              ; preds = %178
  %181 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #16
          to label %182 unwind label %191

182:                                              ; preds = %180
  %183 = add nsw i32 %.0417824, -4
  %184 = fneg double %159
  call void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %181, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -1.000000e+00, double noundef %184, i32 noundef %183)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %181)
          to label %185 unwind label %191

185:                                              ; preds = %182
  %186 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #16
          to label %187 unwind label %191

187:                                              ; preds = %185
  %188 = add nsw i32 %.0417824, -5
  call void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %186, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef %163, i32 noundef %188)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %186)
          to label %189 unwind label %191

189:                                              ; preds = %187
  %190 = add nsw i32 %.0417824, -6
  br label %321

191:                                              ; preds = %187, %185, %182, %180, %178, %176, %173, %171, %169, %167, %165, %143
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %627

193:                                              ; preds = %139
  %194 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.24) #15
  %195 = icmp eq i32 %194, 0
  br i1 %195, label %196, label %218

196:                                              ; preds = %193
  %.not506 = icmp slt i32 %.0415825, %45
  br i1 %.not506, label %197, label %.invoke871

197:                                              ; preds = %196
  %198 = getelementptr i8, ptr %51, i64 8
  %199 = load ptr, ptr %198, align 8, !tbaa !5
  %200 = call double @atof(ptr noundef %199) #15
  %201 = getelementptr i8, ptr %51, i64 16
  %202 = load ptr, ptr %201, align 8, !tbaa !5
  %203 = call double @atof(ptr noundef %202) #15
  %204 = add nsw i32 %.0415825, 4
  %205 = getelementptr i8, ptr %51, i64 24
  %206 = load ptr, ptr %205, align 8, !tbaa !5
  %207 = call double @atof(ptr noundef %206) #15
  %208 = sext i32 %204 to i64
  %209 = getelementptr inbounds ptr, ptr %1, i64 %208
  %210 = load ptr, ptr %209, align 8, !tbaa !5
  %211 = call double @atof(ptr noundef %210) #15
  %212 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #16
          to label %213 unwind label %216

213:                                              ; preds = %197
  call void @_ZN4voro11wall_sphereC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %212, double noundef %200, double noundef %203, double noundef %207, double noundef %211, i32 noundef %.0417824)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %212)
          to label %214 unwind label %216

214:                                              ; preds = %213
  %215 = add nsw i32 %.0417824, -1
  br label %321

216:                                              ; preds = %213, %197
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %627

218:                                              ; preds = %193
  %219 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.25) #15
  %220 = icmp eq i32 %219, 0
  br i1 %220, label %221, label %243

221:                                              ; preds = %218
  %.not505 = icmp slt i32 %.0415825, %45
  br i1 %.not505, label %222, label %.invoke871

222:                                              ; preds = %221
  %223 = getelementptr i8, ptr %51, i64 8
  %224 = load ptr, ptr %223, align 8, !tbaa !5
  %225 = call double @atof(ptr noundef %224) #15
  %226 = getelementptr i8, ptr %51, i64 16
  %227 = load ptr, ptr %226, align 8, !tbaa !5
  %228 = call double @atof(ptr noundef %227) #15
  %229 = add nsw i32 %.0415825, 4
  %230 = getelementptr i8, ptr %51, i64 24
  %231 = load ptr, ptr %230, align 8, !tbaa !5
  %232 = call double @atof(ptr noundef %231) #15
  %233 = sext i32 %229 to i64
  %234 = getelementptr inbounds ptr, ptr %1, i64 %233
  %235 = load ptr, ptr %234, align 8, !tbaa !5
  %236 = call double @atof(ptr noundef %235) #15
  %237 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #16
          to label %238 unwind label %241

238:                                              ; preds = %222
  call void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48) %237, double noundef %225, double noundef %228, double noundef %232, double noundef %236, i32 noundef %.0417824)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %237)
          to label %239 unwind label %241

239:                                              ; preds = %238
  %240 = add nsw i32 %.0417824, -1
  br label %321

241:                                              ; preds = %238, %222
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %627

243:                                              ; preds = %218
  %244 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.26) #15
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %277

246:                                              ; preds = %243
  %.not504 = icmp slt i32 %.0415825, %44
  br i1 %.not504, label %247, label %.invoke871

247:                                              ; preds = %246
  %248 = getelementptr i8, ptr %51, i64 8
  %249 = load ptr, ptr %248, align 8, !tbaa !5
  %250 = call double @atof(ptr noundef %249) #15
  %251 = getelementptr i8, ptr %51, i64 16
  %252 = load ptr, ptr %251, align 8, !tbaa !5
  %253 = call double @atof(ptr noundef %252) #15
  %254 = getelementptr i8, ptr %51, i64 24
  %255 = load ptr, ptr %254, align 8, !tbaa !5
  %256 = call double @atof(ptr noundef %255) #15
  %257 = getelementptr i8, ptr %51, i64 32
  %258 = load ptr, ptr %257, align 8, !tbaa !5
  %259 = call double @atof(ptr noundef %258) #15
  %260 = getelementptr i8, ptr %51, i64 40
  %261 = load ptr, ptr %260, align 8, !tbaa !5
  %262 = call double @atof(ptr noundef %261) #15
  %263 = add nsw i32 %.0415825, 7
  %264 = getelementptr i8, ptr %51, i64 48
  %265 = load ptr, ptr %264, align 8, !tbaa !5
  %266 = call double @atof(ptr noundef %265) #15
  %267 = sext i32 %263 to i64
  %268 = getelementptr inbounds ptr, ptr %1, i64 %267
  %269 = load ptr, ptr %268, align 8, !tbaa !5
  %270 = call double @atof(ptr noundef %269) #15
  %271 = invoke noalias noundef nonnull dereferenceable(80) ptr @_Znwm(i64 noundef 80) #16
          to label %272 unwind label %275

272:                                              ; preds = %247
  call void @_ZN4voro13wall_cylinderC2Edddddddi(ptr noundef nonnull align 8 dereferenceable(80) %271, double noundef %250, double noundef %253, double noundef %256, double noundef %259, double noundef %262, double noundef %266, double noundef %270, i32 noundef %.0417824)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %271)
          to label %273 unwind label %275

273:                                              ; preds = %272
  %274 = add nsw i32 %.0417824, -1
  br label %321

275:                                              ; preds = %272, %247
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %627

277:                                              ; preds = %243
  %278 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.27) #15
  %279 = icmp eq i32 %278, 0
  br i1 %279, label %280, label %311

280:                                              ; preds = %277
  %.not503 = icmp slt i32 %.0415825, %44
  br i1 %.not503, label %281, label %.invoke871

.invoke871:                                       ; preds = %280, %246, %221, %196, %142, %97, %77, %55
  invoke void @_Z13error_messagev()
          to label %.invoke unwind label %30

281:                                              ; preds = %280
  %282 = getelementptr i8, ptr %51, i64 8
  %283 = load ptr, ptr %282, align 8, !tbaa !5
  %284 = call double @atof(ptr noundef %283) #15
  %285 = getelementptr i8, ptr %51, i64 16
  %286 = load ptr, ptr %285, align 8, !tbaa !5
  %287 = call double @atof(ptr noundef %286) #15
  %288 = getelementptr i8, ptr %51, i64 24
  %289 = load ptr, ptr %288, align 8, !tbaa !5
  %290 = call double @atof(ptr noundef %289) #15
  %291 = getelementptr i8, ptr %51, i64 32
  %292 = load ptr, ptr %291, align 8, !tbaa !5
  %293 = call double @atof(ptr noundef %292) #15
  %294 = getelementptr i8, ptr %51, i64 40
  %295 = load ptr, ptr %294, align 8, !tbaa !5
  %296 = call double @atof(ptr noundef %295) #15
  %297 = add nsw i32 %.0415825, 7
  %298 = getelementptr i8, ptr %51, i64 48
  %299 = load ptr, ptr %298, align 8, !tbaa !5
  %300 = call double @atof(ptr noundef %299) #15
  %301 = sext i32 %297 to i64
  %302 = getelementptr inbounds ptr, ptr %1, i64 %301
  %303 = load ptr, ptr %302, align 8, !tbaa !5
  %304 = call double @atof(ptr noundef %303) #15
  %305 = invoke noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #16
          to label %306 unwind label %309

306:                                              ; preds = %281
  call void @_ZN4voro9wall_coneC2Edddddddi(ptr noundef nonnull align 8 dereferenceable(96) %305, double noundef %284, double noundef %287, double noundef %290, double noundef %293, double noundef %296, double noundef %300, double noundef %304, i32 noundef %.0417824)
  invoke void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28) %6, ptr noundef nonnull %305)
          to label %307 unwind label %309

307:                                              ; preds = %306
  %308 = add nsw i32 %.0417824, -1
  br label %321

309:                                              ; preds = %306, %281
  %310 = landingpad { ptr, i32 }
          cleanup
  br label %627

311:                                              ; preds = %277
  %312 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.28) #15
  %313 = icmp eq i32 %312, 0
  br i1 %313, label %321, label %314

314:                                              ; preds = %311
  %315 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.29) #15
  %316 = icmp eq i32 %315, 0
  br i1 %316, label %321, label %317

317:                                              ; preds = %314
  %318 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %52, ptr noundef nonnull dereferenceable(1) @.str.30) #15
  %319 = icmp eq i32 %318, 0
  br i1 %319, label %321, label %320

320:                                              ; preds = %317
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %.invoke868 unwind label %30

.invoke868:                                       ; preds = %320, %40, %36
  invoke void @_Z13error_messagev()
          to label %.thread unwind label %30

321:                                              ; preds = %317, %314, %311, %132, %129, %126, %123, %120, %117, %114, %60, %88, %189, %239, %307, %273, %214, %99, %79, %58
  %.1447 = phi i8 [ %.0446811, %58 ], [ %.0446811, %79 ], [ %.0446811, %88 ], [ %.0446811, %99 ], [ %.0446811, %189 ], [ %.0446811, %214 ], [ %.0446811, %239 ], [ %.0446811, %273 ], [ %.0446811, %307 ], [ %.0446811, %60 ], [ %.0446811, %114 ], [ %.0446811, %117 ], [ %.0446811, %120 ], [ %.0446811, %123 ], [ %.0446811, %126 ], [ %.0446811, %129 ], [ 1, %132 ], [ %.0446811, %311 ], [ %.0446811, %314 ], [ %.0446811, %317 ]
  %.1445 = phi i8 [ %.0444812, %58 ], [ %.0444812, %79 ], [ %.0444812, %88 ], [ %.0444812, %99 ], [ %.0444812, %189 ], [ %.0444812, %214 ], [ %.0444812, %239 ], [ %.0444812, %273 ], [ %.0444812, %307 ], [ %.0444812, %60 ], [ 1, %114 ], [ %.0444812, %117 ], [ %.0444812, %120 ], [ %.0444812, %123 ], [ %.0444812, %126 ], [ %.0444812, %129 ], [ %.0444812, %132 ], [ %.0444812, %311 ], [ %.0444812, %314 ], [ %.0444812, %317 ]
  %.1443 = phi i8 [ %.0442813, %58 ], [ %.0442813, %79 ], [ %.0442813, %88 ], [ %.0442813, %99 ], [ %.0442813, %189 ], [ %.0442813, %214 ], [ %.0442813, %239 ], [ %.0442813, %273 ], [ %.0442813, %307 ], [ %.0442813, %60 ], [ %.0442813, %114 ], [ 1, %117 ], [ %.0442813, %120 ], [ %.0442813, %123 ], [ 1, %126 ], [ %.0442813, %129 ], [ %.0442813, %132 ], [ %.0442813, %311 ], [ %.0442813, %314 ], [ %.0442813, %317 ]
  %.1441 = phi i8 [ %.0440814, %58 ], [ %.0440814, %79 ], [ %.0440814, %88 ], [ %.0440814, %99 ], [ %.0440814, %189 ], [ %.0440814, %214 ], [ %.0440814, %239 ], [ %.0440814, %273 ], [ %.0440814, %307 ], [ %.0440814, %60 ], [ %.0440814, %114 ], [ 1, %117 ], [ %.0440814, %120 ], [ 1, %123 ], [ %.0440814, %126 ], [ %.0440814, %129 ], [ %.0440814, %132 ], [ %.0440814, %311 ], [ %.0440814, %314 ], [ %.0440814, %317 ]
  %.1439 = phi i8 [ %.0438815, %58 ], [ %.0438815, %79 ], [ %.0438815, %88 ], [ %.0438815, %99 ], [ %.0438815, %189 ], [ %.0438815, %214 ], [ %.0438815, %239 ], [ %.0438815, %273 ], [ %.0438815, %307 ], [ %.0438815, %60 ], [ %.0438815, %114 ], [ 1, %117 ], [ 1, %120 ], [ %.0438815, %123 ], [ %.0438815, %126 ], [ %.0438815, %129 ], [ %.0438815, %132 ], [ %.0438815, %311 ], [ %.0438815, %314 ], [ %.0438815, %317 ]
  %.1437 = phi i8 [ %.0436816, %58 ], [ %.0436816, %79 ], [ %.0436816, %88 ], [ %.0436816, %99 ], [ %.0436816, %189 ], [ %.0436816, %214 ], [ %.0436816, %239 ], [ %.0436816, %273 ], [ %.0436816, %307 ], [ %.0436816, %60 ], [ %.0436816, %114 ], [ %.0436816, %117 ], [ %.0436816, %120 ], [ %.0436816, %123 ], [ %.0436816, %126 ], [ 1, %129 ], [ %.0436816, %132 ], [ %.0436816, %311 ], [ %.0436816, %314 ], [ %.0436816, %317 ]
  %.1435 = phi i1 [ %.0434817, %58 ], [ %.0434817, %79 ], [ %.0434817, %88 ], [ %.0434817, %99 ], [ %.0434817, %189 ], [ %.0434817, %214 ], [ %.0434817, %239 ], [ %.0434817, %273 ], [ %.0434817, %307 ], [ %.0434817, %60 ], [ %.0434817, %114 ], [ %.0434817, %117 ], [ %.0434817, %120 ], [ %.0434817, %123 ], [ %.0434817, %126 ], [ %.0434817, %129 ], [ %.0434817, %132 ], [ true, %311 ], [ %.0434817, %314 ], [ true, %317 ]
  %.1433 = phi i1 [ %.0432818, %58 ], [ %.0432818, %79 ], [ %.0432818, %88 ], [ %.0432818, %99 ], [ %.0432818, %189 ], [ %.0432818, %214 ], [ %.0432818, %239 ], [ %.0432818, %273 ], [ %.0432818, %307 ], [ %.0432818, %60 ], [ %.0432818, %114 ], [ %.0432818, %117 ], [ %.0432818, %120 ], [ %.0432818, %123 ], [ %.0432818, %126 ], [ %.0432818, %129 ], [ %.0432818, %132 ], [ true, %311 ], [ true, %314 ], [ %.0432818, %317 ]
  %.1431 = phi i1 [ %.0430819, %58 ], [ %.0430819, %79 ], [ %.0430819, %88 ], [ %.0430819, %99 ], [ %.0430819, %189 ], [ %.0430819, %214 ], [ %.0430819, %239 ], [ %.0430819, %273 ], [ %.0430819, %307 ], [ true, %60 ], [ %.0430819, %114 ], [ %.0430819, %117 ], [ %.0430819, %120 ], [ %.0430819, %123 ], [ %.0430819, %126 ], [ %.0430819, %129 ], [ %.0430819, %132 ], [ %.0430819, %311 ], [ %.0430819, %314 ], [ %.0430819, %317 ]
  %.1429 = phi i32 [ %.0428820, %58 ], [ 1, %79 ], [ %.0428820, %88 ], [ 2, %99 ], [ %.0428820, %189 ], [ %.0428820, %214 ], [ %.0428820, %239 ], [ %.0428820, %273 ], [ %.0428820, %307 ], [ %.0428820, %60 ], [ %.0428820, %114 ], [ %.0428820, %117 ], [ %.0428820, %120 ], [ %.0428820, %123 ], [ %.0428820, %126 ], [ %.0428820, %129 ], [ %.0428820, %132 ], [ %.0428820, %311 ], [ %.0428820, %314 ], [ %.0428820, %317 ]
  %.1427 = phi double [ %.0426821, %58 ], [ %84, %79 ], [ %.0426821, %88 ], [ %.0426821, %99 ], [ %.0426821, %189 ], [ %.0426821, %214 ], [ %.0426821, %239 ], [ %.0426821, %273 ], [ %.0426821, %307 ], [ %.0426821, %60 ], [ %.0426821, %114 ], [ %.0426821, %117 ], [ %.0426821, %120 ], [ %.0426821, %123 ], [ %.0426821, %126 ], [ %.0426821, %129 ], [ %.0426821, %132 ], [ %.0426821, %311 ], [ %.0426821, %314 ], [ %.0426821, %317 ]
  %.1425 = phi i32 [ %.0424822, %58 ], [ %.0424822, %79 ], [ %93, %88 ], [ %.0424822, %99 ], [ %.0424822, %189 ], [ %.0424822, %214 ], [ %.0424822, %239 ], [ %.0424822, %273 ], [ %.0424822, %307 ], [ %.0424822, %60 ], [ %.0424822, %114 ], [ %.0424822, %117 ], [ %.0424822, %120 ], [ %.0424822, %123 ], [ %.0424822, %126 ], [ %.0424822, %129 ], [ %.0424822, %132 ], [ %.0424822, %311 ], [ %.0424822, %314 ], [ %.0424822, %317 ]
  %.1420 = phi i32 [ %59, %58 ], [ %.0419823, %79 ], [ %.0419823, %88 ], [ %.0419823, %99 ], [ %.0419823, %189 ], [ %.0419823, %214 ], [ %.0419823, %239 ], [ %.0419823, %273 ], [ %.0419823, %307 ], [ %.0419823, %60 ], [ %.0419823, %114 ], [ %.0419823, %117 ], [ %.0419823, %120 ], [ %.0419823, %123 ], [ %.0419823, %126 ], [ %.0419823, %129 ], [ %.0419823, %132 ], [ %.0419823, %311 ], [ %.0419823, %314 ], [ %.0419823, %317 ]
  %.1418 = phi i32 [ %.0417824, %58 ], [ %.0417824, %79 ], [ %.0417824, %88 ], [ %.0417824, %99 ], [ %190, %189 ], [ %215, %214 ], [ %240, %239 ], [ %274, %273 ], [ %308, %307 ], [ %.0417824, %60 ], [ %.0417824, %114 ], [ %.0417824, %117 ], [ %.0417824, %120 ], [ %.0417824, %123 ], [ %.0417824, %126 ], [ %.0417824, %129 ], [ %.0417824, %132 ], [ %.0417824, %311 ], [ %.0417824, %314 ], [ %.0417824, %317 ]
  %.1416 = phi i32 [ %59, %58 ], [ %80, %79 ], [ %89, %88 ], [ %103, %99 ], [ %156, %189 ], [ %204, %214 ], [ %229, %239 ], [ %263, %273 ], [ %297, %307 ], [ %.0415825, %60 ], [ %.0415825, %114 ], [ %.0415825, %117 ], [ %.0415825, %120 ], [ %.0415825, %123 ], [ %.0415825, %126 ], [ %.0415825, %129 ], [ %.0415825, %132 ], [ %.0415825, %311 ], [ %.0415825, %314 ], [ %.0415825, %317 ]
  %322 = add nsw i32 %.1416, 1
  %323 = icmp slt i32 %322, %42
  br i1 %323, label %49, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %321
  %324 = icmp slt i32 %.1425, 1
  br i1 %324, label %.invoke.sink.split, label %._crit_edge.thread

.invoke.sink.split:                               ; preds = %99, %98, %78, %56, %._crit_edge
  %.str.9.sink = phi ptr [ @.str.31, %._crit_edge ], [ @.str.9, %56 ], [ @.str.12, %78 ], [ @.str.12, %98 ], [ @.str.15, %99 ]
  %325 = load ptr, ptr @stderr, align 8, !tbaa !5
  %326 = call i32 @fputs(ptr noundef nonnull %.str.9.sink, ptr noundef %325) #17
  br label %.invoke

.invoke:                                          ; preds = %.invoke871, %.invoke.sink.split
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %.thread unwind label %30

._crit_edge.thread:                               ; preds = %.preheader, %._crit_edge
  %.0415.lcssa867 = phi i32 [ %322, %._crit_edge ], [ 1, %.preheader ]
  %.0419.lcssa866 = phi i32 [ %.1420, %._crit_edge ], [ 0, %.preheader ]
  %.0424.lcssa865 = phi i32 [ %.1425, %._crit_edge ], [ 8, %.preheader ]
  %.0426.lcssa864 = phi double [ %.1427, %._crit_edge ], [ 0.000000e+00, %.preheader ]
  %.0428.lcssa863 = phi i32 [ %.1429, %._crit_edge ], [ 0, %.preheader ]
  %.0430.lcssa862 = phi i1 [ %.1431, %._crit_edge ], [ false, %.preheader ]
  %.0432.lcssa861 = phi i1 [ %.1433, %._crit_edge ], [ false, %.preheader ]
  %.0434.lcssa860 = phi i1 [ %.1435, %._crit_edge ], [ false, %.preheader ]
  %.0436.lcssa859 = phi i8 [ %.1437, %._crit_edge ], [ 0, %.preheader ]
  %.0438.lcssa858 = phi i8 [ %.1439, %._crit_edge ], [ 0, %.preheader ]
  %.0440.lcssa857 = phi i8 [ %.1441, %._crit_edge ], [ 0, %.preheader ]
  %.0442.lcssa856 = phi i8 [ %.1443, %._crit_edge ], [ 0, %.preheader ]
  %.0444.lcssa855 = phi i8 [ %.1445, %._crit_edge ], [ 0, %.preheader ]
  %.0446.lcssa854 = phi i8 [ %.1447, %._crit_edge ], [ 0, %.preheader ]
  %327 = sext i32 %.0415.lcssa867 to i64
  %328 = getelementptr inbounds ptr, ptr %1, i64 %327
  %329 = load ptr, ptr %328, align 8, !tbaa !5
  %330 = call double @atof(ptr noundef %329) #15
  %331 = getelementptr i8, ptr %328, i64 8
  %332 = load ptr, ptr %331, align 8, !tbaa !5
  %333 = call double @atof(ptr noundef %332) #15
  %334 = getelementptr i8, ptr %328, i64 16
  %335 = load ptr, ptr %334, align 8, !tbaa !5
  %336 = call double @atof(ptr noundef %335) #15
  %337 = getelementptr i8, ptr %328, i64 24
  %338 = load ptr, ptr %337, align 8, !tbaa !5
  %339 = call double @atof(ptr noundef %338) #15
  %340 = getelementptr i8, ptr %328, i64 32
  %341 = load ptr, ptr %340, align 8, !tbaa !5
  %342 = call double @atof(ptr noundef %341) #15
  %343 = getelementptr i8, ptr %328, i64 40
  %344 = load ptr, ptr %343, align 8, !tbaa !5
  %345 = call double @atof(ptr noundef %344) #15
  %346 = fcmp olt double %333, %330
  br i1 %346, label %.invoke870, label %349

347:                                              ; preds = %.invoke870, %380, %377, %371, %368, %365, %359
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %627

349:                                              ; preds = %._crit_edge.thread
  %350 = fcmp olt double %339, %336
  br i1 %350, label %.invoke870, label %351

351:                                              ; preds = %349
  %352 = fcmp olt double %345, %342
  br i1 %352, label %.invoke870, label %355

.invoke870:                                       ; preds = %351, %349, %._crit_edge.thread
  %.str.32.sink = phi ptr [ @.str.32, %._crit_edge.thread ], [ @.str.33, %349 ], [ @.str.34, %351 ]
  %353 = load ptr, ptr @stderr, align 8, !tbaa !5
  %354 = call i32 @fputs(ptr noundef nonnull %.str.32.sink, ptr noundef %353) #17
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %.thread unwind label %347

355:                                              ; preds = %351
  %356 = icmp eq i32 %.0428.lcssa863, 0
  br i1 %356, label %357, label %383

357:                                              ; preds = %355
  %358 = trunc nuw i8 %.0436.lcssa859 to i1
  br i1 %358, label %359, label %371

359:                                              ; preds = %357
  %360 = invoke noalias noundef nonnull dereferenceable(128) ptr @_Znwm(i64 noundef 128) #16
          to label %361 unwind label %347

361:                                              ; preds = %359
  %362 = trunc nuw i8 %.0438.lcssa858 to i1
  %363 = trunc nuw i8 %.0440.lcssa857 to i1
  %364 = trunc nuw i8 %.0442.lcssa856 to i1
  invoke void @_ZN4voro18pre_container_polyC2Eddddddbbb(ptr noundef nonnull align 8 dereferenceable(128) %360, double noundef %330, double noundef %333, double noundef %336, double noundef %339, double noundef %342, double noundef %345, i1 noundef zeroext %362, i1 noundef zeroext %363, i1 noundef zeroext %364)
          to label %365 unwind label %369

365:                                              ; preds = %361
  %366 = getelementptr i8, ptr %328, i64 48
  %367 = load ptr, ptr %366, align 8, !tbaa !5
  invoke void @_ZN4voro18pre_container_poly6importEPKc(ptr noundef nonnull align 8 dereferenceable(128) %360, ptr noundef %367)
          to label %368 unwind label %347

368:                                              ; preds = %365
  invoke void @_ZN4voro18pre_container_base13guess_optimalERiS1_S1_(ptr noundef nonnull align 8 dereferenceable(128) %360, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %424 unwind label %347

369:                                              ; preds = %361
  %370 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %360, i64 noundef 128) #18
  br label %627

371:                                              ; preds = %357
  %372 = invoke noalias noundef nonnull dereferenceable(128) ptr @_Znwm(i64 noundef 128) #16
          to label %373 unwind label %347

373:                                              ; preds = %371
  %374 = trunc nuw i8 %.0438.lcssa858 to i1
  %375 = trunc nuw i8 %.0440.lcssa857 to i1
  %376 = trunc nuw i8 %.0442.lcssa856 to i1
  invoke void @_ZN4voro13pre_containerC2Eddddddbbb(ptr noundef nonnull align 8 dereferenceable(128) %372, double noundef %330, double noundef %333, double noundef %336, double noundef %339, double noundef %342, double noundef %345, i1 noundef zeroext %374, i1 noundef zeroext %375, i1 noundef zeroext %376)
          to label %377 unwind label %381

377:                                              ; preds = %373
  %378 = getelementptr i8, ptr %328, i64 48
  %379 = load ptr, ptr %378, align 8, !tbaa !5
  invoke void @_ZN4voro13pre_container6importEPKc(ptr noundef nonnull align 8 dereferenceable(128) %372, ptr noundef %379)
          to label %380 unwind label %347

380:                                              ; preds = %377
  invoke void @_ZN4voro18pre_container_base13guess_optimalERiS1_S1_(ptr noundef nonnull align 8 dereferenceable(128) %372, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %424 unwind label %347

381:                                              ; preds = %373
  %382 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %372, i64 noundef 128) #18
  br label %627

383:                                              ; preds = %355
  %384 = icmp eq i32 %.0428.lcssa863, 1
  br i1 %384, label %385, label %410

385:                                              ; preds = %383
  %386 = fcmp olt double %.0426.lcssa864, 0x3DA5FD7FE1796495
  br i1 %386, label %387, label %399

387:                                              ; preds = %385
  %388 = load ptr, ptr @stderr, align 8, !tbaa !5
  %389 = call i32 @fputs(ptr noundef nonnull @.str.35, ptr noundef %388) #17
  %390 = fcmp olt double %.0426.lcssa864, 0.000000e+00
  %391 = load ptr, ptr @stderr, align 8, !tbaa !5
  br i1 %390, label %392, label %396

392:                                              ; preds = %387
  %393 = call i32 @fputs(ptr noundef nonnull @.str.36, ptr noundef %391) #17
  br label %398

394:                                              ; preds = %421, %398
  %395 = landingpad { ptr, i32 }
          cleanup
  br label %627

396:                                              ; preds = %387
  %397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %391, ptr noundef nonnull @.str.37, double noundef 0x3DA5FD7FE1796495) #19
  br label %398

398:                                              ; preds = %396, %392
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %.thread unwind label %394

399:                                              ; preds = %385
  %400 = fdiv double 6.000000e-01, %.0426.lcssa864
  %401 = fsub double %333, %330
  %402 = call double @llvm.fmuladd.f64(double %401, double %400, double 1.000000e+00)
  %403 = fsub double %339, %336
  %404 = call double @llvm.fmuladd.f64(double %403, double %400, double 1.000000e+00)
  %405 = fsub double %345, %342
  %406 = call double @llvm.fmuladd.f64(double %405, double %400, double 1.000000e+00)
  %407 = fptosi double %402 to i32
  store i32 %407, ptr %3, align 4, !tbaa !9
  %408 = fptosi double %404 to i32
  store i32 %408, ptr %4, align 4, !tbaa !9
  %409 = fptosi double %406 to i32
  store i32 %409, ptr %5, align 4, !tbaa !9
  br label %417

410:                                              ; preds = %383
  %411 = load i32, ptr %3, align 4, !tbaa !9
  %412 = sitofp i32 %411 to double
  %413 = load i32, ptr %4, align 4, !tbaa !9
  %414 = sitofp i32 %413 to double
  %415 = load i32, ptr %5, align 4, !tbaa !9
  %416 = sitofp i32 %415 to double
  br label %417

417:                                              ; preds = %410, %399
  %.0423 = phi double [ %402, %399 ], [ %412, %410 ]
  %.0422 = phi double [ %404, %399 ], [ %414, %410 ]
  %.0421 = phi double [ %406, %399 ], [ %416, %410 ]
  %418 = fmul double %.0423, %.0422
  %419 = fmul double %418, %.0421
  %420 = fcmp ogt double %419, 0x4170000000000000
  br i1 %420, label %421, label %424

421:                                              ; preds = %417
  %422 = load ptr, ptr @stderr, align 8, !tbaa !5
  %423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %422, ptr noundef nonnull @.str.38, i32 noundef 16777216) #19
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %.thread unwind label %394

424:                                              ; preds = %417, %368, %380
  %.0449 = phi ptr [ %360, %368 ], [ null, %380 ], [ null, %417 ]
  %.0448 = phi ptr [ null, %368 ], [ %372, %380 ], [ null, %417 ]
  %425 = getelementptr i8, ptr %328, i64 48
  %426 = load ptr, ptr %425, align 8, !tbaa !5
  %427 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %426) #15
  %428 = trunc i64 %427 to i32
  %429 = icmp sgt i32 %428, 4096
  br i1 %429, label %430, label %435

430:                                              ; preds = %424
  %431 = load ptr, ptr @stderr, align 8, !tbaa !5
  %432 = call i32 @fputs(ptr noundef nonnull @.str.39, ptr noundef %431) #17
  invoke void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %.thread unwind label %433

433:                                              ; preds = %430
  %434 = landingpad { ptr, i32 }
          cleanup
  br label %627

435:                                              ; preds = %424
  %436 = shl i64 %427, 32
  %sext = add i64 %436, 30064771072
  %437 = ashr exact i64 %sext, 32
  %438 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %437) #16
          to label %439 unwind label %447

439:                                              ; preds = %435
  %440 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %438, ptr noundef nonnull dereferenceable(1) @.str.40, ptr noundef %426) #14
  %441 = invoke noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef nonnull %438, ptr noundef nonnull @.str.41)
          to label %442 unwind label %449

442:                                              ; preds = %439
  br i1 %.0430.lcssa862, label %443, label %453

443:                                              ; preds = %442
  %444 = load ptr, ptr %425, align 8, !tbaa !5
  %445 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %438, ptr noundef nonnull dereferenceable(1) @.str.42, ptr noundef %444) #14
  %446 = invoke noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef nonnull %438, ptr noundef nonnull @.str.41)
          to label %453 unwind label %451

447:                                              ; preds = %435
  %448 = landingpad { ptr, i32 }
          cleanup
  br label %627

449:                                              ; preds = %439
  %450 = landingpad { ptr, i32 }
          cleanup
  br label %627

451:                                              ; preds = %459, %454, %443
  %452 = landingpad { ptr, i32 }
          cleanup
  br label %627

453:                                              ; preds = %442, %443
  %.0414 = phi ptr [ %446, %443 ], [ null, %442 ]
  br i1 %.0432.lcssa861, label %454, label %458

454:                                              ; preds = %453
  %455 = load ptr, ptr %425, align 8, !tbaa !5
  %456 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %438, ptr noundef nonnull dereferenceable(1) @.str.43, ptr noundef %455) #14
  %457 = invoke noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef nonnull %438, ptr noundef nonnull @.str.41)
          to label %458 unwind label %451

458:                                              ; preds = %453, %454
  %.0413 = phi ptr [ %457, %454 ], [ null, %453 ]
  br i1 %.0434.lcssa860, label %459, label %463

459:                                              ; preds = %458
  %460 = load ptr, ptr %425, align 8, !tbaa !5
  %461 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %438, ptr noundef nonnull dereferenceable(1) @.str.44, ptr noundef %460) #14
  %462 = invoke noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef nonnull %438, ptr noundef nonnull @.str.41)
          to label %463 unwind label %451

463:                                              ; preds = %459, %458
  %.0412 = phi ptr [ %462, %459 ], [ null, %458 ]
  call void @_ZdaPv(ptr noundef nonnull %438) #18
  %464 = icmp eq i32 %.0419.lcssa866, 0
  br i1 %464, label %469, label %465

465:                                              ; preds = %463
  %466 = sext i32 %.0419.lcssa866 to i64
  %467 = getelementptr inbounds ptr, ptr %1, i64 %466
  %468 = load ptr, ptr %467, align 8, !tbaa !5
  %.pre = trunc nuw i8 %.0436.lcssa859 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #14
  store double 0.000000e+00, ptr %7, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #14
  store i32 0, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #14
  store i32 0, ptr %9, align 4, !tbaa !9
  br i1 %.pre, label %471, label %528

469:                                              ; preds = %463
  %470 = trunc nuw i8 %.0436.lcssa859 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #14
  store double 0.000000e+00, ptr %7, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #14
  store i32 0, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #14
  store i32 0, ptr %9, align 4, !tbaa !9
  br i1 %470, label %471, label %528

471:                                              ; preds = %465, %469
  %472 = phi ptr [ %468, %465 ], [ @.str.45, %469 ]
  %473 = trunc nuw i8 %.0444.lcssa855 to i1
  br i1 %473, label %474, label %503

474:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #14
  invoke void @_ZN4voro14particle_orderC2Ei(ptr noundef nonnull align 8 dereferenceable(20) %10, i32 noundef 4096)
          to label %475 unwind label %487

475:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 408, ptr nonnull %11) #14
  %476 = load i32, ptr %3, align 4, !tbaa !9
  %477 = load i32, ptr %4, align 4, !tbaa !9
  %478 = load i32, ptr %5, align 4, !tbaa !9
  %479 = trunc nuw i8 %.0438.lcssa858 to i1
  %480 = trunc nuw i8 %.0440.lcssa857 to i1
  %481 = trunc nuw i8 %.0442.lcssa856 to i1
  invoke void @_ZN4voro14container_polyC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(408) %11, double noundef %330, double noundef %333, double noundef %336, double noundef %339, double noundef %342, double noundef %345, i32 noundef %476, i32 noundef %477, i32 noundef %478, i1 noundef zeroext %479, i1 noundef zeroext %480, i1 noundef zeroext %481, i32 noundef %.0424.lcssa865)
          to label %482 unwind label %489

482:                                              ; preds = %475
  %483 = getelementptr inbounds i8, ptr %11, i64 80
  invoke void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28) %483, ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %484 unwind label %491

484:                                              ; preds = %482
  br i1 %356, label %485, label %493

485:                                              ; preds = %484
  invoke void @_ZN4voro18pre_container_poly5setupERNS_14particle_orderERNS_14container_polyE(ptr noundef nonnull align 8 dereferenceable(128) %.0449, ptr noundef nonnull align 8 dereferenceable(20) %10, ptr noundef nonnull align 8 dereferenceable(408) %11)
          to label %486 unwind label %491

486:                                              ; preds = %485
  call void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %.0449) #14
  call void @_ZdlPvm(ptr noundef %.0449, i64 noundef 128) #18
  br label %495

487:                                              ; preds = %474
  %488 = landingpad { ptr, i32 }
          cleanup
  br label %502

489:                                              ; preds = %475
  %490 = landingpad { ptr, i32 }
          cleanup
  br label %501

491:                                              ; preds = %493, %485, %482
  %492 = landingpad { ptr, i32 }
          cleanup
  br label %500

493:                                              ; preds = %484
  %494 = load ptr, ptr %425, align 8, !tbaa !5
  invoke void @_ZN4voro14container_poly6importERNS_14particle_orderEPKc(ptr noundef nonnull align 8 dereferenceable(408) %11, ptr noundef nonnull align 8 dereferenceable(20) %10, ptr noundef %494)
          to label %495 unwind label %491

495:                                              ; preds = %493, %486
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %12) #14
  call void @_ZN4voro12c_loop_orderC2INS_14container_polyEEERT_RNS_14particle_orderE(ptr noundef nonnull align 8 dereferenceable(104) %12, ptr noundef nonnull align 8 dereferenceable(408) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
  %496 = trunc nuw i8 %.0446.lcssa854 to i1
  invoke void @_Z15cmd_line_outputIN4voro12c_loop_orderENS0_14container_polyEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(104) %12, ptr noundef nonnull align 8 dereferenceable(408) %11, ptr noundef %472, ptr noundef %441, ptr noundef %.0414, ptr noundef %.0413, ptr noundef %.0412, i1 noundef zeroext %496, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %497 unwind label %498

497:                                              ; preds = %495
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %12) #14
  call void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %11) #14
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %11) #14
  call void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20) %10) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #14
  br i1 %496, label %587, label %615

498:                                              ; preds = %495
  %499 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %12) #14
  br label %500

500:                                              ; preds = %498, %491
  %.pn489 = phi { ptr, i32 } [ %499, %498 ], [ %492, %491 ]
  call void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %11) #14
  br label %501

501:                                              ; preds = %500, %489
  %.pn489.pn = phi { ptr, i32 } [ %.pn489, %500 ], [ %490, %489 ]
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %11) #14
  call void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20) %10) #14
  br label %502

502:                                              ; preds = %501, %487
  %.pn489.pn.pn = phi { ptr, i32 } [ %.pn489.pn, %501 ], [ %488, %487 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #14
  br label %626

503:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 408, ptr nonnull %13) #14
  %504 = load i32, ptr %3, align 4, !tbaa !9
  %505 = load i32, ptr %4, align 4, !tbaa !9
  %506 = load i32, ptr %5, align 4, !tbaa !9
  %507 = trunc nuw i8 %.0438.lcssa858 to i1
  %508 = trunc nuw i8 %.0440.lcssa857 to i1
  %509 = trunc nuw i8 %.0442.lcssa856 to i1
  invoke void @_ZN4voro14container_polyC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(408) %13, double noundef %330, double noundef %333, double noundef %336, double noundef %339, double noundef %342, double noundef %345, i32 noundef %504, i32 noundef %505, i32 noundef %506, i1 noundef zeroext %507, i1 noundef zeroext %508, i1 noundef zeroext %509, i32 noundef %.0424.lcssa865)
          to label %510 unwind label %515

510:                                              ; preds = %503
  %511 = getelementptr inbounds i8, ptr %13, i64 80
  invoke void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28) %511, ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %512 unwind label %517

512:                                              ; preds = %510
  br i1 %356, label %513, label %519

513:                                              ; preds = %512
  invoke void @_ZN4voro18pre_container_poly5setupERNS_14container_polyE(ptr noundef nonnull align 8 dereferenceable(128) %.0449, ptr noundef nonnull align 8 dereferenceable(408) %13)
          to label %514 unwind label %517

514:                                              ; preds = %513
  call void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %.0449) #14
  call void @_ZdlPvm(ptr noundef %.0449, i64 noundef 128) #18
  br label %521

515:                                              ; preds = %503
  %516 = landingpad { ptr, i32 }
          cleanup
  br label %527

517:                                              ; preds = %519, %513, %510
  %518 = landingpad { ptr, i32 }
          cleanup
  br label %526

519:                                              ; preds = %512
  %520 = load ptr, ptr %425, align 8, !tbaa !5
  invoke void @_ZN4voro14container_poly6importEPKc(ptr noundef nonnull align 8 dereferenceable(408) %13, ptr noundef %520)
          to label %521 unwind label %517

521:                                              ; preds = %519, %514
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %14) #14
  invoke void @_ZN4voro10c_loop_allC2INS_14container_polyEEERT_(ptr noundef nonnull align 8 dereferenceable(68) %14, ptr noundef nonnull align 8 dereferenceable(408) %13)
          to label %522 unwind label %524

522:                                              ; preds = %521
  %523 = trunc nuw i8 %.0446.lcssa854 to i1
  invoke void @_Z15cmd_line_outputIN4voro10c_loop_allENS0_14container_polyEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(68) %14, ptr noundef nonnull align 8 dereferenceable(408) %13, ptr noundef %472, ptr noundef %441, ptr noundef %.0414, ptr noundef %.0413, ptr noundef %.0412, i1 noundef zeroext %523, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %586 unwind label %524

524:                                              ; preds = %522, %521
  %525 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %14) #14
  br label %526

526:                                              ; preds = %524, %517
  %.pn486 = phi { ptr, i32 } [ %525, %524 ], [ %518, %517 ]
  call void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %13) #14
  br label %527

527:                                              ; preds = %526, %515
  %.pn486.pn = phi { ptr, i32 } [ %.pn486, %526 ], [ %516, %515 ]
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %13) #14
  br label %626

528:                                              ; preds = %465, %469
  %529 = phi ptr [ %468, %465 ], [ @.str.46, %469 ]
  %530 = trunc nuw i8 %.0444.lcssa855 to i1
  br i1 %530, label %531, label %560

531:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #14
  invoke void @_ZN4voro14particle_orderC2Ei(ptr noundef nonnull align 8 dereferenceable(20) %15, i32 noundef 4096)
          to label %532 unwind label %544

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %16) #14
  %533 = load i32, ptr %3, align 4, !tbaa !9
  %534 = load i32, ptr %4, align 4, !tbaa !9
  %535 = load i32, ptr %5, align 4, !tbaa !9
  %536 = trunc nuw i8 %.0438.lcssa858 to i1
  %537 = trunc nuw i8 %.0440.lcssa857 to i1
  %538 = trunc nuw i8 %.0442.lcssa856 to i1
  invoke void @_ZN4voro9containerC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(368) %16, double noundef %330, double noundef %333, double noundef %336, double noundef %339, double noundef %342, double noundef %345, i32 noundef %533, i32 noundef %534, i32 noundef %535, i1 noundef zeroext %536, i1 noundef zeroext %537, i1 noundef zeroext %538, i32 noundef %.0424.lcssa865)
          to label %539 unwind label %546

539:                                              ; preds = %532
  %540 = getelementptr inbounds i8, ptr %16, i64 80
  invoke void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28) %540, ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %541 unwind label %548

541:                                              ; preds = %539
  br i1 %356, label %542, label %550

542:                                              ; preds = %541
  invoke void @_ZN4voro13pre_container5setupERNS_14particle_orderERNS_9containerE(ptr noundef nonnull align 8 dereferenceable(128) %.0448, ptr noundef nonnull align 8 dereferenceable(20) %15, ptr noundef nonnull align 8 dereferenceable(368) %16)
          to label %543 unwind label %548

543:                                              ; preds = %542
  call void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %.0448) #14
  call void @_ZdlPvm(ptr noundef %.0448, i64 noundef 128) #18
  br label %552

544:                                              ; preds = %531
  %545 = landingpad { ptr, i32 }
          cleanup
  br label %559

546:                                              ; preds = %532
  %547 = landingpad { ptr, i32 }
          cleanup
  br label %558

548:                                              ; preds = %550, %542, %539
  %549 = landingpad { ptr, i32 }
          cleanup
  br label %557

550:                                              ; preds = %541
  %551 = load ptr, ptr %425, align 8, !tbaa !5
  invoke void @_ZN4voro9container6importERNS_14particle_orderEPKc(ptr noundef nonnull align 8 dereferenceable(368) %16, ptr noundef nonnull align 8 dereferenceable(20) %15, ptr noundef %551)
          to label %552 unwind label %548

552:                                              ; preds = %550, %543
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %17) #14
  call void @_ZN4voro12c_loop_orderC2INS_9containerEEERT_RNS_14particle_orderE(ptr noundef nonnull align 8 dereferenceable(104) %17, ptr noundef nonnull align 8 dereferenceable(368) %16, ptr noundef nonnull align 8 dereferenceable(20) %15)
  %553 = trunc nuw i8 %.0446.lcssa854 to i1
  invoke void @_Z15cmd_line_outputIN4voro12c_loop_orderENS0_9containerEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(104) %17, ptr noundef nonnull align 8 dereferenceable(368) %16, ptr noundef %529, ptr noundef %441, ptr noundef %.0414, ptr noundef %.0413, ptr noundef %.0412, i1 noundef zeroext %553, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %554 unwind label %555

554:                                              ; preds = %552
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %17) #14
  call void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %16) #14
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %16) #14
  call void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20) %15) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #14
  br i1 %553, label %587, label %615

555:                                              ; preds = %552
  %556 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %17) #14
  br label %557

557:                                              ; preds = %555, %548
  %.pn482 = phi { ptr, i32 } [ %556, %555 ], [ %549, %548 ]
  call void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %16) #14
  br label %558

558:                                              ; preds = %557, %546
  %.pn482.pn = phi { ptr, i32 } [ %.pn482, %557 ], [ %547, %546 ]
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %16) #14
  call void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20) %15) #14
  br label %559

559:                                              ; preds = %558, %544
  %.pn482.pn.pn = phi { ptr, i32 } [ %.pn482.pn, %558 ], [ %545, %544 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #14
  br label %626

560:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %18) #14
  %561 = load i32, ptr %3, align 4, !tbaa !9
  %562 = load i32, ptr %4, align 4, !tbaa !9
  %563 = load i32, ptr %5, align 4, !tbaa !9
  %564 = trunc nuw i8 %.0438.lcssa858 to i1
  %565 = trunc nuw i8 %.0440.lcssa857 to i1
  %566 = trunc nuw i8 %.0442.lcssa856 to i1
  invoke void @_ZN4voro9containerC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(368) %18, double noundef %330, double noundef %333, double noundef %336, double noundef %339, double noundef %342, double noundef %345, i32 noundef %561, i32 noundef %562, i32 noundef %563, i1 noundef zeroext %564, i1 noundef zeroext %565, i1 noundef zeroext %566, i32 noundef %.0424.lcssa865)
          to label %567 unwind label %572

567:                                              ; preds = %560
  %568 = getelementptr inbounds i8, ptr %18, i64 80
  invoke void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28) %568, ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %569 unwind label %574

569:                                              ; preds = %567
  br i1 %356, label %570, label %576

570:                                              ; preds = %569
  invoke void @_ZN4voro13pre_container5setupERNS_9containerE(ptr noundef nonnull align 8 dereferenceable(128) %.0448, ptr noundef nonnull align 8 dereferenceable(368) %18)
          to label %571 unwind label %574

571:                                              ; preds = %570
  call void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %.0448) #14
  call void @_ZdlPvm(ptr noundef %.0448, i64 noundef 128) #18
  br label %578

572:                                              ; preds = %560
  %573 = landingpad { ptr, i32 }
          cleanup
  br label %585

574:                                              ; preds = %576, %570, %567
  %575 = landingpad { ptr, i32 }
          cleanup
  br label %584

576:                                              ; preds = %569
  %577 = load ptr, ptr %425, align 8, !tbaa !5
  invoke void @_ZN4voro9container6importEPKc(ptr noundef nonnull align 8 dereferenceable(368) %18, ptr noundef %577)
          to label %578 unwind label %574

578:                                              ; preds = %576, %571
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %19) #14
  invoke void @_ZN4voro10c_loop_allC2INS_9containerEEERT_(ptr noundef nonnull align 8 dereferenceable(68) %19, ptr noundef nonnull align 8 dereferenceable(368) %18)
          to label %579 unwind label %582

579:                                              ; preds = %578
  %580 = trunc nuw i8 %.0446.lcssa854 to i1
  invoke void @_Z15cmd_line_outputIN4voro10c_loop_allENS0_9containerEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(68) %19, ptr noundef nonnull align 8 dereferenceable(368) %18, ptr noundef %529, ptr noundef %441, ptr noundef %.0414, ptr noundef %.0413, ptr noundef %.0412, i1 noundef zeroext %580, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %581 unwind label %582

581:                                              ; preds = %579
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %19) #14
  call void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %18) #14
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %18) #14
  br i1 %580, label %587, label %615

582:                                              ; preds = %579, %578
  %583 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %19) #14
  br label %584

584:                                              ; preds = %582, %574
  %.pn = phi { ptr, i32 } [ %583, %582 ], [ %575, %574 ]
  call void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %18) #14
  br label %585

585:                                              ; preds = %584, %572
  %.pn.pn = phi { ptr, i32 } [ %.pn, %584 ], [ %573, %572 ]
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %18) #14
  br label %626

586:                                              ; preds = %522
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %14) #14
  call void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %13) #14
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %13) #14
  br i1 %523, label %587, label %615

587:                                              ; preds = %497, %581, %554, %586
  %588 = phi ptr [ %529, %554 ], [ %472, %586 ], [ %529, %581 ], [ %472, %497 ]
  %589 = load i32, ptr %3, align 4, !tbaa !9
  %590 = load i32, ptr %4, align 4, !tbaa !9
  %591 = load i32, ptr %5, align 4, !tbaa !9
  %592 = icmp eq i32 %.0428.lcssa863, 1
  %593 = select i1 %592, ptr @.str.49, ptr @.str.50
  %594 = select i1 %356, ptr @.str.48, ptr %593
  %595 = load ptr, ptr %425, align 8, !tbaa !5
  %596 = select i1 %464, ptr @.str.51, ptr @.str.52
  %597 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47, double noundef %330, double noundef %333, double noundef %336, double noundef %339, double noundef %342, double noundef %345, i32 noundef %589, i32 noundef %590, i32 noundef %591, ptr noundef nonnull %594, ptr noundef %595, ptr noundef %588, ptr noundef nonnull %596)
  %598 = load i32, ptr %8, align 4, !tbaa !9
  %599 = sitofp i32 %598 to double
  %600 = load i32, ptr %3, align 4, !tbaa !9
  %601 = load i32, ptr %4, align 4, !tbaa !9
  %602 = mul nsw i32 %601, %600
  %603 = load i32, ptr %5, align 4, !tbaa !9
  %604 = mul nsw i32 %602, %603
  %605 = sitofp i32 %604 to double
  %606 = fdiv double %599, %605
  %607 = load i32, ptr %9, align 4, !tbaa !9
  %608 = fsub double %333, %330
  %609 = fsub double %339, %336
  %610 = fmul double %608, %609
  %611 = fsub double %345, %342
  %612 = fmul double %610, %611
  %613 = load double, ptr %7, align 8, !tbaa !13
  %614 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.53, i32 noundef %598, double noundef %606, i32 noundef %607, double noundef %612, double noundef %613)
  br label %615

615:                                              ; preds = %497, %581, %554, %587, %586
  %616 = call i32 @fclose(ptr noundef %441)
  %.not = icmp eq ptr %.0414, null
  br i1 %.not, label %619, label %617

617:                                              ; preds = %615
  %618 = call i32 @fclose(ptr noundef nonnull %.0414)
  br label %619

619:                                              ; preds = %617, %615
  %.not497 = icmp eq ptr %.0413, null
  br i1 %.not497, label %622, label %620

620:                                              ; preds = %619
  %621 = call i32 @fclose(ptr noundef nonnull %.0413)
  br label %622

622:                                              ; preds = %620, %619
  %.not498 = icmp eq ptr %.0412, null
  br i1 %.not498, label %625, label %623

623:                                              ; preds = %622
  %624 = call i32 @fclose(ptr noundef nonnull %.0412)
  br label %625

625:                                              ; preds = %623, %622
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #14
  br label %.thread

626:                                              ; preds = %585, %559, %527, %502
  %.pn489.pn.pn.pn = phi { ptr, i32 } [ %.pn489.pn.pn, %502 ], [ %.pn486.pn, %527 ], [ %.pn482.pn.pn, %559 ], [ %.pn.pn, %585 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #14
  br label %627

.thread:                                          ; preds = %.invoke870, %.invoke869, %.invoke868, %.invoke, %421, %398, %430, %625, %39, %35, %29
  %.3 = phi i32 [ 0, %29 ], [ 0, %35 ], [ 0, %39 ], [ 0, %625 ], [ 4, %430 ], [ 2, %421 ], [ 4, %398 ], [ 4, %.invoke ], [ 4, %.invoke868 ], [ 0, %.invoke869 ], [ 4, %.invoke870 ]
  call void @_ZN4voro9wall_listD1Ev(ptr noundef nonnull align 8 dereferenceable(28) %6) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #14
  ret i32 %.3

627:                                              ; preds = %347, %369, %381, %394, %447, %451, %626, %449, %433, %309, %275, %241, %216, %191, %30
  %.pn513 = phi { ptr, i32 } [ %31, %30 ], [ %192, %191 ], [ %217, %216 ], [ %242, %241 ], [ %276, %275 ], [ %310, %309 ], [ %348, %347 ], [ %370, %369 ], [ %382, %381 ], [ %395, %394 ], [ %434, %433 ], [ %448, %447 ], [ %450, %449 ], [ %.pn489.pn.pn.pn, %626 ], [ %452, %451 ]
  call void @_ZN4voro9wall_listD1Ev(ptr noundef nonnull align 8 dereferenceable(28) %6) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #14
  resume { ptr, i32 } %.pn513
}

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

declare void @_ZN4voro9wall_listC1Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #5

declare i32 @__gxx_personality_v0(...)

declare void @_ZN4voro9wall_list10deallocateEv(ptr noundef nonnull align 8 dereferenceable(28)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare double @atof(ptr nocapture noundef nonnull) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro9wall_list8add_wallEPNS_4wallE(ptr noundef nonnull align 8 dereferenceable(28), ptr noundef) local_unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro10wall_planeC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef, double noundef, i32 noundef) unnamed_addr #9 align 2

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #10

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro11wall_sphereC2Eddddi(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef, double noundef, i32 noundef) unnamed_addr #9 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro13wall_cylinderC2Edddddddi(ptr noundef nonnull align 8 dereferenceable(80), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef) unnamed_addr #9 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro9wall_coneC2Edddddddi(ptr noundef nonnull align 8 dereferenceable(96), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef) unnamed_addr #9 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro18pre_container_polyC2Eddddddbbb(ptr noundef nonnull align 8 dereferenceable(128), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro18pre_container_poly6importEPKc(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef) local_unnamed_addr #7 align 2

declare void @_ZN4voro18pre_container_base13guess_optimalERiS1_S1_(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro13pre_containerC2Eddddddbbb(ptr noundef nonnull align 8 dereferenceable(128), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro13pre_container6importEPKc(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef) local_unnamed_addr #7 align 2

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #5

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

; Function Attrs: nofree nounwind
declare noundef i32 @sprintf(ptr noalias nocapture noundef writeonly, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN4voro10safe_fopenEPKcS1_(ptr noundef, ptr noundef) local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro14particle_orderC2Ei(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef) unnamed_addr #0 align 2

declare void @_ZN4voro14container_polyC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(408), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i32 noundef) unnamed_addr #4

declare void @_ZN4voro9wall_list8add_wallERS0_(ptr noundef nonnull align 8 dereferenceable(28), ptr noundef nonnull align 8 dereferenceable(28)) local_unnamed_addr #4

declare void @_ZN4voro18pre_container_poly5setupERNS_14particle_orderERNS_14container_polyE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro14container_poly6importERNS_14particle_orderEPKc(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(20), ptr noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro12c_loop_orderC2INS_14container_polyEEERT_RNS_14particle_orderE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(20)) unnamed_addr #9 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15cmd_line_outputIN4voro12c_loop_orderENS0_14container_polyEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(408), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4voro14container_polyD2Ev(ptr noundef nonnull align 8 dereferenceable(408)) unnamed_addr #12 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro14particle_orderD2Ev(ptr noundef nonnull align 8 dereferenceable(20)) unnamed_addr #9 align 2

declare void @_ZN4voro18pre_container_poly5setupERNS_14container_polyE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro14container_poly6importEPKc(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro10c_loop_allC2INS_14container_polyEEERT_(ptr noundef nonnull align 8 dereferenceable(68), ptr noundef nonnull align 8 dereferenceable(408)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15cmd_line_outputIN4voro10c_loop_allENS0_14container_polyEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(68), ptr noundef nonnull align 8 dereferenceable(408), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0

declare void @_ZN4voro9containerC1Eddddddiiibbbi(ptr noundef nonnull align 8 dereferenceable(368), double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i32 noundef) unnamed_addr #4

declare void @_ZN4voro13pre_container5setupERNS_14particle_orderERNS_9containerE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(368)) local_unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN4voro18pre_container_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #13

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro9container6importERNS_14particle_orderEPKc(ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(20), ptr noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4voro12c_loop_orderC2INS_9containerEEERT_RNS_14particle_orderE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(20)) unnamed_addr #9 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15cmd_line_outputIN4voro12c_loop_orderENS0_9containerEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(368), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4voro9containerD2Ev(ptr noundef nonnull align 8 dereferenceable(368)) unnamed_addr #12 align 2

declare void @_ZN4voro13pre_container5setupERNS_9containerE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(368)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4voro9container6importEPKc(ptr noundef nonnull align 8 dereferenceable(368), ptr noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4voro10c_loop_allC2INS_9containerEEERT_(ptr noundef nonnull align 8 dereferenceable(68), ptr noundef nonnull align 8 dereferenceable(368)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15cmd_line_outputIN4voro10c_loop_allENS0_9containerEEvRT_RT0_PKcP8_IO_FILESA_SA_SA_bRdRiSC_(ptr noundef nonnull align 8 dereferenceable(68), ptr noundef nonnull align 8 dereferenceable(368), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0

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

; Function Attrs: nofree nounwind
declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #1

; Function Attrs: nounwind
declare void @_ZN4voro9wall_listD1Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #13

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 #2 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: read) "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 = { inlinehint mustprogress nofree nounwind willreturn memory(read) 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 #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { mustprogress 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 #10 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #12 = { inlinehint mustprogress 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 #13 = { 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 #14 = { nounwind }
attributes #15 = { nounwind willreturn memory(read) }
attributes #16 = { builtin allocsize(0) }
attributes #17 = { cold }
attributes #18 = { builtin nounwind }
attributes #19 = { cold nounwind }

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

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


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass