; LLVM IR from doyubkim/fluid-engine-dev :: src/jet (marching_cubes)

; 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.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.jet::Size3" = type { i64, i64, i64 }
%"class.jet::Vector" = type { double, double, double }
%class.anon = type { %"class.jet::Vector", %"class.jet::Vector" }
%"struct.std::array" = type { [8 x double] }
%"struct.std::array.2" = type { [12 x i64] }
%"struct.std::array.3" = type { [8 x %"class.jet::Vector"] }
%"class.jet::BoundingBox" = type { %"class.jet::Vector", %"class.jet::Vector" }
%"struct.std::array.4" = type { [4 x double] }
%"struct.std::array.5" = type { [8 x i64] }
%"struct.std::array.6" = type { [4 x %"class.jet::Vector"] }
%"class.jet::BoundingBox.7" = type { %"class.jet::Vector.8", %"class.jet::Vector.8" }
%"class.jet::Vector.8" = type { double, double }

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3Edii(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef %3, double noundef %4, i32 noundef %5, i32 noundef %6) #0 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca double, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::unordered_map", align 8
  %16 = alloca %"class.jet::Size3", align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.jet::Vector", align 8
  %20 = alloca %class.anon, align 8
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i32, align 4
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca %"struct.std::array", align 8
  %29 = alloca %"struct.std::array.2", align 8
  %30 = alloca %"struct.std::array.3", align 8
  %31 = alloca %"class.jet::BoundingBox", align 8
  %32 = alloca %"class.jet::Vector", align 8
  %33 = alloca %"class.jet::Vector", align 8
  %34 = alloca %"class.jet::Vector", align 8
  %35 = alloca %"class.jet::Vector", align 8
  %36 = alloca %"class.jet::Vector", align 8
  %37 = alloca %"class.jet::Vector", align 8
  %38 = alloca %"class.jet::Vector", align 8
  %39 = alloca %"class.jet::Vector", align 8
  %40 = alloca i32, align 4
  %41 = alloca %"class.jet::Vector", align 8
  %42 = alloca %"class.jet::Vector", align 8
  %43 = alloca %"class.std::unordered_map", align 8
  %44 = alloca %"class.std::unordered_map", align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca %"struct.std::array.4", align 8
  %49 = alloca %"struct.std::array.5", align 8
  %50 = alloca %"struct.std::array.6", align 8
  %51 = alloca %"class.jet::Vector", align 8
  %52 = alloca %"class.jet::BoundingBox.7", align 8
  %53 = alloca %"class.jet::Vector", align 8
  %54 = alloca %"class.jet::Vector", align 8
  %55 = alloca %"class.jet::Vector", align 8
  %56 = alloca %"class.jet::Vector", align 8
  %57 = alloca %"class.jet::Vector", align 8
  %58 = alloca %"class.jet::Vector", align 8
  %59 = alloca %"class.jet::Vector", align 8
  %60 = alloca %"class.jet::Vector", align 8
  %61 = alloca %"class.jet::Vector", align 8
  %62 = alloca %"class.jet::Vector", align 8
  %63 = alloca %"class.std::unordered_map", align 8
  %64 = alloca %"class.std::unordered_map", align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca %"struct.std::array.4", align 8
  %69 = alloca %"struct.std::array.5", align 8
  %70 = alloca %"struct.std::array.6", align 8
  %71 = alloca %"class.jet::Vector", align 8
  %72 = alloca %"class.jet::BoundingBox.7", align 8
  %73 = alloca %"class.jet::Vector", align 8
  %74 = alloca %"class.jet::Vector", align 8
  %75 = alloca %"class.jet::Vector", align 8
  %76 = alloca %"class.jet::Vector", align 8
  %77 = alloca %"class.jet::Vector", align 8
  %78 = alloca %"class.jet::Vector", align 8
  %79 = alloca %"class.jet::Vector", align 8
  %80 = alloca %"class.jet::Vector", align 8
  %81 = alloca %"class.jet::Vector", align 8
  %82 = alloca %"class.jet::Vector", align 8
  %83 = alloca %"class.std::unordered_map", align 8
  %84 = alloca %"class.std::unordered_map", align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca %"struct.std::array.4", align 8
  %89 = alloca %"struct.std::array.5", align 8
  %90 = alloca %"struct.std::array.6", align 8
  %91 = alloca %"class.jet::Vector", align 8
  %92 = alloca %"class.jet::BoundingBox.7", align 8
  %93 = alloca %"class.jet::Vector", align 8
  %94 = alloca %"class.jet::Vector", align 8
  %95 = alloca %"class.jet::Vector", align 8
  %96 = alloca %"class.jet::Vector", align 8
  %97 = alloca %"class.jet::Vector", align 8
  %98 = alloca %"class.jet::Vector", align 8
  %99 = alloca %"class.jet::Vector", align 8
  %100 = alloca %"class.jet::Vector", align 8
  %101 = alloca %"class.jet::Vector", align 8
  %102 = alloca %"class.jet::Vector", align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store double %4, ptr %12, align 8, !tbaa !9
  store i32 %5, ptr %13, align 4, !tbaa !11
  store i32 %6, ptr %14, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 56, ptr %15) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #5
  %103 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZNK3jet18ConstArrayAccessorIdLm3EE4sizeEv(ptr dead_on_unwind writable sret(%"class.jet::Size3") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %104 unwind label %125

104:                                              ; preds = %7
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #5
  %105 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN3jetdvIdEENS_6VectorIT_Lm3EEES2_RKS3_(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %19, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(24) %105)
          to label %106 unwind label %129

106:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 48, ptr %20) #5
  %107 = getelementptr inbounds %class.anon, ptr %20, i32 0, i32 0
  %108 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN3jet6VectorIdLm3EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 8 dereferenceable(24) %108)
          to label %109 unwind label %133

109:                                              ; preds = %106
  %110 = getelementptr inbounds %class.anon, ptr %20, i32 0, i32 1
  %111 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN3jet6VectorIdLm3EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr noundef nonnull align 8 dereferenceable(24) %111)
          to label %112 unwind label %133

112:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %113 = getelementptr inbounds %"class.jet::Size3", ptr %16, i32 0, i32 0
  %114 = load i64, ptr %113, align 8, !tbaa !13
  store i64 %114, ptr %21, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %115 = getelementptr inbounds %"class.jet::Size3", ptr %16, i32 0, i32 1
  %116 = load i64, ptr %115, align 8, !tbaa !17
  store i64 %116, ptr %22, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %117 = getelementptr inbounds %"class.jet::Size3", ptr %16, i32 0, i32 2
  %118 = load i64, ptr %117, align 8, !tbaa !18
  store i64 %118, ptr %23, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  store i64 0, ptr %24, align 8, !tbaa !16
  br label %119

119:                                              ; preds = %407, %112
  %120 = load i64, ptr %24, align 8, !tbaa !16
  %121 = load i64, ptr %23, align 8, !tbaa !16
  %122 = sub nsw i64 %121, 1
  %123 = icmp slt i64 %120, %122
  br i1 %123, label %137, label %124

124:                                              ; preds = %119
  store i32 2, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  br label %410

125:                                              ; preds = %7
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %17, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %18, align 4
  br label %1503

129:                                              ; preds = %104
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %17, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %18, align 4
  br label %1502

133:                                              ; preds = %109, %106
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %17, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %18, align 4
  br label %1501

137:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  store i64 0, ptr %26, align 8, !tbaa !16
  br label %138

138:                                              ; preds = %403, %137
  %139 = load i64, ptr %26, align 8, !tbaa !16
  %140 = load i64, ptr %22, align 8, !tbaa !16
  %141 = sub nsw i64 %140, 1
  %142 = icmp slt i64 %139, %141
  br i1 %142, label %144, label %143

143:                                              ; preds = %138
  store i32 5, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  br label %406

144:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  store i64 0, ptr %27, align 8, !tbaa !16
  br label %145

145:                                              ; preds = %389, %144
  %146 = load i64, ptr %27, align 8, !tbaa !16
  %147 = load i64, ptr %21, align 8, !tbaa !16
  %148 = sub nsw i64 %147, 1
  %149 = icmp slt i64 %146, %148
  br i1 %149, label %151, label %150

150:                                              ; preds = %145
  store i32 8, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  br label %402

151:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 64, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 96, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 192, ptr %30) #5
  invoke void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(192) %30)
          to label %152 unwind label %310

152:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 48, ptr %31) #5
  invoke void @_ZN3jet11BoundingBoxIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31)
          to label %153 unwind label %314

153:                                              ; preds = %152
  %154 = load ptr, ptr %8, align 8, !tbaa !5
  %155 = load i64, ptr %27, align 8, !tbaa !16
  %156 = load i64, ptr %26, align 8, !tbaa !16
  %157 = load i64, ptr %24, align 8, !tbaa !16
  %158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %154, i64 noundef %155, i64 noundef %156, i64 noundef %157)
          to label %159 unwind label %314

159:                                              ; preds = %153
  %160 = load double, ptr %158, align 8, !tbaa !9
  %161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %28, i64 noundef 0) #5
  store double %160, ptr %161, align 8, !tbaa !9
  %162 = load ptr, ptr %8, align 8, !tbaa !5
  %163 = load i64, ptr %27, align 8, !tbaa !16
  %164 = add nsw i64 %163, 1
  %165 = load i64, ptr %26, align 8, !tbaa !16
  %166 = load i64, ptr %24, align 8, !tbaa !16
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %162, i64 noundef %164, i64 noundef %165, i64 noundef %166)
          to label %168 unwind label %314

168:                                              ; preds = %159
  %169 = load double, ptr %167, align 8, !tbaa !9
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %28, i64 noundef 1) #5
  store double %169, ptr %170, align 8, !tbaa !9
  %171 = load ptr, ptr %8, align 8, !tbaa !5
  %172 = load i64, ptr %27, align 8, !tbaa !16
  %173 = load i64, ptr %26, align 8, !tbaa !16
  %174 = add nsw i64 %173, 1
  %175 = load i64, ptr %24, align 8, !tbaa !16
  %176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %171, i64 noundef %172, i64 noundef %174, i64 noundef %175)
          to label %177 unwind label %314

177:                                              ; preds = %168
  %178 = load double, ptr %176, align 8, !tbaa !9
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %28, i64 noundef 4) #5
  store double %178, ptr %179, align 8, !tbaa !9
  %180 = load ptr, ptr %8, align 8, !tbaa !5
  %181 = load i64, ptr %27, align 8, !tbaa !16
  %182 = add nsw i64 %181, 1
  %183 = load i64, ptr %26, align 8, !tbaa !16
  %184 = add nsw i64 %183, 1
  %185 = load i64, ptr %24, align 8, !tbaa !16
  %186 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %180, i64 noundef %182, i64 noundef %184, i64 noundef %185)
          to label %187 unwind label %314

187:                                              ; preds = %177
  %188 = load double, ptr %186, align 8, !tbaa !9
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %28, i64 noundef 5) #5
  store double %188, ptr %189, align 8, !tbaa !9
  %190 = load ptr, ptr %8, align 8, !tbaa !5
  %191 = load i64, ptr %27, align 8, !tbaa !16
  %192 = load i64, ptr %26, align 8, !tbaa !16
  %193 = load i64, ptr %24, align 8, !tbaa !16
  %194 = add nsw i64 %193, 1
  %195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %190, i64 noundef %191, i64 noundef %192, i64 noundef %194)
          to label %196 unwind label %314

196:                                              ; preds = %187
  %197 = load double, ptr %195, align 8, !tbaa !9
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %28, i64 noundef 3) #5
  store double %197, ptr %198, align 8, !tbaa !9
  %199 = load ptr, ptr %8, align 8, !tbaa !5
  %200 = load i64, ptr %27, align 8, !tbaa !16
  %201 = add nsw i64 %200, 1
  %202 = load i64, ptr %26, align 8, !tbaa !16
  %203 = load i64, ptr %24, align 8, !tbaa !16
  %204 = add nsw i64 %203, 1
  %205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %199, i64 noundef %201, i64 noundef %202, i64 noundef %204)
          to label %206 unwind label %314

206:                                              ; preds = %196
  %207 = load double, ptr %205, align 8, !tbaa !9
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %28, i64 noundef 2) #5
  store double %207, ptr %208, align 8, !tbaa !9
  %209 = load ptr, ptr %8, align 8, !tbaa !5
  %210 = load i64, ptr %27, align 8, !tbaa !16
  %211 = load i64, ptr %26, align 8, !tbaa !16
  %212 = add nsw i64 %211, 1
  %213 = load i64, ptr %24, align 8, !tbaa !16
  %214 = add nsw i64 %213, 1
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %209, i64 noundef %210, i64 noundef %212, i64 noundef %214)
          to label %216 unwind label %314

216:                                              ; preds = %206
  %217 = load double, ptr %215, align 8, !tbaa !9
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %28, i64 noundef 7) #5
  store double %217, ptr %218, align 8, !tbaa !9
  %219 = load ptr, ptr %8, align 8, !tbaa !5
  %220 = load i64, ptr %27, align 8, !tbaa !16
  %221 = add nsw i64 %220, 1
  %222 = load i64, ptr %26, align 8, !tbaa !16
  %223 = add nsw i64 %222, 1
  %224 = load i64, ptr %24, align 8, !tbaa !16
  %225 = add nsw i64 %224, 1
  %226 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %219, i64 noundef %221, i64 noundef %223, i64 noundef %225)
          to label %227 unwind label %314

227:                                              ; preds = %216
  %228 = load double, ptr %226, align 8, !tbaa !9
  %229 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %28, i64 noundef 6) #5
  store double %228, ptr %229, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #5
  %230 = load ptr, ptr %8, align 8, !tbaa !5
  %231 = load i64, ptr %27, align 8, !tbaa !16
  %232 = load i64, ptr %26, align 8, !tbaa !16
  %233 = load i64, ptr %24, align 8, !tbaa !16
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %230, i64 noundef %231, i64 noundef %232, i64 noundef %233, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %234 unwind label %318

234:                                              ; preds = %227
  %235 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %30, i64 noundef 0) #5
  %236 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %235, ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %237 unwind label %318

237:                                              ; preds = %234
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %33) #5
  %238 = load ptr, ptr %8, align 8, !tbaa !5
  %239 = load i64, ptr %27, align 8, !tbaa !16
  %240 = add nsw i64 %239, 1
  %241 = load i64, ptr %26, align 8, !tbaa !16
  %242 = load i64, ptr %24, align 8, !tbaa !16
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %238, i64 noundef %240, i64 noundef %241, i64 noundef %242, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %243 unwind label %322

243:                                              ; preds = %237
  %244 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %30, i64 noundef 1) #5
  %245 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %244, ptr noundef nonnull align 8 dereferenceable(24) %33)
          to label %246 unwind label %322

246:                                              ; preds = %243
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #5
  %247 = load ptr, ptr %8, align 8, !tbaa !5
  %248 = load i64, ptr %27, align 8, !tbaa !16
  %249 = load i64, ptr %26, align 8, !tbaa !16
  %250 = add nsw i64 %249, 1
  %251 = load i64, ptr %24, align 8, !tbaa !16
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %247, i64 noundef %248, i64 noundef %250, i64 noundef %251, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %252 unwind label %326

252:                                              ; preds = %246
  %253 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %30, i64 noundef 4) #5
  %254 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %253, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %255 unwind label %326

255:                                              ; preds = %252
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #5
  %256 = load ptr, ptr %8, align 8, !tbaa !5
  %257 = load i64, ptr %27, align 8, !tbaa !16
  %258 = add nsw i64 %257, 1
  %259 = load i64, ptr %26, align 8, !tbaa !16
  %260 = add nsw i64 %259, 1
  %261 = load i64, ptr %24, align 8, !tbaa !16
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %256, i64 noundef %258, i64 noundef %260, i64 noundef %261, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %262 unwind label %330

262:                                              ; preds = %255
  %263 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %30, i64 noundef 5) #5
  %264 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %263, ptr noundef nonnull align 8 dereferenceable(24) %35)
          to label %265 unwind label %330

265:                                              ; preds = %262
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #5
  %266 = load ptr, ptr %8, align 8, !tbaa !5
  %267 = load i64, ptr %27, align 8, !tbaa !16
  %268 = load i64, ptr %26, align 8, !tbaa !16
  %269 = load i64, ptr %24, align 8, !tbaa !16
  %270 = add nsw i64 %269, 1
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %266, i64 noundef %267, i64 noundef %268, i64 noundef %270, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %271 unwind label %334

271:                                              ; preds = %265
  %272 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %30, i64 noundef 3) #5
  %273 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %272, ptr noundef nonnull align 8 dereferenceable(24) %36)
          to label %274 unwind label %334

274:                                              ; preds = %271
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #5
  %275 = load ptr, ptr %8, align 8, !tbaa !5
  %276 = load i64, ptr %27, align 8, !tbaa !16
  %277 = add nsw i64 %276, 1
  %278 = load i64, ptr %26, align 8, !tbaa !16
  %279 = load i64, ptr %24, align 8, !tbaa !16
  %280 = add nsw i64 %279, 1
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %275, i64 noundef %277, i64 noundef %278, i64 noundef %280, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %281 unwind label %338

281:                                              ; preds = %274
  %282 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %30, i64 noundef 2) #5
  %283 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %282, ptr noundef nonnull align 8 dereferenceable(24) %37)
          to label %284 unwind label %338

284:                                              ; preds = %281
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #5
  %285 = load ptr, ptr %8, align 8, !tbaa !5
  %286 = load i64, ptr %27, align 8, !tbaa !16
  %287 = load i64, ptr %26, align 8, !tbaa !16
  %288 = add nsw i64 %287, 1
  %289 = load i64, ptr %24, align 8, !tbaa !16
  %290 = add nsw i64 %289, 1
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %285, i64 noundef %286, i64 noundef %288, i64 noundef %290, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %291 unwind label %342

291:                                              ; preds = %284
  %292 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %30, i64 noundef 7) #5
  %293 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %292, ptr noundef nonnull align 8 dereferenceable(24) %38)
          to label %294 unwind label %342

294:                                              ; preds = %291
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %39) #5
  %295 = load ptr, ptr %8, align 8, !tbaa !5
  %296 = load i64, ptr %27, align 8, !tbaa !16
  %297 = add nsw i64 %296, 1
  %298 = load i64, ptr %26, align 8, !tbaa !16
  %299 = add nsw i64 %298, 1
  %300 = load i64, ptr %24, align 8, !tbaa !16
  %301 = add nsw i64 %300, 1
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %295, i64 noundef %297, i64 noundef %299, i64 noundef %301, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %302 unwind label %346

302:                                              ; preds = %294
  %303 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %30, i64 noundef 6) #5
  %304 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %303, ptr noundef nonnull align 8 dereferenceable(24) %39)
          to label %305 unwind label %346

305:                                              ; preds = %302
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  store i32 0, ptr %40, align 4, !tbaa !11
  br label %306

306:                                              ; preds = %361, %305
  %307 = load i32, ptr %40, align 4, !tbaa !11
  %308 = icmp slt i32 %307, 12
  br i1 %308, label %350, label %309

309:                                              ; preds = %306
  store i32 11, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  br label %368

310:                                              ; preds = %151
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %17, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %18, align 4
  br label %401

314:                                              ; preds = %385, %216, %206, %196, %187, %177, %168, %159, %153, %152
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %17, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %18, align 4
  br label %400

318:                                              ; preds = %234, %227
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %17, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #5
  br label %400

322:                                              ; preds = %243, %237
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %17, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #5
  br label %400

326:                                              ; preds = %252, %246
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %17, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #5
  br label %400

330:                                              ; preds = %262, %255
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %17, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #5
  br label %400

334:                                              ; preds = %271, %265
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %17, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #5
  br label %400

338:                                              ; preds = %281, %274
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %17, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #5
  br label %400

342:                                              ; preds = %291, %284
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %17, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #5
  br label %400

346:                                              ; preds = %302, %294
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %17, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #5
  br label %400

350:                                              ; preds = %306
  %351 = load i64, ptr %27, align 8, !tbaa !16
  %352 = load i64, ptr %26, align 8, !tbaa !16
  %353 = load i64, ptr %24, align 8, !tbaa !16
  %354 = load i32, ptr %40, align 4, !tbaa !11
  %355 = sext i32 %354 to i64
  %356 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %351, i64 noundef %352, i64 noundef %353, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %355)
          to label %357 unwind label %364

357:                                              ; preds = %350
  %358 = load i32, ptr %40, align 4, !tbaa !11
  %359 = sext i32 %358 to i64
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %29, i64 noundef %359) #5
  store i64 %356, ptr %360, align 8, !tbaa !16
  br label %361

361:                                              ; preds = %357
  %362 = load i32, ptr %40, align 4, !tbaa !11
  %363 = add nsw i32 %362, 1
  store i32 %363, ptr %40, align 4, !tbaa !11
  br label %306, !llvm.loop !19

364:                                              ; preds = %350
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %17, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  br label %400

368:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 24, ptr %41) #5
  %369 = load i64, ptr %27, align 8, !tbaa !16
  %370 = load i64, ptr %26, align 8, !tbaa !16
  %371 = load i64, ptr %24, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %41, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %369, i64 noundef %370, i64 noundef %371)
          to label %372 unwind label %392

372:                                              ; preds = %368
  %373 = getelementptr inbounds %"class.jet::BoundingBox", ptr %31, i32 0, i32 0
  %374 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %373, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %375 unwind label %392

375:                                              ; preds = %372
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #5
  %376 = load i64, ptr %27, align 8, !tbaa !16
  %377 = add nsw i64 %376, 1
  %378 = load i64, ptr %26, align 8, !tbaa !16
  %379 = add nsw i64 %378, 1
  %380 = load i64, ptr %24, align 8, !tbaa !16
  %381 = add nsw i64 %380, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %42, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %377, i64 noundef %379, i64 noundef %381)
          to label %382 unwind label %396

382:                                              ; preds = %375
  %383 = getelementptr inbounds %"class.jet::BoundingBox", ptr %31, i32 0, i32 1
  %384 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %383, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %385 unwind label %396

385:                                              ; preds = %382
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #5
  %386 = load ptr, ptr %11, align 8, !tbaa !5
  %387 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3jetL10singleCubeERKSt5arrayIdLm8EERKS0_ImLm12EERKS0_INS_6VectorIdLm3EEELm8EERKNS_11BoundingBoxIdLm3EEEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(64) %28, ptr noundef nonnull align 8 dereferenceable(96) %29, ptr noundef nonnull align 8 dereferenceable(192) %30, ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef %15, ptr noundef %386, double noundef %387)
          to label %388 unwind label %314

388:                                              ; preds = %385
  call void @llvm.lifetime.end.p0(i64 48, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 192, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %28) #5
  br label %389

389:                                              ; preds = %388
  %390 = load i64, ptr %27, align 8, !tbaa !16
  %391 = add nsw i64 %390, 1
  store i64 %391, ptr %27, align 8, !tbaa !16
  br label %145, !llvm.loop !21

392:                                              ; preds = %372, %368
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %17, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #5
  br label %400

396:                                              ; preds = %382, %375
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %17, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #5
  br label %400

400:                                              ; preds = %396, %392, %364, %346, %342, %338, %334, %330, %326, %322, %318, %314
  call void @llvm.lifetime.end.p0(i64 48, ptr %31) #5
  br label %401

401:                                              ; preds = %400, %310
  call void @llvm.lifetime.end.p0(i64 192, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  br label %1500

402:                                              ; preds = %150
  br label %403

403:                                              ; preds = %402
  %404 = load i64, ptr %26, align 8, !tbaa !16
  %405 = add nsw i64 %404, 1
  store i64 %405, ptr %26, align 8, !tbaa !16
  br label %138, !llvm.loop !22

406:                                              ; preds = %143
  br label %407

407:                                              ; preds = %406
  %408 = load i64, ptr %24, align 8, !tbaa !16
  %409 = add nsw i64 %408, 1
  store i64 %409, ptr %24, align 8, !tbaa !16
  br label %119, !llvm.loop !23

410:                                              ; preds = %124
  %411 = load i32, ptr %13, align 4, !tbaa !11
  %412 = and i32 %411, 48
  %413 = icmp ne i32 %412, 0
  br i1 %413, label %414, label %773

414:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 56, ptr %43) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %43) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr %44) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  store i64 0, ptr %45, align 8, !tbaa !16
  br label %415

415:                                              ; preds = %769, %414
  %416 = load i64, ptr %45, align 8, !tbaa !16
  %417 = load i64, ptr %22, align 8, !tbaa !16
  %418 = sub nsw i64 %417, 1
  %419 = icmp slt i64 %416, %418
  br i1 %419, label %421, label %420

420:                                              ; preds = %415
  store i32 14, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  br label %772

421:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  store i64 0, ptr %46, align 8, !tbaa !16
  br label %422

422:                                              ; preds = %762, %421
  %423 = load i64, ptr %46, align 8, !tbaa !16
  %424 = load i64, ptr %21, align 8, !tbaa !16
  %425 = sub nsw i64 %424, 1
  %426 = icmp slt i64 %423, %425
  br i1 %426, label %428, label %427

427:                                              ; preds = %422
  store i32 17, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  br label %768

428:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  store i64 0, ptr %47, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 96, ptr %50) #5
  invoke void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %50)
          to label %429 unwind label %565

429:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #5
  invoke void @_ZN3jet6VectorIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51)
          to label %430 unwind label %569

430:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #5
  invoke void @_ZN3jet11BoundingBoxIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %431 unwind label %573

431:                                              ; preds = %430
  %432 = load ptr, ptr %8, align 8, !tbaa !5
  %433 = load i64, ptr %46, align 8, !tbaa !16
  %434 = add nsw i64 %433, 1
  %435 = load i64, ptr %45, align 8, !tbaa !16
  %436 = load i64, ptr %47, align 8, !tbaa !16
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %432, i64 noundef %434, i64 noundef %435, i64 noundef %436)
          to label %438 unwind label %573

438:                                              ; preds = %431
  %439 = load double, ptr %437, align 8, !tbaa !9
  %440 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef 0) #5
  store double %439, ptr %440, align 8, !tbaa !9
  %441 = load ptr, ptr %8, align 8, !tbaa !5
  %442 = load i64, ptr %46, align 8, !tbaa !16
  %443 = load i64, ptr %45, align 8, !tbaa !16
  %444 = load i64, ptr %47, align 8, !tbaa !16
  %445 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %441, i64 noundef %442, i64 noundef %443, i64 noundef %444)
          to label %446 unwind label %573

446:                                              ; preds = %438
  %447 = load double, ptr %445, align 8, !tbaa !9
  %448 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef 1) #5
  store double %447, ptr %448, align 8, !tbaa !9
  %449 = load ptr, ptr %8, align 8, !tbaa !5
  %450 = load i64, ptr %46, align 8, !tbaa !16
  %451 = load i64, ptr %45, align 8, !tbaa !16
  %452 = add nsw i64 %451, 1
  %453 = load i64, ptr %47, align 8, !tbaa !16
  %454 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %449, i64 noundef %450, i64 noundef %452, i64 noundef %453)
          to label %455 unwind label %573

455:                                              ; preds = %446
  %456 = load double, ptr %454, align 8, !tbaa !9
  %457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef 2) #5
  store double %456, ptr %457, align 8, !tbaa !9
  %458 = load ptr, ptr %8, align 8, !tbaa !5
  %459 = load i64, ptr %46, align 8, !tbaa !16
  %460 = add nsw i64 %459, 1
  %461 = load i64, ptr %45, align 8, !tbaa !16
  %462 = add nsw i64 %461, 1
  %463 = load i64, ptr %47, align 8, !tbaa !16
  %464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %458, i64 noundef %460, i64 noundef %462, i64 noundef %463)
          to label %465 unwind label %573

465:                                              ; preds = %455
  %466 = load double, ptr %464, align 8, !tbaa !9
  %467 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef 3) #5
  store double %466, ptr %467, align 8, !tbaa !9
  %468 = load i32, ptr %13, align 4, !tbaa !11
  %469 = and i32 %468, 16
  %470 = icmp ne i32 %469, 0
  br i1 %470, label %471, label %597

471:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #5
  invoke void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %53, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -1.000000e+00)
          to label %472 unwind label %577

472:                                              ; preds = %471
  %473 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %474 unwind label %577

474:                                              ; preds = %472
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #5
  %475 = load i64, ptr %46, align 8, !tbaa !16
  %476 = load i64, ptr %45, align 8, !tbaa !16
  %477 = load i64, ptr %47, align 8, !tbaa !16
  %478 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %475, i64 noundef %476, i64 noundef %477, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 1)
          to label %479 unwind label %573

479:                                              ; preds = %474
  %480 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 0) #5
  store i64 %478, ptr %480, align 8, !tbaa !16
  %481 = load i64, ptr %46, align 8, !tbaa !16
  %482 = load i64, ptr %45, align 8, !tbaa !16
  %483 = load i64, ptr %47, align 8, !tbaa !16
  %484 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %481, i64 noundef %482, i64 noundef %483, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 0)
          to label %485 unwind label %573

485:                                              ; preds = %479
  %486 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 1) #5
  store i64 %484, ptr %486, align 8, !tbaa !16
  %487 = load i64, ptr %46, align 8, !tbaa !16
  %488 = load i64, ptr %45, align 8, !tbaa !16
  %489 = load i64, ptr %47, align 8, !tbaa !16
  %490 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %487, i64 noundef %488, i64 noundef %489, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 4)
          to label %491 unwind label %573

491:                                              ; preds = %485
  %492 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 2) #5
  store i64 %490, ptr %492, align 8, !tbaa !16
  %493 = load i64, ptr %46, align 8, !tbaa !16
  %494 = load i64, ptr %45, align 8, !tbaa !16
  %495 = load i64, ptr %47, align 8, !tbaa !16
  %496 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %493, i64 noundef %494, i64 noundef %495, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 5)
          to label %497 unwind label %573

497:                                              ; preds = %491
  %498 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 3) #5
  store i64 %496, ptr %498, align 8, !tbaa !16
  %499 = load i64, ptr %46, align 8, !tbaa !16
  %500 = load i64, ptr %45, align 8, !tbaa !16
  %501 = load i64, ptr %47, align 8, !tbaa !16
  %502 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %499, i64 noundef %500, i64 noundef %501, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 0)
          to label %503 unwind label %573

503:                                              ; preds = %497
  %504 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 4) #5
  store i64 %502, ptr %504, align 8, !tbaa !16
  %505 = load i64, ptr %46, align 8, !tbaa !16
  %506 = load i64, ptr %45, align 8, !tbaa !16
  %507 = load i64, ptr %47, align 8, !tbaa !16
  %508 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %505, i64 noundef %506, i64 noundef %507, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 8)
          to label %509 unwind label %573

509:                                              ; preds = %503
  %510 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 5) #5
  store i64 %508, ptr %510, align 8, !tbaa !16
  %511 = load i64, ptr %46, align 8, !tbaa !16
  %512 = load i64, ptr %45, align 8, !tbaa !16
  %513 = load i64, ptr %47, align 8, !tbaa !16
  %514 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %511, i64 noundef %512, i64 noundef %513, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 4)
          to label %515 unwind label %573

515:                                              ; preds = %509
  %516 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 6) #5
  store i64 %514, ptr %516, align 8, !tbaa !16
  %517 = load i64, ptr %46, align 8, !tbaa !16
  %518 = load i64, ptr %45, align 8, !tbaa !16
  %519 = load i64, ptr %47, align 8, !tbaa !16
  %520 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %517, i64 noundef %518, i64 noundef %519, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 9)
          to label %521 unwind label %573

521:                                              ; preds = %515
  %522 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 7) #5
  store i64 %520, ptr %522, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %54) #5
  %523 = load i64, ptr %46, align 8, !tbaa !16
  %524 = add nsw i64 %523, 1
  %525 = load i64, ptr %45, align 8, !tbaa !16
  %526 = load i64, ptr %47, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %54, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %524, i64 noundef %525, i64 noundef %526)
          to label %527 unwind label %581

527:                                              ; preds = %521
  %528 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %50, i64 noundef 0) #5
  %529 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %528, ptr noundef nonnull align 8 dereferenceable(24) %54)
          to label %530 unwind label %581

530:                                              ; preds = %527
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %55) #5
  %531 = load i64, ptr %46, align 8, !tbaa !16
  %532 = load i64, ptr %45, align 8, !tbaa !16
  %533 = load i64, ptr %47, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %55, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %531, i64 noundef %532, i64 noundef %533)
          to label %534 unwind label %585

534:                                              ; preds = %530
  %535 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %50, i64 noundef 1) #5
  %536 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %535, ptr noundef nonnull align 8 dereferenceable(24) %55)
          to label %537 unwind label %585

537:                                              ; preds = %534
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %56) #5
  %538 = load i64, ptr %46, align 8, !tbaa !16
  %539 = load i64, ptr %45, align 8, !tbaa !16
  %540 = add nsw i64 %539, 1
  %541 = load i64, ptr %47, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %56, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %538, i64 noundef %540, i64 noundef %541)
          to label %542 unwind label %589

542:                                              ; preds = %537
  %543 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %50, i64 noundef 2) #5
  %544 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %543, ptr noundef nonnull align 8 dereferenceable(24) %56)
          to label %545 unwind label %589

545:                                              ; preds = %542
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %57) #5
  %546 = load i64, ptr %46, align 8, !tbaa !16
  %547 = add nsw i64 %546, 1
  %548 = load i64, ptr %45, align 8, !tbaa !16
  %549 = add nsw i64 %548, 1
  %550 = load i64, ptr %47, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %57, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %547, i64 noundef %549, i64 noundef %550)
          to label %551 unwind label %593

551:                                              ; preds = %545
  %552 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %50, i64 noundef 3) #5
  %553 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %552, ptr noundef nonnull align 8 dereferenceable(24) %57)
          to label %554 unwind label %593

554:                                              ; preds = %551
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #5
  %555 = load i32, ptr %14, align 4, !tbaa !11
  %556 = and i32 %555, 16
  %557 = icmp ne i32 %556, 0
  br i1 %557, label %558, label %559

558:                                              ; preds = %554
  br label %560

559:                                              ; preds = %554
  br label %560

560:                                              ; preds = %559, %558
  %561 = phi ptr [ %15, %558 ], [ %43, %559 ]
  %562 = load ptr, ptr %11, align 8, !tbaa !5
  %563 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(64) %49, ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 8 dereferenceable(96) %50, ptr noundef %561, ptr noundef %562, double noundef %563)
          to label %564 unwind label %573

564:                                              ; preds = %560
  br label %597

565:                                              ; preds = %428
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %17, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %18, align 4
  br label %767

569:                                              ; preds = %429
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %17, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %18, align 4
  br label %766

573:                                              ; preds = %736, %687, %681, %675, %669, %663, %657, %651, %646, %627, %616, %606, %597, %560, %515, %509, %503, %497, %491, %485, %479, %474, %455, %446, %438, %431, %430
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %17, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %18, align 4
  br label %765

577:                                              ; preds = %472, %471
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %17, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #5
  br label %765

581:                                              ; preds = %527, %521
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %17, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #5
  br label %765

585:                                              ; preds = %534, %530
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %17, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #5
  br label %765

589:                                              ; preds = %542, %537
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %17, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #5
  br label %765

593:                                              ; preds = %551, %545
  %594 = landingpad { ptr, i32 }
          cleanup
  %595 = extractvalue { ptr, i32 } %594, 0
  store ptr %595, ptr %17, align 8
  %596 = extractvalue { ptr, i32 } %594, 1
  store i32 %596, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #5
  br label %765

597:                                              ; preds = %564, %465
  %598 = load i64, ptr %23, align 8, !tbaa !16
  %599 = sub nsw i64 %598, 2
  store i64 %599, ptr %47, align 8, !tbaa !16
  %600 = load ptr, ptr %8, align 8, !tbaa !5
  %601 = load i64, ptr %46, align 8, !tbaa !16
  %602 = load i64, ptr %45, align 8, !tbaa !16
  %603 = load i64, ptr %47, align 8, !tbaa !16
  %604 = add nsw i64 %603, 1
  %605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %600, i64 noundef %601, i64 noundef %602, i64 noundef %604)
          to label %606 unwind label %573

606:                                              ; preds = %597
  %607 = load double, ptr %605, align 8, !tbaa !9
  %608 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef 0) #5
  store double %607, ptr %608, align 8, !tbaa !9
  %609 = load ptr, ptr %8, align 8, !tbaa !5
  %610 = load i64, ptr %46, align 8, !tbaa !16
  %611 = add nsw i64 %610, 1
  %612 = load i64, ptr %45, align 8, !tbaa !16
  %613 = load i64, ptr %47, align 8, !tbaa !16
  %614 = add nsw i64 %613, 1
  %615 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %609, i64 noundef %611, i64 noundef %612, i64 noundef %614)
          to label %616 unwind label %573

616:                                              ; preds = %606
  %617 = load double, ptr %615, align 8, !tbaa !9
  %618 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef 1) #5
  store double %617, ptr %618, align 8, !tbaa !9
  %619 = load ptr, ptr %8, align 8, !tbaa !5
  %620 = load i64, ptr %46, align 8, !tbaa !16
  %621 = add nsw i64 %620, 1
  %622 = load i64, ptr %45, align 8, !tbaa !16
  %623 = add nsw i64 %622, 1
  %624 = load i64, ptr %47, align 8, !tbaa !16
  %625 = add nsw i64 %624, 1
  %626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %619, i64 noundef %621, i64 noundef %623, i64 noundef %625)
          to label %627 unwind label %573

627:                                              ; preds = %616
  %628 = load double, ptr %626, align 8, !tbaa !9
  %629 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef 2) #5
  store double %628, ptr %629, align 8, !tbaa !9
  %630 = load ptr, ptr %8, align 8, !tbaa !5
  %631 = load i64, ptr %46, align 8, !tbaa !16
  %632 = load i64, ptr %45, align 8, !tbaa !16
  %633 = add nsw i64 %632, 1
  %634 = load i64, ptr %47, align 8, !tbaa !16
  %635 = add nsw i64 %634, 1
  %636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %630, i64 noundef %631, i64 noundef %633, i64 noundef %635)
          to label %637 unwind label %573

637:                                              ; preds = %627
  %638 = load double, ptr %636, align 8, !tbaa !9
  %639 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef 3) #5
  store double %638, ptr %639, align 8, !tbaa !9
  %640 = load i32, ptr %13, align 4, !tbaa !11
  %641 = and i32 %640, 32
  %642 = icmp ne i32 %641, 0
  br i1 %642, label %643, label %761

643:                                              ; preds = %637
  call void @llvm.lifetime.start.p0(i64 24, ptr %58) #5
  invoke void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %58, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.000000e+00)
          to label %644 unwind label %741

644:                                              ; preds = %643
  %645 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 8 dereferenceable(24) %58)
          to label %646 unwind label %741

646:                                              ; preds = %644
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #5
  %647 = load i64, ptr %46, align 8, !tbaa !16
  %648 = load i64, ptr %45, align 8, !tbaa !16
  %649 = load i64, ptr %47, align 8, !tbaa !16
  %650 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %647, i64 noundef %648, i64 noundef %649, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 3)
          to label %651 unwind label %573

651:                                              ; preds = %646
  %652 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 0) #5
  store i64 %650, ptr %652, align 8, !tbaa !16
  %653 = load i64, ptr %46, align 8, !tbaa !16
  %654 = load i64, ptr %45, align 8, !tbaa !16
  %655 = load i64, ptr %47, align 8, !tbaa !16
  %656 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %653, i64 noundef %654, i64 noundef %655, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 2)
          to label %657 unwind label %573

657:                                              ; preds = %651
  %658 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 1) #5
  store i64 %656, ptr %658, align 8, !tbaa !16
  %659 = load i64, ptr %46, align 8, !tbaa !16
  %660 = load i64, ptr %45, align 8, !tbaa !16
  %661 = load i64, ptr %47, align 8, !tbaa !16
  %662 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %659, i64 noundef %660, i64 noundef %661, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 6)
          to label %663 unwind label %573

663:                                              ; preds = %657
  %664 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 2) #5
  store i64 %662, ptr %664, align 8, !tbaa !16
  %665 = load i64, ptr %46, align 8, !tbaa !16
  %666 = load i64, ptr %45, align 8, !tbaa !16
  %667 = load i64, ptr %47, align 8, !tbaa !16
  %668 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %665, i64 noundef %666, i64 noundef %667, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 7)
          to label %669 unwind label %573

669:                                              ; preds = %663
  %670 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 3) #5
  store i64 %668, ptr %670, align 8, !tbaa !16
  %671 = load i64, ptr %46, align 8, !tbaa !16
  %672 = load i64, ptr %45, align 8, !tbaa !16
  %673 = load i64, ptr %47, align 8, !tbaa !16
  %674 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %671, i64 noundef %672, i64 noundef %673, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 2)
          to label %675 unwind label %573

675:                                              ; preds = %669
  %676 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 4) #5
  store i64 %674, ptr %676, align 8, !tbaa !16
  %677 = load i64, ptr %46, align 8, !tbaa !16
  %678 = load i64, ptr %45, align 8, !tbaa !16
  %679 = load i64, ptr %47, align 8, !tbaa !16
  %680 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %677, i64 noundef %678, i64 noundef %679, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 10)
          to label %681 unwind label %573

681:                                              ; preds = %675
  %682 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 5) #5
  store i64 %680, ptr %682, align 8, !tbaa !16
  %683 = load i64, ptr %46, align 8, !tbaa !16
  %684 = load i64, ptr %45, align 8, !tbaa !16
  %685 = load i64, ptr %47, align 8, !tbaa !16
  %686 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %683, i64 noundef %684, i64 noundef %685, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 6)
          to label %687 unwind label %573

687:                                              ; preds = %681
  %688 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 6) #5
  store i64 %686, ptr %688, align 8, !tbaa !16
  %689 = load i64, ptr %46, align 8, !tbaa !16
  %690 = load i64, ptr %45, align 8, !tbaa !16
  %691 = load i64, ptr %47, align 8, !tbaa !16
  %692 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %689, i64 noundef %690, i64 noundef %691, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 11)
          to label %693 unwind label %573

693:                                              ; preds = %687
  %694 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %49, i64 noundef 7) #5
  store i64 %692, ptr %694, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #5
  %695 = load i64, ptr %46, align 8, !tbaa !16
  %696 = load i64, ptr %45, align 8, !tbaa !16
  %697 = load i64, ptr %47, align 8, !tbaa !16
  %698 = add nsw i64 %697, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %59, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %695, i64 noundef %696, i64 noundef %698)
          to label %699 unwind label %745

699:                                              ; preds = %693
  %700 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %50, i64 noundef 0) #5
  %701 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %700, ptr noundef nonnull align 8 dereferenceable(24) %59)
          to label %702 unwind label %745

702:                                              ; preds = %699
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %60) #5
  %703 = load i64, ptr %46, align 8, !tbaa !16
  %704 = add nsw i64 %703, 1
  %705 = load i64, ptr %45, align 8, !tbaa !16
  %706 = load i64, ptr %47, align 8, !tbaa !16
  %707 = add nsw i64 %706, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %60, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %704, i64 noundef %705, i64 noundef %707)
          to label %708 unwind label %749

708:                                              ; preds = %702
  %709 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %50, i64 noundef 1) #5
  %710 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %709, ptr noundef nonnull align 8 dereferenceable(24) %60)
          to label %711 unwind label %749

711:                                              ; preds = %708
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %61) #5
  %712 = load i64, ptr %46, align 8, !tbaa !16
  %713 = add nsw i64 %712, 1
  %714 = load i64, ptr %45, align 8, !tbaa !16
  %715 = add nsw i64 %714, 1
  %716 = load i64, ptr %47, align 8, !tbaa !16
  %717 = add nsw i64 %716, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %61, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %713, i64 noundef %715, i64 noundef %717)
          to label %718 unwind label %753

718:                                              ; preds = %711
  %719 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %50, i64 noundef 2) #5
  %720 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %719, ptr noundef nonnull align 8 dereferenceable(24) %61)
          to label %721 unwind label %753

721:                                              ; preds = %718
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %62) #5
  %722 = load i64, ptr %46, align 8, !tbaa !16
  %723 = load i64, ptr %45, align 8, !tbaa !16
  %724 = add nsw i64 %723, 1
  %725 = load i64, ptr %47, align 8, !tbaa !16
  %726 = add nsw i64 %725, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %62, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %722, i64 noundef %724, i64 noundef %726)
          to label %727 unwind label %757

727:                                              ; preds = %721
  %728 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %50, i64 noundef 3) #5
  %729 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %728, ptr noundef nonnull align 8 dereferenceable(24) %62)
          to label %730 unwind label %757

730:                                              ; preds = %727
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #5
  %731 = load i32, ptr %14, align 4, !tbaa !11
  %732 = and i32 %731, 32
  %733 = icmp ne i32 %732, 0
  br i1 %733, label %734, label %735

734:                                              ; preds = %730
  br label %736

735:                                              ; preds = %730
  br label %736

736:                                              ; preds = %735, %734
  %737 = phi ptr [ %15, %734 ], [ %44, %735 ]
  %738 = load ptr, ptr %11, align 8, !tbaa !5
  %739 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(64) %49, ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 8 dereferenceable(96) %50, ptr noundef %737, ptr noundef %738, double noundef %739)
          to label %740 unwind label %573

740:                                              ; preds = %736
  br label %761

741:                                              ; preds = %644, %643
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %17, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #5
  br label %765

745:                                              ; preds = %699, %693
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %17, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #5
  br label %765

749:                                              ; preds = %708, %702
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %17, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #5
  br label %765

753:                                              ; preds = %718, %711
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %17, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #5
  br label %765

757:                                              ; preds = %727, %721
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %17, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #5
  br label %765

761:                                              ; preds = %740, %637
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  br label %762

762:                                              ; preds = %761
  %763 = load i64, ptr %46, align 8, !tbaa !16
  %764 = add nsw i64 %763, 1
  store i64 %764, ptr %46, align 8, !tbaa !16
  br label %422, !llvm.loop !24

765:                                              ; preds = %757, %753, %749, %745, %741, %593, %589, %585, %581, %577, %573
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #5
  br label %766

766:                                              ; preds = %765, %569
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #5
  br label %767

767:                                              ; preds = %766, %565
  call void @llvm.lifetime.end.p0(i64 96, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %44) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %44) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %43) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %43) #5
  br label %1500

768:                                              ; preds = %427
  br label %769

769:                                              ; preds = %768
  %770 = load i64, ptr %45, align 8, !tbaa !16
  %771 = add nsw i64 %770, 1
  store i64 %771, ptr %45, align 8, !tbaa !16
  br label %415, !llvm.loop !25

772:                                              ; preds = %420
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %44) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %44) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %43) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %43) #5
  br label %773

773:                                              ; preds = %772, %410
  %774 = load i32, ptr %13, align 4, !tbaa !11
  %775 = and i32 %774, 3
  %776 = icmp ne i32 %775, 0
  br i1 %776, label %777, label %1136

777:                                              ; preds = %773
  call void @llvm.lifetime.start.p0(i64 56, ptr %63) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %63) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr %64) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %64) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  store i64 0, ptr %65, align 8, !tbaa !16
  br label %778

778:                                              ; preds = %1132, %777
  %779 = load i64, ptr %65, align 8, !tbaa !16
  %780 = load i64, ptr %23, align 8, !tbaa !16
  %781 = sub nsw i64 %780, 1
  %782 = icmp slt i64 %779, %781
  br i1 %782, label %784, label %783

783:                                              ; preds = %778
  store i32 20, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  br label %1135

784:                                              ; preds = %778
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  store i64 0, ptr %66, align 8, !tbaa !16
  br label %785

785:                                              ; preds = %1125, %784
  %786 = load i64, ptr %66, align 8, !tbaa !16
  %787 = load i64, ptr %22, align 8, !tbaa !16
  %788 = sub nsw i64 %787, 1
  %789 = icmp slt i64 %786, %788
  br i1 %789, label %791, label %790

790:                                              ; preds = %785
  store i32 23, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  br label %1131

791:                                              ; preds = %785
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  store i64 0, ptr %67, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 96, ptr %70) #5
  invoke void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %70)
          to label %792 unwind label %928

792:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 24, ptr %71) #5
  invoke void @_ZN3jet6VectorIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %793 unwind label %932

793:                                              ; preds = %792
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #5
  invoke void @_ZN3jet11BoundingBoxIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72)
          to label %794 unwind label %936

794:                                              ; preds = %793
  %795 = load ptr, ptr %8, align 8, !tbaa !5
  %796 = load i64, ptr %67, align 8, !tbaa !16
  %797 = load i64, ptr %66, align 8, !tbaa !16
  %798 = load i64, ptr %65, align 8, !tbaa !16
  %799 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %795, i64 noundef %796, i64 noundef %797, i64 noundef %798)
          to label %800 unwind label %936

800:                                              ; preds = %794
  %801 = load double, ptr %799, align 8, !tbaa !9
  %802 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef 0) #5
  store double %801, ptr %802, align 8, !tbaa !9
  %803 = load ptr, ptr %8, align 8, !tbaa !5
  %804 = load i64, ptr %67, align 8, !tbaa !16
  %805 = load i64, ptr %66, align 8, !tbaa !16
  %806 = load i64, ptr %65, align 8, !tbaa !16
  %807 = add nsw i64 %806, 1
  %808 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %803, i64 noundef %804, i64 noundef %805, i64 noundef %807)
          to label %809 unwind label %936

809:                                              ; preds = %800
  %810 = load double, ptr %808, align 8, !tbaa !9
  %811 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef 1) #5
  store double %810, ptr %811, align 8, !tbaa !9
  %812 = load ptr, ptr %8, align 8, !tbaa !5
  %813 = load i64, ptr %67, align 8, !tbaa !16
  %814 = load i64, ptr %66, align 8, !tbaa !16
  %815 = add nsw i64 %814, 1
  %816 = load i64, ptr %65, align 8, !tbaa !16
  %817 = add nsw i64 %816, 1
  %818 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %812, i64 noundef %813, i64 noundef %815, i64 noundef %817)
          to label %819 unwind label %936

819:                                              ; preds = %809
  %820 = load double, ptr %818, align 8, !tbaa !9
  %821 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef 2) #5
  store double %820, ptr %821, align 8, !tbaa !9
  %822 = load ptr, ptr %8, align 8, !tbaa !5
  %823 = load i64, ptr %67, align 8, !tbaa !16
  %824 = load i64, ptr %66, align 8, !tbaa !16
  %825 = add nsw i64 %824, 1
  %826 = load i64, ptr %65, align 8, !tbaa !16
  %827 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %822, i64 noundef %823, i64 noundef %825, i64 noundef %826)
          to label %828 unwind label %936

828:                                              ; preds = %819
  %829 = load double, ptr %827, align 8, !tbaa !9
  %830 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef 3) #5
  store double %829, ptr %830, align 8, !tbaa !9
  %831 = load i32, ptr %13, align 4, !tbaa !11
  %832 = and i32 %831, 1
  %833 = icmp ne i32 %832, 0
  br i1 %833, label %834, label %960

834:                                              ; preds = %828
  call void @llvm.lifetime.start.p0(i64 24, ptr %73) #5
  invoke void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %73, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %835 unwind label %940

835:                                              ; preds = %834
  %836 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %71, ptr noundef nonnull align 8 dereferenceable(24) %73)
          to label %837 unwind label %940

837:                                              ; preds = %835
  call void @llvm.lifetime.end.p0(i64 24, ptr %73) #5
  %838 = load i64, ptr %67, align 8, !tbaa !16
  %839 = load i64, ptr %66, align 8, !tbaa !16
  %840 = load i64, ptr %65, align 8, !tbaa !16
  %841 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %838, i64 noundef %839, i64 noundef %840, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 0)
          to label %842 unwind label %936

842:                                              ; preds = %837
  %843 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 0) #5
  store i64 %841, ptr %843, align 8, !tbaa !16
  %844 = load i64, ptr %67, align 8, !tbaa !16
  %845 = load i64, ptr %66, align 8, !tbaa !16
  %846 = load i64, ptr %65, align 8, !tbaa !16
  %847 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %844, i64 noundef %845, i64 noundef %846, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 3)
          to label %848 unwind label %936

848:                                              ; preds = %842
  %849 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 1) #5
  store i64 %847, ptr %849, align 8, !tbaa !16
  %850 = load i64, ptr %67, align 8, !tbaa !16
  %851 = load i64, ptr %66, align 8, !tbaa !16
  %852 = load i64, ptr %65, align 8, !tbaa !16
  %853 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %850, i64 noundef %851, i64 noundef %852, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 7)
          to label %854 unwind label %936

854:                                              ; preds = %848
  %855 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 2) #5
  store i64 %853, ptr %855, align 8, !tbaa !16
  %856 = load i64, ptr %67, align 8, !tbaa !16
  %857 = load i64, ptr %66, align 8, !tbaa !16
  %858 = load i64, ptr %65, align 8, !tbaa !16
  %859 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %856, i64 noundef %857, i64 noundef %858, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 4)
          to label %860 unwind label %936

860:                                              ; preds = %854
  %861 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 3) #5
  store i64 %859, ptr %861, align 8, !tbaa !16
  %862 = load i64, ptr %67, align 8, !tbaa !16
  %863 = load i64, ptr %66, align 8, !tbaa !16
  %864 = load i64, ptr %65, align 8, !tbaa !16
  %865 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %862, i64 noundef %863, i64 noundef %864, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 3)
          to label %866 unwind label %936

866:                                              ; preds = %860
  %867 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 4) #5
  store i64 %865, ptr %867, align 8, !tbaa !16
  %868 = load i64, ptr %67, align 8, !tbaa !16
  %869 = load i64, ptr %66, align 8, !tbaa !16
  %870 = load i64, ptr %65, align 8, !tbaa !16
  %871 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %868, i64 noundef %869, i64 noundef %870, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 11)
          to label %872 unwind label %936

872:                                              ; preds = %866
  %873 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 5) #5
  store i64 %871, ptr %873, align 8, !tbaa !16
  %874 = load i64, ptr %67, align 8, !tbaa !16
  %875 = load i64, ptr %66, align 8, !tbaa !16
  %876 = load i64, ptr %65, align 8, !tbaa !16
  %877 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %874, i64 noundef %875, i64 noundef %876, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 7)
          to label %878 unwind label %936

878:                                              ; preds = %872
  %879 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 6) #5
  store i64 %877, ptr %879, align 8, !tbaa !16
  %880 = load i64, ptr %67, align 8, !tbaa !16
  %881 = load i64, ptr %66, align 8, !tbaa !16
  %882 = load i64, ptr %65, align 8, !tbaa !16
  %883 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %880, i64 noundef %881, i64 noundef %882, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 8)
          to label %884 unwind label %936

884:                                              ; preds = %878
  %885 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 7) #5
  store i64 %883, ptr %885, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %74) #5
  %886 = load i64, ptr %67, align 8, !tbaa !16
  %887 = load i64, ptr %66, align 8, !tbaa !16
  %888 = load i64, ptr %65, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %74, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %886, i64 noundef %887, i64 noundef %888)
          to label %889 unwind label %944

889:                                              ; preds = %884
  %890 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %70, i64 noundef 0) #5
  %891 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %890, ptr noundef nonnull align 8 dereferenceable(24) %74)
          to label %892 unwind label %944

892:                                              ; preds = %889
  call void @llvm.lifetime.end.p0(i64 24, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %75) #5
  %893 = load i64, ptr %67, align 8, !tbaa !16
  %894 = load i64, ptr %66, align 8, !tbaa !16
  %895 = load i64, ptr %65, align 8, !tbaa !16
  %896 = add nsw i64 %895, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %75, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %893, i64 noundef %894, i64 noundef %896)
          to label %897 unwind label %948

897:                                              ; preds = %892
  %898 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %70, i64 noundef 1) #5
  %899 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %898, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %900 unwind label %948

900:                                              ; preds = %897
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %76) #5
  %901 = load i64, ptr %67, align 8, !tbaa !16
  %902 = load i64, ptr %66, align 8, !tbaa !16
  %903 = add nsw i64 %902, 1
  %904 = load i64, ptr %65, align 8, !tbaa !16
  %905 = add nsw i64 %904, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %76, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %901, i64 noundef %903, i64 noundef %905)
          to label %906 unwind label %952

906:                                              ; preds = %900
  %907 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %70, i64 noundef 2) #5
  %908 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %907, ptr noundef nonnull align 8 dereferenceable(24) %76)
          to label %909 unwind label %952

909:                                              ; preds = %906
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %77) #5
  %910 = load i64, ptr %67, align 8, !tbaa !16
  %911 = load i64, ptr %66, align 8, !tbaa !16
  %912 = add nsw i64 %911, 1
  %913 = load i64, ptr %65, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %77, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %910, i64 noundef %912, i64 noundef %913)
          to label %914 unwind label %956

914:                                              ; preds = %909
  %915 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %70, i64 noundef 3) #5
  %916 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %915, ptr noundef nonnull align 8 dereferenceable(24) %77)
          to label %917 unwind label %956

917:                                              ; preds = %914
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #5
  %918 = load i32, ptr %14, align 4, !tbaa !11
  %919 = and i32 %918, 1
  %920 = icmp ne i32 %919, 0
  br i1 %920, label %921, label %922

921:                                              ; preds = %917
  br label %923

922:                                              ; preds = %917
  br label %923

923:                                              ; preds = %922, %921
  %924 = phi ptr [ %15, %921 ], [ %63, %922 ]
  %925 = load ptr, ptr %11, align 8, !tbaa !5
  %926 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(64) %69, ptr noundef nonnull align 8 dereferenceable(24) %71, ptr noundef nonnull align 8 dereferenceable(96) %70, ptr noundef %924, ptr noundef %925, double noundef %926)
          to label %927 unwind label %936

927:                                              ; preds = %923
  br label %960

928:                                              ; preds = %791
  %929 = landingpad { ptr, i32 }
          cleanup
  %930 = extractvalue { ptr, i32 } %929, 0
  store ptr %930, ptr %17, align 8
  %931 = extractvalue { ptr, i32 } %929, 1
  store i32 %931, ptr %18, align 4
  br label %1130

932:                                              ; preds = %792
  %933 = landingpad { ptr, i32 }
          cleanup
  %934 = extractvalue { ptr, i32 } %933, 0
  store ptr %934, ptr %17, align 8
  %935 = extractvalue { ptr, i32 } %933, 1
  store i32 %935, ptr %18, align 4
  br label %1129

936:                                              ; preds = %1099, %1050, %1044, %1038, %1032, %1026, %1020, %1014, %1009, %989, %979, %970, %960, %923, %878, %872, %866, %860, %854, %848, %842, %837, %819, %809, %800, %794, %793
  %937 = landingpad { ptr, i32 }
          cleanup
  %938 = extractvalue { ptr, i32 } %937, 0
  store ptr %938, ptr %17, align 8
  %939 = extractvalue { ptr, i32 } %937, 1
  store i32 %939, ptr %18, align 4
  br label %1128

940:                                              ; preds = %835, %834
  %941 = landingpad { ptr, i32 }
          cleanup
  %942 = extractvalue { ptr, i32 } %941, 0
  store ptr %942, ptr %17, align 8
  %943 = extractvalue { ptr, i32 } %941, 1
  store i32 %943, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %73) #5
  br label %1128

944:                                              ; preds = %889, %884
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %17, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %74) #5
  br label %1128

948:                                              ; preds = %897, %892
  %949 = landingpad { ptr, i32 }
          cleanup
  %950 = extractvalue { ptr, i32 } %949, 0
  store ptr %950, ptr %17, align 8
  %951 = extractvalue { ptr, i32 } %949, 1
  store i32 %951, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #5
  br label %1128

952:                                              ; preds = %906, %900
  %953 = landingpad { ptr, i32 }
          cleanup
  %954 = extractvalue { ptr, i32 } %953, 0
  store ptr %954, ptr %17, align 8
  %955 = extractvalue { ptr, i32 } %953, 1
  store i32 %955, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #5
  br label %1128

956:                                              ; preds = %914, %909
  %957 = landingpad { ptr, i32 }
          cleanup
  %958 = extractvalue { ptr, i32 } %957, 0
  store ptr %958, ptr %17, align 8
  %959 = extractvalue { ptr, i32 } %957, 1
  store i32 %959, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #5
  br label %1128

960:                                              ; preds = %927, %828
  %961 = load i64, ptr %21, align 8, !tbaa !16
  %962 = sub nsw i64 %961, 2
  store i64 %962, ptr %67, align 8, !tbaa !16
  %963 = load ptr, ptr %8, align 8, !tbaa !5
  %964 = load i64, ptr %67, align 8, !tbaa !16
  %965 = add nsw i64 %964, 1
  %966 = load i64, ptr %66, align 8, !tbaa !16
  %967 = load i64, ptr %65, align 8, !tbaa !16
  %968 = add nsw i64 %967, 1
  %969 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %963, i64 noundef %965, i64 noundef %966, i64 noundef %968)
          to label %970 unwind label %936

970:                                              ; preds = %960
  %971 = load double, ptr %969, align 8, !tbaa !9
  %972 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef 0) #5
  store double %971, ptr %972, align 8, !tbaa !9
  %973 = load ptr, ptr %8, align 8, !tbaa !5
  %974 = load i64, ptr %67, align 8, !tbaa !16
  %975 = add nsw i64 %974, 1
  %976 = load i64, ptr %66, align 8, !tbaa !16
  %977 = load i64, ptr %65, align 8, !tbaa !16
  %978 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %973, i64 noundef %975, i64 noundef %976, i64 noundef %977)
          to label %979 unwind label %936

979:                                              ; preds = %970
  %980 = load double, ptr %978, align 8, !tbaa !9
  %981 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef 1) #5
  store double %980, ptr %981, align 8, !tbaa !9
  %982 = load ptr, ptr %8, align 8, !tbaa !5
  %983 = load i64, ptr %67, align 8, !tbaa !16
  %984 = add nsw i64 %983, 1
  %985 = load i64, ptr %66, align 8, !tbaa !16
  %986 = add nsw i64 %985, 1
  %987 = load i64, ptr %65, align 8, !tbaa !16
  %988 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %982, i64 noundef %984, i64 noundef %986, i64 noundef %987)
          to label %989 unwind label %936

989:                                              ; preds = %979
  %990 = load double, ptr %988, align 8, !tbaa !9
  %991 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef 2) #5
  store double %990, ptr %991, align 8, !tbaa !9
  %992 = load ptr, ptr %8, align 8, !tbaa !5
  %993 = load i64, ptr %67, align 8, !tbaa !16
  %994 = add nsw i64 %993, 1
  %995 = load i64, ptr %66, align 8, !tbaa !16
  %996 = add nsw i64 %995, 1
  %997 = load i64, ptr %65, align 8, !tbaa !16
  %998 = add nsw i64 %997, 1
  %999 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %992, i64 noundef %994, i64 noundef %996, i64 noundef %998)
          to label %1000 unwind label %936

1000:                                             ; preds = %989
  %1001 = load double, ptr %999, align 8, !tbaa !9
  %1002 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef 3) #5
  store double %1001, ptr %1002, align 8, !tbaa !9
  %1003 = load i32, ptr %13, align 4, !tbaa !11
  %1004 = and i32 %1003, 2
  %1005 = icmp ne i32 %1004, 0
  br i1 %1005, label %1006, label %1124

1006:                                             ; preds = %1000
  call void @llvm.lifetime.start.p0(i64 24, ptr %78) #5
  invoke void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %78, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %1007 unwind label %1104

1007:                                             ; preds = %1006
  %1008 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %71, ptr noundef nonnull align 8 dereferenceable(24) %78)
          to label %1009 unwind label %1104

1009:                                             ; preds = %1007
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #5
  %1010 = load i64, ptr %67, align 8, !tbaa !16
  %1011 = load i64, ptr %66, align 8, !tbaa !16
  %1012 = load i64, ptr %65, align 8, !tbaa !16
  %1013 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1010, i64 noundef %1011, i64 noundef %1012, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 2)
          to label %1014 unwind label %936

1014:                                             ; preds = %1009
  %1015 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 0) #5
  store i64 %1013, ptr %1015, align 8, !tbaa !16
  %1016 = load i64, ptr %67, align 8, !tbaa !16
  %1017 = load i64, ptr %66, align 8, !tbaa !16
  %1018 = load i64, ptr %65, align 8, !tbaa !16
  %1019 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1016, i64 noundef %1017, i64 noundef %1018, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 1)
          to label %1020 unwind label %936

1020:                                             ; preds = %1014
  %1021 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 1) #5
  store i64 %1019, ptr %1021, align 8, !tbaa !16
  %1022 = load i64, ptr %67, align 8, !tbaa !16
  %1023 = load i64, ptr %66, align 8, !tbaa !16
  %1024 = load i64, ptr %65, align 8, !tbaa !16
  %1025 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1022, i64 noundef %1023, i64 noundef %1024, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 5)
          to label %1026 unwind label %936

1026:                                             ; preds = %1020
  %1027 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 2) #5
  store i64 %1025, ptr %1027, align 8, !tbaa !16
  %1028 = load i64, ptr %67, align 8, !tbaa !16
  %1029 = load i64, ptr %66, align 8, !tbaa !16
  %1030 = load i64, ptr %65, align 8, !tbaa !16
  %1031 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1028, i64 noundef %1029, i64 noundef %1030, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 6)
          to label %1032 unwind label %936

1032:                                             ; preds = %1026
  %1033 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 3) #5
  store i64 %1031, ptr %1033, align 8, !tbaa !16
  %1034 = load i64, ptr %67, align 8, !tbaa !16
  %1035 = load i64, ptr %66, align 8, !tbaa !16
  %1036 = load i64, ptr %65, align 8, !tbaa !16
  %1037 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1034, i64 noundef %1035, i64 noundef %1036, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 1)
          to label %1038 unwind label %936

1038:                                             ; preds = %1032
  %1039 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 4) #5
  store i64 %1037, ptr %1039, align 8, !tbaa !16
  %1040 = load i64, ptr %67, align 8, !tbaa !16
  %1041 = load i64, ptr %66, align 8, !tbaa !16
  %1042 = load i64, ptr %65, align 8, !tbaa !16
  %1043 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1040, i64 noundef %1041, i64 noundef %1042, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 9)
          to label %1044 unwind label %936

1044:                                             ; preds = %1038
  %1045 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 5) #5
  store i64 %1043, ptr %1045, align 8, !tbaa !16
  %1046 = load i64, ptr %67, align 8, !tbaa !16
  %1047 = load i64, ptr %66, align 8, !tbaa !16
  %1048 = load i64, ptr %65, align 8, !tbaa !16
  %1049 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1046, i64 noundef %1047, i64 noundef %1048, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 5)
          to label %1050 unwind label %936

1050:                                             ; preds = %1044
  %1051 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 6) #5
  store i64 %1049, ptr %1051, align 8, !tbaa !16
  %1052 = load i64, ptr %67, align 8, !tbaa !16
  %1053 = load i64, ptr %66, align 8, !tbaa !16
  %1054 = load i64, ptr %65, align 8, !tbaa !16
  %1055 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1052, i64 noundef %1053, i64 noundef %1054, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 10)
          to label %1056 unwind label %936

1056:                                             ; preds = %1050
  %1057 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %69, i64 noundef 7) #5
  store i64 %1055, ptr %1057, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %79) #5
  %1058 = load i64, ptr %67, align 8, !tbaa !16
  %1059 = add nsw i64 %1058, 1
  %1060 = load i64, ptr %66, align 8, !tbaa !16
  %1061 = load i64, ptr %65, align 8, !tbaa !16
  %1062 = add nsw i64 %1061, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %79, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1059, i64 noundef %1060, i64 noundef %1062)
          to label %1063 unwind label %1108

1063:                                             ; preds = %1056
  %1064 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %70, i64 noundef 0) #5
  %1065 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1064, ptr noundef nonnull align 8 dereferenceable(24) %79)
          to label %1066 unwind label %1108

1066:                                             ; preds = %1063
  call void @llvm.lifetime.end.p0(i64 24, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %80) #5
  %1067 = load i64, ptr %67, align 8, !tbaa !16
  %1068 = add nsw i64 %1067, 1
  %1069 = load i64, ptr %66, align 8, !tbaa !16
  %1070 = load i64, ptr %65, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %80, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1068, i64 noundef %1069, i64 noundef %1070)
          to label %1071 unwind label %1112

1071:                                             ; preds = %1066
  %1072 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %70, i64 noundef 1) #5
  %1073 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1072, ptr noundef nonnull align 8 dereferenceable(24) %80)
          to label %1074 unwind label %1112

1074:                                             ; preds = %1071
  call void @llvm.lifetime.end.p0(i64 24, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %81) #5
  %1075 = load i64, ptr %67, align 8, !tbaa !16
  %1076 = add nsw i64 %1075, 1
  %1077 = load i64, ptr %66, align 8, !tbaa !16
  %1078 = add nsw i64 %1077, 1
  %1079 = load i64, ptr %65, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %81, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1076, i64 noundef %1078, i64 noundef %1079)
          to label %1080 unwind label %1116

1080:                                             ; preds = %1074
  %1081 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %70, i64 noundef 2) #5
  %1082 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1081, ptr noundef nonnull align 8 dereferenceable(24) %81)
          to label %1083 unwind label %1116

1083:                                             ; preds = %1080
  call void @llvm.lifetime.end.p0(i64 24, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %82) #5
  %1084 = load i64, ptr %67, align 8, !tbaa !16
  %1085 = add nsw i64 %1084, 1
  %1086 = load i64, ptr %66, align 8, !tbaa !16
  %1087 = add nsw i64 %1086, 1
  %1088 = load i64, ptr %65, align 8, !tbaa !16
  %1089 = add nsw i64 %1088, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %82, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1085, i64 noundef %1087, i64 noundef %1089)
          to label %1090 unwind label %1120

1090:                                             ; preds = %1083
  %1091 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %70, i64 noundef 3) #5
  %1092 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1091, ptr noundef nonnull align 8 dereferenceable(24) %82)
          to label %1093 unwind label %1120

1093:                                             ; preds = %1090
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #5
  %1094 = load i32, ptr %14, align 4, !tbaa !11
  %1095 = and i32 %1094, 2
  %1096 = icmp ne i32 %1095, 0
  br i1 %1096, label %1097, label %1098

1097:                                             ; preds = %1093
  br label %1099

1098:                                             ; preds = %1093
  br label %1099

1099:                                             ; preds = %1098, %1097
  %1100 = phi ptr [ %15, %1097 ], [ %64, %1098 ]
  %1101 = load ptr, ptr %11, align 8, !tbaa !5
  %1102 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(64) %69, ptr noundef nonnull align 8 dereferenceable(24) %71, ptr noundef nonnull align 8 dereferenceable(96) %70, ptr noundef %1100, ptr noundef %1101, double noundef %1102)
          to label %1103 unwind label %936

1103:                                             ; preds = %1099
  br label %1124

1104:                                             ; preds = %1007, %1006
  %1105 = landingpad { ptr, i32 }
          cleanup
  %1106 = extractvalue { ptr, i32 } %1105, 0
  store ptr %1106, ptr %17, align 8
  %1107 = extractvalue { ptr, i32 } %1105, 1
  store i32 %1107, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #5
  br label %1128

1108:                                             ; preds = %1063, %1056
  %1109 = landingpad { ptr, i32 }
          cleanup
  %1110 = extractvalue { ptr, i32 } %1109, 0
  store ptr %1110, ptr %17, align 8
  %1111 = extractvalue { ptr, i32 } %1109, 1
  store i32 %1111, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %79) #5
  br label %1128

1112:                                             ; preds = %1071, %1066
  %1113 = landingpad { ptr, i32 }
          cleanup
  %1114 = extractvalue { ptr, i32 } %1113, 0
  store ptr %1114, ptr %17, align 8
  %1115 = extractvalue { ptr, i32 } %1113, 1
  store i32 %1115, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %80) #5
  br label %1128

1116:                                             ; preds = %1080, %1074
  %1117 = landingpad { ptr, i32 }
          cleanup
  %1118 = extractvalue { ptr, i32 } %1117, 0
  store ptr %1118, ptr %17, align 8
  %1119 = extractvalue { ptr, i32 } %1117, 1
  store i32 %1119, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %81) #5
  br label %1128

1120:                                             ; preds = %1090, %1083
  %1121 = landingpad { ptr, i32 }
          cleanup
  %1122 = extractvalue { ptr, i32 } %1121, 0
  store ptr %1122, ptr %17, align 8
  %1123 = extractvalue { ptr, i32 } %1121, 1
  store i32 %1123, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #5
  br label %1128

1124:                                             ; preds = %1103, %1000
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  br label %1125

1125:                                             ; preds = %1124
  %1126 = load i64, ptr %66, align 8, !tbaa !16
  %1127 = add nsw i64 %1126, 1
  store i64 %1127, ptr %66, align 8, !tbaa !16
  br label %785, !llvm.loop !26

1128:                                             ; preds = %1120, %1116, %1112, %1108, %1104, %956, %952, %948, %944, %940, %936
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #5
  br label %1129

1129:                                             ; preds = %1128, %932
  call void @llvm.lifetime.end.p0(i64 24, ptr %71) #5
  br label %1130

1130:                                             ; preds = %1129, %928
  call void @llvm.lifetime.end.p0(i64 96, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %64) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %64) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %63) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %63) #5
  br label %1500

1131:                                             ; preds = %790
  br label %1132

1132:                                             ; preds = %1131
  %1133 = load i64, ptr %65, align 8, !tbaa !16
  %1134 = add nsw i64 %1133, 1
  store i64 %1134, ptr %65, align 8, !tbaa !16
  br label %778, !llvm.loop !27

1135:                                             ; preds = %783
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %64) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %64) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %63) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %63) #5
  br label %1136

1136:                                             ; preds = %1135, %773
  %1137 = load i32, ptr %13, align 4, !tbaa !11
  %1138 = and i32 %1137, 12
  %1139 = icmp ne i32 %1138, 0
  br i1 %1139, label %1140, label %1499

1140:                                             ; preds = %1136
  call void @llvm.lifetime.start.p0(i64 56, ptr %83) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %83) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr %84) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %84) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #5
  store i64 0, ptr %85, align 8, !tbaa !16
  br label %1141

1141:                                             ; preds = %1495, %1140
  %1142 = load i64, ptr %85, align 8, !tbaa !16
  %1143 = load i64, ptr %23, align 8, !tbaa !16
  %1144 = sub nsw i64 %1143, 1
  %1145 = icmp slt i64 %1142, %1144
  br i1 %1145, label %1147, label %1146

1146:                                             ; preds = %1141
  store i32 26, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #5
  br label %1498

1147:                                             ; preds = %1141
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  store i64 0, ptr %86, align 8, !tbaa !16
  br label %1148

1148:                                             ; preds = %1488, %1147
  %1149 = load i64, ptr %86, align 8, !tbaa !16
  %1150 = load i64, ptr %21, align 8, !tbaa !16
  %1151 = sub nsw i64 %1150, 1
  %1152 = icmp slt i64 %1149, %1151
  br i1 %1152, label %1154, label %1153

1153:                                             ; preds = %1148
  store i32 29, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  br label %1494

1154:                                             ; preds = %1148
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #5
  store i64 0, ptr %87, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 96, ptr %90) #5
  invoke void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %90)
          to label %1155 unwind label %1291

1155:                                             ; preds = %1154
  call void @llvm.lifetime.start.p0(i64 24, ptr %91) #5
  invoke void @_ZN3jet6VectorIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91)
          to label %1156 unwind label %1295

1156:                                             ; preds = %1155
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #5
  invoke void @_ZN3jet11BoundingBoxIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %1157 unwind label %1299

1157:                                             ; preds = %1156
  %1158 = load ptr, ptr %8, align 8, !tbaa !5
  %1159 = load i64, ptr %86, align 8, !tbaa !16
  %1160 = load i64, ptr %87, align 8, !tbaa !16
  %1161 = load i64, ptr %85, align 8, !tbaa !16
  %1162 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %1158, i64 noundef %1159, i64 noundef %1160, i64 noundef %1161)
          to label %1163 unwind label %1299

1163:                                             ; preds = %1157
  %1164 = load double, ptr %1162, align 8, !tbaa !9
  %1165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef 0) #5
  store double %1164, ptr %1165, align 8, !tbaa !9
  %1166 = load ptr, ptr %8, align 8, !tbaa !5
  %1167 = load i64, ptr %86, align 8, !tbaa !16
  %1168 = add nsw i64 %1167, 1
  %1169 = load i64, ptr %87, align 8, !tbaa !16
  %1170 = load i64, ptr %85, align 8, !tbaa !16
  %1171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %1166, i64 noundef %1168, i64 noundef %1169, i64 noundef %1170)
          to label %1172 unwind label %1299

1172:                                             ; preds = %1163
  %1173 = load double, ptr %1171, align 8, !tbaa !9
  %1174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef 1) #5
  store double %1173, ptr %1174, align 8, !tbaa !9
  %1175 = load ptr, ptr %8, align 8, !tbaa !5
  %1176 = load i64, ptr %86, align 8, !tbaa !16
  %1177 = add nsw i64 %1176, 1
  %1178 = load i64, ptr %87, align 8, !tbaa !16
  %1179 = load i64, ptr %85, align 8, !tbaa !16
  %1180 = add nsw i64 %1179, 1
  %1181 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %1175, i64 noundef %1177, i64 noundef %1178, i64 noundef %1180)
          to label %1182 unwind label %1299

1182:                                             ; preds = %1172
  %1183 = load double, ptr %1181, align 8, !tbaa !9
  %1184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef 2) #5
  store double %1183, ptr %1184, align 8, !tbaa !9
  %1185 = load ptr, ptr %8, align 8, !tbaa !5
  %1186 = load i64, ptr %86, align 8, !tbaa !16
  %1187 = load i64, ptr %87, align 8, !tbaa !16
  %1188 = load i64, ptr %85, align 8, !tbaa !16
  %1189 = add nsw i64 %1188, 1
  %1190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %1185, i64 noundef %1186, i64 noundef %1187, i64 noundef %1189)
          to label %1191 unwind label %1299

1191:                                             ; preds = %1182
  %1192 = load double, ptr %1190, align 8, !tbaa !9
  %1193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef 3) #5
  store double %1192, ptr %1193, align 8, !tbaa !9
  %1194 = load i32, ptr %13, align 4, !tbaa !11
  %1195 = and i32 %1194, 4
  %1196 = icmp ne i32 %1195, 0
  br i1 %1196, label %1197, label %1323

1197:                                             ; preds = %1191
  call void @llvm.lifetime.start.p0(i64 24, ptr %93) #5
  invoke void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %93, double noundef 0.000000e+00, double noundef -1.000000e+00, double noundef 0.000000e+00)
          to label %1198 unwind label %1303

1198:                                             ; preds = %1197
  %1199 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %91, ptr noundef nonnull align 8 dereferenceable(24) %93)
          to label %1200 unwind label %1303

1200:                                             ; preds = %1198
  call void @llvm.lifetime.end.p0(i64 24, ptr %93) #5
  %1201 = load i64, ptr %86, align 8, !tbaa !16
  %1202 = load i64, ptr %87, align 8, !tbaa !16
  %1203 = load i64, ptr %85, align 8, !tbaa !16
  %1204 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1201, i64 noundef %1202, i64 noundef %1203, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 0)
          to label %1205 unwind label %1299

1205:                                             ; preds = %1200
  %1206 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 0) #5
  store i64 %1204, ptr %1206, align 8, !tbaa !16
  %1207 = load i64, ptr %86, align 8, !tbaa !16
  %1208 = load i64, ptr %87, align 8, !tbaa !16
  %1209 = load i64, ptr %85, align 8, !tbaa !16
  %1210 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1207, i64 noundef %1208, i64 noundef %1209, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 1)
          to label %1211 unwind label %1299

1211:                                             ; preds = %1205
  %1212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 1) #5
  store i64 %1210, ptr %1212, align 8, !tbaa !16
  %1213 = load i64, ptr %86, align 8, !tbaa !16
  %1214 = load i64, ptr %87, align 8, !tbaa !16
  %1215 = load i64, ptr %85, align 8, !tbaa !16
  %1216 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1213, i64 noundef %1214, i64 noundef %1215, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 2)
          to label %1217 unwind label %1299

1217:                                             ; preds = %1211
  %1218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 2) #5
  store i64 %1216, ptr %1218, align 8, !tbaa !16
  %1219 = load i64, ptr %86, align 8, !tbaa !16
  %1220 = load i64, ptr %87, align 8, !tbaa !16
  %1221 = load i64, ptr %85, align 8, !tbaa !16
  %1222 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1219, i64 noundef %1220, i64 noundef %1221, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 3)
          to label %1223 unwind label %1299

1223:                                             ; preds = %1217
  %1224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 3) #5
  store i64 %1222, ptr %1224, align 8, !tbaa !16
  %1225 = load i64, ptr %86, align 8, !tbaa !16
  %1226 = load i64, ptr %87, align 8, !tbaa !16
  %1227 = load i64, ptr %85, align 8, !tbaa !16
  %1228 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1225, i64 noundef %1226, i64 noundef %1227, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 0)
          to label %1229 unwind label %1299

1229:                                             ; preds = %1223
  %1230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 4) #5
  store i64 %1228, ptr %1230, align 8, !tbaa !16
  %1231 = load i64, ptr %86, align 8, !tbaa !16
  %1232 = load i64, ptr %87, align 8, !tbaa !16
  %1233 = load i64, ptr %85, align 8, !tbaa !16
  %1234 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1231, i64 noundef %1232, i64 noundef %1233, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 1)
          to label %1235 unwind label %1299

1235:                                             ; preds = %1229
  %1236 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 5) #5
  store i64 %1234, ptr %1236, align 8, !tbaa !16
  %1237 = load i64, ptr %86, align 8, !tbaa !16
  %1238 = load i64, ptr %87, align 8, !tbaa !16
  %1239 = load i64, ptr %85, align 8, !tbaa !16
  %1240 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1237, i64 noundef %1238, i64 noundef %1239, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 2)
          to label %1241 unwind label %1299

1241:                                             ; preds = %1235
  %1242 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 6) #5
  store i64 %1240, ptr %1242, align 8, !tbaa !16
  %1243 = load i64, ptr %86, align 8, !tbaa !16
  %1244 = load i64, ptr %87, align 8, !tbaa !16
  %1245 = load i64, ptr %85, align 8, !tbaa !16
  %1246 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1243, i64 noundef %1244, i64 noundef %1245, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 3)
          to label %1247 unwind label %1299

1247:                                             ; preds = %1241
  %1248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 7) #5
  store i64 %1246, ptr %1248, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %94) #5
  %1249 = load i64, ptr %86, align 8, !tbaa !16
  %1250 = load i64, ptr %87, align 8, !tbaa !16
  %1251 = load i64, ptr %85, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %94, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1249, i64 noundef %1250, i64 noundef %1251)
          to label %1252 unwind label %1307

1252:                                             ; preds = %1247
  %1253 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %90, i64 noundef 0) #5
  %1254 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1253, ptr noundef nonnull align 8 dereferenceable(24) %94)
          to label %1255 unwind label %1307

1255:                                             ; preds = %1252
  call void @llvm.lifetime.end.p0(i64 24, ptr %94) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %95) #5
  %1256 = load i64, ptr %86, align 8, !tbaa !16
  %1257 = add nsw i64 %1256, 1
  %1258 = load i64, ptr %87, align 8, !tbaa !16
  %1259 = load i64, ptr %85, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %95, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1257, i64 noundef %1258, i64 noundef %1259)
          to label %1260 unwind label %1311

1260:                                             ; preds = %1255
  %1261 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %90, i64 noundef 1) #5
  %1262 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1261, ptr noundef nonnull align 8 dereferenceable(24) %95)
          to label %1263 unwind label %1311

1263:                                             ; preds = %1260
  call void @llvm.lifetime.end.p0(i64 24, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %96) #5
  %1264 = load i64, ptr %86, align 8, !tbaa !16
  %1265 = add nsw i64 %1264, 1
  %1266 = load i64, ptr %87, align 8, !tbaa !16
  %1267 = load i64, ptr %85, align 8, !tbaa !16
  %1268 = add nsw i64 %1267, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %96, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1265, i64 noundef %1266, i64 noundef %1268)
          to label %1269 unwind label %1315

1269:                                             ; preds = %1263
  %1270 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %90, i64 noundef 2) #5
  %1271 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1270, ptr noundef nonnull align 8 dereferenceable(24) %96)
          to label %1272 unwind label %1315

1272:                                             ; preds = %1269
  call void @llvm.lifetime.end.p0(i64 24, ptr %96) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %97) #5
  %1273 = load i64, ptr %86, align 8, !tbaa !16
  %1274 = load i64, ptr %87, align 8, !tbaa !16
  %1275 = load i64, ptr %85, align 8, !tbaa !16
  %1276 = add nsw i64 %1275, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %97, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1273, i64 noundef %1274, i64 noundef %1276)
          to label %1277 unwind label %1319

1277:                                             ; preds = %1272
  %1278 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %90, i64 noundef 3) #5
  %1279 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1278, ptr noundef nonnull align 8 dereferenceable(24) %97)
          to label %1280 unwind label %1319

1280:                                             ; preds = %1277
  call void @llvm.lifetime.end.p0(i64 24, ptr %97) #5
  %1281 = load i32, ptr %14, align 4, !tbaa !11
  %1282 = and i32 %1281, 4
  %1283 = icmp ne i32 %1282, 0
  br i1 %1283, label %1284, label %1285

1284:                                             ; preds = %1280
  br label %1286

1285:                                             ; preds = %1280
  br label %1286

1286:                                             ; preds = %1285, %1284
  %1287 = phi ptr [ %15, %1284 ], [ %83, %1285 ]
  %1288 = load ptr, ptr %11, align 8, !tbaa !5
  %1289 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(64) %89, ptr noundef nonnull align 8 dereferenceable(24) %91, ptr noundef nonnull align 8 dereferenceable(96) %90, ptr noundef %1287, ptr noundef %1288, double noundef %1289)
          to label %1290 unwind label %1299

1290:                                             ; preds = %1286
  br label %1323

1291:                                             ; preds = %1154
  %1292 = landingpad { ptr, i32 }
          cleanup
  %1293 = extractvalue { ptr, i32 } %1292, 0
  store ptr %1293, ptr %17, align 8
  %1294 = extractvalue { ptr, i32 } %1292, 1
  store i32 %1294, ptr %18, align 4
  br label %1493

1295:                                             ; preds = %1155
  %1296 = landingpad { ptr, i32 }
          cleanup
  %1297 = extractvalue { ptr, i32 } %1296, 0
  store ptr %1297, ptr %17, align 8
  %1298 = extractvalue { ptr, i32 } %1296, 1
  store i32 %1298, ptr %18, align 4
  br label %1492

1299:                                             ; preds = %1462, %1413, %1407, %1401, %1395, %1389, %1383, %1377, %1372, %1352, %1342, %1333, %1323, %1286, %1241, %1235, %1229, %1223, %1217, %1211, %1205, %1200, %1182, %1172, %1163, %1157, %1156
  %1300 = landingpad { ptr, i32 }
          cleanup
  %1301 = extractvalue { ptr, i32 } %1300, 0
  store ptr %1301, ptr %17, align 8
  %1302 = extractvalue { ptr, i32 } %1300, 1
  store i32 %1302, ptr %18, align 4
  br label %1491

1303:                                             ; preds = %1198, %1197
  %1304 = landingpad { ptr, i32 }
          cleanup
  %1305 = extractvalue { ptr, i32 } %1304, 0
  store ptr %1305, ptr %17, align 8
  %1306 = extractvalue { ptr, i32 } %1304, 1
  store i32 %1306, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %93) #5
  br label %1491

1307:                                             ; preds = %1252, %1247
  %1308 = landingpad { ptr, i32 }
          cleanup
  %1309 = extractvalue { ptr, i32 } %1308, 0
  store ptr %1309, ptr %17, align 8
  %1310 = extractvalue { ptr, i32 } %1308, 1
  store i32 %1310, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %94) #5
  br label %1491

1311:                                             ; preds = %1260, %1255
  %1312 = landingpad { ptr, i32 }
          cleanup
  %1313 = extractvalue { ptr, i32 } %1312, 0
  store ptr %1313, ptr %17, align 8
  %1314 = extractvalue { ptr, i32 } %1312, 1
  store i32 %1314, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %95) #5
  br label %1491

1315:                                             ; preds = %1269, %1263
  %1316 = landingpad { ptr, i32 }
          cleanup
  %1317 = extractvalue { ptr, i32 } %1316, 0
  store ptr %1317, ptr %17, align 8
  %1318 = extractvalue { ptr, i32 } %1316, 1
  store i32 %1318, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %96) #5
  br label %1491

1319:                                             ; preds = %1277, %1272
  %1320 = landingpad { ptr, i32 }
          cleanup
  %1321 = extractvalue { ptr, i32 } %1320, 0
  store ptr %1321, ptr %17, align 8
  %1322 = extractvalue { ptr, i32 } %1320, 1
  store i32 %1322, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %97) #5
  br label %1491

1323:                                             ; preds = %1290, %1191
  %1324 = load i64, ptr %22, align 8, !tbaa !16
  %1325 = sub nsw i64 %1324, 2
  store i64 %1325, ptr %87, align 8, !tbaa !16
  %1326 = load ptr, ptr %8, align 8, !tbaa !5
  %1327 = load i64, ptr %86, align 8, !tbaa !16
  %1328 = add nsw i64 %1327, 1
  %1329 = load i64, ptr %87, align 8, !tbaa !16
  %1330 = add nsw i64 %1329, 1
  %1331 = load i64, ptr %85, align 8, !tbaa !16
  %1332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %1326, i64 noundef %1328, i64 noundef %1330, i64 noundef %1331)
          to label %1333 unwind label %1299

1333:                                             ; preds = %1323
  %1334 = load double, ptr %1332, align 8, !tbaa !9
  %1335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef 0) #5
  store double %1334, ptr %1335, align 8, !tbaa !9
  %1336 = load ptr, ptr %8, align 8, !tbaa !5
  %1337 = load i64, ptr %86, align 8, !tbaa !16
  %1338 = load i64, ptr %87, align 8, !tbaa !16
  %1339 = add nsw i64 %1338, 1
  %1340 = load i64, ptr %85, align 8, !tbaa !16
  %1341 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %1336, i64 noundef %1337, i64 noundef %1339, i64 noundef %1340)
          to label %1342 unwind label %1299

1342:                                             ; preds = %1333
  %1343 = load double, ptr %1341, align 8, !tbaa !9
  %1344 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef 1) #5
  store double %1343, ptr %1344, align 8, !tbaa !9
  %1345 = load ptr, ptr %8, align 8, !tbaa !5
  %1346 = load i64, ptr %86, align 8, !tbaa !16
  %1347 = load i64, ptr %87, align 8, !tbaa !16
  %1348 = add nsw i64 %1347, 1
  %1349 = load i64, ptr %85, align 8, !tbaa !16
  %1350 = add nsw i64 %1349, 1
  %1351 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %1345, i64 noundef %1346, i64 noundef %1348, i64 noundef %1350)
          to label %1352 unwind label %1299

1352:                                             ; preds = %1342
  %1353 = load double, ptr %1351, align 8, !tbaa !9
  %1354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef 2) #5
  store double %1353, ptr %1354, align 8, !tbaa !9
  %1355 = load ptr, ptr %8, align 8, !tbaa !5
  %1356 = load i64, ptr %86, align 8, !tbaa !16
  %1357 = add nsw i64 %1356, 1
  %1358 = load i64, ptr %87, align 8, !tbaa !16
  %1359 = add nsw i64 %1358, 1
  %1360 = load i64, ptr %85, align 8, !tbaa !16
  %1361 = add nsw i64 %1360, 1
  %1362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %1355, i64 noundef %1357, i64 noundef %1359, i64 noundef %1361)
          to label %1363 unwind label %1299

1363:                                             ; preds = %1352
  %1364 = load double, ptr %1362, align 8, !tbaa !9
  %1365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef 3) #5
  store double %1364, ptr %1365, align 8, !tbaa !9
  %1366 = load i32, ptr %13, align 4, !tbaa !11
  %1367 = and i32 %1366, 8
  %1368 = icmp ne i32 %1367, 0
  br i1 %1368, label %1369, label %1487

1369:                                             ; preds = %1363
  call void @llvm.lifetime.start.p0(i64 24, ptr %98) #5
  invoke void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %98, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00)
          to label %1370 unwind label %1467

1370:                                             ; preds = %1369
  %1371 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %91, ptr noundef nonnull align 8 dereferenceable(24) %98)
          to label %1372 unwind label %1467

1372:                                             ; preds = %1370
  call void @llvm.lifetime.end.p0(i64 24, ptr %98) #5
  %1373 = load i64, ptr %86, align 8, !tbaa !16
  %1374 = load i64, ptr %87, align 8, !tbaa !16
  %1375 = load i64, ptr %85, align 8, !tbaa !16
  %1376 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1373, i64 noundef %1374, i64 noundef %1375, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 5)
          to label %1377 unwind label %1299

1377:                                             ; preds = %1372
  %1378 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 0) #5
  store i64 %1376, ptr %1378, align 8, !tbaa !16
  %1379 = load i64, ptr %86, align 8, !tbaa !16
  %1380 = load i64, ptr %87, align 8, !tbaa !16
  %1381 = load i64, ptr %85, align 8, !tbaa !16
  %1382 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1379, i64 noundef %1380, i64 noundef %1381, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 4)
          to label %1383 unwind label %1299

1383:                                             ; preds = %1377
  %1384 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 1) #5
  store i64 %1382, ptr %1384, align 8, !tbaa !16
  %1385 = load i64, ptr %86, align 8, !tbaa !16
  %1386 = load i64, ptr %87, align 8, !tbaa !16
  %1387 = load i64, ptr %85, align 8, !tbaa !16
  %1388 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1385, i64 noundef %1386, i64 noundef %1387, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 7)
          to label %1389 unwind label %1299

1389:                                             ; preds = %1383
  %1390 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 2) #5
  store i64 %1388, ptr %1390, align 8, !tbaa !16
  %1391 = load i64, ptr %86, align 8, !tbaa !16
  %1392 = load i64, ptr %87, align 8, !tbaa !16
  %1393 = load i64, ptr %85, align 8, !tbaa !16
  %1394 = invoke noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %1391, i64 noundef %1392, i64 noundef %1393, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 6)
          to label %1395 unwind label %1299

1395:                                             ; preds = %1389
  %1396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 3) #5
  store i64 %1394, ptr %1396, align 8, !tbaa !16
  %1397 = load i64, ptr %86, align 8, !tbaa !16
  %1398 = load i64, ptr %87, align 8, !tbaa !16
  %1399 = load i64, ptr %85, align 8, !tbaa !16
  %1400 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1397, i64 noundef %1398, i64 noundef %1399, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 4)
          to label %1401 unwind label %1299

1401:                                             ; preds = %1395
  %1402 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 4) #5
  store i64 %1400, ptr %1402, align 8, !tbaa !16
  %1403 = load i64, ptr %86, align 8, !tbaa !16
  %1404 = load i64, ptr %87, align 8, !tbaa !16
  %1405 = load i64, ptr %85, align 8, !tbaa !16
  %1406 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1403, i64 noundef %1404, i64 noundef %1405, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 7)
          to label %1407 unwind label %1299

1407:                                             ; preds = %1401
  %1408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 5) #5
  store i64 %1406, ptr %1408, align 8, !tbaa !16
  %1409 = load i64, ptr %86, align 8, !tbaa !16
  %1410 = load i64, ptr %87, align 8, !tbaa !16
  %1411 = load i64, ptr %85, align 8, !tbaa !16
  %1412 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1409, i64 noundef %1410, i64 noundef %1411, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 6)
          to label %1413 unwind label %1299

1413:                                             ; preds = %1407
  %1414 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 6) #5
  store i64 %1412, ptr %1414, align 8, !tbaa !16
  %1415 = load i64, ptr %86, align 8, !tbaa !16
  %1416 = load i64, ptr %87, align 8, !tbaa !16
  %1417 = load i64, ptr %85, align 8, !tbaa !16
  %1418 = invoke noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %1415, i64 noundef %1416, i64 noundef %1417, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 5)
          to label %1419 unwind label %1299

1419:                                             ; preds = %1413
  %1420 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %89, i64 noundef 7) #5
  store i64 %1418, ptr %1420, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %99) #5
  %1421 = load i64, ptr %86, align 8, !tbaa !16
  %1422 = add nsw i64 %1421, 1
  %1423 = load i64, ptr %87, align 8, !tbaa !16
  %1424 = add nsw i64 %1423, 1
  %1425 = load i64, ptr %85, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %99, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1422, i64 noundef %1424, i64 noundef %1425)
          to label %1426 unwind label %1471

1426:                                             ; preds = %1419
  %1427 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %90, i64 noundef 0) #5
  %1428 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1427, ptr noundef nonnull align 8 dereferenceable(24) %99)
          to label %1429 unwind label %1471

1429:                                             ; preds = %1426
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %100) #5
  %1430 = load i64, ptr %86, align 8, !tbaa !16
  %1431 = load i64, ptr %87, align 8, !tbaa !16
  %1432 = add nsw i64 %1431, 1
  %1433 = load i64, ptr %85, align 8, !tbaa !16
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %100, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1430, i64 noundef %1432, i64 noundef %1433)
          to label %1434 unwind label %1475

1434:                                             ; preds = %1429
  %1435 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %90, i64 noundef 1) #5
  %1436 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1435, ptr noundef nonnull align 8 dereferenceable(24) %100)
          to label %1437 unwind label %1475

1437:                                             ; preds = %1434
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %101) #5
  %1438 = load i64, ptr %86, align 8, !tbaa !16
  %1439 = load i64, ptr %87, align 8, !tbaa !16
  %1440 = add nsw i64 %1439, 1
  %1441 = load i64, ptr %85, align 8, !tbaa !16
  %1442 = add nsw i64 %1441, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %101, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1438, i64 noundef %1440, i64 noundef %1442)
          to label %1443 unwind label %1479

1443:                                             ; preds = %1437
  %1444 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %90, i64 noundef 2) #5
  %1445 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1444, ptr noundef nonnull align 8 dereferenceable(24) %101)
          to label %1446 unwind label %1479

1446:                                             ; preds = %1443
  call void @llvm.lifetime.end.p0(i64 24, ptr %101) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %102) #5
  %1447 = load i64, ptr %86, align 8, !tbaa !16
  %1448 = add nsw i64 %1447, 1
  %1449 = load i64, ptr %87, align 8, !tbaa !16
  %1450 = add nsw i64 %1449, 1
  %1451 = load i64, ptr %85, align 8, !tbaa !16
  %1452 = add nsw i64 %1451, 1
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.jet::Vector") align 8 %102, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 noundef %1448, i64 noundef %1450, i64 noundef %1452)
          to label %1453 unwind label %1483

1453:                                             ; preds = %1446
  %1454 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %90, i64 noundef 3) #5
  %1455 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1454, ptr noundef nonnull align 8 dereferenceable(24) %102)
          to label %1456 unwind label %1483

1456:                                             ; preds = %1453
  call void @llvm.lifetime.end.p0(i64 24, ptr %102) #5
  %1457 = load i32, ptr %14, align 4, !tbaa !11
  %1458 = and i32 %1457, 8
  %1459 = icmp ne i32 %1458, 0
  br i1 %1459, label %1460, label %1461

1460:                                             ; preds = %1456
  br label %1462

1461:                                             ; preds = %1456
  br label %1462

1462:                                             ; preds = %1461, %1460
  %1463 = phi ptr [ %15, %1460 ], [ %84, %1461 ]
  %1464 = load ptr, ptr %11, align 8, !tbaa !5
  %1465 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(64) %89, ptr noundef nonnull align 8 dereferenceable(24) %91, ptr noundef nonnull align 8 dereferenceable(96) %90, ptr noundef %1463, ptr noundef %1464, double noundef %1465)
          to label %1466 unwind label %1299

1466:                                             ; preds = %1462
  br label %1487

1467:                                             ; preds = %1370, %1369
  %1468 = landingpad { ptr, i32 }
          cleanup
  %1469 = extractvalue { ptr, i32 } %1468, 0
  store ptr %1469, ptr %17, align 8
  %1470 = extractvalue { ptr, i32 } %1468, 1
  store i32 %1470, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %98) #5
  br label %1491

1471:                                             ; preds = %1426, %1419
  %1472 = landingpad { ptr, i32 }
          cleanup
  %1473 = extractvalue { ptr, i32 } %1472, 0
  store ptr %1473, ptr %17, align 8
  %1474 = extractvalue { ptr, i32 } %1472, 1
  store i32 %1474, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #5
  br label %1491

1475:                                             ; preds = %1434, %1429
  %1476 = landingpad { ptr, i32 }
          cleanup
  %1477 = extractvalue { ptr, i32 } %1476, 0
  store ptr %1477, ptr %17, align 8
  %1478 = extractvalue { ptr, i32 } %1476, 1
  store i32 %1478, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #5
  br label %1491

1479:                                             ; preds = %1443, %1437
  %1480 = landingpad { ptr, i32 }
          cleanup
  %1481 = extractvalue { ptr, i32 } %1480, 0
  store ptr %1481, ptr %17, align 8
  %1482 = extractvalue { ptr, i32 } %1480, 1
  store i32 %1482, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %101) #5
  br label %1491

1483:                                             ; preds = %1453, %1446
  %1484 = landingpad { ptr, i32 }
          cleanup
  %1485 = extractvalue { ptr, i32 } %1484, 0
  store ptr %1485, ptr %17, align 8
  %1486 = extractvalue { ptr, i32 } %1484, 1
  store i32 %1486, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %102) #5
  br label %1491

1487:                                             ; preds = %1466, %1363
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  br label %1488

1488:                                             ; preds = %1487
  %1489 = load i64, ptr %86, align 8, !tbaa !16
  %1490 = add nsw i64 %1489, 1
  store i64 %1490, ptr %86, align 8, !tbaa !16
  br label %1148, !llvm.loop !28

1491:                                             ; preds = %1483, %1479, %1475, %1471, %1467, %1319, %1315, %1311, %1307, %1303, %1299
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #5
  br label %1492

1492:                                             ; preds = %1491, %1295
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #5
  br label %1493

1493:                                             ; preds = %1492, %1291
  call void @llvm.lifetime.end.p0(i64 96, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %84) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %84) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %83) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %83) #5
  br label %1500

1494:                                             ; preds = %1153
  br label %1495

1495:                                             ; preds = %1494
  %1496 = load i64, ptr %85, align 8, !tbaa !16
  %1497 = add nsw i64 %1496, 1
  store i64 %1497, ptr %85, align 8, !tbaa !16
  br label %1141, !llvm.loop !29

1498:                                             ; preds = %1146
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %84) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %84) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %83) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %83) #5
  br label %1499

1499:                                             ; preds = %1498, %1136
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %15) #5
  ret void

1500:                                             ; preds = %1493, %1130, %767, %401
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %1501

1501:                                             ; preds = %1500, %133
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #5
  br label %1502

1502:                                             ; preds = %1501, %129
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #5
  br label %1503

1503:                                             ; preds = %1502, %125
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %15) #5
  br label %1504

1504:                                             ; preds = %1503
  %1505 = load ptr, ptr %17, align 8
  %1506 = load i32, ptr %18, align 4
  %1507 = insertvalue { ptr, i32 } poison, ptr %1505, 0
  %1508 = insertvalue { ptr, i32 } %1507, i32 %1506, 1
  resume { ptr, i32 } %1508
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3jet18ConstArrayAccessorIdLm3EE4sizeEv(ptr dead_on_unwind noalias writable sret(%"class.jet::Size3") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3jetdvIdEENS_6VectorIT_Lm3EEES2_RKS3_(ptr dead_on_unwind noalias writable sret(%"class.jet::Vector") align 8, double noundef, ptr noundef nonnull align 8 dereferenceable(24)) #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(192)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3jet11BoundingBoxIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef, i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind noalias writable sret(%"class.jet::Vector") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96), i64 noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind noalias writable sret(%"class.jet::Vector") align 8, ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN3jetL10singleCubeERKSt5arrayIdLm8EERKS0_ImLm12EERKS0_INS_6VectorIdLm3EEELm8EERKNS_11BoundingBoxIdLm3EEEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, ptr noundef, double noundef) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3jet11BoundingBoxIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, ptr noundef, double noundef) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #4 align 2

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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { 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 #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !15, i64 0}
!14 = !{!"_ZTSN3jet5Size3E", !15, i64 0, !15, i64 8, !15, i64 16}
!15 = !{!"long", !7, i64 0}
!16 = !{!15, !15, i64 0}
!17 = !{!14, !15, i64 8}
!18 = !{!14, !15, i64 16}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = distinct !{!21, !20}
!22 = distinct !{!22, !20}
!23 = distinct !{!23, !20}
!24 = distinct !{!24, !20}
!25 = distinct !{!25, !20}
!26 = distinct !{!26, !20}
!27 = distinct !{!27, !20}
!28 = distinct !{!28, !20}
!29 = distinct !{!29, !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.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.jet::Size3" = type { i64, i64, i64 }
%"class.jet::Vector" = type { double, double, double }
%class.anon = type { %"class.jet::Vector", %"class.jet::Vector" }
%"struct.std::array" = type { [8 x double] }
%"struct.std::array.2" = type { [12 x i64] }
%"struct.std::array.3" = type { [8 x %"class.jet::Vector"] }
%"class.jet::BoundingBox" = type { %"class.jet::Vector", %"class.jet::Vector" }
%"struct.std::array.4" = type { [4 x double] }
%"struct.std::array.5" = type { [8 x i64] }
%"struct.std::array.6" = type { [4 x %"class.jet::Vector"] }
%"class.jet::BoundingBox.7" = type { %"class.jet::Vector.8", %"class.jet::Vector.8" }
%"class.jet::Vector.8" = type { double, double }

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3Edii(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef %3, double noundef %4, i32 noundef %5, i32 noundef %6) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %8 = alloca %"class.std::unordered_map", align 8
  %9 = alloca %"class.jet::Size3", align 8
  %10 = alloca %"class.jet::Vector", align 8
  %11 = alloca %class.anon, align 8
  %12 = alloca %"struct.std::array", align 8
  %13 = alloca %"struct.std::array.2", align 8
  %14 = alloca %"struct.std::array.3", align 8
  %15 = alloca %"class.jet::BoundingBox", align 8
  %16 = alloca %"class.jet::Vector", align 8
  %17 = alloca %"class.jet::Vector", align 8
  %18 = alloca %"class.jet::Vector", align 8
  %19 = alloca %"class.jet::Vector", align 8
  %20 = alloca %"class.jet::Vector", align 8
  %21 = alloca %"class.jet::Vector", align 8
  %22 = alloca %"class.jet::Vector", align 8
  %23 = alloca %"class.jet::Vector", align 8
  %24 = alloca %"class.jet::Vector", align 8
  %25 = alloca %"class.jet::Vector", align 8
  %26 = alloca %"class.std::unordered_map", align 8
  %27 = alloca %"class.std::unordered_map", align 8
  %28 = alloca %"struct.std::array.4", align 8
  %29 = alloca %"struct.std::array.5", align 8
  %30 = alloca %"struct.std::array.6", align 8
  %31 = alloca %"class.jet::Vector", align 8
  %32 = alloca %"class.jet::BoundingBox.7", align 8
  %33 = alloca %"class.jet::Vector", align 8
  %34 = alloca %"class.jet::Vector", align 8
  %35 = alloca %"class.jet::Vector", align 8
  %36 = alloca %"class.jet::Vector", align 8
  %37 = alloca %"class.jet::Vector", align 8
  %38 = alloca %"class.jet::Vector", align 8
  %39 = alloca %"class.jet::Vector", align 8
  %40 = alloca %"class.jet::Vector", align 8
  %41 = alloca %"class.jet::Vector", align 8
  %42 = alloca %"class.jet::Vector", align 8
  %43 = alloca %"class.std::unordered_map", align 8
  %44 = alloca %"class.std::unordered_map", align 8
  %45 = alloca %"struct.std::array.4", align 8
  %46 = alloca %"struct.std::array.5", align 8
  %47 = alloca %"struct.std::array.6", align 8
  %48 = alloca %"class.jet::Vector", align 8
  %49 = alloca %"class.jet::BoundingBox.7", align 8
  %50 = alloca %"class.jet::Vector", align 8
  %51 = alloca %"class.jet::Vector", align 8
  %52 = alloca %"class.jet::Vector", align 8
  %53 = alloca %"class.jet::Vector", align 8
  %54 = alloca %"class.jet::Vector", align 8
  %55 = alloca %"class.jet::Vector", align 8
  %56 = alloca %"class.jet::Vector", align 8
  %57 = alloca %"class.jet::Vector", align 8
  %58 = alloca %"class.jet::Vector", align 8
  %59 = alloca %"class.jet::Vector", align 8
  %60 = alloca %"class.std::unordered_map", align 8
  %61 = alloca %"class.std::unordered_map", align 8
  %62 = alloca %"struct.std::array.4", align 8
  %63 = alloca %"struct.std::array.5", align 8
  %64 = alloca %"struct.std::array.6", align 8
  %65 = alloca %"class.jet::Vector", align 8
  %66 = alloca %"class.jet::BoundingBox.7", align 8
  %67 = alloca %"class.jet::Vector", align 8
  %68 = alloca %"class.jet::Vector", align 8
  %69 = alloca %"class.jet::Vector", align 8
  %70 = alloca %"class.jet::Vector", align 8
  %71 = alloca %"class.jet::Vector", align 8
  %72 = alloca %"class.jet::Vector", align 8
  %73 = alloca %"class.jet::Vector", align 8
  %74 = alloca %"class.jet::Vector", align 8
  %75 = alloca %"class.jet::Vector", align 8
  %76 = alloca %"class.jet::Vector", align 8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #5
  invoke void @_ZNK3jet18ConstArrayAccessorIdLm3EE4sizeEv(ptr dead_on_unwind nonnull writable sret(%"class.jet::Size3") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %0)
          to label %77 unwind label %198

77:                                               ; preds = %7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #5
  invoke void @_ZN3jetdvIdEENS_6VectorIT_Lm3EEES2_RKS3_(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %10, double noundef 1.000000e+00, ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %78 unwind label %200

78:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) #5
  call void @_ZN3jet6VectorIdLm3EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %2)
  %79 = getelementptr inbounds i8, ptr %11, i64 24
  call void @_ZN3jet6VectorIdLm3EEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %79, ptr noundef nonnull align 8 dereferenceable(24) %1)
  %80 = load i64, ptr %9, align 8, !tbaa !5
  %81 = getelementptr inbounds i8, ptr %9, i64 8
  %82 = load i64, ptr %81, align 8, !tbaa !10
  %83 = getelementptr inbounds i8, ptr %9, i64 16
  %84 = load i64, ptr %83, align 8, !tbaa !11
  %85 = add i64 %84, -1
  %86 = icmp sgt i64 %84, 1
  br i1 %86, label %.preheader516.lr.ph, label %._crit_edge

.preheader516.lr.ph:                              ; preds = %78
  %87 = icmp sgt i64 %82, 1
  %88 = getelementptr inbounds i8, ptr %15, i64 24
  %89 = icmp sgt i64 %80, 1
  %or.cond = select i1 %87, i1 %89, i1 false
  br i1 %or.cond, label %.preheader516.us.us.preheader, label %._crit_edge

.preheader516.us.us.preheader:                    ; preds = %.preheader516.lr.ph
  %90 = add nsw i64 %80, -2
  %91 = add nsw i64 %82, -2
  br label %.preheader516.us.us

.preheader516.us.us:                              ; preds = %.preheader516.us.us.preheader, %._crit_edge532.split.us.us.us
  %.0466566.us.us = phi i64 [ %92, %._crit_edge532.split.us.us.us ], [ 0, %.preheader516.us.us.preheader ]
  %92 = add nuw nsw i64 %.0466566.us.us, 1
  br label %.preheader515.us.us.us

.preheader515.us.us.us:                           ; preds = %._crit_edge.us.us.us, %.preheader516.us.us
  %.0465531.us.us.us = phi i64 [ 0, %.preheader516.us.us ], [ %93, %._crit_edge.us.us.us ]
  %93 = add nuw nsw i64 %.0465531.us.us.us, 1
  br label %94

94:                                               ; preds = %184, %.preheader515.us.us.us
  %.0464530.us.us.us = phi i64 [ 0, %.preheader515.us.us.us ], [ %100, %184 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %14) #5
  invoke void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(192) %14)
          to label %95 unwind label %.split.us.split.us.split.us

95:                                               ; preds = %94
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %15) #5
  invoke void @_ZN3jet11BoundingBoxIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15)
          to label %96 unwind label %.split534.us.split.us.split.us

96:                                               ; preds = %95
  %97 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us)
  %98 = load double, ptr %97, align 8, !tbaa !12
  %99 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %12, i64 noundef 0) #5
  store double %98, ptr %99, align 8, !tbaa !12
  %100 = add nuw nsw i64 %.0464530.us.us.us, 1
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %100, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us)
  %102 = load double, ptr %101, align 8, !tbaa !12
  %103 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %12, i64 noundef 1) #5
  store double %102, ptr %103, align 8, !tbaa !12
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0464530.us.us.us, i64 noundef %93, i64 noundef %.0466566.us.us)
  %105 = load double, ptr %104, align 8, !tbaa !12
  %106 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %12, i64 noundef 4) #5
  store double %105, ptr %106, align 8, !tbaa !12
  %107 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %100, i64 noundef %93, i64 noundef %.0466566.us.us)
  %108 = load double, ptr %107, align 8, !tbaa !12
  %109 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %12, i64 noundef 5) #5
  store double %108, ptr %109, align 8, !tbaa !12
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %92)
  %111 = load double, ptr %110, align 8, !tbaa !12
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %12, i64 noundef 3) #5
  store double %111, ptr %112, align 8, !tbaa !12
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %100, i64 noundef %.0465531.us.us.us, i64 noundef %92)
  %114 = load double, ptr %113, align 8, !tbaa !12
  %115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %12, i64 noundef 2) #5
  store double %114, ptr %115, align 8, !tbaa !12
  %116 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0464530.us.us.us, i64 noundef %93, i64 noundef %92)
  %117 = load double, ptr %116, align 8, !tbaa !12
  %118 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %12, i64 noundef 7) #5
  store double %117, ptr %118, align 8, !tbaa !12
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %100, i64 noundef %93, i64 noundef %92)
  %120 = load double, ptr %119, align 8, !tbaa !12
  %121 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %12, i64 noundef 6) #5
  store double %120, ptr %121, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #5
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %122 unwind label %.split537.us.split.us.split.us

122:                                              ; preds = %96
  %123 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %14, i64 noundef 0) #5
  %124 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %125 unwind label %.split537.us.split.us.split.us

125:                                              ; preds = %122
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #5
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %100, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %126 unwind label %.split540.us.split.us.split.us

126:                                              ; preds = %125
  %127 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %14, i64 noundef 1) #5
  %128 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %127, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %129 unwind label %.split540.us.split.us.split.us

129:                                              ; preds = %126
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #5
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0464530.us.us.us, i64 noundef %93, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %130 unwind label %.split543.us.split.us.split.us

130:                                              ; preds = %129
  %131 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %14, i64 noundef 4) #5
  %132 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %131, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %133 unwind label %.split543.us.split.us.split.us

133:                                              ; preds = %130
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #5
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %100, i64 noundef %93, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %134 unwind label %.split546.us.split.us.split.us

134:                                              ; preds = %133
  %135 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %14, i64 noundef 5) #5
  %136 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %135, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %137 unwind label %.split546.us.split.us.split.us

137:                                              ; preds = %134
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #5
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %92, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %138 unwind label %.split549.us.split.us.split.us

138:                                              ; preds = %137
  %139 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %14, i64 noundef 3) #5
  %140 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %139, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %141 unwind label %.split549.us.split.us.split.us

141:                                              ; preds = %138
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #5
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %100, i64 noundef %.0465531.us.us.us, i64 noundef %92, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %142 unwind label %.split552.us.split.us.split.us

142:                                              ; preds = %141
  %143 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %14, i64 noundef 2) #5
  %144 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %143, ptr noundef nonnull align 8 dereferenceable(24) %21)
          to label %145 unwind label %.split552.us.split.us.split.us

145:                                              ; preds = %142
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #5
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0464530.us.us.us, i64 noundef %93, i64 noundef %92, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %146 unwind label %.split555.us.split.us.split.us

146:                                              ; preds = %145
  %147 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %14, i64 noundef 7) #5
  %148 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %147, ptr noundef nonnull align 8 dereferenceable(24) %22)
          to label %149 unwind label %.split555.us.split.us.split.us

149:                                              ; preds = %146
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #5
  invoke void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %100, i64 noundef %93, i64 noundef %92, ptr noundef nonnull align 8 dereferenceable(24) %10)
          to label %150 unwind label %.split558.us.split.us.split.us

150:                                              ; preds = %149
  %151 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %14, i64 noundef 6) #5
  %152 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %153 unwind label %.split558.us.split.us.split.us

153:                                              ; preds = %150
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #5
  %154 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 0)
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 0) #5
  store i64 %154, ptr %155, align 8, !tbaa !14
  %156 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1)
  %157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 1) #5
  store i64 %156, ptr %157, align 8, !tbaa !14
  %158 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 2)
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 2) #5
  store i64 %158, ptr %159, align 8, !tbaa !14
  %160 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 3)
  %161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 3) #5
  store i64 %160, ptr %161, align 8, !tbaa !14
  %162 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 4)
  %163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 4) #5
  store i64 %162, ptr %163, align 8, !tbaa !14
  %164 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 5)
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 5) #5
  store i64 %164, ptr %165, align 8, !tbaa !14
  %166 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 6)
  %167 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 6) #5
  store i64 %166, ptr %167, align 8, !tbaa !14
  %168 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 7)
  %169 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 7) #5
  store i64 %168, ptr %169, align 8, !tbaa !14
  %170 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 8)
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 8) #5
  store i64 %170, ptr %171, align 8, !tbaa !14
  %172 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 9)
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 9) #5
  store i64 %172, ptr %173, align 8, !tbaa !14
  %174 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 10)
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 10) #5
  store i64 %174, ptr %175, align 8, !tbaa !14
  %176 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 11)
  %177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %13, i64 noundef 11) #5
  store i64 %176, ptr %177, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %24, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %.0464530.us.us.us, i64 noundef %.0465531.us.us.us, i64 noundef %.0466566.us.us)
          to label %178 unwind label %.split561.us.split.us.split.us

178:                                              ; preds = %153
  %179 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %180 unwind label %.split561.us.split.us.split.us

180:                                              ; preds = %178
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %25, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %100, i64 noundef %93, i64 noundef %92)
          to label %181 unwind label %.split564.us.split.us.split.us

181:                                              ; preds = %180
  %182 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %88, ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %183 unwind label %.split564.us.split.us.split.us

183:                                              ; preds = %181
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #5
  invoke void @_ZN3jetL10singleCubeERKSt5arrayIdLm8EERKS0_ImLm12EERKS0_INS_6VectorIdLm3EEELm8EERKNS_11BoundingBoxIdLm3EEEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(64) %12, ptr noundef nonnull align 8 dereferenceable(96) %13, ptr noundef nonnull align 8 dereferenceable(192) %14, ptr noundef nonnull align 8 dereferenceable(48) %15, ptr noundef nonnull %8, ptr noundef %3, double noundef %4)
          to label %184 unwind label %.split534.us.split.us.split.us

184:                                              ; preds = %183
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %12) #5
  %exitcond.not = icmp eq i64 %.0464530.us.us.us, %90
  br i1 %exitcond.not, label %._crit_edge.us.us.us, label %94, !llvm.loop !15

._crit_edge.us.us.us:                             ; preds = %184
  %exitcond720.not = icmp eq i64 %.0465531.us.us.us, %91
  br i1 %exitcond720.not, label %._crit_edge532.split.us.us.us, label %.preheader515.us.us.us, !llvm.loop !17

._crit_edge532.split.us.us.us:                    ; preds = %._crit_edge.us.us.us
  %exitcond721.not = icmp eq i64 %92, %85
  br i1 %exitcond721.not, label %._crit_edge, label %.preheader516.us.us, !llvm.loop !18

.split.us.split.us.split.us:                      ; preds = %94
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %203

.split534.us.split.us.split.us:                   ; preds = %183, %95
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %202

.split537.us.split.us.split.us:                   ; preds = %122, %96
  %187 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #5
  br label %202

.split540.us.split.us.split.us:                   ; preds = %126, %125
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #5
  br label %202

.split543.us.split.us.split.us:                   ; preds = %130, %129
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #5
  br label %202

.split546.us.split.us.split.us:                   ; preds = %134, %133
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #5
  br label %202

.split549.us.split.us.split.us:                   ; preds = %138, %137
  %191 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #5
  br label %202

.split552.us.split.us.split.us:                   ; preds = %142, %141
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #5
  br label %202

.split555.us.split.us.split.us:                   ; preds = %146, %145
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #5
  br label %202

.split558.us.split.us.split.us:                   ; preds = %150, %149
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #5
  br label %202

.split561.us.split.us.split.us:                   ; preds = %178, %153
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #5
  br label %202

.split564.us.split.us.split.us:                   ; preds = %181, %180
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #5
  br label %202

._crit_edge:                                      ; preds = %._crit_edge532.split.us.us.us, %.preheader516.lr.ph, %78
  %197 = and i32 %5, 48
  %.not = icmp eq i32 %197, 0
  br i1 %.not, label %329, label %204

198:                                              ; preds = %7
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %584

200:                                              ; preds = %77
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %583

202:                                              ; preds = %.split564.us.split.us.split.us, %.split561.us.split.us.split.us, %.split558.us.split.us.split.us, %.split555.us.split.us.split.us, %.split552.us.split.us.split.us, %.split549.us.split.us.split.us, %.split546.us.split.us.split.us, %.split543.us.split.us.split.us, %.split540.us.split.us.split.us, %.split537.us.split.us.split.us, %.split534.us.split.us.split.us
  %.pn507 = phi { ptr, i32 } [ %186, %.split534.us.split.us.split.us ], [ %196, %.split564.us.split.us.split.us ], [ %195, %.split561.us.split.us.split.us ], [ %194, %.split558.us.split.us.split.us ], [ %193, %.split555.us.split.us.split.us ], [ %192, %.split552.us.split.us.split.us ], [ %191, %.split549.us.split.us.split.us ], [ %190, %.split546.us.split.us.split.us ], [ %189, %.split543.us.split.us.split.us ], [ %188, %.split540.us.split.us.split.us ], [ %187, %.split537.us.split.us.split.us ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %15) #5
  br label %203

203:                                              ; preds = %202, %.split.us.split.us.split.us
  %.pn507.pn = phi { ptr, i32 } [ %.pn507, %202 ], [ %185, %.split.us.split.us.split.us ]
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %12) #5
  br label %582

204:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %26) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %26) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %27) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #5
  %205 = icmp sgt i64 %82, 1
  br i1 %205, label %.preheader514.lr.ph, label %._crit_edge600

.preheader514.lr.ph:                              ; preds = %204
  %206 = icmp sgt i64 %80, 1
  %207 = and i32 %5, 16
  %.not500 = icmp eq i32 %207, 0
  %208 = and i32 %6, 16
  %.not501 = icmp eq i32 %208, 0
  %. = select i1 %.not501, ptr %26, ptr %8
  %209 = add nsw i64 %84, -2
  %210 = and i32 %5, 32
  %.not502 = icmp eq i32 %210, 0
  %211 = and i32 %6, 32
  %.not503 = icmp eq i32 %211, 0
  %.1 = select i1 %.not503, ptr %27, ptr %8
  br i1 %206, label %.preheader514.us.preheader, label %._crit_edge600

.preheader514.us.preheader:                       ; preds = %.preheader514.lr.ph
  %212 = add nsw i64 %80, -2
  %213 = add nsw i64 %82, -2
  br label %.preheader514.us

.preheader514.us:                                 ; preds = %.preheader514.us.preheader, %._crit_edge598.us
  %.0462599.us = phi i64 [ %214, %._crit_edge598.us ], [ 0, %.preheader514.us.preheader ]
  %214 = add nuw nsw i64 %.0462599.us, 1
  br label %215

215:                                              ; preds = %.preheader514.us, %314
  %.0461597.us = phi i64 [ 0, %.preheader514.us ], [ %218, %314 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %30) #5
  invoke void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %30)
          to label %216 unwind label %.split.us601

216:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #5
  call void @_ZN3jet6VectorIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #5
  invoke void @_ZN3jet11BoundingBoxIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %217 unwind label %.split604.us

217:                                              ; preds = %216
  %218 = add nuw nsw i64 %.0461597.us, 1
  %219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %218, i64 noundef %.0462599.us, i64 noundef 0)
  %220 = load double, ptr %219, align 8, !tbaa !12
  %221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %28, i64 noundef 0) #5
  store double %220, ptr %221, align 8, !tbaa !12
  %222 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0)
  %223 = load double, ptr %222, align 8, !tbaa !12
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %28, i64 noundef 1) #5
  store double %223, ptr %224, align 8, !tbaa !12
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0461597.us, i64 noundef %214, i64 noundef 0)
  %226 = load double, ptr %225, align 8, !tbaa !12
  %227 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %28, i64 noundef 2) #5
  store double %226, ptr %227, align 8, !tbaa !12
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %218, i64 noundef %214, i64 noundef 0)
  %229 = load double, ptr %228, align 8, !tbaa !12
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %28, i64 noundef 3) #5
  store double %229, ptr %230, align 8, !tbaa !12
  br i1 %.not500, label %266, label %231

231:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #5
  call void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %33, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -1.000000e+00)
  %232 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(24) %33)
          to label %233 unwind label %.split607.us

233:                                              ; preds = %231
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #5
  %234 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1)
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 0) #5
  store i64 %234, ptr %235, align 8, !tbaa !14
  %236 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 0)
  %237 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 1) #5
  store i64 %236, ptr %237, align 8, !tbaa !14
  %238 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 4)
  %239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 2) #5
  store i64 %238, ptr %239, align 8, !tbaa !14
  %240 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 5)
  %241 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 3) #5
  store i64 %240, ptr %241, align 8, !tbaa !14
  %242 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 0)
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 4) #5
  store i64 %242, ptr %243, align 8, !tbaa !14
  %244 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 8)
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 5) #5
  store i64 %244, ptr %245, align 8, !tbaa !14
  %246 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 4)
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 6) #5
  store i64 %246, ptr %247, align 8, !tbaa !14
  %248 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 9)
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 7) #5
  store i64 %248, ptr %249, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %34, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %218, i64 noundef %.0462599.us, i64 noundef 0)
          to label %250 unwind label %.split610.us

250:                                              ; preds = %233
  %251 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %30, i64 noundef 0) #5
  %252 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %251, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %253 unwind label %.split610.us

253:                                              ; preds = %250
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %35, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef 0)
          to label %254 unwind label %.split613.us

254:                                              ; preds = %253
  %255 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %30, i64 noundef 1) #5
  %256 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %255, ptr noundef nonnull align 8 dereferenceable(24) %35)
          to label %257 unwind label %.split613.us

257:                                              ; preds = %254
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %36, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %.0461597.us, i64 noundef %214, i64 noundef 0)
          to label %258 unwind label %.split616.us

258:                                              ; preds = %257
  %259 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %30, i64 noundef 2) #5
  %260 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %259, ptr noundef nonnull align 8 dereferenceable(24) %36)
          to label %261 unwind label %.split616.us

261:                                              ; preds = %258
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %37, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %218, i64 noundef %214, i64 noundef 0)
          to label %262 unwind label %.split619.us

262:                                              ; preds = %261
  %263 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %30, i64 noundef 3) #5
  %264 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %263, ptr noundef nonnull align 8 dereferenceable(24) %37)
          to label %265 unwind label %.split619.us

265:                                              ; preds = %262
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #5
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(64) %29, ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(96) %30, ptr noundef nonnull %., ptr noundef %3, double noundef %4)
          to label %266 unwind label %.split604.us

266:                                              ; preds = %265, %217
  %267 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %85)
  %268 = load double, ptr %267, align 8, !tbaa !12
  %269 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %28, i64 noundef 0) #5
  store double %268, ptr %269, align 8, !tbaa !12
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %218, i64 noundef %.0462599.us, i64 noundef %85)
  %271 = load double, ptr %270, align 8, !tbaa !12
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %28, i64 noundef 1) #5
  store double %271, ptr %272, align 8, !tbaa !12
  %273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %218, i64 noundef %214, i64 noundef %85)
  %274 = load double, ptr %273, align 8, !tbaa !12
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %28, i64 noundef 2) #5
  store double %274, ptr %275, align 8, !tbaa !12
  %276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0461597.us, i64 noundef %214, i64 noundef %85)
  %277 = load double, ptr %276, align 8, !tbaa !12
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %28, i64 noundef 3) #5
  store double %277, ptr %278, align 8, !tbaa !12
  br i1 %.not502, label %314, label %279

279:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) #5
  call void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %38, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.000000e+00)
  %280 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(24) %38)
          to label %281 unwind label %.split622.us

281:                                              ; preds = %279
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #5
  %282 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %209, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 3)
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 0) #5
  store i64 %282, ptr %283, align 8, !tbaa !14
  %284 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %209, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 2)
  %285 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 1) #5
  store i64 %284, ptr %285, align 8, !tbaa !14
  %286 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %209, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 6)
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 2) #5
  store i64 %286, ptr %287, align 8, !tbaa !14
  %288 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %209, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 7)
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 3) #5
  store i64 %288, ptr %289, align 8, !tbaa !14
  %290 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %209, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 2)
  %291 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 4) #5
  store i64 %290, ptr %291, align 8, !tbaa !14
  %292 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %209, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 10)
  %293 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 5) #5
  store i64 %292, ptr %293, align 8, !tbaa !14
  %294 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %209, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 6)
  %295 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 6) #5
  store i64 %294, ptr %295, align 8, !tbaa !14
  %296 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %209, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 11)
  %297 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %29, i64 noundef 7) #5
  store i64 %296, ptr %297, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %39) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %39, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %.0461597.us, i64 noundef %.0462599.us, i64 noundef %85)
          to label %298 unwind label %.split625.us

298:                                              ; preds = %281
  %299 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %30, i64 noundef 0) #5
  %300 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %299, ptr noundef nonnull align 8 dereferenceable(24) %39)
          to label %301 unwind label %.split625.us

301:                                              ; preds = %298
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %40, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %218, i64 noundef %.0462599.us, i64 noundef %85)
          to label %302 unwind label %.split628.us

302:                                              ; preds = %301
  %303 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %30, i64 noundef 1) #5
  %304 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %303, ptr noundef nonnull align 8 dereferenceable(24) %40)
          to label %305 unwind label %.split628.us

305:                                              ; preds = %302
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %41) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %41, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %218, i64 noundef %214, i64 noundef %85)
          to label %306 unwind label %.split631.us

306:                                              ; preds = %305
  %307 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %30, i64 noundef 2) #5
  %308 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %307, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %309 unwind label %.split631.us

309:                                              ; preds = %306
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %42) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %42, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %.0461597.us, i64 noundef %214, i64 noundef %85)
          to label %310 unwind label %.split634.us

310:                                              ; preds = %309
  %311 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %30, i64 noundef 3) #5
  %312 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %311, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %313 unwind label %.split634.us

313:                                              ; preds = %310
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #5
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(64) %29, ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(96) %30, ptr noundef nonnull %.1, ptr noundef %3, double noundef %4)
          to label %314 unwind label %.split604.us

314:                                              ; preds = %313, %266
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  %exitcond722.not = icmp eq i64 %.0461597.us, %212
  br i1 %exitcond722.not, label %._crit_edge598.us, label %215, !llvm.loop !19

._crit_edge598.us:                                ; preds = %314
  %exitcond723.not = icmp eq i64 %.0462599.us, %213
  br i1 %exitcond723.not, label %._crit_edge600, label %.preheader514.us, !llvm.loop !20

.split.us601:                                     ; preds = %215
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %328

.split604.us:                                     ; preds = %313, %265, %216
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %327

.split607.us:                                     ; preds = %231
  %317 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #5
  br label %327

.split610.us:                                     ; preds = %250, %233
  %318 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #5
  br label %327

.split613.us:                                     ; preds = %254, %253
  %319 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #5
  br label %327

.split616.us:                                     ; preds = %258, %257
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #5
  br label %327

.split619.us:                                     ; preds = %262, %261
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #5
  br label %327

.split622.us:                                     ; preds = %279
  %322 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #5
  br label %327

.split625.us:                                     ; preds = %298, %281
  %323 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %39) #5
  br label %327

.split628.us:                                     ; preds = %302, %301
  %324 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #5
  br label %327

.split631.us:                                     ; preds = %306, %305
  %325 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #5
  br label %327

.split634.us:                                     ; preds = %310, %309
  %326 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #5
  br label %327

._crit_edge600:                                   ; preds = %._crit_edge598.us, %.preheader514.lr.ph, %204
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %27) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %26) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %26) #5
  br label %329

327:                                              ; preds = %.split634.us, %.split631.us, %.split628.us, %.split625.us, %.split622.us, %.split619.us, %.split616.us, %.split613.us, %.split610.us, %.split607.us, %.split604.us
  %.pn504 = phi { ptr, i32 } [ %316, %.split604.us ], [ %326, %.split634.us ], [ %325, %.split631.us ], [ %324, %.split628.us ], [ %323, %.split625.us ], [ %322, %.split622.us ], [ %321, %.split619.us ], [ %320, %.split616.us ], [ %319, %.split613.us ], [ %318, %.split610.us ], [ %317, %.split607.us ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #5
  br label %328

328:                                              ; preds = %327, %.split.us601
  %.pn504.pn = phi { ptr, i32 } [ %.pn504, %327 ], [ %315, %.split.us601 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %27) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %26) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %26) #5
  br label %582

329:                                              ; preds = %._crit_edge600, %._crit_edge
  %330 = and i32 %5, 3
  %.not485 = icmp eq i32 %330, 0
  br i1 %.not485, label %455, label %331

331:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %43) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %43) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %44) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %44) #5
  br i1 %86, label %.preheader513.lr.ph, label %._crit_edge639

.preheader513.lr.ph:                              ; preds = %331
  %332 = icmp sgt i64 %82, 1
  %333 = and i32 %5, 1
  %.not493 = icmp eq i32 %333, 0
  %334 = and i32 %6, 1
  %.not494 = icmp eq i32 %334, 0
  %.2 = select i1 %.not494, ptr %43, ptr %8
  %335 = add nsw i64 %80, -2
  %336 = add nsw i64 %80, -1
  %337 = and i32 %5, 2
  %.not495 = icmp eq i32 %337, 0
  %338 = and i32 %6, 2
  %.not496 = icmp eq i32 %338, 0
  %.3 = select i1 %.not496, ptr %44, ptr %8
  br i1 %332, label %.preheader513.us.preheader, label %._crit_edge639

.preheader513.us.preheader:                       ; preds = %.preheader513.lr.ph
  %339 = add nsw i64 %82, -2
  br label %.preheader513.us

.preheader513.us:                                 ; preds = %.preheader513.us.preheader, %._crit_edge637.us
  %.0460638.us = phi i64 [ %340, %._crit_edge637.us ], [ 0, %.preheader513.us.preheader ]
  %340 = add nuw nsw i64 %.0460638.us, 1
  br label %341

341:                                              ; preds = %.preheader513.us, %440
  %.0459636.us = phi i64 [ 0, %.preheader513.us ], [ %350, %440 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %46) #5
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %47) #5
  invoke void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %47)
          to label %342 unwind label %.split.us640

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %48) #5
  call void @_ZN3jet6VectorIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #5
  invoke void @_ZN3jet11BoundingBoxIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %343 unwind label %.split643.us

343:                                              ; preds = %342
  %344 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us)
  %345 = load double, ptr %344, align 8, !tbaa !12
  %346 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %45, i64 noundef 0) #5
  store double %345, ptr %346, align 8, !tbaa !12
  %347 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %340)
  %348 = load double, ptr %347, align 8, !tbaa !12
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %45, i64 noundef 1) #5
  store double %348, ptr %349, align 8, !tbaa !12
  %350 = add nuw nsw i64 %.0459636.us, 1
  %351 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 0, i64 noundef %350, i64 noundef %340)
  %352 = load double, ptr %351, align 8, !tbaa !12
  %353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %45, i64 noundef 2) #5
  store double %352, ptr %353, align 8, !tbaa !12
  %354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 0, i64 noundef %350, i64 noundef %.0460638.us)
  %355 = load double, ptr %354, align 8, !tbaa !12
  %356 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %45, i64 noundef 3) #5
  store double %355, ptr %356, align 8, !tbaa !12
  br i1 %.not493, label %392, label %357

357:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %50) #5
  call void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %50, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00)
  %358 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef nonnull align 8 dereferenceable(24) %50)
          to label %359 unwind label %.split646.us

359:                                              ; preds = %357
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #5
  %360 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 0)
  %361 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 0) #5
  store i64 %360, ptr %361, align 8, !tbaa !14
  %362 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 3)
  %363 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 1) #5
  store i64 %362, ptr %363, align 8, !tbaa !14
  %364 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 7)
  %365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 2) #5
  store i64 %364, ptr %365, align 8, !tbaa !14
  %366 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 4)
  %367 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 3) #5
  store i64 %366, ptr %367, align 8, !tbaa !14
  %368 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 3)
  %369 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 4) #5
  store i64 %368, ptr %369, align 8, !tbaa !14
  %370 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 11)
  %371 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 5) #5
  store i64 %370, ptr %371, align 8, !tbaa !14
  %372 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 7)
  %373 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 6) #5
  store i64 %372, ptr %373, align 8, !tbaa !14
  %374 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 8)
  %375 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 7) #5
  store i64 %374, ptr %375, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %51) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %51, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %.0460638.us)
          to label %376 unwind label %.split649.us

376:                                              ; preds = %359
  %377 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %47, i64 noundef 0) #5
  %378 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %377, ptr noundef nonnull align 8 dereferenceable(24) %51)
          to label %379 unwind label %.split649.us

379:                                              ; preds = %376
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %52) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %52, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef 0, i64 noundef %.0459636.us, i64 noundef %340)
          to label %380 unwind label %.split652.us

380:                                              ; preds = %379
  %381 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %47, i64 noundef 1) #5
  %382 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %381, ptr noundef nonnull align 8 dereferenceable(24) %52)
          to label %383 unwind label %.split652.us

383:                                              ; preds = %380
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %53) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %53, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef 0, i64 noundef %350, i64 noundef %340)
          to label %384 unwind label %.split655.us

384:                                              ; preds = %383
  %385 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %47, i64 noundef 2) #5
  %386 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %385, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %387 unwind label %.split655.us

387:                                              ; preds = %384
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %54) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %54, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef 0, i64 noundef %350, i64 noundef %.0460638.us)
          to label %388 unwind label %.split658.us

388:                                              ; preds = %387
  %389 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %47, i64 noundef 3) #5
  %390 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %389, ptr noundef nonnull align 8 dereferenceable(24) %54)
          to label %391 unwind label %.split658.us

391:                                              ; preds = %388
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %54) #5
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(64) %46, ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef nonnull align 8 dereferenceable(96) %47, ptr noundef nonnull %.2, ptr noundef %3, double noundef %4)
          to label %392 unwind label %.split643.us

392:                                              ; preds = %391, %343
  %393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %336, i64 noundef %.0459636.us, i64 noundef %340)
  %394 = load double, ptr %393, align 8, !tbaa !12
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %45, i64 noundef 0) #5
  store double %394, ptr %395, align 8, !tbaa !12
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %336, i64 noundef %.0459636.us, i64 noundef %.0460638.us)
  %397 = load double, ptr %396, align 8, !tbaa !12
  %398 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %45, i64 noundef 1) #5
  store double %397, ptr %398, align 8, !tbaa !12
  %399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %336, i64 noundef %350, i64 noundef %.0460638.us)
  %400 = load double, ptr %399, align 8, !tbaa !12
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %45, i64 noundef 2) #5
  store double %400, ptr %401, align 8, !tbaa !12
  %402 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %336, i64 noundef %350, i64 noundef %340)
  %403 = load double, ptr %402, align 8, !tbaa !12
  %404 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %45, i64 noundef 3) #5
  store double %403, ptr %404, align 8, !tbaa !12
  br i1 %.not495, label %440, label %405

405:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55) #5
  call void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %55, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00)
  %406 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef nonnull align 8 dereferenceable(24) %55)
          to label %407 unwind label %.split661.us

407:                                              ; preds = %405
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #5
  %408 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %335, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 2)
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 0) #5
  store i64 %408, ptr %409, align 8, !tbaa !14
  %410 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %335, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1)
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 1) #5
  store i64 %410, ptr %411, align 8, !tbaa !14
  %412 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %335, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 5)
  %413 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 2) #5
  store i64 %412, ptr %413, align 8, !tbaa !14
  %414 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %335, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 6)
  %415 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 3) #5
  store i64 %414, ptr %415, align 8, !tbaa !14
  %416 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %335, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1)
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 4) #5
  store i64 %416, ptr %417, align 8, !tbaa !14
  %418 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %335, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 9)
  %419 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 5) #5
  store i64 %418, ptr %419, align 8, !tbaa !14
  %420 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %335, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 5)
  %421 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 6) #5
  store i64 %420, ptr %421, align 8, !tbaa !14
  %422 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %335, i64 noundef %.0459636.us, i64 noundef %.0460638.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 10)
  %423 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %46, i64 noundef 7) #5
  store i64 %422, ptr %423, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %56) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %56, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %336, i64 noundef %.0459636.us, i64 noundef %340)
          to label %424 unwind label %.split664.us

424:                                              ; preds = %407
  %425 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %47, i64 noundef 0) #5
  %426 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %425, ptr noundef nonnull align 8 dereferenceable(24) %56)
          to label %427 unwind label %.split664.us

427:                                              ; preds = %424
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %57) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %57, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %336, i64 noundef %.0459636.us, i64 noundef %.0460638.us)
          to label %428 unwind label %.split667.us

428:                                              ; preds = %427
  %429 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %47, i64 noundef 1) #5
  %430 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %429, ptr noundef nonnull align 8 dereferenceable(24) %57)
          to label %431 unwind label %.split667.us

431:                                              ; preds = %428
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %58) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %58, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %336, i64 noundef %350, i64 noundef %.0460638.us)
          to label %432 unwind label %.split670.us

432:                                              ; preds = %431
  %433 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %47, i64 noundef 2) #5
  %434 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %433, ptr noundef nonnull align 8 dereferenceable(24) %58)
          to label %435 unwind label %.split670.us

435:                                              ; preds = %432
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %59) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %59, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %336, i64 noundef %350, i64 noundef %340)
          to label %436 unwind label %.split673.us

436:                                              ; preds = %435
  %437 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %47, i64 noundef 3) #5
  %438 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %437, ptr noundef nonnull align 8 dereferenceable(24) %59)
          to label %439 unwind label %.split673.us

439:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #5
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(64) %46, ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef nonnull align 8 dereferenceable(96) %47, ptr noundef nonnull %.3, ptr noundef %3, double noundef %4)
          to label %440 unwind label %.split643.us

440:                                              ; preds = %439, %392
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #5
  %exitcond724.not = icmp eq i64 %.0459636.us, %339
  br i1 %exitcond724.not, label %._crit_edge637.us, label %341, !llvm.loop !21

._crit_edge637.us:                                ; preds = %440
  %exitcond725.not = icmp eq i64 %340, %85
  br i1 %exitcond725.not, label %._crit_edge639, label %.preheader513.us, !llvm.loop !22

.split.us640:                                     ; preds = %341
  %441 = landingpad { ptr, i32 }
          cleanup
  br label %454

.split643.us:                                     ; preds = %439, %391, %342
  %442 = landingpad { ptr, i32 }
          cleanup
  br label %453

.split646.us:                                     ; preds = %357
  %443 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #5
  br label %453

.split649.us:                                     ; preds = %376, %359
  %444 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #5
  br label %453

.split652.us:                                     ; preds = %380, %379
  %445 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #5
  br label %453

.split655.us:                                     ; preds = %384, %383
  %446 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #5
  br label %453

.split658.us:                                     ; preds = %388, %387
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %54) #5
  br label %453

.split661.us:                                     ; preds = %405
  %448 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #5
  br label %453

.split664.us:                                     ; preds = %424, %407
  %449 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #5
  br label %453

.split667.us:                                     ; preds = %428, %427
  %450 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #5
  br label %453

.split670.us:                                     ; preds = %432, %431
  %451 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #5
  br label %453

.split673.us:                                     ; preds = %436, %435
  %452 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #5
  br label %453

._crit_edge639:                                   ; preds = %._crit_edge637.us, %.preheader513.lr.ph, %331
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %44) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %44) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %43) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %43) #5
  br label %455

453:                                              ; preds = %.split673.us, %.split670.us, %.split667.us, %.split664.us, %.split661.us, %.split658.us, %.split655.us, %.split652.us, %.split649.us, %.split646.us, %.split643.us
  %.pn497 = phi { ptr, i32 } [ %442, %.split643.us ], [ %452, %.split673.us ], [ %451, %.split670.us ], [ %450, %.split667.us ], [ %449, %.split664.us ], [ %448, %.split661.us ], [ %447, %.split658.us ], [ %446, %.split655.us ], [ %445, %.split652.us ], [ %444, %.split649.us ], [ %443, %.split646.us ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %48) #5
  br label %454

454:                                              ; preds = %453, %.split.us640
  %.pn497.pn = phi { ptr, i32 } [ %.pn497, %453 ], [ %441, %.split.us640 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %44) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %44) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %43) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %43) #5
  br label %582

455:                                              ; preds = %._crit_edge639, %329
  %456 = and i32 %5, 12
  %.not486 = icmp eq i32 %456, 0
  br i1 %.not486, label %581, label %457

457:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %60) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %60) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %61) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %61) #5
  br i1 %86, label %.preheader.lr.ph, label %._crit_edge678

.preheader.lr.ph:                                 ; preds = %457
  %458 = icmp sgt i64 %80, 1
  %459 = and i32 %5, 4
  %.not487 = icmp eq i32 %459, 0
  %460 = and i32 %6, 4
  %.not488 = icmp eq i32 %460, 0
  %.4 = select i1 %.not488, ptr %60, ptr %8
  %461 = add nsw i64 %82, -2
  %462 = add nsw i64 %82, -1
  %463 = and i32 %5, 8
  %.not489 = icmp eq i32 %463, 0
  %464 = and i32 %6, 8
  %.not490 = icmp eq i32 %464, 0
  %.5 = select i1 %.not490, ptr %61, ptr %8
  br i1 %458, label %.preheader.us.preheader, label %._crit_edge678

.preheader.us.preheader:                          ; preds = %.preheader.lr.ph
  %465 = add nsw i64 %80, -2
  br label %.preheader.us

.preheader.us:                                    ; preds = %.preheader.us.preheader, %._crit_edge676.us
  %.0458677.us = phi i64 [ %466, %._crit_edge676.us ], [ 0, %.preheader.us.preheader ]
  %466 = add nuw nsw i64 %.0458677.us, 1
  br label %467

467:                                              ; preds = %.preheader.us, %566
  %.0675.us = phi i64 [ 0, %.preheader.us ], [ %473, %566 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %63) #5
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %64) #5
  invoke void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %64)
          to label %468 unwind label %.split.us679

468:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %65) #5
  call void @_ZN3jet6VectorIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #5
  invoke void @_ZN3jet11BoundingBoxIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %469 unwind label %.split682.us

469:                                              ; preds = %468
  %470 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us)
  %471 = load double, ptr %470, align 8, !tbaa !12
  %472 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %62, i64 noundef 0) #5
  store double %471, ptr %472, align 8, !tbaa !12
  %473 = add nuw nsw i64 %.0675.us, 1
  %474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %473, i64 noundef 0, i64 noundef %.0458677.us)
  %475 = load double, ptr %474, align 8, !tbaa !12
  %476 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %62, i64 noundef 1) #5
  store double %475, ptr %476, align 8, !tbaa !12
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %473, i64 noundef 0, i64 noundef %466)
  %478 = load double, ptr %477, align 8, !tbaa !12
  %479 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %62, i64 noundef 2) #5
  store double %478, ptr %479, align 8, !tbaa !12
  %480 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0675.us, i64 noundef 0, i64 noundef %466)
  %481 = load double, ptr %480, align 8, !tbaa !12
  %482 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %62, i64 noundef 3) #5
  store double %481, ptr %482, align 8, !tbaa !12
  br i1 %.not487, label %518, label %483

483:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %67) #5
  call void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %67, double noundef 0.000000e+00, double noundef -1.000000e+00, double noundef 0.000000e+00)
  %484 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %67)
          to label %485 unwind label %.split685.us

485:                                              ; preds = %483
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %67) #5
  %486 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 0)
  %487 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 0) #5
  store i64 %486, ptr %487, align 8, !tbaa !14
  %488 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1)
  %489 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 1) #5
  store i64 %488, ptr %489, align 8, !tbaa !14
  %490 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 2)
  %491 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 2) #5
  store i64 %490, ptr %491, align 8, !tbaa !14
  %492 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 3)
  %493 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 3) #5
  store i64 %492, ptr %493, align 8, !tbaa !14
  %494 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 0)
  %495 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 4) #5
  store i64 %494, ptr %495, align 8, !tbaa !14
  %496 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1)
  %497 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 5) #5
  store i64 %496, ptr %497, align 8, !tbaa !14
  %498 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 2)
  %499 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 6) #5
  store i64 %498, ptr %499, align 8, !tbaa !14
  %500 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 3)
  %501 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 7) #5
  store i64 %500, ptr %501, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %68) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %68, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %.0675.us, i64 noundef 0, i64 noundef %.0458677.us)
          to label %502 unwind label %.split688.us

502:                                              ; preds = %485
  %503 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %64, i64 noundef 0) #5
  %504 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %503, ptr noundef nonnull align 8 dereferenceable(24) %68)
          to label %505 unwind label %.split688.us

505:                                              ; preds = %502
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %69) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %69, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %473, i64 noundef 0, i64 noundef %.0458677.us)
          to label %506 unwind label %.split691.us

506:                                              ; preds = %505
  %507 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %64, i64 noundef 1) #5
  %508 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %507, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %509 unwind label %.split691.us

509:                                              ; preds = %506
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %69) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %70) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %70, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %473, i64 noundef 0, i64 noundef %466)
          to label %510 unwind label %.split694.us

510:                                              ; preds = %509
  %511 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %64, i64 noundef 2) #5
  %512 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %511, ptr noundef nonnull align 8 dereferenceable(24) %70)
          to label %513 unwind label %.split694.us

513:                                              ; preds = %510
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %70) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %71) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %71, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %.0675.us, i64 noundef 0, i64 noundef %466)
          to label %514 unwind label %.split697.us

514:                                              ; preds = %513
  %515 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %64, i64 noundef 3) #5
  %516 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %515, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %517 unwind label %.split697.us

517:                                              ; preds = %514
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %71) #5
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(64) %63, ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(96) %64, ptr noundef nonnull %.4, ptr noundef %3, double noundef %4)
          to label %518 unwind label %.split682.us

518:                                              ; preds = %517, %469
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %473, i64 noundef %462, i64 noundef %.0458677.us)
  %520 = load double, ptr %519, align 8, !tbaa !12
  %521 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %62, i64 noundef 0) #5
  store double %520, ptr %521, align 8, !tbaa !12
  %522 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0675.us, i64 noundef %462, i64 noundef %.0458677.us)
  %523 = load double, ptr %522, align 8, !tbaa !12
  %524 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %62, i64 noundef 1) #5
  store double %523, ptr %524, align 8, !tbaa !12
  %525 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.0675.us, i64 noundef %462, i64 noundef %466)
  %526 = load double, ptr %525, align 8, !tbaa !12
  %527 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %62, i64 noundef 2) #5
  store double %526, ptr %527, align 8, !tbaa !12
  %528 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %473, i64 noundef %462, i64 noundef %466)
  %529 = load double, ptr %528, align 8, !tbaa !12
  %530 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %62, i64 noundef 3) #5
  store double %529, ptr %530, align 8, !tbaa !12
  br i1 %.not489, label %566, label %531

531:                                              ; preds = %518
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %72) #5
  call void @_ZN3jet6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %72, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00)
  %532 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %72)
          to label %533 unwind label %.split700.us

533:                                              ; preds = %531
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %72) #5
  %534 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef %461, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 5)
  %535 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 0) #5
  store i64 %534, ptr %535, align 8, !tbaa !14
  %536 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef %461, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 4)
  %537 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 1) #5
  store i64 %536, ptr %537, align 8, !tbaa !14
  %538 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef %461, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 7)
  %539 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 2) #5
  store i64 %538, ptr %539, align 8, !tbaa !14
  %540 = call noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef %461, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 6)
  %541 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 3) #5
  store i64 %540, ptr %541, align 8, !tbaa !14
  %542 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef %461, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 4)
  %543 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 4) #5
  store i64 %542, ptr %543, align 8, !tbaa !14
  %544 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef %461, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 7)
  %545 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 5) #5
  store i64 %544, ptr %545, align 8, !tbaa !14
  %546 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef %461, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 6)
  %547 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 6) #5
  store i64 %546, ptr %547, align 8, !tbaa !14
  %548 = call noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef %.0675.us, i64 noundef %461, i64 noundef %.0458677.us, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 5)
  %549 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %63, i64 noundef 7) #5
  store i64 %548, ptr %549, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %73) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %73, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %473, i64 noundef %462, i64 noundef %.0458677.us)
          to label %550 unwind label %.split703.us

550:                                              ; preds = %533
  %551 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %64, i64 noundef 0) #5
  %552 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %551, ptr noundef nonnull align 8 dereferenceable(24) %73)
          to label %553 unwind label %.split703.us

553:                                              ; preds = %550
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %73) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %74) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %74, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %.0675.us, i64 noundef %462, i64 noundef %.0458677.us)
          to label %554 unwind label %.split706.us

554:                                              ; preds = %553
  %555 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %64, i64 noundef 1) #5
  %556 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %555, ptr noundef nonnull align 8 dereferenceable(24) %74)
          to label %557 unwind label %.split706.us

557:                                              ; preds = %554
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %74) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %75) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %75, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %.0675.us, i64 noundef %462, i64 noundef %466)
          to label %558 unwind label %.split709.us

558:                                              ; preds = %557
  %559 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %64, i64 noundef 2) #5
  %560 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %559, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %561 unwind label %.split709.us

561:                                              ; preds = %558
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %76) #5
  invoke void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.jet::Vector") align 8 %76, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %473, i64 noundef %462, i64 noundef %466)
          to label %562 unwind label %.split712.us

562:                                              ; preds = %561
  %563 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %64, i64 noundef 3) #5
  %564 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %563, ptr noundef nonnull align 8 dereferenceable(24) %76)
          to label %565 unwind label %.split712.us

565:                                              ; preds = %562
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %76) #5
  invoke void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(64) %63, ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(96) %64, ptr noundef nonnull %.5, ptr noundef %3, double noundef %4)
          to label %566 unwind label %.split682.us

566:                                              ; preds = %565, %518
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65) #5
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %64) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %63) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #5
  %exitcond726.not = icmp eq i64 %.0675.us, %465
  br i1 %exitcond726.not, label %._crit_edge676.us, label %467, !llvm.loop !23

._crit_edge676.us:                                ; preds = %566
  %exitcond727.not = icmp eq i64 %466, %85
  br i1 %exitcond727.not, label %._crit_edge678, label %.preheader.us, !llvm.loop !24

.split.us679:                                     ; preds = %467
  %567 = landingpad { ptr, i32 }
          cleanup
  br label %580

.split682.us:                                     ; preds = %565, %517, %468
  %568 = landingpad { ptr, i32 }
          cleanup
  br label %579

.split685.us:                                     ; preds = %483
  %569 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %67) #5
  br label %579

.split688.us:                                     ; preds = %502, %485
  %570 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #5
  br label %579

.split691.us:                                     ; preds = %506, %505
  %571 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %69) #5
  br label %579

.split694.us:                                     ; preds = %510, %509
  %572 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %70) #5
  br label %579

.split697.us:                                     ; preds = %514, %513
  %573 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %71) #5
  br label %579

.split700.us:                                     ; preds = %531
  %574 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %72) #5
  br label %579

.split703.us:                                     ; preds = %550, %533
  %575 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %73) #5
  br label %579

.split706.us:                                     ; preds = %554, %553
  %576 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %74) #5
  br label %579

.split709.us:                                     ; preds = %558, %557
  %577 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #5
  br label %579

.split712.us:                                     ; preds = %562, %561
  %578 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %76) #5
  br label %579

._crit_edge678:                                   ; preds = %._crit_edge676.us, %.preheader.lr.ph, %457
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %61) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %61) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %60) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %60) #5
  br label %581

579:                                              ; preds = %.split712.us, %.split709.us, %.split706.us, %.split703.us, %.split700.us, %.split697.us, %.split694.us, %.split691.us, %.split688.us, %.split685.us, %.split682.us
  %.pn = phi { ptr, i32 } [ %568, %.split682.us ], [ %578, %.split712.us ], [ %577, %.split709.us ], [ %576, %.split706.us ], [ %575, %.split703.us ], [ %574, %.split700.us ], [ %573, %.split697.us ], [ %572, %.split694.us ], [ %571, %.split691.us ], [ %570, %.split688.us ], [ %569, %.split685.us ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65) #5
  br label %580

580:                                              ; preds = %579, %.split.us679
  %.pn.pn = phi { ptr, i32 } [ %.pn, %579 ], [ %567, %.split.us679 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %64) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %63) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %61) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %61) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %60) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %60) #5
  br label %582

581:                                              ; preds = %._crit_edge678, %455
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #5
  ret void

582:                                              ; preds = %580, %454, %328, %203
  %.pn507.pn.pn = phi { ptr, i32 } [ %.pn507.pn, %203 ], [ %.pn504.pn, %328 ], [ %.pn497.pn, %454 ], [ %.pn.pn, %580 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #5
  br label %583

583:                                              ; preds = %582, %200
  %.pn507.pn.pn.pn = phi { ptr, i32 } [ %.pn507.pn.pn, %582 ], [ %201, %200 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #5
  br label %584

584:                                              ; preds = %583, %198
  %.pn507.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn507.pn.pn.pn, %583 ], [ %199, %198 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #5
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #5
  resume { ptr, i32 } %.pn507.pn.pn.pn.pn
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3jet18ConstArrayAccessorIdLm3EE4sizeEv(ptr dead_on_unwind noalias writable sret(%"class.jet::Size3") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3jetdvIdEENS_6VectorIT_Lm3EEES2_RKS3_(ptr dead_on_unwind noalias writable sret(%"class.jet::Vector") align 8, double noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(192)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3jet11BoundingBoxIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3jet18ConstArrayAccessorIdLm3EEclEmmm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3jet4gradERKNS_18ConstArrayAccessorIdLm3EEElllRKNS_6VectorIdLm3EEE(ptr dead_on_unwind noalias writable sret(%"class.jet::Vector") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3jet6VectorIdLm3EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN3jet12globalEdgeIdEmmmRKNS_5Size3Em(i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN3jet13marchingCubesERKNS_18ConstArrayAccessorIdLm3EEERKNS_6VectorIdLm3EEES7_PNS_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind noalias writable sret(%"class.jet::Vector") align 8, ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN3jetL10singleCubeERKSt5arrayIdLm8EERKS0_ImLm12EERKS0_INS_6VectorIdLm3EEELm8EERKNS_11BoundingBoxIdLm3EEEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, ptr noundef, double noundef) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3jet11BoundingBoxIdLm2EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN3jet14globalVertexIdEmmmRKNS_5Size3Em(i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3jet6VectorIdLm3EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN3jetL12singleSquareERKSt5arrayIdLm4EERKS0_ImLm8EERKNS_6VectorIdLm3EEERKS0_IS8_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, ptr noundef, double noundef) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #4 align 2

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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { 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 #5 = { nounwind }

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

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


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass