; LLVM IR from yangfengzzz/DigitalVox3 :: vox.geometry (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.vox::geometry::Matrix.2" = type { double, double, double }
%"class.vox::geometry::ScalarMatrixElemWiseBinaryOp" = type <{ double, ptr, [8 x i8] }>
%class.anon = type { %"class.vox::geometry::Matrix.2", %"class.vox::geometry::Matrix.2" }
%"struct.std::array" = type { [8 x double] }
%"struct.std::array.6" = type { [12 x i64] }
%"struct.std::array.7" = type { [8 x %"class.vox::geometry::Matrix.2"] }
%"class.vox::geometry::BoundingBox" = type { %"class.vox::geometry::Matrix.2", %"class.vox::geometry::Matrix.2" }
%"struct.std::array.8" = type { [4 x double] }
%"struct.std::array.9" = type { [8 x i64] }
%"struct.std::array.10" = type { [4 x %"class.vox::geometry::Matrix.2"] }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.vox::geometry::Matrix" = type { i64, i64, i64 }

@constinit = external hidden constant [3 x double], align 8
@constinit.1 = external hidden constant [3 x double], align 8
@constinit.2 = external hidden constant [3 x double], align 8
@constinit.3 = external hidden constant [3 x double], align 8
@constinit.4 = external hidden constant [3 x double], align 8
@constinit.5 = external hidden constant [3 x double], align 8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3Edii(ptr noundef nonnull align 8 dereferenceable(40) %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 ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.vox::geometry::Matrix.2", align 8
  %20 = alloca %"class.vox::geometry::ScalarMatrixElemWiseBinaryOp", align 8
  %21 = alloca double, align 8
  %22 = alloca %class.anon, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i32, align 4
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca %"struct.std::array", align 8
  %31 = alloca %"struct.std::array.6", align 8
  %32 = alloca %"struct.std::array.7", align 8
  %33 = alloca %"class.vox::geometry::BoundingBox", align 8
  %34 = alloca %"class.vox::geometry::Matrix.2", align 8
  %35 = alloca %"class.vox::geometry::Matrix.2", align 8
  %36 = alloca %"class.vox::geometry::Matrix.2", align 8
  %37 = alloca %"class.vox::geometry::Matrix.2", align 8
  %38 = alloca %"class.vox::geometry::Matrix.2", align 8
  %39 = alloca %"class.vox::geometry::Matrix.2", align 8
  %40 = alloca %"class.vox::geometry::Matrix.2", align 8
  %41 = alloca %"class.vox::geometry::Matrix.2", align 8
  %42 = alloca i32, align 4
  %43 = alloca %"class.vox::geometry::Matrix.2", align 8
  %44 = alloca %"class.vox::geometry::Matrix.2", align 8
  %45 = alloca %"class.std::unordered_map", align 8
  %46 = alloca %"class.std::unordered_map", align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca %"struct.std::array.8", align 8
  %51 = alloca %"struct.std::array.9", align 8
  %52 = alloca %"struct.std::array.10", align 8
  %53 = alloca %"class.vox::geometry::Matrix.2", align 8
  %54 = alloca %"class.vox::geometry::Matrix.2", align 8
  %55 = alloca %"class.std::initializer_list", align 8
  %56 = alloca [3 x double], align 8
  %57 = alloca %"class.vox::geometry::Matrix.2", align 8
  %58 = alloca %"class.vox::geometry::Matrix.2", align 8
  %59 = alloca %"class.vox::geometry::Matrix.2", align 8
  %60 = alloca %"class.vox::geometry::Matrix.2", align 8
  %61 = alloca %"class.vox::geometry::Matrix.2", align 8
  %62 = alloca %"class.std::initializer_list", align 8
  %63 = alloca [3 x double], align 8
  %64 = alloca %"class.vox::geometry::Matrix.2", align 8
  %65 = alloca %"class.vox::geometry::Matrix.2", align 8
  %66 = alloca %"class.vox::geometry::Matrix.2", align 8
  %67 = alloca %"class.vox::geometry::Matrix.2", align 8
  %68 = alloca %"class.std::unordered_map", align 8
  %69 = alloca %"class.std::unordered_map", align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca %"struct.std::array.8", align 8
  %74 = alloca %"struct.std::array.9", align 8
  %75 = alloca %"struct.std::array.10", align 8
  %76 = alloca %"class.vox::geometry::Matrix.2", align 8
  %77 = alloca %"class.vox::geometry::Matrix.2", align 8
  %78 = alloca %"class.std::initializer_list", align 8
  %79 = alloca [3 x double], align 8
  %80 = alloca %"class.vox::geometry::Matrix.2", align 8
  %81 = alloca %"class.vox::geometry::Matrix.2", align 8
  %82 = alloca %"class.vox::geometry::Matrix.2", align 8
  %83 = alloca %"class.vox::geometry::Matrix.2", align 8
  %84 = alloca %"class.vox::geometry::Matrix.2", align 8
  %85 = alloca %"class.std::initializer_list", align 8
  %86 = alloca [3 x double], align 8
  %87 = alloca %"class.vox::geometry::Matrix.2", align 8
  %88 = alloca %"class.vox::geometry::Matrix.2", align 8
  %89 = alloca %"class.vox::geometry::Matrix.2", align 8
  %90 = alloca %"class.vox::geometry::Matrix.2", align 8
  %91 = alloca %"class.std::unordered_map", align 8
  %92 = alloca %"class.std::unordered_map", align 8
  %93 = alloca i64, align 8
  %94 = alloca i64, align 8
  %95 = alloca i64, align 8
  %96 = alloca %"struct.std::array.8", align 8
  %97 = alloca %"struct.std::array.9", align 8
  %98 = alloca %"struct.std::array.10", align 8
  %99 = alloca %"class.vox::geometry::Matrix.2", align 8
  %100 = alloca %"class.vox::geometry::Matrix.2", align 8
  %101 = alloca %"class.std::initializer_list", align 8
  %102 = alloca [3 x double], align 8
  %103 = alloca %"class.vox::geometry::Matrix.2", align 8
  %104 = alloca %"class.vox::geometry::Matrix.2", align 8
  %105 = alloca %"class.vox::geometry::Matrix.2", align 8
  %106 = alloca %"class.vox::geometry::Matrix.2", align 8
  %107 = alloca %"class.vox::geometry::Matrix.2", align 8
  %108 = alloca %"class.std::initializer_list", align 8
  %109 = alloca [3 x double], align 8
  %110 = alloca %"class.vox::geometry::Matrix.2", align 8
  %111 = alloca %"class.vox::geometry::Matrix.2", align 8
  %112 = alloca %"class.vox::geometry::Matrix.2", align 8
  %113 = alloca %"class.vox::geometry::Matrix.2", 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) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %114 = load ptr, ptr %8, align 8, !tbaa !5
  %115 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %114)
          to label %116 unwind label %141

116:                                              ; preds = %7
  store ptr %115, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  store double 1.000000e+00, ptr %21, align 8, !tbaa !9
  %117 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN3vox8geometrydvIdLm3ELm1ENS0_6MatrixIdLm3ELm1EEEEEDaRKT_RKNS0_16MatrixExpressionIS4_XT0_EXT1_ET2_EE(ptr dead_on_unwind writable sret(%"class.vox::geometry::ScalarMatrixElemWiseBinaryOp") align 8 %20, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %118 unwind label %145

118:                                              ; preds = %116
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ILm3ELm1ENS0_28ScalarMatrixElemWiseBinaryOpIdLm3ELm1ERKS2_St7dividesIdEEEEERKNS0_16MatrixExpressionIdXT_EXT0_ET1_EE(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %119 unwind label %145

119:                                              ; preds = %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr %22) #7
  %120 = getelementptr inbounds %class.anon, ptr %22, i32 0, i32 0
  %121 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %120, ptr noundef nonnull align 8 dereferenceable(24) %121)
          to label %122 unwind label %149

122:                                              ; preds = %119
  %123 = getelementptr inbounds %class.anon, ptr %22, i32 0, i32 1
  %124 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 8 dereferenceable(24) %124)
          to label %125 unwind label %149

125:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %126 = load ptr, ptr %16, align 8, !tbaa !5
  %127 = getelementptr inbounds %"class.vox::geometry::Matrix", ptr %126, i32 0, i32 0
  %128 = load i64, ptr %127, align 8, !tbaa !13
  store i64 %128, ptr %23, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %129 = load ptr, ptr %16, align 8, !tbaa !5
  %130 = getelementptr inbounds %"class.vox::geometry::Matrix", ptr %129, i32 0, i32 1
  %131 = load i64, ptr %130, align 8, !tbaa !17
  store i64 %131, ptr %24, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %132 = load ptr, ptr %16, align 8, !tbaa !5
  %133 = getelementptr inbounds %"class.vox::geometry::Matrix", ptr %132, i32 0, i32 2
  %134 = load i64, ptr %133, align 8, !tbaa !18
  store i64 %134, ptr %25, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  store i64 0, ptr %26, align 8, !tbaa !16
  br label %135

135:                                              ; preds = %404, %125
  %136 = load i64, ptr %26, align 8, !tbaa !16
  %137 = load i64, ptr %25, align 8, !tbaa !16
  %138 = sub nsw i64 %137, 1
  %139 = icmp slt i64 %136, %138
  br i1 %139, label %153, label %140

140:                                              ; preds = %135
  store i32 2, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %407

141:                                              ; preds = %7
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %17, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %18, align 4
  br label %1482

145:                                              ; preds = %118, %116
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %17, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #7
  br label %1481

149:                                              ; preds = %122, %119
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %17, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %18, align 4
  br label %1480

153:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  store i64 0, ptr %28, align 8, !tbaa !16
  br label %154

154:                                              ; preds = %400, %153
  %155 = load i64, ptr %28, align 8, !tbaa !16
  %156 = load i64, ptr %24, align 8, !tbaa !16
  %157 = sub nsw i64 %156, 1
  %158 = icmp slt i64 %155, %157
  br i1 %158, label %160, label %159

159:                                              ; preds = %154
  store i32 5, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %403

160:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  store i64 0, ptr %29, align 8, !tbaa !16
  br label %161

161:                                              ; preds = %386, %160
  %162 = load i64, ptr %29, align 8, !tbaa !16
  %163 = load i64, ptr %23, align 8, !tbaa !16
  %164 = sub nsw i64 %163, 1
  %165 = icmp slt i64 %162, %164
  br i1 %165, label %167, label %166

166:                                              ; preds = %161
  store i32 8, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  br label %399

167:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 64, ptr %30) #7
  call void @llvm.memset.p0.i64(ptr align 8 %30, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 96, ptr %31) #7
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 96, i1 false)
  call void @llvm.lifetime.start.p0(i64 192, ptr %32) #7
  invoke void @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(192) %32)
          to label %168 unwind label %310

168:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 48, ptr %33) #7
  invoke void @_ZN3vox8geometry11BoundingBoxIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33)
          to label %169 unwind label %314

169:                                              ; preds = %168
  %170 = load ptr, ptr %8, align 8, !tbaa !5
  %171 = load i64, ptr %29, align 8, !tbaa !16
  %172 = load i64, ptr %28, align 8, !tbaa !16
  %173 = load i64, ptr %26, align 8, !tbaa !16
  %174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %170, i64 noundef %171, i64 noundef %172, i64 noundef %173)
          to label %175 unwind label %314

175:                                              ; preds = %169
  %176 = load double, ptr %174, align 8, !tbaa !9
  %177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 0) #7
  store double %176, ptr %177, align 8, !tbaa !9
  %178 = load ptr, ptr %8, align 8, !tbaa !5
  %179 = load i64, ptr %29, align 8, !tbaa !16
  %180 = add nsw i64 %179, 1
  %181 = load i64, ptr %28, align 8, !tbaa !16
  %182 = load i64, ptr %26, align 8, !tbaa !16
  %183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %178, i64 noundef %180, i64 noundef %181, i64 noundef %182)
          to label %184 unwind label %314

184:                                              ; preds = %175
  %185 = load double, ptr %183, align 8, !tbaa !9
  %186 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 1) #7
  store double %185, ptr %186, align 8, !tbaa !9
  %187 = load ptr, ptr %8, align 8, !tbaa !5
  %188 = load i64, ptr %29, align 8, !tbaa !16
  %189 = load i64, ptr %28, align 8, !tbaa !16
  %190 = add nsw i64 %189, 1
  %191 = load i64, ptr %26, align 8, !tbaa !16
  %192 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %187, i64 noundef %188, i64 noundef %190, i64 noundef %191)
          to label %193 unwind label %314

193:                                              ; preds = %184
  %194 = load double, ptr %192, align 8, !tbaa !9
  %195 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 4) #7
  store double %194, ptr %195, align 8, !tbaa !9
  %196 = load ptr, ptr %8, align 8, !tbaa !5
  %197 = load i64, ptr %29, align 8, !tbaa !16
  %198 = add nsw i64 %197, 1
  %199 = load i64, ptr %28, align 8, !tbaa !16
  %200 = add nsw i64 %199, 1
  %201 = load i64, ptr %26, align 8, !tbaa !16
  %202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %196, i64 noundef %198, i64 noundef %200, i64 noundef %201)
          to label %203 unwind label %314

203:                                              ; preds = %193
  %204 = load double, ptr %202, align 8, !tbaa !9
  %205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 5) #7
  store double %204, ptr %205, align 8, !tbaa !9
  %206 = load ptr, ptr %8, align 8, !tbaa !5
  %207 = load i64, ptr %29, align 8, !tbaa !16
  %208 = load i64, ptr %28, align 8, !tbaa !16
  %209 = load i64, ptr %26, align 8, !tbaa !16
  %210 = add nsw i64 %209, 1
  %211 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %206, i64 noundef %207, i64 noundef %208, i64 noundef %210)
          to label %212 unwind label %314

212:                                              ; preds = %203
  %213 = load double, ptr %211, align 8, !tbaa !9
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 3) #7
  store double %213, ptr %214, align 8, !tbaa !9
  %215 = load ptr, ptr %8, align 8, !tbaa !5
  %216 = load i64, ptr %29, align 8, !tbaa !16
  %217 = add nsw i64 %216, 1
  %218 = load i64, ptr %28, align 8, !tbaa !16
  %219 = load i64, ptr %26, align 8, !tbaa !16
  %220 = add nsw i64 %219, 1
  %221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %215, i64 noundef %217, i64 noundef %218, i64 noundef %220)
          to label %222 unwind label %314

222:                                              ; preds = %212
  %223 = load double, ptr %221, align 8, !tbaa !9
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 2) #7
  store double %223, ptr %224, align 8, !tbaa !9
  %225 = load ptr, ptr %8, align 8, !tbaa !5
  %226 = load i64, ptr %29, align 8, !tbaa !16
  %227 = load i64, ptr %28, align 8, !tbaa !16
  %228 = add nsw i64 %227, 1
  %229 = load i64, ptr %26, align 8, !tbaa !16
  %230 = add nsw i64 %229, 1
  %231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %225, i64 noundef %226, i64 noundef %228, i64 noundef %230)
          to label %232 unwind label %314

232:                                              ; preds = %222
  %233 = load double, ptr %231, align 8, !tbaa !9
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 7) #7
  store double %233, ptr %234, align 8, !tbaa !9
  %235 = load ptr, ptr %8, align 8, !tbaa !5
  %236 = load i64, ptr %29, align 8, !tbaa !16
  %237 = add nsw i64 %236, 1
  %238 = load i64, ptr %28, align 8, !tbaa !16
  %239 = add nsw i64 %238, 1
  %240 = load i64, ptr %26, align 8, !tbaa !16
  %241 = add nsw i64 %240, 1
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %235, i64 noundef %237, i64 noundef %239, i64 noundef %241)
          to label %243 unwind label %314

243:                                              ; preds = %232
  %244 = load double, ptr %242, align 8, !tbaa !9
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 6) #7
  store double %244, ptr %245, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #7
  %246 = load ptr, ptr %8, align 8, !tbaa !5
  %247 = load i64, ptr %29, align 8, !tbaa !16
  %248 = load i64, ptr %28, align 8, !tbaa !16
  %249 = load i64, ptr %26, align 8, !tbaa !16
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %34, ptr noundef nonnull align 8 dereferenceable(40) %246, i64 noundef %247, i64 noundef %248, i64 noundef %249, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %250 unwind label %318

250:                                              ; preds = %243
  %251 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %32, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %251, ptr align 8 %34, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #7
  %252 = load ptr, ptr %8, align 8, !tbaa !5
  %253 = load i64, ptr %29, align 8, !tbaa !16
  %254 = add nsw i64 %253, 1
  %255 = load i64, ptr %28, align 8, !tbaa !16
  %256 = load i64, ptr %26, align 8, !tbaa !16
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %35, ptr noundef nonnull align 8 dereferenceable(40) %252, i64 noundef %254, i64 noundef %255, i64 noundef %256, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %257 unwind label %322

257:                                              ; preds = %250
  %258 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %32, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %258, ptr align 8 %35, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #7
  %259 = load ptr, ptr %8, align 8, !tbaa !5
  %260 = load i64, ptr %29, align 8, !tbaa !16
  %261 = load i64, ptr %28, align 8, !tbaa !16
  %262 = add nsw i64 %261, 1
  %263 = load i64, ptr %26, align 8, !tbaa !16
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %36, ptr noundef nonnull align 8 dereferenceable(40) %259, i64 noundef %260, i64 noundef %262, i64 noundef %263, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %264 unwind label %326

264:                                              ; preds = %257
  %265 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %32, i64 noundef 4) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %265, ptr align 8 %36, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #7
  %266 = load ptr, ptr %8, align 8, !tbaa !5
  %267 = load i64, ptr %29, align 8, !tbaa !16
  %268 = add nsw i64 %267, 1
  %269 = load i64, ptr %28, align 8, !tbaa !16
  %270 = add nsw i64 %269, 1
  %271 = load i64, ptr %26, align 8, !tbaa !16
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %37, ptr noundef nonnull align 8 dereferenceable(40) %266, i64 noundef %268, i64 noundef %270, i64 noundef %271, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %272 unwind label %330

272:                                              ; preds = %264
  %273 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %32, i64 noundef 5) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %273, ptr align 8 %37, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #7
  %274 = load ptr, ptr %8, align 8, !tbaa !5
  %275 = load i64, ptr %29, align 8, !tbaa !16
  %276 = load i64, ptr %28, align 8, !tbaa !16
  %277 = load i64, ptr %26, align 8, !tbaa !16
  %278 = add nsw i64 %277, 1
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %38, ptr noundef nonnull align 8 dereferenceable(40) %274, i64 noundef %275, i64 noundef %276, i64 noundef %278, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %279 unwind label %334

279:                                              ; preds = %272
  %280 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %32, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %280, ptr align 8 %38, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %39) #7
  %281 = load ptr, ptr %8, align 8, !tbaa !5
  %282 = load i64, ptr %29, align 8, !tbaa !16
  %283 = add nsw i64 %282, 1
  %284 = load i64, ptr %28, align 8, !tbaa !16
  %285 = load i64, ptr %26, align 8, !tbaa !16
  %286 = add nsw i64 %285, 1
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %39, ptr noundef nonnull align 8 dereferenceable(40) %281, i64 noundef %283, i64 noundef %284, i64 noundef %286, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %287 unwind label %338

287:                                              ; preds = %279
  %288 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %32, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %288, ptr align 8 %39, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #7
  %289 = load ptr, ptr %8, align 8, !tbaa !5
  %290 = load i64, ptr %29, align 8, !tbaa !16
  %291 = load i64, ptr %28, align 8, !tbaa !16
  %292 = add nsw i64 %291, 1
  %293 = load i64, ptr %26, align 8, !tbaa !16
  %294 = add nsw i64 %293, 1
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %40, ptr noundef nonnull align 8 dereferenceable(40) %289, i64 noundef %290, i64 noundef %292, i64 noundef %294, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %295 unwind label %342

295:                                              ; preds = %287
  %296 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %32, i64 noundef 7) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %296, ptr align 8 %40, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %41) #7
  %297 = load ptr, ptr %8, align 8, !tbaa !5
  %298 = load i64, ptr %29, align 8, !tbaa !16
  %299 = add nsw i64 %298, 1
  %300 = load i64, ptr %28, align 8, !tbaa !16
  %301 = add nsw i64 %300, 1
  %302 = load i64, ptr %26, align 8, !tbaa !16
  %303 = add nsw i64 %302, 1
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %41, ptr noundef nonnull align 8 dereferenceable(40) %297, i64 noundef %299, i64 noundef %301, i64 noundef %303, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %304 unwind label %346

304:                                              ; preds = %295
  %305 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %32, i64 noundef 6) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %305, ptr align 8 %41, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  store i32 0, ptr %42, align 4, !tbaa !11
  br label %306

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

309:                                              ; preds = %306
  store i32 11, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %369

310:                                              ; preds = %167
  %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 %398

314:                                              ; preds = %381, %232, %222, %212, %203, %193, %184, %175, %169, %168
  %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 %397

318:                                              ; preds = %243
  %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 %34) #7
  br label %397

322:                                              ; preds = %250
  %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 %35) #7
  br label %397

326:                                              ; preds = %257
  %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 %36) #7
  br label %397

330:                                              ; preds = %264
  %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 %37) #7
  br label %397

334:                                              ; preds = %272
  %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 %38) #7
  br label %397

338:                                              ; preds = %279
  %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 %39) #7
  br label %397

342:                                              ; preds = %287
  %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 %40) #7
  br label %397

346:                                              ; preds = %295
  %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 %41) #7
  br label %397

350:                                              ; preds = %306
  %351 = load i64, ptr %29, align 8, !tbaa !16
  %352 = load i64, ptr %28, align 8, !tbaa !16
  %353 = load i64, ptr %26, align 8, !tbaa !16
  %354 = load ptr, ptr %16, align 8, !tbaa !5
  %355 = load i32, ptr %42, align 4, !tbaa !11
  %356 = sext i32 %355 to i64
  %357 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %351, i64 noundef %352, i64 noundef %353, ptr noundef nonnull align 8 dereferenceable(24) %354, i64 noundef %356)
          to label %358 unwind label %365

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

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

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

369:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #7
  %370 = load i64, ptr %29, align 8, !tbaa !16
  %371 = load i64, ptr %28, align 8, !tbaa !16
  %372 = load i64, ptr %26, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %43, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %370, i64 noundef %371, i64 noundef %372)
          to label %373 unwind label %389

373:                                              ; preds = %369
  %374 = getelementptr inbounds %"class.vox::geometry::BoundingBox", ptr %33, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %374, ptr align 8 %43, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #7
  %375 = load i64, ptr %29, align 8, !tbaa !16
  %376 = add nsw i64 %375, 1
  %377 = load i64, ptr %28, align 8, !tbaa !16
  %378 = add nsw i64 %377, 1
  %379 = load i64, ptr %26, align 8, !tbaa !16
  %380 = add nsw i64 %379, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %44, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %376, i64 noundef %378, i64 noundef %380)
          to label %381 unwind label %393

381:                                              ; preds = %373
  %382 = getelementptr inbounds %"class.vox::geometry::BoundingBox", ptr %33, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %382, ptr align 8 %44, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #7
  %383 = load ptr, ptr %11, align 8, !tbaa !5
  %384 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3vox8geometryL10SingleCubeERKSt5arrayIdLm8EERKS1_ImLm12EERKS1_INS0_6MatrixIdLm3ELm1EEELm8EERKNS0_11BoundingBoxIdLm3EEEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(64) %30, ptr noundef nonnull align 8 dereferenceable(96) %31, ptr noundef nonnull align 8 dereferenceable(192) %32, ptr noundef nonnull align 8 dereferenceable(48) %33, ptr noundef %15, ptr noundef %383, double noundef %384)
          to label %385 unwind label %314

385:                                              ; preds = %381
  call void @llvm.lifetime.end.p0(i64 48, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 192, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %30) #7
  br label %386

386:                                              ; preds = %385
  %387 = load i64, ptr %29, align 8, !tbaa !16
  %388 = add nsw i64 %387, 1
  store i64 %388, ptr %29, align 8, !tbaa !16
  br label %161, !llvm.loop !21

389:                                              ; preds = %369
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %17, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #7
  br label %397

393:                                              ; preds = %373
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %17, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #7
  br label %397

397:                                              ; preds = %393, %389, %365, %346, %342, %338, %334, %330, %326, %322, %318, %314
  call void @llvm.lifetime.end.p0(i64 48, ptr %33) #7
  br label %398

398:                                              ; preds = %397, %310
  call void @llvm.lifetime.end.p0(i64 192, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %1479

399:                                              ; preds = %166
  br label %400

400:                                              ; preds = %399
  %401 = load i64, ptr %28, align 8, !tbaa !16
  %402 = add nsw i64 %401, 1
  store i64 %402, ptr %28, align 8, !tbaa !16
  br label %154, !llvm.loop !22

403:                                              ; preds = %159
  br label %404

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

407:                                              ; preds = %140
  %408 = load i32, ptr %13, align 4, !tbaa !11
  %409 = and i32 %408, 48
  %410 = icmp ne i32 %409, 0
  br i1 %410, label %411, label %764

411:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 56, ptr %45) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %45) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %46) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  store i64 0, ptr %47, align 8, !tbaa !16
  br label %412

412:                                              ; preds = %760, %411
  %413 = load i64, ptr %47, align 8, !tbaa !16
  %414 = load i64, ptr %24, align 8, !tbaa !16
  %415 = sub nsw i64 %414, 1
  %416 = icmp slt i64 %413, %415
  br i1 %416, label %418, label %417

417:                                              ; preds = %412
  store i32 14, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  br label %763

418:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  store i64 0, ptr %48, align 8, !tbaa !16
  br label %419

419:                                              ; preds = %754, %418
  %420 = load i64, ptr %48, align 8, !tbaa !16
  %421 = load i64, ptr %23, align 8, !tbaa !16
  %422 = sub nsw i64 %421, 1
  %423 = icmp slt i64 %420, %422
  br i1 %423, label %425, label %424

424:                                              ; preds = %419
  store i32 17, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %759

425:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  store i64 0, ptr %49, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #7
  call void @llvm.memset.p0.i64(ptr align 8 %50, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %51) #7
  call void @llvm.memset.p0.i64(ptr align 8 %51, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 96, ptr %52) #7
  invoke void @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %52)
          to label %426 unwind label %561

426:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #7
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %427 unwind label %565

427:                                              ; preds = %426
  %428 = load ptr, ptr %8, align 8, !tbaa !5
  %429 = load i64, ptr %48, align 8, !tbaa !16
  %430 = add nsw i64 %429, 1
  %431 = load i64, ptr %47, align 8, !tbaa !16
  %432 = load i64, ptr %49, align 8, !tbaa !16
  %433 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %428, i64 noundef %430, i64 noundef %431, i64 noundef %432)
          to label %434 unwind label %565

434:                                              ; preds = %427
  %435 = load double, ptr %433, align 8, !tbaa !9
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef 0) #7
  store double %435, ptr %436, align 8, !tbaa !9
  %437 = load ptr, ptr %8, align 8, !tbaa !5
  %438 = load i64, ptr %48, align 8, !tbaa !16
  %439 = load i64, ptr %47, align 8, !tbaa !16
  %440 = load i64, ptr %49, align 8, !tbaa !16
  %441 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %437, i64 noundef %438, i64 noundef %439, i64 noundef %440)
          to label %442 unwind label %565

442:                                              ; preds = %434
  %443 = load double, ptr %441, align 8, !tbaa !9
  %444 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef 1) #7
  store double %443, ptr %444, align 8, !tbaa !9
  %445 = load ptr, ptr %8, align 8, !tbaa !5
  %446 = load i64, ptr %48, align 8, !tbaa !16
  %447 = load i64, ptr %47, align 8, !tbaa !16
  %448 = add nsw i64 %447, 1
  %449 = load i64, ptr %49, align 8, !tbaa !16
  %450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %445, i64 noundef %446, i64 noundef %448, i64 noundef %449)
          to label %451 unwind label %565

451:                                              ; preds = %442
  %452 = load double, ptr %450, align 8, !tbaa !9
  %453 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef 2) #7
  store double %452, ptr %453, align 8, !tbaa !9
  %454 = load ptr, ptr %8, align 8, !tbaa !5
  %455 = load i64, ptr %48, align 8, !tbaa !16
  %456 = add nsw i64 %455, 1
  %457 = load i64, ptr %47, align 8, !tbaa !16
  %458 = add nsw i64 %457, 1
  %459 = load i64, ptr %49, align 8, !tbaa !16
  %460 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %454, i64 noundef %456, i64 noundef %458, i64 noundef %459)
          to label %461 unwind label %565

461:                                              ; preds = %451
  %462 = load double, ptr %460, align 8, !tbaa !9
  %463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef 3) #7
  store double %462, ptr %463, align 8, !tbaa !9
  %464 = load i32, ptr %13, align 4, !tbaa !11
  %465 = and i32 %464, 16
  %466 = icmp ne i32 %465, 0
  br i1 %466, label %467, label %589

467:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 24, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %56) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %56, ptr align 8 @constinit, i64 24, i1 false), !tbaa.struct !24
  %468 = getelementptr inbounds %"class.std::initializer_list", ptr %55, i32 0, i32 0
  store ptr %56, ptr %468, align 8, !tbaa !26
  %469 = getelementptr inbounds %"class.std::initializer_list", ptr %55, i32 0, i32 1
  store i64 3, ptr %469, align 8, !tbaa !28
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 8 dereferenceable(16) %55)
          to label %470 unwind label %569

470:                                              ; preds = %467
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %53, ptr align 8 %54, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #7
  %471 = load i64, ptr %48, align 8, !tbaa !16
  %472 = load i64, ptr %47, align 8, !tbaa !16
  %473 = load i64, ptr %49, align 8, !tbaa !16
  %474 = load ptr, ptr %16, align 8, !tbaa !5
  %475 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %471, i64 noundef %472, i64 noundef %473, ptr noundef nonnull align 8 dereferenceable(24) %474, i64 noundef 1)
          to label %476 unwind label %565

476:                                              ; preds = %470
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 0) #7
  store i64 %475, ptr %477, align 8, !tbaa !16
  %478 = load i64, ptr %48, align 8, !tbaa !16
  %479 = load i64, ptr %47, align 8, !tbaa !16
  %480 = load i64, ptr %49, align 8, !tbaa !16
  %481 = load ptr, ptr %16, align 8, !tbaa !5
  %482 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %478, i64 noundef %479, i64 noundef %480, ptr noundef nonnull align 8 dereferenceable(24) %481, i64 noundef 0)
          to label %483 unwind label %565

483:                                              ; preds = %476
  %484 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 1) #7
  store i64 %482, ptr %484, align 8, !tbaa !16
  %485 = load i64, ptr %48, align 8, !tbaa !16
  %486 = load i64, ptr %47, align 8, !tbaa !16
  %487 = load i64, ptr %49, align 8, !tbaa !16
  %488 = load ptr, ptr %16, align 8, !tbaa !5
  %489 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %485, i64 noundef %486, i64 noundef %487, ptr noundef nonnull align 8 dereferenceable(24) %488, i64 noundef 4)
          to label %490 unwind label %565

490:                                              ; preds = %483
  %491 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 2) #7
  store i64 %489, ptr %491, align 8, !tbaa !16
  %492 = load i64, ptr %48, align 8, !tbaa !16
  %493 = load i64, ptr %47, align 8, !tbaa !16
  %494 = load i64, ptr %49, align 8, !tbaa !16
  %495 = load ptr, ptr %16, align 8, !tbaa !5
  %496 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %492, i64 noundef %493, i64 noundef %494, ptr noundef nonnull align 8 dereferenceable(24) %495, i64 noundef 5)
          to label %497 unwind label %565

497:                                              ; preds = %490
  %498 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 3) #7
  store i64 %496, ptr %498, align 8, !tbaa !16
  %499 = load i64, ptr %48, align 8, !tbaa !16
  %500 = load i64, ptr %47, align 8, !tbaa !16
  %501 = load i64, ptr %49, align 8, !tbaa !16
  %502 = load ptr, ptr %16, align 8, !tbaa !5
  %503 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %499, i64 noundef %500, i64 noundef %501, ptr noundef nonnull align 8 dereferenceable(24) %502, i64 noundef 0)
          to label %504 unwind label %565

504:                                              ; preds = %497
  %505 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 4) #7
  store i64 %503, ptr %505, align 8, !tbaa !16
  %506 = load i64, ptr %48, align 8, !tbaa !16
  %507 = load i64, ptr %47, align 8, !tbaa !16
  %508 = load i64, ptr %49, align 8, !tbaa !16
  %509 = load ptr, ptr %16, align 8, !tbaa !5
  %510 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %506, i64 noundef %507, i64 noundef %508, ptr noundef nonnull align 8 dereferenceable(24) %509, i64 noundef 8)
          to label %511 unwind label %565

511:                                              ; preds = %504
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 5) #7
  store i64 %510, ptr %512, align 8, !tbaa !16
  %513 = load i64, ptr %48, align 8, !tbaa !16
  %514 = load i64, ptr %47, align 8, !tbaa !16
  %515 = load i64, ptr %49, align 8, !tbaa !16
  %516 = load ptr, ptr %16, align 8, !tbaa !5
  %517 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %513, i64 noundef %514, i64 noundef %515, ptr noundef nonnull align 8 dereferenceable(24) %516, i64 noundef 4)
          to label %518 unwind label %565

518:                                              ; preds = %511
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 6) #7
  store i64 %517, ptr %519, align 8, !tbaa !16
  %520 = load i64, ptr %48, align 8, !tbaa !16
  %521 = load i64, ptr %47, align 8, !tbaa !16
  %522 = load i64, ptr %49, align 8, !tbaa !16
  %523 = load ptr, ptr %16, align 8, !tbaa !5
  %524 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %520, i64 noundef %521, i64 noundef %522, ptr noundef nonnull align 8 dereferenceable(24) %523, i64 noundef 9)
          to label %525 unwind label %565

525:                                              ; preds = %518
  %526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 7) #7
  store i64 %524, ptr %526, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %57) #7
  %527 = load i64, ptr %48, align 8, !tbaa !16
  %528 = add nsw i64 %527, 1
  %529 = load i64, ptr %47, align 8, !tbaa !16
  %530 = load i64, ptr %49, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %57, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %528, i64 noundef %529, i64 noundef %530)
          to label %531 unwind label %573

531:                                              ; preds = %525
  %532 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %52, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %532, ptr align 8 %57, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %58) #7
  %533 = load i64, ptr %48, align 8, !tbaa !16
  %534 = load i64, ptr %47, align 8, !tbaa !16
  %535 = load i64, ptr %49, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %58, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %533, i64 noundef %534, i64 noundef %535)
          to label %536 unwind label %577

536:                                              ; preds = %531
  %537 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %52, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %537, ptr align 8 %58, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #7
  %538 = load i64, ptr %48, align 8, !tbaa !16
  %539 = load i64, ptr %47, align 8, !tbaa !16
  %540 = add nsw i64 %539, 1
  %541 = load i64, ptr %49, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %59, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %538, i64 noundef %540, i64 noundef %541)
          to label %542 unwind label %581

542:                                              ; preds = %536
  %543 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %52, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %543, ptr align 8 %59, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %60) #7
  %544 = load i64, ptr %48, align 8, !tbaa !16
  %545 = add nsw i64 %544, 1
  %546 = load i64, ptr %47, align 8, !tbaa !16
  %547 = add nsw i64 %546, 1
  %548 = load i64, ptr %49, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %60, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %545, i64 noundef %547, i64 noundef %548)
          to label %549 unwind label %585

549:                                              ; preds = %542
  %550 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %52, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %550, ptr align 8 %60, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #7
  %551 = load i32, ptr %14, align 4, !tbaa !11
  %552 = and i32 %551, 16
  %553 = icmp ne i32 %552, 0
  br i1 %553, label %554, label %555

554:                                              ; preds = %549
  br label %556

555:                                              ; preds = %549
  br label %556

556:                                              ; preds = %555, %554
  %557 = phi ptr [ %15, %554 ], [ %45, %555 ]
  %558 = load ptr, ptr %11, align 8, !tbaa !5
  %559 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(64) %51, ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(96) %52, ptr noundef %557, ptr noundef %558, double noundef %559)
          to label %560 unwind label %565

560:                                              ; preds = %556
  br label %589

561:                                              ; preds = %425
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %17, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %18, align 4
  br label %758

565:                                              ; preds = %728, %686, %679, %672, %665, %658, %651, %644, %638, %619, %608, %598, %589, %556, %518, %511, %504, %497, %490, %483, %476, %470, %451, %442, %434, %427, %426
  %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 %757

569:                                              ; preds = %467
  %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
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #7
  br label %757

573:                                              ; preds = %525
  %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
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #7
  br label %757

577:                                              ; preds = %531
  %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 %58) #7
  br label %757

581:                                              ; preds = %536
  %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 %59) #7
  br label %757

585:                                              ; preds = %542
  %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 %60) #7
  br label %757

589:                                              ; preds = %560, %461
  %590 = load i64, ptr %25, align 8, !tbaa !16
  %591 = sub nsw i64 %590, 2
  store i64 %591, ptr %49, align 8, !tbaa !16
  %592 = load ptr, ptr %8, align 8, !tbaa !5
  %593 = load i64, ptr %48, align 8, !tbaa !16
  %594 = load i64, ptr %47, align 8, !tbaa !16
  %595 = load i64, ptr %49, align 8, !tbaa !16
  %596 = add nsw i64 %595, 1
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %592, i64 noundef %593, i64 noundef %594, i64 noundef %596)
          to label %598 unwind label %565

598:                                              ; preds = %589
  %599 = load double, ptr %597, align 8, !tbaa !9
  %600 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef 0) #7
  store double %599, ptr %600, align 8, !tbaa !9
  %601 = load ptr, ptr %8, align 8, !tbaa !5
  %602 = load i64, ptr %48, align 8, !tbaa !16
  %603 = add nsw i64 %602, 1
  %604 = load i64, ptr %47, align 8, !tbaa !16
  %605 = load i64, ptr %49, align 8, !tbaa !16
  %606 = add nsw i64 %605, 1
  %607 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %601, i64 noundef %603, i64 noundef %604, i64 noundef %606)
          to label %608 unwind label %565

608:                                              ; preds = %598
  %609 = load double, ptr %607, align 8, !tbaa !9
  %610 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef 1) #7
  store double %609, ptr %610, align 8, !tbaa !9
  %611 = load ptr, ptr %8, align 8, !tbaa !5
  %612 = load i64, ptr %48, align 8, !tbaa !16
  %613 = add nsw i64 %612, 1
  %614 = load i64, ptr %47, align 8, !tbaa !16
  %615 = add nsw i64 %614, 1
  %616 = load i64, ptr %49, align 8, !tbaa !16
  %617 = add nsw i64 %616, 1
  %618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %611, i64 noundef %613, i64 noundef %615, i64 noundef %617)
          to label %619 unwind label %565

619:                                              ; preds = %608
  %620 = load double, ptr %618, align 8, !tbaa !9
  %621 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef 2) #7
  store double %620, ptr %621, align 8, !tbaa !9
  %622 = load ptr, ptr %8, align 8, !tbaa !5
  %623 = load i64, ptr %48, align 8, !tbaa !16
  %624 = load i64, ptr %47, align 8, !tbaa !16
  %625 = add nsw i64 %624, 1
  %626 = load i64, ptr %49, align 8, !tbaa !16
  %627 = add nsw i64 %626, 1
  %628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %622, i64 noundef %623, i64 noundef %625, i64 noundef %627)
          to label %629 unwind label %565

629:                                              ; preds = %619
  %630 = load double, ptr %628, align 8, !tbaa !9
  %631 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef 3) #7
  store double %630, ptr %631, align 8, !tbaa !9
  %632 = load i32, ptr %13, align 4, !tbaa !11
  %633 = and i32 %632, 32
  %634 = icmp ne i32 %633, 0
  br i1 %634, label %635, label %753

635:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 24, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %63) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %63, ptr align 8 @constinit.1, i64 24, i1 false), !tbaa.struct !24
  %636 = getelementptr inbounds %"class.std::initializer_list", ptr %62, i32 0, i32 0
  store ptr %63, ptr %636, align 8, !tbaa !26
  %637 = getelementptr inbounds %"class.std::initializer_list", ptr %62, i32 0, i32 1
  store i64 3, ptr %637, align 8, !tbaa !28
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %638 unwind label %733

638:                                              ; preds = %635
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %53, ptr align 8 %61, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #7
  %639 = load i64, ptr %48, align 8, !tbaa !16
  %640 = load i64, ptr %47, align 8, !tbaa !16
  %641 = load i64, ptr %49, align 8, !tbaa !16
  %642 = load ptr, ptr %16, align 8, !tbaa !5
  %643 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %639, i64 noundef %640, i64 noundef %641, ptr noundef nonnull align 8 dereferenceable(24) %642, i64 noundef 3)
          to label %644 unwind label %565

644:                                              ; preds = %638
  %645 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 0) #7
  store i64 %643, ptr %645, align 8, !tbaa !16
  %646 = load i64, ptr %48, align 8, !tbaa !16
  %647 = load i64, ptr %47, align 8, !tbaa !16
  %648 = load i64, ptr %49, align 8, !tbaa !16
  %649 = load ptr, ptr %16, align 8, !tbaa !5
  %650 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %646, i64 noundef %647, i64 noundef %648, ptr noundef nonnull align 8 dereferenceable(24) %649, i64 noundef 2)
          to label %651 unwind label %565

651:                                              ; preds = %644
  %652 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 1) #7
  store i64 %650, ptr %652, align 8, !tbaa !16
  %653 = load i64, ptr %48, align 8, !tbaa !16
  %654 = load i64, ptr %47, align 8, !tbaa !16
  %655 = load i64, ptr %49, align 8, !tbaa !16
  %656 = load ptr, ptr %16, align 8, !tbaa !5
  %657 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %653, i64 noundef %654, i64 noundef %655, ptr noundef nonnull align 8 dereferenceable(24) %656, i64 noundef 6)
          to label %658 unwind label %565

658:                                              ; preds = %651
  %659 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 2) #7
  store i64 %657, ptr %659, align 8, !tbaa !16
  %660 = load i64, ptr %48, align 8, !tbaa !16
  %661 = load i64, ptr %47, align 8, !tbaa !16
  %662 = load i64, ptr %49, align 8, !tbaa !16
  %663 = load ptr, ptr %16, align 8, !tbaa !5
  %664 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %660, i64 noundef %661, i64 noundef %662, ptr noundef nonnull align 8 dereferenceable(24) %663, i64 noundef 7)
          to label %665 unwind label %565

665:                                              ; preds = %658
  %666 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 3) #7
  store i64 %664, ptr %666, align 8, !tbaa !16
  %667 = load i64, ptr %48, align 8, !tbaa !16
  %668 = load i64, ptr %47, align 8, !tbaa !16
  %669 = load i64, ptr %49, align 8, !tbaa !16
  %670 = load ptr, ptr %16, align 8, !tbaa !5
  %671 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %667, i64 noundef %668, i64 noundef %669, ptr noundef nonnull align 8 dereferenceable(24) %670, i64 noundef 2)
          to label %672 unwind label %565

672:                                              ; preds = %665
  %673 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 4) #7
  store i64 %671, ptr %673, align 8, !tbaa !16
  %674 = load i64, ptr %48, align 8, !tbaa !16
  %675 = load i64, ptr %47, align 8, !tbaa !16
  %676 = load i64, ptr %49, align 8, !tbaa !16
  %677 = load ptr, ptr %16, align 8, !tbaa !5
  %678 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %674, i64 noundef %675, i64 noundef %676, ptr noundef nonnull align 8 dereferenceable(24) %677, i64 noundef 10)
          to label %679 unwind label %565

679:                                              ; preds = %672
  %680 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 5) #7
  store i64 %678, ptr %680, align 8, !tbaa !16
  %681 = load i64, ptr %48, align 8, !tbaa !16
  %682 = load i64, ptr %47, align 8, !tbaa !16
  %683 = load i64, ptr %49, align 8, !tbaa !16
  %684 = load ptr, ptr %16, align 8, !tbaa !5
  %685 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %681, i64 noundef %682, i64 noundef %683, ptr noundef nonnull align 8 dereferenceable(24) %684, i64 noundef 6)
          to label %686 unwind label %565

686:                                              ; preds = %679
  %687 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 6) #7
  store i64 %685, ptr %687, align 8, !tbaa !16
  %688 = load i64, ptr %48, align 8, !tbaa !16
  %689 = load i64, ptr %47, align 8, !tbaa !16
  %690 = load i64, ptr %49, align 8, !tbaa !16
  %691 = load ptr, ptr %16, align 8, !tbaa !5
  %692 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %688, i64 noundef %689, i64 noundef %690, ptr noundef nonnull align 8 dereferenceable(24) %691, i64 noundef 11)
          to label %693 unwind label %565

693:                                              ; preds = %686
  %694 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %51, i64 noundef 7) #7
  store i64 %692, ptr %694, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %64) #7
  %695 = load i64, ptr %48, align 8, !tbaa !16
  %696 = load i64, ptr %47, align 8, !tbaa !16
  %697 = load i64, ptr %49, align 8, !tbaa !16
  %698 = add nsw i64 %697, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %64, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %695, i64 noundef %696, i64 noundef %698)
          to label %699 unwind label %737

699:                                              ; preds = %693
  %700 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %52, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %700, ptr align 8 %64, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %64) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %65) #7
  %701 = load i64, ptr %48, align 8, !tbaa !16
  %702 = add nsw i64 %701, 1
  %703 = load i64, ptr %47, align 8, !tbaa !16
  %704 = load i64, ptr %49, align 8, !tbaa !16
  %705 = add nsw i64 %704, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %65, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %702, i64 noundef %703, i64 noundef %705)
          to label %706 unwind label %741

706:                                              ; preds = %699
  %707 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %52, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %707, ptr align 8 %65, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %66) #7
  %708 = load i64, ptr %48, align 8, !tbaa !16
  %709 = add nsw i64 %708, 1
  %710 = load i64, ptr %47, align 8, !tbaa !16
  %711 = add nsw i64 %710, 1
  %712 = load i64, ptr %49, align 8, !tbaa !16
  %713 = add nsw i64 %712, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %66, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %709, i64 noundef %711, i64 noundef %713)
          to label %714 unwind label %745

714:                                              ; preds = %706
  %715 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %52, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %715, ptr align 8 %66, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %67) #7
  %716 = load i64, ptr %48, align 8, !tbaa !16
  %717 = load i64, ptr %47, align 8, !tbaa !16
  %718 = add nsw i64 %717, 1
  %719 = load i64, ptr %49, align 8, !tbaa !16
  %720 = add nsw i64 %719, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %67, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %716, i64 noundef %718, i64 noundef %720)
          to label %721 unwind label %749

721:                                              ; preds = %714
  %722 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %52, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %722, ptr align 8 %67, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #7
  %723 = load i32, ptr %14, align 4, !tbaa !11
  %724 = and i32 %723, 32
  %725 = icmp ne i32 %724, 0
  br i1 %725, label %726, label %727

726:                                              ; preds = %721
  br label %728

727:                                              ; preds = %721
  br label %728

728:                                              ; preds = %727, %726
  %729 = phi ptr [ %15, %726 ], [ %46, %727 ]
  %730 = load ptr, ptr %11, align 8, !tbaa !5
  %731 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(64) %51, ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(96) %52, ptr noundef %729, ptr noundef %730, double noundef %731)
          to label %732 unwind label %565

732:                                              ; preds = %728
  br label %753

733:                                              ; preds = %635
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %17, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #7
  br label %757

737:                                              ; preds = %693
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %17, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %64) #7
  br label %757

741:                                              ; preds = %699
  %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 %65) #7
  br label %757

745:                                              ; preds = %706
  %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 %66) #7
  br label %757

749:                                              ; preds = %714
  %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 %67) #7
  br label %757

753:                                              ; preds = %732, %629
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br label %754

754:                                              ; preds = %753
  %755 = load i64, ptr %48, align 8, !tbaa !16
  %756 = add nsw i64 %755, 1
  store i64 %756, ptr %48, align 8, !tbaa !16
  br label %419, !llvm.loop !29

757:                                              ; preds = %749, %745, %741, %737, %733, %585, %581, %577, %573, %569, %565
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  br label %758

758:                                              ; preds = %757, %561
  call void @llvm.lifetime.end.p0(i64 96, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %45) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %45) #7
  br label %1479

759:                                              ; preds = %424
  br label %760

760:                                              ; preds = %759
  %761 = load i64, ptr %47, align 8, !tbaa !16
  %762 = add nsw i64 %761, 1
  store i64 %762, ptr %47, align 8, !tbaa !16
  br label %412, !llvm.loop !30

763:                                              ; preds = %417
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %45) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %45) #7
  br label %764

764:                                              ; preds = %763, %407
  %765 = load i32, ptr %13, align 4, !tbaa !11
  %766 = and i32 %765, 3
  %767 = icmp ne i32 %766, 0
  br i1 %767, label %768, label %1121

768:                                              ; preds = %764
  call void @llvm.lifetime.start.p0(i64 56, ptr %68) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %69) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %69) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  store i64 0, ptr %70, align 8, !tbaa !16
  br label %769

769:                                              ; preds = %1117, %768
  %770 = load i64, ptr %70, align 8, !tbaa !16
  %771 = load i64, ptr %25, align 8, !tbaa !16
  %772 = sub nsw i64 %771, 1
  %773 = icmp slt i64 %770, %772
  br i1 %773, label %775, label %774

774:                                              ; preds = %769
  store i32 20, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  br label %1120

775:                                              ; preds = %769
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #7
  store i64 0, ptr %71, align 8, !tbaa !16
  br label %776

776:                                              ; preds = %1111, %775
  %777 = load i64, ptr %71, align 8, !tbaa !16
  %778 = load i64, ptr %24, align 8, !tbaa !16
  %779 = sub nsw i64 %778, 1
  %780 = icmp slt i64 %777, %779
  br i1 %780, label %782, label %781

781:                                              ; preds = %776
  store i32 23, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  br label %1116

782:                                              ; preds = %776
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  store i64 0, ptr %72, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #7
  call void @llvm.memset.p0.i64(ptr align 8 %73, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %74) #7
  call void @llvm.memset.p0.i64(ptr align 8 %74, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 96, ptr %75) #7
  invoke void @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %75)
          to label %783 unwind label %918

783:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 24, ptr %76) #7
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %76)
          to label %784 unwind label %922

784:                                              ; preds = %783
  %785 = load ptr, ptr %8, align 8, !tbaa !5
  %786 = load i64, ptr %72, align 8, !tbaa !16
  %787 = load i64, ptr %71, align 8, !tbaa !16
  %788 = load i64, ptr %70, align 8, !tbaa !16
  %789 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %785, i64 noundef %786, i64 noundef %787, i64 noundef %788)
          to label %790 unwind label %922

790:                                              ; preds = %784
  %791 = load double, ptr %789, align 8, !tbaa !9
  %792 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %73, i64 noundef 0) #7
  store double %791, ptr %792, align 8, !tbaa !9
  %793 = load ptr, ptr %8, align 8, !tbaa !5
  %794 = load i64, ptr %72, align 8, !tbaa !16
  %795 = load i64, ptr %71, align 8, !tbaa !16
  %796 = load i64, ptr %70, align 8, !tbaa !16
  %797 = add nsw i64 %796, 1
  %798 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %793, i64 noundef %794, i64 noundef %795, i64 noundef %797)
          to label %799 unwind label %922

799:                                              ; preds = %790
  %800 = load double, ptr %798, align 8, !tbaa !9
  %801 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %73, i64 noundef 1) #7
  store double %800, ptr %801, align 8, !tbaa !9
  %802 = load ptr, ptr %8, align 8, !tbaa !5
  %803 = load i64, ptr %72, align 8, !tbaa !16
  %804 = load i64, ptr %71, align 8, !tbaa !16
  %805 = add nsw i64 %804, 1
  %806 = load i64, ptr %70, align 8, !tbaa !16
  %807 = add nsw i64 %806, 1
  %808 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %802, i64 noundef %803, i64 noundef %805, i64 noundef %807)
          to label %809 unwind label %922

809:                                              ; preds = %799
  %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) %73, i64 noundef 2) #7
  store double %810, ptr %811, align 8, !tbaa !9
  %812 = load ptr, ptr %8, align 8, !tbaa !5
  %813 = load i64, ptr %72, align 8, !tbaa !16
  %814 = load i64, ptr %71, align 8, !tbaa !16
  %815 = add nsw i64 %814, 1
  %816 = load i64, ptr %70, align 8, !tbaa !16
  %817 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %812, i64 noundef %813, i64 noundef %815, i64 noundef %816)
          to label %818 unwind label %922

818:                                              ; preds = %809
  %819 = load double, ptr %817, align 8, !tbaa !9
  %820 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %73, i64 noundef 3) #7
  store double %819, ptr %820, align 8, !tbaa !9
  %821 = load i32, ptr %13, align 4, !tbaa !11
  %822 = and i32 %821, 1
  %823 = icmp ne i32 %822, 0
  br i1 %823, label %824, label %946

824:                                              ; preds = %818
  call void @llvm.lifetime.start.p0(i64 24, ptr %77) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %78) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %79) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %79, ptr align 8 @constinit.2, i64 24, i1 false), !tbaa.struct !24
  %825 = getelementptr inbounds %"class.std::initializer_list", ptr %78, i32 0, i32 0
  store ptr %79, ptr %825, align 8, !tbaa !26
  %826 = getelementptr inbounds %"class.std::initializer_list", ptr %78, i32 0, i32 1
  store i64 3, ptr %826, align 8, !tbaa !28
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %77, ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %827 unwind label %926

827:                                              ; preds = %824
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %76, ptr align 8 %77, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #7
  %828 = load i64, ptr %72, align 8, !tbaa !16
  %829 = load i64, ptr %71, align 8, !tbaa !16
  %830 = load i64, ptr %70, align 8, !tbaa !16
  %831 = load ptr, ptr %16, align 8, !tbaa !5
  %832 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %828, i64 noundef %829, i64 noundef %830, ptr noundef nonnull align 8 dereferenceable(24) %831, i64 noundef 0)
          to label %833 unwind label %922

833:                                              ; preds = %827
  %834 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 0) #7
  store i64 %832, ptr %834, align 8, !tbaa !16
  %835 = load i64, ptr %72, align 8, !tbaa !16
  %836 = load i64, ptr %71, align 8, !tbaa !16
  %837 = load i64, ptr %70, align 8, !tbaa !16
  %838 = load ptr, ptr %16, align 8, !tbaa !5
  %839 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %835, i64 noundef %836, i64 noundef %837, ptr noundef nonnull align 8 dereferenceable(24) %838, i64 noundef 3)
          to label %840 unwind label %922

840:                                              ; preds = %833
  %841 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 1) #7
  store i64 %839, ptr %841, align 8, !tbaa !16
  %842 = load i64, ptr %72, align 8, !tbaa !16
  %843 = load i64, ptr %71, align 8, !tbaa !16
  %844 = load i64, ptr %70, align 8, !tbaa !16
  %845 = load ptr, ptr %16, align 8, !tbaa !5
  %846 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %842, i64 noundef %843, i64 noundef %844, ptr noundef nonnull align 8 dereferenceable(24) %845, i64 noundef 7)
          to label %847 unwind label %922

847:                                              ; preds = %840
  %848 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 2) #7
  store i64 %846, ptr %848, align 8, !tbaa !16
  %849 = load i64, ptr %72, align 8, !tbaa !16
  %850 = load i64, ptr %71, align 8, !tbaa !16
  %851 = load i64, ptr %70, align 8, !tbaa !16
  %852 = load ptr, ptr %16, align 8, !tbaa !5
  %853 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %849, i64 noundef %850, i64 noundef %851, ptr noundef nonnull align 8 dereferenceable(24) %852, i64 noundef 4)
          to label %854 unwind label %922

854:                                              ; preds = %847
  %855 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 3) #7
  store i64 %853, ptr %855, align 8, !tbaa !16
  %856 = load i64, ptr %72, align 8, !tbaa !16
  %857 = load i64, ptr %71, align 8, !tbaa !16
  %858 = load i64, ptr %70, align 8, !tbaa !16
  %859 = load ptr, ptr %16, align 8, !tbaa !5
  %860 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %856, i64 noundef %857, i64 noundef %858, ptr noundef nonnull align 8 dereferenceable(24) %859, i64 noundef 3)
          to label %861 unwind label %922

861:                                              ; preds = %854
  %862 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 4) #7
  store i64 %860, ptr %862, align 8, !tbaa !16
  %863 = load i64, ptr %72, align 8, !tbaa !16
  %864 = load i64, ptr %71, align 8, !tbaa !16
  %865 = load i64, ptr %70, align 8, !tbaa !16
  %866 = load ptr, ptr %16, align 8, !tbaa !5
  %867 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %863, i64 noundef %864, i64 noundef %865, ptr noundef nonnull align 8 dereferenceable(24) %866, i64 noundef 11)
          to label %868 unwind label %922

868:                                              ; preds = %861
  %869 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 5) #7
  store i64 %867, ptr %869, align 8, !tbaa !16
  %870 = load i64, ptr %72, align 8, !tbaa !16
  %871 = load i64, ptr %71, align 8, !tbaa !16
  %872 = load i64, ptr %70, align 8, !tbaa !16
  %873 = load ptr, ptr %16, align 8, !tbaa !5
  %874 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %870, i64 noundef %871, i64 noundef %872, ptr noundef nonnull align 8 dereferenceable(24) %873, i64 noundef 7)
          to label %875 unwind label %922

875:                                              ; preds = %868
  %876 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 6) #7
  store i64 %874, ptr %876, align 8, !tbaa !16
  %877 = load i64, ptr %72, align 8, !tbaa !16
  %878 = load i64, ptr %71, align 8, !tbaa !16
  %879 = load i64, ptr %70, align 8, !tbaa !16
  %880 = load ptr, ptr %16, align 8, !tbaa !5
  %881 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %877, i64 noundef %878, i64 noundef %879, ptr noundef nonnull align 8 dereferenceable(24) %880, i64 noundef 8)
          to label %882 unwind label %922

882:                                              ; preds = %875
  %883 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 7) #7
  store i64 %881, ptr %883, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %80) #7
  %884 = load i64, ptr %72, align 8, !tbaa !16
  %885 = load i64, ptr %71, align 8, !tbaa !16
  %886 = load i64, ptr %70, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %80, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %884, i64 noundef %885, i64 noundef %886)
          to label %887 unwind label %930

887:                                              ; preds = %882
  %888 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %75, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %888, ptr align 8 %80, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %81) #7
  %889 = load i64, ptr %72, align 8, !tbaa !16
  %890 = load i64, ptr %71, align 8, !tbaa !16
  %891 = load i64, ptr %70, align 8, !tbaa !16
  %892 = add nsw i64 %891, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %81, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %889, i64 noundef %890, i64 noundef %892)
          to label %893 unwind label %934

893:                                              ; preds = %887
  %894 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %75, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %894, ptr align 8 %81, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %81) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %82) #7
  %895 = load i64, ptr %72, align 8, !tbaa !16
  %896 = load i64, ptr %71, align 8, !tbaa !16
  %897 = add nsw i64 %896, 1
  %898 = load i64, ptr %70, align 8, !tbaa !16
  %899 = add nsw i64 %898, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %82, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %895, i64 noundef %897, i64 noundef %899)
          to label %900 unwind label %938

900:                                              ; preds = %893
  %901 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %75, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %901, ptr align 8 %82, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %83) #7
  %902 = load i64, ptr %72, align 8, !tbaa !16
  %903 = load i64, ptr %71, align 8, !tbaa !16
  %904 = add nsw i64 %903, 1
  %905 = load i64, ptr %70, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %83, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %902, i64 noundef %904, i64 noundef %905)
          to label %906 unwind label %942

906:                                              ; preds = %900
  %907 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %75, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %907, ptr align 8 %83, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #7
  %908 = load i32, ptr %14, align 4, !tbaa !11
  %909 = and i32 %908, 1
  %910 = icmp ne i32 %909, 0
  br i1 %910, label %911, label %912

911:                                              ; preds = %906
  br label %913

912:                                              ; preds = %906
  br label %913

913:                                              ; preds = %912, %911
  %914 = phi ptr [ %15, %911 ], [ %68, %912 ]
  %915 = load ptr, ptr %11, align 8, !tbaa !5
  %916 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(64) %74, ptr noundef nonnull align 8 dereferenceable(24) %76, ptr noundef nonnull align 8 dereferenceable(96) %75, ptr noundef %914, ptr noundef %915, double noundef %916)
          to label %917 unwind label %922

917:                                              ; preds = %913
  br label %946

918:                                              ; preds = %782
  %919 = landingpad { ptr, i32 }
          cleanup
  %920 = extractvalue { ptr, i32 } %919, 0
  store ptr %920, ptr %17, align 8
  %921 = extractvalue { ptr, i32 } %919, 1
  store i32 %921, ptr %18, align 4
  br label %1115

922:                                              ; preds = %1085, %1043, %1036, %1029, %1022, %1015, %1008, %1001, %995, %975, %965, %956, %946, %913, %875, %868, %861, %854, %847, %840, %833, %827, %809, %799, %790, %784, %783
  %923 = landingpad { ptr, i32 }
          cleanup
  %924 = extractvalue { ptr, i32 } %923, 0
  store ptr %924, ptr %17, align 8
  %925 = extractvalue { ptr, i32 } %923, 1
  store i32 %925, ptr %18, align 4
  br label %1114

926:                                              ; preds = %824
  %927 = landingpad { ptr, i32 }
          cleanup
  %928 = extractvalue { ptr, i32 } %927, 0
  store ptr %928, ptr %17, align 8
  %929 = extractvalue { ptr, i32 } %927, 1
  store i32 %929, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #7
  br label %1114

930:                                              ; preds = %882
  %931 = landingpad { ptr, i32 }
          cleanup
  %932 = extractvalue { ptr, i32 } %931, 0
  store ptr %932, ptr %17, align 8
  %933 = extractvalue { ptr, i32 } %931, 1
  store i32 %933, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %80) #7
  br label %1114

934:                                              ; preds = %887
  %935 = landingpad { ptr, i32 }
          cleanup
  %936 = extractvalue { ptr, i32 } %935, 0
  store ptr %936, ptr %17, align 8
  %937 = extractvalue { ptr, i32 } %935, 1
  store i32 %937, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %81) #7
  br label %1114

938:                                              ; preds = %893
  %939 = landingpad { ptr, i32 }
          cleanup
  %940 = extractvalue { ptr, i32 } %939, 0
  store ptr %940, ptr %17, align 8
  %941 = extractvalue { ptr, i32 } %939, 1
  store i32 %941, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #7
  br label %1114

942:                                              ; preds = %900
  %943 = landingpad { ptr, i32 }
          cleanup
  %944 = extractvalue { ptr, i32 } %943, 0
  store ptr %944, ptr %17, align 8
  %945 = extractvalue { ptr, i32 } %943, 1
  store i32 %945, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #7
  br label %1114

946:                                              ; preds = %917, %818
  %947 = load i64, ptr %23, align 8, !tbaa !16
  %948 = sub nsw i64 %947, 2
  store i64 %948, ptr %72, align 8, !tbaa !16
  %949 = load ptr, ptr %8, align 8, !tbaa !5
  %950 = load i64, ptr %72, align 8, !tbaa !16
  %951 = add nsw i64 %950, 1
  %952 = load i64, ptr %71, align 8, !tbaa !16
  %953 = load i64, ptr %70, align 8, !tbaa !16
  %954 = add nsw i64 %953, 1
  %955 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %949, i64 noundef %951, i64 noundef %952, i64 noundef %954)
          to label %956 unwind label %922

956:                                              ; preds = %946
  %957 = load double, ptr %955, align 8, !tbaa !9
  %958 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %73, i64 noundef 0) #7
  store double %957, ptr %958, align 8, !tbaa !9
  %959 = load ptr, ptr %8, align 8, !tbaa !5
  %960 = load i64, ptr %72, align 8, !tbaa !16
  %961 = add nsw i64 %960, 1
  %962 = load i64, ptr %71, align 8, !tbaa !16
  %963 = load i64, ptr %70, align 8, !tbaa !16
  %964 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %959, i64 noundef %961, i64 noundef %962, i64 noundef %963)
          to label %965 unwind label %922

965:                                              ; preds = %956
  %966 = load double, ptr %964, align 8, !tbaa !9
  %967 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %73, i64 noundef 1) #7
  store double %966, ptr %967, align 8, !tbaa !9
  %968 = load ptr, ptr %8, align 8, !tbaa !5
  %969 = load i64, ptr %72, align 8, !tbaa !16
  %970 = add nsw i64 %969, 1
  %971 = load i64, ptr %71, align 8, !tbaa !16
  %972 = add nsw i64 %971, 1
  %973 = load i64, ptr %70, align 8, !tbaa !16
  %974 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %968, i64 noundef %970, i64 noundef %972, i64 noundef %973)
          to label %975 unwind label %922

975:                                              ; preds = %965
  %976 = load double, ptr %974, align 8, !tbaa !9
  %977 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %73, i64 noundef 2) #7
  store double %976, ptr %977, align 8, !tbaa !9
  %978 = load ptr, ptr %8, align 8, !tbaa !5
  %979 = load i64, ptr %72, align 8, !tbaa !16
  %980 = add nsw i64 %979, 1
  %981 = load i64, ptr %71, align 8, !tbaa !16
  %982 = add nsw i64 %981, 1
  %983 = load i64, ptr %70, align 8, !tbaa !16
  %984 = add nsw i64 %983, 1
  %985 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %978, i64 noundef %980, i64 noundef %982, i64 noundef %984)
          to label %986 unwind label %922

986:                                              ; preds = %975
  %987 = load double, ptr %985, align 8, !tbaa !9
  %988 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %73, i64 noundef 3) #7
  store double %987, ptr %988, align 8, !tbaa !9
  %989 = load i32, ptr %13, align 4, !tbaa !11
  %990 = and i32 %989, 2
  %991 = icmp ne i32 %990, 0
  br i1 %991, label %992, label %1110

992:                                              ; preds = %986
  call void @llvm.lifetime.start.p0(i64 24, ptr %84) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %85) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %86) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %86, ptr align 8 @constinit.3, i64 24, i1 false), !tbaa.struct !24
  %993 = getelementptr inbounds %"class.std::initializer_list", ptr %85, i32 0, i32 0
  store ptr %86, ptr %993, align 8, !tbaa !26
  %994 = getelementptr inbounds %"class.std::initializer_list", ptr %85, i32 0, i32 1
  store i64 3, ptr %994, align 8, !tbaa !28
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %84, ptr noundef nonnull align 8 dereferenceable(16) %85)
          to label %995 unwind label %1090

995:                                              ; preds = %992
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %76, ptr align 8 %84, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %84) #7
  %996 = load i64, ptr %72, align 8, !tbaa !16
  %997 = load i64, ptr %71, align 8, !tbaa !16
  %998 = load i64, ptr %70, align 8, !tbaa !16
  %999 = load ptr, ptr %16, align 8, !tbaa !5
  %1000 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %996, i64 noundef %997, i64 noundef %998, ptr noundef nonnull align 8 dereferenceable(24) %999, i64 noundef 2)
          to label %1001 unwind label %922

1001:                                             ; preds = %995
  %1002 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 0) #7
  store i64 %1000, ptr %1002, align 8, !tbaa !16
  %1003 = load i64, ptr %72, align 8, !tbaa !16
  %1004 = load i64, ptr %71, align 8, !tbaa !16
  %1005 = load i64, ptr %70, align 8, !tbaa !16
  %1006 = load ptr, ptr %16, align 8, !tbaa !5
  %1007 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1003, i64 noundef %1004, i64 noundef %1005, ptr noundef nonnull align 8 dereferenceable(24) %1006, i64 noundef 1)
          to label %1008 unwind label %922

1008:                                             ; preds = %1001
  %1009 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 1) #7
  store i64 %1007, ptr %1009, align 8, !tbaa !16
  %1010 = load i64, ptr %72, align 8, !tbaa !16
  %1011 = load i64, ptr %71, align 8, !tbaa !16
  %1012 = load i64, ptr %70, align 8, !tbaa !16
  %1013 = load ptr, ptr %16, align 8, !tbaa !5
  %1014 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1010, i64 noundef %1011, i64 noundef %1012, ptr noundef nonnull align 8 dereferenceable(24) %1013, i64 noundef 5)
          to label %1015 unwind label %922

1015:                                             ; preds = %1008
  %1016 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 2) #7
  store i64 %1014, ptr %1016, align 8, !tbaa !16
  %1017 = load i64, ptr %72, align 8, !tbaa !16
  %1018 = load i64, ptr %71, align 8, !tbaa !16
  %1019 = load i64, ptr %70, align 8, !tbaa !16
  %1020 = load ptr, ptr %16, align 8, !tbaa !5
  %1021 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1017, i64 noundef %1018, i64 noundef %1019, ptr noundef nonnull align 8 dereferenceable(24) %1020, i64 noundef 6)
          to label %1022 unwind label %922

1022:                                             ; preds = %1015
  %1023 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 3) #7
  store i64 %1021, ptr %1023, align 8, !tbaa !16
  %1024 = load i64, ptr %72, align 8, !tbaa !16
  %1025 = load i64, ptr %71, align 8, !tbaa !16
  %1026 = load i64, ptr %70, align 8, !tbaa !16
  %1027 = load ptr, ptr %16, align 8, !tbaa !5
  %1028 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1024, i64 noundef %1025, i64 noundef %1026, ptr noundef nonnull align 8 dereferenceable(24) %1027, i64 noundef 1)
          to label %1029 unwind label %922

1029:                                             ; preds = %1022
  %1030 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 4) #7
  store i64 %1028, ptr %1030, align 8, !tbaa !16
  %1031 = load i64, ptr %72, align 8, !tbaa !16
  %1032 = load i64, ptr %71, align 8, !tbaa !16
  %1033 = load i64, ptr %70, align 8, !tbaa !16
  %1034 = load ptr, ptr %16, align 8, !tbaa !5
  %1035 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1031, i64 noundef %1032, i64 noundef %1033, ptr noundef nonnull align 8 dereferenceable(24) %1034, i64 noundef 9)
          to label %1036 unwind label %922

1036:                                             ; preds = %1029
  %1037 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 5) #7
  store i64 %1035, ptr %1037, align 8, !tbaa !16
  %1038 = load i64, ptr %72, align 8, !tbaa !16
  %1039 = load i64, ptr %71, align 8, !tbaa !16
  %1040 = load i64, ptr %70, align 8, !tbaa !16
  %1041 = load ptr, ptr %16, align 8, !tbaa !5
  %1042 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1038, i64 noundef %1039, i64 noundef %1040, ptr noundef nonnull align 8 dereferenceable(24) %1041, i64 noundef 5)
          to label %1043 unwind label %922

1043:                                             ; preds = %1036
  %1044 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 6) #7
  store i64 %1042, ptr %1044, align 8, !tbaa !16
  %1045 = load i64, ptr %72, align 8, !tbaa !16
  %1046 = load i64, ptr %71, align 8, !tbaa !16
  %1047 = load i64, ptr %70, align 8, !tbaa !16
  %1048 = load ptr, ptr %16, align 8, !tbaa !5
  %1049 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1045, i64 noundef %1046, i64 noundef %1047, ptr noundef nonnull align 8 dereferenceable(24) %1048, i64 noundef 10)
          to label %1050 unwind label %922

1050:                                             ; preds = %1043
  %1051 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %74, i64 noundef 7) #7
  store i64 %1049, ptr %1051, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %87) #7
  %1052 = load i64, ptr %72, align 8, !tbaa !16
  %1053 = add nsw i64 %1052, 1
  %1054 = load i64, ptr %71, align 8, !tbaa !16
  %1055 = load i64, ptr %70, align 8, !tbaa !16
  %1056 = add nsw i64 %1055, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %87, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1053, i64 noundef %1054, i64 noundef %1056)
          to label %1057 unwind label %1094

1057:                                             ; preds = %1050
  %1058 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %75, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1058, ptr align 8 %87, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %87) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %88) #7
  %1059 = load i64, ptr %72, align 8, !tbaa !16
  %1060 = add nsw i64 %1059, 1
  %1061 = load i64, ptr %71, align 8, !tbaa !16
  %1062 = load i64, ptr %70, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %88, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1060, i64 noundef %1061, i64 noundef %1062)
          to label %1063 unwind label %1098

1063:                                             ; preds = %1057
  %1064 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %75, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1064, ptr align 8 %88, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %89) #7
  %1065 = load i64, ptr %72, align 8, !tbaa !16
  %1066 = add nsw i64 %1065, 1
  %1067 = load i64, ptr %71, align 8, !tbaa !16
  %1068 = add nsw i64 %1067, 1
  %1069 = load i64, ptr %70, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %89, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1066, i64 noundef %1068, i64 noundef %1069)
          to label %1070 unwind label %1102

1070:                                             ; preds = %1063
  %1071 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %75, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1071, ptr align 8 %89, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %90) #7
  %1072 = load i64, ptr %72, align 8, !tbaa !16
  %1073 = add nsw i64 %1072, 1
  %1074 = load i64, ptr %71, align 8, !tbaa !16
  %1075 = add nsw i64 %1074, 1
  %1076 = load i64, ptr %70, align 8, !tbaa !16
  %1077 = add nsw i64 %1076, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %90, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1073, i64 noundef %1075, i64 noundef %1077)
          to label %1078 unwind label %1106

1078:                                             ; preds = %1070
  %1079 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %75, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1079, ptr align 8 %90, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #7
  %1080 = load i32, ptr %14, align 4, !tbaa !11
  %1081 = and i32 %1080, 2
  %1082 = icmp ne i32 %1081, 0
  br i1 %1082, label %1083, label %1084

1083:                                             ; preds = %1078
  br label %1085

1084:                                             ; preds = %1078
  br label %1085

1085:                                             ; preds = %1084, %1083
  %1086 = phi ptr [ %15, %1083 ], [ %69, %1084 ]
  %1087 = load ptr, ptr %11, align 8, !tbaa !5
  %1088 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(64) %74, ptr noundef nonnull align 8 dereferenceable(24) %76, ptr noundef nonnull align 8 dereferenceable(96) %75, ptr noundef %1086, ptr noundef %1087, double noundef %1088)
          to label %1089 unwind label %922

1089:                                             ; preds = %1085
  br label %1110

1090:                                             ; preds = %992
  %1091 = landingpad { ptr, i32 }
          cleanup
  %1092 = extractvalue { ptr, i32 } %1091, 0
  store ptr %1092, ptr %17, align 8
  %1093 = extractvalue { ptr, i32 } %1091, 1
  store i32 %1093, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %84) #7
  br label %1114

1094:                                             ; preds = %1050
  %1095 = landingpad { ptr, i32 }
          cleanup
  %1096 = extractvalue { ptr, i32 } %1095, 0
  store ptr %1096, ptr %17, align 8
  %1097 = extractvalue { ptr, i32 } %1095, 1
  store i32 %1097, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %87) #7
  br label %1114

1098:                                             ; preds = %1057
  %1099 = landingpad { ptr, i32 }
          cleanup
  %1100 = extractvalue { ptr, i32 } %1099, 0
  store ptr %1100, ptr %17, align 8
  %1101 = extractvalue { ptr, i32 } %1099, 1
  store i32 %1101, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #7
  br label %1114

1102:                                             ; preds = %1063
  %1103 = landingpad { ptr, i32 }
          cleanup
  %1104 = extractvalue { ptr, i32 } %1103, 0
  store ptr %1104, ptr %17, align 8
  %1105 = extractvalue { ptr, i32 } %1103, 1
  store i32 %1105, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #7
  br label %1114

1106:                                             ; preds = %1070
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %17, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #7
  br label %1114

1110:                                             ; preds = %1089, %986
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  br label %1111

1111:                                             ; preds = %1110
  %1112 = load i64, ptr %71, align 8, !tbaa !16
  %1113 = add nsw i64 %1112, 1
  store i64 %1113, ptr %71, align 8, !tbaa !16
  br label %776, !llvm.loop !31

1114:                                             ; preds = %1106, %1102, %1098, %1094, %1090, %942, %938, %934, %930, %926, %922
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #7
  br label %1115

1115:                                             ; preds = %1114, %918
  call void @llvm.lifetime.end.p0(i64 96, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %69) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %69) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #7
  br label %1479

1116:                                             ; preds = %781
  br label %1117

1117:                                             ; preds = %1116
  %1118 = load i64, ptr %70, align 8, !tbaa !16
  %1119 = add nsw i64 %1118, 1
  store i64 %1119, ptr %70, align 8, !tbaa !16
  br label %769, !llvm.loop !32

1120:                                             ; preds = %774
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %69) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %69) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #7
  br label %1121

1121:                                             ; preds = %1120, %764
  %1122 = load i32, ptr %13, align 4, !tbaa !11
  %1123 = and i32 %1122, 12
  %1124 = icmp ne i32 %1123, 0
  br i1 %1124, label %1125, label %1478

1125:                                             ; preds = %1121
  call void @llvm.lifetime.start.p0(i64 56, ptr %91) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %91) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %92) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %92) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #7
  store i64 0, ptr %93, align 8, !tbaa !16
  br label %1126

1126:                                             ; preds = %1474, %1125
  %1127 = load i64, ptr %93, align 8, !tbaa !16
  %1128 = load i64, ptr %25, align 8, !tbaa !16
  %1129 = sub nsw i64 %1128, 1
  %1130 = icmp slt i64 %1127, %1129
  br i1 %1130, label %1132, label %1131

1131:                                             ; preds = %1126
  store i32 26, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  br label %1477

1132:                                             ; preds = %1126
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #7
  store i64 0, ptr %94, align 8, !tbaa !16
  br label %1133

1133:                                             ; preds = %1468, %1132
  %1134 = load i64, ptr %94, align 8, !tbaa !16
  %1135 = load i64, ptr %23, align 8, !tbaa !16
  %1136 = sub nsw i64 %1135, 1
  %1137 = icmp slt i64 %1134, %1136
  br i1 %1137, label %1139, label %1138

1138:                                             ; preds = %1133
  store i32 29, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #7
  br label %1473

1139:                                             ; preds = %1133
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #7
  store i64 0, ptr %95, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #7
  call void @llvm.memset.p0.i64(ptr align 8 %96, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %97) #7
  call void @llvm.memset.p0.i64(ptr align 8 %97, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 96, ptr %98) #7
  invoke void @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %98)
          to label %1140 unwind label %1275

1140:                                             ; preds = %1139
  call void @llvm.lifetime.start.p0(i64 24, ptr %99) #7
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99)
          to label %1141 unwind label %1279

1141:                                             ; preds = %1140
  %1142 = load ptr, ptr %8, align 8, !tbaa !5
  %1143 = load i64, ptr %94, align 8, !tbaa !16
  %1144 = load i64, ptr %95, align 8, !tbaa !16
  %1145 = load i64, ptr %93, align 8, !tbaa !16
  %1146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %1142, i64 noundef %1143, i64 noundef %1144, i64 noundef %1145)
          to label %1147 unwind label %1279

1147:                                             ; preds = %1141
  %1148 = load double, ptr %1146, align 8, !tbaa !9
  %1149 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %96, i64 noundef 0) #7
  store double %1148, ptr %1149, align 8, !tbaa !9
  %1150 = load ptr, ptr %8, align 8, !tbaa !5
  %1151 = load i64, ptr %94, align 8, !tbaa !16
  %1152 = add nsw i64 %1151, 1
  %1153 = load i64, ptr %95, align 8, !tbaa !16
  %1154 = load i64, ptr %93, align 8, !tbaa !16
  %1155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %1150, i64 noundef %1152, i64 noundef %1153, i64 noundef %1154)
          to label %1156 unwind label %1279

1156:                                             ; preds = %1147
  %1157 = load double, ptr %1155, align 8, !tbaa !9
  %1158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %96, i64 noundef 1) #7
  store double %1157, ptr %1158, align 8, !tbaa !9
  %1159 = load ptr, ptr %8, align 8, !tbaa !5
  %1160 = load i64, ptr %94, align 8, !tbaa !16
  %1161 = add nsw i64 %1160, 1
  %1162 = load i64, ptr %95, align 8, !tbaa !16
  %1163 = load i64, ptr %93, align 8, !tbaa !16
  %1164 = add nsw i64 %1163, 1
  %1165 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %1159, i64 noundef %1161, i64 noundef %1162, i64 noundef %1164)
          to label %1166 unwind label %1279

1166:                                             ; preds = %1156
  %1167 = load double, ptr %1165, align 8, !tbaa !9
  %1168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %96, i64 noundef 2) #7
  store double %1167, ptr %1168, align 8, !tbaa !9
  %1169 = load ptr, ptr %8, align 8, !tbaa !5
  %1170 = load i64, ptr %94, align 8, !tbaa !16
  %1171 = load i64, ptr %95, align 8, !tbaa !16
  %1172 = load i64, ptr %93, align 8, !tbaa !16
  %1173 = add nsw i64 %1172, 1
  %1174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %1169, i64 noundef %1170, i64 noundef %1171, i64 noundef %1173)
          to label %1175 unwind label %1279

1175:                                             ; preds = %1166
  %1176 = load double, ptr %1174, align 8, !tbaa !9
  %1177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %96, i64 noundef 3) #7
  store double %1176, ptr %1177, align 8, !tbaa !9
  %1178 = load i32, ptr %13, align 4, !tbaa !11
  %1179 = and i32 %1178, 4
  %1180 = icmp ne i32 %1179, 0
  br i1 %1180, label %1181, label %1303

1181:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 24, ptr %100) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %101) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %102) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %102, ptr align 8 @constinit.4, i64 24, i1 false), !tbaa.struct !24
  %1182 = getelementptr inbounds %"class.std::initializer_list", ptr %101, i32 0, i32 0
  store ptr %102, ptr %1182, align 8, !tbaa !26
  %1183 = getelementptr inbounds %"class.std::initializer_list", ptr %101, i32 0, i32 1
  store i64 3, ptr %1183, align 8, !tbaa !28
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %100, ptr noundef nonnull align 8 dereferenceable(16) %101)
          to label %1184 unwind label %1283

1184:                                             ; preds = %1181
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %99, ptr align 8 %100, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #7
  %1185 = load i64, ptr %94, align 8, !tbaa !16
  %1186 = load i64, ptr %95, align 8, !tbaa !16
  %1187 = load i64, ptr %93, align 8, !tbaa !16
  %1188 = load ptr, ptr %16, align 8, !tbaa !5
  %1189 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1185, i64 noundef %1186, i64 noundef %1187, ptr noundef nonnull align 8 dereferenceable(24) %1188, i64 noundef 0)
          to label %1190 unwind label %1279

1190:                                             ; preds = %1184
  %1191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 0) #7
  store i64 %1189, ptr %1191, align 8, !tbaa !16
  %1192 = load i64, ptr %94, align 8, !tbaa !16
  %1193 = load i64, ptr %95, align 8, !tbaa !16
  %1194 = load i64, ptr %93, align 8, !tbaa !16
  %1195 = load ptr, ptr %16, align 8, !tbaa !5
  %1196 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1192, i64 noundef %1193, i64 noundef %1194, ptr noundef nonnull align 8 dereferenceable(24) %1195, i64 noundef 1)
          to label %1197 unwind label %1279

1197:                                             ; preds = %1190
  %1198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 1) #7
  store i64 %1196, ptr %1198, align 8, !tbaa !16
  %1199 = load i64, ptr %94, align 8, !tbaa !16
  %1200 = load i64, ptr %95, align 8, !tbaa !16
  %1201 = load i64, ptr %93, align 8, !tbaa !16
  %1202 = load ptr, ptr %16, align 8, !tbaa !5
  %1203 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1199, i64 noundef %1200, i64 noundef %1201, ptr noundef nonnull align 8 dereferenceable(24) %1202, i64 noundef 2)
          to label %1204 unwind label %1279

1204:                                             ; preds = %1197
  %1205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 2) #7
  store i64 %1203, ptr %1205, align 8, !tbaa !16
  %1206 = load i64, ptr %94, align 8, !tbaa !16
  %1207 = load i64, ptr %95, align 8, !tbaa !16
  %1208 = load i64, ptr %93, align 8, !tbaa !16
  %1209 = load ptr, ptr %16, align 8, !tbaa !5
  %1210 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1206, i64 noundef %1207, i64 noundef %1208, ptr noundef nonnull align 8 dereferenceable(24) %1209, i64 noundef 3)
          to label %1211 unwind label %1279

1211:                                             ; preds = %1204
  %1212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 3) #7
  store i64 %1210, ptr %1212, align 8, !tbaa !16
  %1213 = load i64, ptr %94, align 8, !tbaa !16
  %1214 = load i64, ptr %95, align 8, !tbaa !16
  %1215 = load i64, ptr %93, align 8, !tbaa !16
  %1216 = load ptr, ptr %16, align 8, !tbaa !5
  %1217 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1213, i64 noundef %1214, i64 noundef %1215, ptr noundef nonnull align 8 dereferenceable(24) %1216, i64 noundef 0)
          to label %1218 unwind label %1279

1218:                                             ; preds = %1211
  %1219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 4) #7
  store i64 %1217, ptr %1219, align 8, !tbaa !16
  %1220 = load i64, ptr %94, align 8, !tbaa !16
  %1221 = load i64, ptr %95, align 8, !tbaa !16
  %1222 = load i64, ptr %93, align 8, !tbaa !16
  %1223 = load ptr, ptr %16, align 8, !tbaa !5
  %1224 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1220, i64 noundef %1221, i64 noundef %1222, ptr noundef nonnull align 8 dereferenceable(24) %1223, i64 noundef 1)
          to label %1225 unwind label %1279

1225:                                             ; preds = %1218
  %1226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 5) #7
  store i64 %1224, ptr %1226, align 8, !tbaa !16
  %1227 = load i64, ptr %94, align 8, !tbaa !16
  %1228 = load i64, ptr %95, align 8, !tbaa !16
  %1229 = load i64, ptr %93, align 8, !tbaa !16
  %1230 = load ptr, ptr %16, align 8, !tbaa !5
  %1231 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1227, i64 noundef %1228, i64 noundef %1229, ptr noundef nonnull align 8 dereferenceable(24) %1230, i64 noundef 2)
          to label %1232 unwind label %1279

1232:                                             ; preds = %1225
  %1233 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 6) #7
  store i64 %1231, ptr %1233, align 8, !tbaa !16
  %1234 = load i64, ptr %94, align 8, !tbaa !16
  %1235 = load i64, ptr %95, align 8, !tbaa !16
  %1236 = load i64, ptr %93, align 8, !tbaa !16
  %1237 = load ptr, ptr %16, align 8, !tbaa !5
  %1238 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1234, i64 noundef %1235, i64 noundef %1236, ptr noundef nonnull align 8 dereferenceable(24) %1237, i64 noundef 3)
          to label %1239 unwind label %1279

1239:                                             ; preds = %1232
  %1240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 7) #7
  store i64 %1238, ptr %1240, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %103) #7
  %1241 = load i64, ptr %94, align 8, !tbaa !16
  %1242 = load i64, ptr %95, align 8, !tbaa !16
  %1243 = load i64, ptr %93, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %103, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1241, i64 noundef %1242, i64 noundef %1243)
          to label %1244 unwind label %1287

1244:                                             ; preds = %1239
  %1245 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %98, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1245, ptr align 8 %103, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %104) #7
  %1246 = load i64, ptr %94, align 8, !tbaa !16
  %1247 = add nsw i64 %1246, 1
  %1248 = load i64, ptr %95, align 8, !tbaa !16
  %1249 = load i64, ptr %93, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %104, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1247, i64 noundef %1248, i64 noundef %1249)
          to label %1250 unwind label %1291

1250:                                             ; preds = %1244
  %1251 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %98, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1251, ptr align 8 %104, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %104) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %105) #7
  %1252 = load i64, ptr %94, align 8, !tbaa !16
  %1253 = add nsw i64 %1252, 1
  %1254 = load i64, ptr %95, align 8, !tbaa !16
  %1255 = load i64, ptr %93, align 8, !tbaa !16
  %1256 = add nsw i64 %1255, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %105, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1253, i64 noundef %1254, i64 noundef %1256)
          to label %1257 unwind label %1295

1257:                                             ; preds = %1250
  %1258 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %98, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1258, ptr align 8 %105, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %105) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %106) #7
  %1259 = load i64, ptr %94, align 8, !tbaa !16
  %1260 = load i64, ptr %95, align 8, !tbaa !16
  %1261 = load i64, ptr %93, align 8, !tbaa !16
  %1262 = add nsw i64 %1261, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %106, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1259, i64 noundef %1260, i64 noundef %1262)
          to label %1263 unwind label %1299

1263:                                             ; preds = %1257
  %1264 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %98, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1264, ptr align 8 %106, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %106) #7
  %1265 = load i32, ptr %14, align 4, !tbaa !11
  %1266 = and i32 %1265, 4
  %1267 = icmp ne i32 %1266, 0
  br i1 %1267, label %1268, label %1269

1268:                                             ; preds = %1263
  br label %1270

1269:                                             ; preds = %1263
  br label %1270

1270:                                             ; preds = %1269, %1268
  %1271 = phi ptr [ %15, %1268 ], [ %91, %1269 ]
  %1272 = load ptr, ptr %11, align 8, !tbaa !5
  %1273 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(64) %97, ptr noundef nonnull align 8 dereferenceable(24) %99, ptr noundef nonnull align 8 dereferenceable(96) %98, ptr noundef %1271, ptr noundef %1272, double noundef %1273)
          to label %1274 unwind label %1279

1274:                                             ; preds = %1270
  br label %1303

1275:                                             ; preds = %1139
  %1276 = landingpad { ptr, i32 }
          cleanup
  %1277 = extractvalue { ptr, i32 } %1276, 0
  store ptr %1277, ptr %17, align 8
  %1278 = extractvalue { ptr, i32 } %1276, 1
  store i32 %1278, ptr %18, align 4
  br label %1472

1279:                                             ; preds = %1442, %1400, %1393, %1386, %1379, %1372, %1365, %1358, %1352, %1332, %1322, %1313, %1303, %1270, %1232, %1225, %1218, %1211, %1204, %1197, %1190, %1184, %1166, %1156, %1147, %1141, %1140
  %1280 = landingpad { ptr, i32 }
          cleanup
  %1281 = extractvalue { ptr, i32 } %1280, 0
  store ptr %1281, ptr %17, align 8
  %1282 = extractvalue { ptr, i32 } %1280, 1
  store i32 %1282, ptr %18, align 4
  br label %1471

1283:                                             ; preds = %1181
  %1284 = landingpad { ptr, i32 }
          cleanup
  %1285 = extractvalue { ptr, i32 } %1284, 0
  store ptr %1285, ptr %17, align 8
  %1286 = extractvalue { ptr, i32 } %1284, 1
  store i32 %1286, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #7
  br label %1471

1287:                                             ; preds = %1239
  %1288 = landingpad { ptr, i32 }
          cleanup
  %1289 = extractvalue { ptr, i32 } %1288, 0
  store ptr %1289, ptr %17, align 8
  %1290 = extractvalue { ptr, i32 } %1288, 1
  store i32 %1290, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #7
  br label %1471

1291:                                             ; preds = %1244
  %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
  call void @llvm.lifetime.end.p0(i64 24, ptr %104) #7
  br label %1471

1295:                                             ; preds = %1250
  %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
  call void @llvm.lifetime.end.p0(i64 24, ptr %105) #7
  br label %1471

1299:                                             ; preds = %1257
  %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
  call void @llvm.lifetime.end.p0(i64 24, ptr %106) #7
  br label %1471

1303:                                             ; preds = %1274, %1175
  %1304 = load i64, ptr %24, align 8, !tbaa !16
  %1305 = sub nsw i64 %1304, 2
  store i64 %1305, ptr %95, align 8, !tbaa !16
  %1306 = load ptr, ptr %8, align 8, !tbaa !5
  %1307 = load i64, ptr %94, align 8, !tbaa !16
  %1308 = add nsw i64 %1307, 1
  %1309 = load i64, ptr %95, align 8, !tbaa !16
  %1310 = add nsw i64 %1309, 1
  %1311 = load i64, ptr %93, align 8, !tbaa !16
  %1312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %1306, i64 noundef %1308, i64 noundef %1310, i64 noundef %1311)
          to label %1313 unwind label %1279

1313:                                             ; preds = %1303
  %1314 = load double, ptr %1312, align 8, !tbaa !9
  %1315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %96, i64 noundef 0) #7
  store double %1314, ptr %1315, align 8, !tbaa !9
  %1316 = load ptr, ptr %8, align 8, !tbaa !5
  %1317 = load i64, ptr %94, align 8, !tbaa !16
  %1318 = load i64, ptr %95, align 8, !tbaa !16
  %1319 = add nsw i64 %1318, 1
  %1320 = load i64, ptr %93, align 8, !tbaa !16
  %1321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %1316, i64 noundef %1317, i64 noundef %1319, i64 noundef %1320)
          to label %1322 unwind label %1279

1322:                                             ; preds = %1313
  %1323 = load double, ptr %1321, align 8, !tbaa !9
  %1324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %96, i64 noundef 1) #7
  store double %1323, ptr %1324, align 8, !tbaa !9
  %1325 = load ptr, ptr %8, align 8, !tbaa !5
  %1326 = load i64, ptr %94, align 8, !tbaa !16
  %1327 = load i64, ptr %95, align 8, !tbaa !16
  %1328 = add nsw i64 %1327, 1
  %1329 = load i64, ptr %93, align 8, !tbaa !16
  %1330 = add nsw i64 %1329, 1
  %1331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %1325, i64 noundef %1326, i64 noundef %1328, i64 noundef %1330)
          to label %1332 unwind label %1279

1332:                                             ; preds = %1322
  %1333 = load double, ptr %1331, align 8, !tbaa !9
  %1334 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %96, i64 noundef 2) #7
  store double %1333, ptr %1334, align 8, !tbaa !9
  %1335 = load ptr, ptr %8, align 8, !tbaa !5
  %1336 = load i64, ptr %94, align 8, !tbaa !16
  %1337 = add nsw i64 %1336, 1
  %1338 = load i64, ptr %95, align 8, !tbaa !16
  %1339 = add nsw i64 %1338, 1
  %1340 = load i64, ptr %93, align 8, !tbaa !16
  %1341 = add nsw i64 %1340, 1
  %1342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %1335, i64 noundef %1337, i64 noundef %1339, i64 noundef %1341)
          to label %1343 unwind label %1279

1343:                                             ; preds = %1332
  %1344 = load double, ptr %1342, align 8, !tbaa !9
  %1345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %96, i64 noundef 3) #7
  store double %1344, ptr %1345, align 8, !tbaa !9
  %1346 = load i32, ptr %13, align 4, !tbaa !11
  %1347 = and i32 %1346, 8
  %1348 = icmp ne i32 %1347, 0
  br i1 %1348, label %1349, label %1467

1349:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 24, ptr %107) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %108) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %109) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %109, ptr align 8 @constinit.5, i64 24, i1 false), !tbaa.struct !24
  %1350 = getelementptr inbounds %"class.std::initializer_list", ptr %108, i32 0, i32 0
  store ptr %109, ptr %1350, align 8, !tbaa !26
  %1351 = getelementptr inbounds %"class.std::initializer_list", ptr %108, i32 0, i32 1
  store i64 3, ptr %1351, align 8, !tbaa !28
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 8 dereferenceable(16) %108)
          to label %1352 unwind label %1447

1352:                                             ; preds = %1349
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %99, ptr align 8 %107, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %108) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #7
  %1353 = load i64, ptr %94, align 8, !tbaa !16
  %1354 = load i64, ptr %95, align 8, !tbaa !16
  %1355 = load i64, ptr %93, align 8, !tbaa !16
  %1356 = load ptr, ptr %16, align 8, !tbaa !5
  %1357 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1353, i64 noundef %1354, i64 noundef %1355, ptr noundef nonnull align 8 dereferenceable(24) %1356, i64 noundef 5)
          to label %1358 unwind label %1279

1358:                                             ; preds = %1352
  %1359 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 0) #7
  store i64 %1357, ptr %1359, align 8, !tbaa !16
  %1360 = load i64, ptr %94, align 8, !tbaa !16
  %1361 = load i64, ptr %95, align 8, !tbaa !16
  %1362 = load i64, ptr %93, align 8, !tbaa !16
  %1363 = load ptr, ptr %16, align 8, !tbaa !5
  %1364 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1360, i64 noundef %1361, i64 noundef %1362, ptr noundef nonnull align 8 dereferenceable(24) %1363, i64 noundef 4)
          to label %1365 unwind label %1279

1365:                                             ; preds = %1358
  %1366 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 1) #7
  store i64 %1364, ptr %1366, align 8, !tbaa !16
  %1367 = load i64, ptr %94, align 8, !tbaa !16
  %1368 = load i64, ptr %95, align 8, !tbaa !16
  %1369 = load i64, ptr %93, align 8, !tbaa !16
  %1370 = load ptr, ptr %16, align 8, !tbaa !5
  %1371 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1367, i64 noundef %1368, i64 noundef %1369, ptr noundef nonnull align 8 dereferenceable(24) %1370, i64 noundef 7)
          to label %1372 unwind label %1279

1372:                                             ; preds = %1365
  %1373 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 2) #7
  store i64 %1371, ptr %1373, align 8, !tbaa !16
  %1374 = load i64, ptr %94, align 8, !tbaa !16
  %1375 = load i64, ptr %95, align 8, !tbaa !16
  %1376 = load i64, ptr %93, align 8, !tbaa !16
  %1377 = load ptr, ptr %16, align 8, !tbaa !5
  %1378 = invoke noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1374, i64 noundef %1375, i64 noundef %1376, ptr noundef nonnull align 8 dereferenceable(24) %1377, i64 noundef 6)
          to label %1379 unwind label %1279

1379:                                             ; preds = %1372
  %1380 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 3) #7
  store i64 %1378, ptr %1380, align 8, !tbaa !16
  %1381 = load i64, ptr %94, align 8, !tbaa !16
  %1382 = load i64, ptr %95, align 8, !tbaa !16
  %1383 = load i64, ptr %93, align 8, !tbaa !16
  %1384 = load ptr, ptr %16, align 8, !tbaa !5
  %1385 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1381, i64 noundef %1382, i64 noundef %1383, ptr noundef nonnull align 8 dereferenceable(24) %1384, i64 noundef 4)
          to label %1386 unwind label %1279

1386:                                             ; preds = %1379
  %1387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 4) #7
  store i64 %1385, ptr %1387, align 8, !tbaa !16
  %1388 = load i64, ptr %94, align 8, !tbaa !16
  %1389 = load i64, ptr %95, align 8, !tbaa !16
  %1390 = load i64, ptr %93, align 8, !tbaa !16
  %1391 = load ptr, ptr %16, align 8, !tbaa !5
  %1392 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1388, i64 noundef %1389, i64 noundef %1390, ptr noundef nonnull align 8 dereferenceable(24) %1391, i64 noundef 7)
          to label %1393 unwind label %1279

1393:                                             ; preds = %1386
  %1394 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 5) #7
  store i64 %1392, ptr %1394, align 8, !tbaa !16
  %1395 = load i64, ptr %94, align 8, !tbaa !16
  %1396 = load i64, ptr %95, align 8, !tbaa !16
  %1397 = load i64, ptr %93, align 8, !tbaa !16
  %1398 = load ptr, ptr %16, align 8, !tbaa !5
  %1399 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1395, i64 noundef %1396, i64 noundef %1397, ptr noundef nonnull align 8 dereferenceable(24) %1398, i64 noundef 6)
          to label %1400 unwind label %1279

1400:                                             ; preds = %1393
  %1401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 6) #7
  store i64 %1399, ptr %1401, align 8, !tbaa !16
  %1402 = load i64, ptr %94, align 8, !tbaa !16
  %1403 = load i64, ptr %95, align 8, !tbaa !16
  %1404 = load i64, ptr %93, align 8, !tbaa !16
  %1405 = load ptr, ptr %16, align 8, !tbaa !5
  %1406 = invoke noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %1402, i64 noundef %1403, i64 noundef %1404, ptr noundef nonnull align 8 dereferenceable(24) %1405, i64 noundef 5)
          to label %1407 unwind label %1279

1407:                                             ; preds = %1400
  %1408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %97, i64 noundef 7) #7
  store i64 %1406, ptr %1408, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 24, ptr %110) #7
  %1409 = load i64, ptr %94, align 8, !tbaa !16
  %1410 = add nsw i64 %1409, 1
  %1411 = load i64, ptr %95, align 8, !tbaa !16
  %1412 = add nsw i64 %1411, 1
  %1413 = load i64, ptr %93, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %110, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1410, i64 noundef %1412, i64 noundef %1413)
          to label %1414 unwind label %1451

1414:                                             ; preds = %1407
  %1415 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %98, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1415, ptr align 8 %110, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %110) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %111) #7
  %1416 = load i64, ptr %94, align 8, !tbaa !16
  %1417 = load i64, ptr %95, align 8, !tbaa !16
  %1418 = add nsw i64 %1417, 1
  %1419 = load i64, ptr %93, align 8, !tbaa !16
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %111, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1416, i64 noundef %1418, i64 noundef %1419)
          to label %1420 unwind label %1455

1420:                                             ; preds = %1414
  %1421 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %98, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1421, ptr align 8 %111, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %111) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %112) #7
  %1422 = load i64, ptr %94, align 8, !tbaa !16
  %1423 = load i64, ptr %95, align 8, !tbaa !16
  %1424 = add nsw i64 %1423, 1
  %1425 = load i64, ptr %93, align 8, !tbaa !16
  %1426 = add nsw i64 %1425, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %112, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1422, i64 noundef %1424, i64 noundef %1426)
          to label %1427 unwind label %1459

1427:                                             ; preds = %1420
  %1428 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %98, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1428, ptr align 8 %112, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %112) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %113) #7
  %1429 = load i64, ptr %94, align 8, !tbaa !16
  %1430 = add nsw i64 %1429, 1
  %1431 = load i64, ptr %95, align 8, !tbaa !16
  %1432 = add nsw i64 %1431, 1
  %1433 = load i64, ptr %93, align 8, !tbaa !16
  %1434 = add nsw i64 %1433, 1
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind writable sret(%"class.vox::geometry::Matrix.2") align 8 %113, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 noundef %1430, i64 noundef %1432, i64 noundef %1434)
          to label %1435 unwind label %1463

1435:                                             ; preds = %1427
  %1436 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %98, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1436, ptr align 8 %113, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr %113) #7
  %1437 = load i32, ptr %14, align 4, !tbaa !11
  %1438 = and i32 %1437, 8
  %1439 = icmp ne i32 %1438, 0
  br i1 %1439, label %1440, label %1441

1440:                                             ; preds = %1435
  br label %1442

1441:                                             ; preds = %1435
  br label %1442

1442:                                             ; preds = %1441, %1440
  %1443 = phi ptr [ %15, %1440 ], [ %92, %1441 ]
  %1444 = load ptr, ptr %11, align 8, !tbaa !5
  %1445 = load double, ptr %12, align 8, !tbaa !9
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(64) %97, ptr noundef nonnull align 8 dereferenceable(24) %99, ptr noundef nonnull align 8 dereferenceable(96) %98, ptr noundef %1443, ptr noundef %1444, double noundef %1445)
          to label %1446 unwind label %1279

1446:                                             ; preds = %1442
  br label %1467

1447:                                             ; preds = %1349
  %1448 = landingpad { ptr, i32 }
          cleanup
  %1449 = extractvalue { ptr, i32 } %1448, 0
  store ptr %1449, ptr %17, align 8
  %1450 = extractvalue { ptr, i32 } %1448, 1
  store i32 %1450, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %108) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #7
  br label %1471

1451:                                             ; preds = %1407
  %1452 = landingpad { ptr, i32 }
          cleanup
  %1453 = extractvalue { ptr, i32 } %1452, 0
  store ptr %1453, ptr %17, align 8
  %1454 = extractvalue { ptr, i32 } %1452, 1
  store i32 %1454, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %110) #7
  br label %1471

1455:                                             ; preds = %1414
  %1456 = landingpad { ptr, i32 }
          cleanup
  %1457 = extractvalue { ptr, i32 } %1456, 0
  store ptr %1457, ptr %17, align 8
  %1458 = extractvalue { ptr, i32 } %1456, 1
  store i32 %1458, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %111) #7
  br label %1471

1459:                                             ; preds = %1420
  %1460 = landingpad { ptr, i32 }
          cleanup
  %1461 = extractvalue { ptr, i32 } %1460, 0
  store ptr %1461, ptr %17, align 8
  %1462 = extractvalue { ptr, i32 } %1460, 1
  store i32 %1462, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %112) #7
  br label %1471

1463:                                             ; preds = %1427
  %1464 = landingpad { ptr, i32 }
          cleanup
  %1465 = extractvalue { ptr, i32 } %1464, 0
  store ptr %1465, ptr %17, align 8
  %1466 = extractvalue { ptr, i32 } %1464, 1
  store i32 %1466, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %113) #7
  br label %1471

1467:                                             ; preds = %1446, %1343
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %98) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #7
  br label %1468

1468:                                             ; preds = %1467
  %1469 = load i64, ptr %94, align 8, !tbaa !16
  %1470 = add nsw i64 %1469, 1
  store i64 %1470, ptr %94, align 8, !tbaa !16
  br label %1133, !llvm.loop !33

1471:                                             ; preds = %1463, %1459, %1455, %1451, %1447, %1299, %1295, %1291, %1287, %1283, %1279
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #7
  br label %1472

1472:                                             ; preds = %1471, %1275
  call void @llvm.lifetime.end.p0(i64 96, ptr %98) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %92) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %92) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %91) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %91) #7
  br label %1479

1473:                                             ; preds = %1138
  br label %1474

1474:                                             ; preds = %1473
  %1475 = load i64, ptr %93, align 8, !tbaa !16
  %1476 = add nsw i64 %1475, 1
  store i64 %1476, ptr %93, align 8, !tbaa !16
  br label %1126, !llvm.loop !34

1477:                                             ; preds = %1131
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %92) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %92) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %91) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %91) #7
  br label %1478

1478:                                             ; preds = %1477, %1121
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %15) #7
  ret void

1479:                                             ; preds = %1472, %1115, %758, %398
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %1480

1480:                                             ; preds = %1479, %149
  call void @llvm.lifetime.end.p0(i64 48, ptr %22) #7
  br label %1481

1481:                                             ; preds = %1480, %145
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #7
  br label %1482

1482:                                             ; preds = %1481, %141
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %15) #7
  br label %1483

1483:                                             ; preds = %1482
  %1484 = load ptr, ptr %17, align 8
  %1485 = load i32, ptr %18, align 4
  %1486 = insertvalue { ptr, i32 } poison, ptr %1484, 0
  %1487 = insertvalue { ptr, i32 } %1486, i32 %1485, 1
  resume { ptr, i32 } %1487
}

; 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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3vox8geometrydvIdLm3ELm1ENS0_6MatrixIdLm3ELm1EEEEEDaRKT_RKNS0_16MatrixExpressionIS4_XT0_EXT1_ET2_EE(ptr dead_on_unwind noalias writable sret(%"class.vox::geometry::ScalarMatrixElemWiseBinaryOp") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ILm3ELm1ENS0_28ScalarMatrixElemWiseBinaryOpIdLm3ELm1ERKS2_St7dividesIdEEEEERKNS0_16MatrixExpressionIdXT_EXT0_ET1_EE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #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: mustprogress nounwind uwtable
declare dso_local void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, i64 noundef, i64 noundef) #0 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 @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind noalias writable sret(%"class.vox::geometry::Matrix.2") align 8, ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

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

; 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 @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind noalias writable sret(%"class.vox::geometry::Matrix.2") align 8, ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, i64 noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN3vox8geometryL10SingleCubeERKSt5arrayIdLm8EERKS1_ImLm12EERKS1_INS0_6MatrixIdLm3ELm1EEELm8EERKNS0_11BoundingBoxIdLm3EEEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_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 @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 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 @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

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

; 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 @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_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 #6 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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { 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 #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { 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 #7 = { 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 = !{!"_ZTSN3vox8geometry6MatrixImLm3ELm1EEE", !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 = !{i64 0, i64 24, !25}
!25 = !{!7, !7, i64 0}
!26 = !{!27, !6, i64 0}
!27 = !{!"_ZTSSt16initializer_listIdE", !6, i64 0, !15, i64 8}
!28 = !{!27, !15, i64 8}
!29 = distinct !{!29, !20}
!30 = distinct !{!30, !20}
!31 = distinct !{!31, !20}
!32 = distinct !{!32, !20}
!33 = distinct !{!33, !20}
!34 = distinct !{!34, !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.vox::geometry::Matrix.2" = type { double, double, double }
%"class.vox::geometry::ScalarMatrixElemWiseBinaryOp" = type <{ double, ptr, [8 x i8] }>
%class.anon = type { %"class.vox::geometry::Matrix.2", %"class.vox::geometry::Matrix.2" }
%"struct.std::array" = type { [8 x double] }
%"struct.std::array.6" = type { [12 x i64] }
%"struct.std::array.7" = type { [8 x %"class.vox::geometry::Matrix.2"] }
%"class.vox::geometry::BoundingBox" = type { %"class.vox::geometry::Matrix.2", %"class.vox::geometry::Matrix.2" }
%"struct.std::array.8" = type { [4 x double] }
%"struct.std::array.9" = type { [8 x i64] }
%"struct.std::array.10" = type { [4 x %"class.vox::geometry::Matrix.2"] }
%"class.std::initializer_list" = type { ptr, i64 }

@constinit = external hidden local_unnamed_addr constant [3 x double], align 8
@constinit.1 = external hidden local_unnamed_addr constant [3 x double], align 8
@constinit.2 = external hidden local_unnamed_addr constant [3 x double], align 8
@constinit.3 = external hidden local_unnamed_addr constant [3 x double], align 8
@constinit.4 = external hidden local_unnamed_addr constant [3 x double], align 8
@constinit.5 = external hidden local_unnamed_addr constant [3 x double], align 8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3Edii(ptr noundef nonnull align 8 dereferenceable(40) %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.vox::geometry::Matrix.2", align 8
  %10 = alloca %"class.vox::geometry::ScalarMatrixElemWiseBinaryOp", align 8
  %11 = alloca double, align 8
  %12 = alloca %class.anon, align 8
  %13 = alloca %"struct.std::array", align 8
  %14 = alloca %"struct.std::array.6", align 8
  %15 = alloca %"struct.std::array.7", align 8
  %16 = alloca %"class.vox::geometry::BoundingBox", align 8
  %17 = alloca %"class.vox::geometry::Matrix.2", align 8
  %18 = alloca %"class.vox::geometry::Matrix.2", align 8
  %19 = alloca %"class.vox::geometry::Matrix.2", align 8
  %20 = alloca %"class.vox::geometry::Matrix.2", align 8
  %21 = alloca %"class.vox::geometry::Matrix.2", align 8
  %22 = alloca %"class.vox::geometry::Matrix.2", align 8
  %23 = alloca %"class.vox::geometry::Matrix.2", align 8
  %24 = alloca %"class.vox::geometry::Matrix.2", align 8
  %25 = alloca %"class.vox::geometry::Matrix.2", align 8
  %26 = alloca %"class.vox::geometry::Matrix.2", align 8
  %27 = alloca %"class.std::unordered_map", align 8
  %28 = alloca %"class.std::unordered_map", align 8
  %29 = alloca %"struct.std::array.8", align 8
  %30 = alloca %"struct.std::array.9", align 8
  %31 = alloca %"struct.std::array.10", align 8
  %32 = alloca %"class.vox::geometry::Matrix.2", align 8
  %33 = alloca %"class.vox::geometry::Matrix.2", align 8
  %34 = alloca %"class.std::initializer_list", align 8
  %35 = alloca [3 x double], align 8
  %36 = alloca %"class.vox::geometry::Matrix.2", align 8
  %37 = alloca %"class.vox::geometry::Matrix.2", align 8
  %38 = alloca %"class.vox::geometry::Matrix.2", align 8
  %39 = alloca %"class.vox::geometry::Matrix.2", align 8
  %40 = alloca %"class.vox::geometry::Matrix.2", align 8
  %41 = alloca %"class.std::initializer_list", align 8
  %42 = alloca [3 x double], align 8
  %43 = alloca %"class.vox::geometry::Matrix.2", align 8
  %44 = alloca %"class.vox::geometry::Matrix.2", align 8
  %45 = alloca %"class.vox::geometry::Matrix.2", align 8
  %46 = alloca %"class.vox::geometry::Matrix.2", align 8
  %47 = alloca %"class.std::unordered_map", align 8
  %48 = alloca %"class.std::unordered_map", align 8
  %49 = alloca %"struct.std::array.8", align 8
  %50 = alloca %"struct.std::array.9", align 8
  %51 = alloca %"struct.std::array.10", align 8
  %52 = alloca %"class.vox::geometry::Matrix.2", align 8
  %53 = alloca %"class.vox::geometry::Matrix.2", align 8
  %54 = alloca %"class.std::initializer_list", align 8
  %55 = alloca [3 x double], align 8
  %56 = alloca %"class.vox::geometry::Matrix.2", align 8
  %57 = alloca %"class.vox::geometry::Matrix.2", align 8
  %58 = alloca %"class.vox::geometry::Matrix.2", align 8
  %59 = alloca %"class.vox::geometry::Matrix.2", align 8
  %60 = alloca %"class.vox::geometry::Matrix.2", align 8
  %61 = alloca %"class.std::initializer_list", align 8
  %62 = alloca [3 x double], align 8
  %63 = alloca %"class.vox::geometry::Matrix.2", align 8
  %64 = alloca %"class.vox::geometry::Matrix.2", align 8
  %65 = alloca %"class.vox::geometry::Matrix.2", align 8
  %66 = alloca %"class.vox::geometry::Matrix.2", align 8
  %67 = alloca %"class.std::unordered_map", align 8
  %68 = alloca %"class.std::unordered_map", align 8
  %69 = alloca %"struct.std::array.8", align 8
  %70 = alloca %"struct.std::array.9", align 8
  %71 = alloca %"struct.std::array.10", align 8
  %72 = alloca %"class.vox::geometry::Matrix.2", align 8
  %73 = alloca %"class.vox::geometry::Matrix.2", align 8
  %74 = alloca %"class.std::initializer_list", align 8
  %75 = alloca [3 x double], align 8
  %76 = alloca %"class.vox::geometry::Matrix.2", align 8
  %77 = alloca %"class.vox::geometry::Matrix.2", align 8
  %78 = alloca %"class.vox::geometry::Matrix.2", align 8
  %79 = alloca %"class.vox::geometry::Matrix.2", align 8
  %80 = alloca %"class.vox::geometry::Matrix.2", align 8
  %81 = alloca %"class.std::initializer_list", align 8
  %82 = alloca [3 x double], align 8
  %83 = alloca %"class.vox::geometry::Matrix.2", align 8
  %84 = alloca %"class.vox::geometry::Matrix.2", align 8
  %85 = alloca %"class.vox::geometry::Matrix.2", align 8
  %86 = alloca %"class.vox::geometry::Matrix.2", align 8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #7
  %87 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %0)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  store double 1.000000e+00, ptr %11, align 8, !tbaa !5
  invoke void @_ZN3vox8geometrydvIdLm3ELm1ENS0_6MatrixIdLm3ELm1EEEEEDaRKT_RKNS0_16MatrixExpressionIS4_XT0_EXT1_ET2_EE(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::ScalarMatrixElemWiseBinaryOp") align 8 %10, ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 1 dereferenceable(1) %1)
          to label %88 unwind label %197

88:                                               ; preds = %7
  invoke void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ILm3ELm1ENS0_28ScalarMatrixElemWiseBinaryOpIdLm3ELm1ERKS2_St7dividesIdEEEEERKNS0_16MatrixExpressionIdXT_EXT0_ET1_EE(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %89 unwind label %197

89:                                               ; preds = %88
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %12) #7
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %2)
  %90 = getelementptr inbounds i8, ptr %12, i64 24
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(24) %1)
  %91 = load i64, ptr %87, align 8, !tbaa !9
  %92 = getelementptr inbounds i8, ptr %87, i64 8
  %93 = load i64, ptr %92, align 8, !tbaa !12
  %94 = getelementptr inbounds i8, ptr %87, i64 16
  %95 = load i64, ptr %94, align 8, !tbaa !13
  %96 = add i64 %95, -1
  %97 = icmp sgt i64 %95, 1
  br i1 %97, label %.preheader566.lr.ph, label %._crit_edge

.preheader566.lr.ph:                              ; preds = %89
  %98 = icmp sgt i64 %93, 1
  %99 = getelementptr inbounds i8, ptr %16, i64 24
  %100 = icmp sgt i64 %91, 1
  %or.cond = select i1 %98, i1 %100, i1 false
  br i1 %or.cond, label %.preheader566.us.us.preheader, label %._crit_edge

.preheader566.us.us.preheader:                    ; preds = %.preheader566.lr.ph
  %101 = add nsw i64 %91, -2
  %102 = add nsw i64 %93, -2
  br label %.preheader566.us.us

.preheader566.us.us:                              ; preds = %.preheader566.us.us.preheader, %._crit_edge582.split.us.us.us
  %.0518616.us.us = phi i64 [ %103, %._crit_edge582.split.us.us.us ], [ 0, %.preheader566.us.us.preheader ]
  %103 = add nuw nsw i64 %.0518616.us.us, 1
  br label %.preheader565.us.us.us

.preheader565.us.us.us:                           ; preds = %._crit_edge.us.us.us, %.preheader566.us.us
  %.0517581.us.us.us = phi i64 [ 0, %.preheader566.us.us ], [ %104, %._crit_edge.us.us.us ]
  %104 = add nuw nsw i64 %.0517581.us.us.us, 1
  br label %105

105:                                              ; preds = %183, %.preheader565.us.us.us
  %.0516580.us.us.us = phi i64 [ 0, %.preheader565.us.us.us ], [ %112, %183 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %13, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %14) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %14, i8 0, i64 96, i1 false)
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %15) #7
  invoke void @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(192) %15)
          to label %106 unwind label %.split.us.split.us.split.us

106:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %16) #7
  invoke void @_ZN3vox8geometry11BoundingBoxIdLm3EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %16)
          to label %107 unwind label %.split584.us.split.us.split.us

107:                                              ; preds = %106
  %108 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us)
          to label %109 unwind label %.split584.us.split.us.split.us

109:                                              ; preds = %107
  %110 = load double, ptr %108, align 8, !tbaa !5
  %111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %13, i64 noundef 0) #7
  store double %110, ptr %111, align 8, !tbaa !5
  %112 = add nuw nsw i64 %.0516580.us.us.us, 1
  %113 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %112, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us)
          to label %114 unwind label %.split584.us.split.us.split.us

114:                                              ; preds = %109
  %115 = load double, ptr %113, align 8, !tbaa !5
  %116 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %13, i64 noundef 1) #7
  store double %115, ptr %116, align 8, !tbaa !5
  %117 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0516580.us.us.us, i64 noundef %104, i64 noundef %.0518616.us.us)
          to label %118 unwind label %.split584.us.split.us.split.us

118:                                              ; preds = %114
  %119 = load double, ptr %117, align 8, !tbaa !5
  %120 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %13, i64 noundef 4) #7
  store double %119, ptr %120, align 8, !tbaa !5
  %121 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %112, i64 noundef %104, i64 noundef %.0518616.us.us)
          to label %122 unwind label %.split584.us.split.us.split.us

122:                                              ; preds = %118
  %123 = load double, ptr %121, align 8, !tbaa !5
  %124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %13, i64 noundef 5) #7
  store double %123, ptr %124, align 8, !tbaa !5
  %125 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %103)
          to label %126 unwind label %.split584.us.split.us.split.us

126:                                              ; preds = %122
  %127 = load double, ptr %125, align 8, !tbaa !5
  %128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %13, i64 noundef 3) #7
  store double %127, ptr %128, align 8, !tbaa !5
  %129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %112, i64 noundef %.0517581.us.us.us, i64 noundef %103)
          to label %130 unwind label %.split584.us.split.us.split.us

130:                                              ; preds = %126
  %131 = load double, ptr %129, align 8, !tbaa !5
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %13, i64 noundef 2) #7
  store double %131, ptr %132, align 8, !tbaa !5
  %133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0516580.us.us.us, i64 noundef %104, i64 noundef %103)
          to label %134 unwind label %.split584.us.split.us.split.us

134:                                              ; preds = %130
  %135 = load double, ptr %133, align 8, !tbaa !5
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %13, i64 noundef 7) #7
  store double %135, ptr %136, align 8, !tbaa !5
  %137 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %112, i64 noundef %104, i64 noundef %103)
          to label %138 unwind label %.split584.us.split.us.split.us

138:                                              ; preds = %134
  %139 = load double, ptr %137, align 8, !tbaa !5
  %140 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %13, i64 noundef 6) #7
  store double %139, ptr %140, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #7
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %17, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %141 unwind label %.split587.us.split.us.split.us

141:                                              ; preds = %138
  %142 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %15, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %142, ptr noundef nonnull align 8 dereferenceable(24) %17, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #7
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %18, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %112, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %143 unwind label %.split590.us.split.us.split.us

143:                                              ; preds = %141
  %144 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %15, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %144, ptr noundef nonnull align 8 dereferenceable(24) %18, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #7
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %19, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0516580.us.us.us, i64 noundef %104, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %145 unwind label %.split593.us.split.us.split.us

145:                                              ; preds = %143
  %146 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %15, i64 noundef 4) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %146, ptr noundef nonnull align 8 dereferenceable(24) %19, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #7
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %20, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %112, i64 noundef %104, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %147 unwind label %.split596.us.split.us.split.us

147:                                              ; preds = %145
  %148 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %15, i64 noundef 5) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %148, ptr noundef nonnull align 8 dereferenceable(24) %20, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #7
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %21, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %103, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %149 unwind label %.split599.us.split.us.split.us

149:                                              ; preds = %147
  %150 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %15, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %150, ptr noundef nonnull align 8 dereferenceable(24) %21, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #7
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %22, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %112, i64 noundef %.0517581.us.us.us, i64 noundef %103, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %151 unwind label %.split602.us.split.us.split.us

151:                                              ; preds = %149
  %152 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %15, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %152, ptr noundef nonnull align 8 dereferenceable(24) %22, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #7
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %23, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0516580.us.us.us, i64 noundef %104, i64 noundef %103, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %153 unwind label %.split605.us.split.us.split.us

153:                                              ; preds = %151
  %154 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %15, i64 noundef 7) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %154, ptr noundef nonnull align 8 dereferenceable(24) %23, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #7
  invoke void @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %24, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %112, i64 noundef %104, i64 noundef %103, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %155 unwind label %.split608.us.split.us.split.us

155:                                              ; preds = %153
  %156 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm8EEixEm(ptr noundef nonnull align 8 dereferenceable(192) %15, i64 noundef 6) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %156, ptr noundef nonnull align 8 dereferenceable(24) %24, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #7
  %157 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 0)
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 0) #7
  store i64 %157, ptr %158, align 8, !tbaa !14
  %159 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 1)
  %160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 1) #7
  store i64 %159, ptr %160, align 8, !tbaa !14
  %161 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 2)
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 2) #7
  store i64 %161, ptr %162, align 8, !tbaa !14
  %163 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 3)
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 3) #7
  store i64 %163, ptr %164, align 8, !tbaa !14
  %165 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 4)
  %166 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 4) #7
  store i64 %165, ptr %166, align 8, !tbaa !14
  %167 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 5)
  %168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 5) #7
  store i64 %167, ptr %168, align 8, !tbaa !14
  %169 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 6)
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 6) #7
  store i64 %169, ptr %170, align 8, !tbaa !14
  %171 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 7)
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 7) #7
  store i64 %171, ptr %172, align 8, !tbaa !14
  %173 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 8)
  %174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 8) #7
  store i64 %173, ptr %174, align 8, !tbaa !14
  %175 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 9)
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 9) #7
  store i64 %175, ptr %176, align 8, !tbaa !14
  %177 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 10)
  %178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 10) #7
  store i64 %177, ptr %178, align 8, !tbaa !14
  %179 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 11)
  %180 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm12EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %14, i64 noundef 11) #7
  store i64 %179, ptr %180, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %25, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %.0516580.us.us.us, i64 noundef %.0517581.us.us.us, i64 noundef %.0518616.us.us)
          to label %181 unwind label %.split611.us.split.us.split.us

181:                                              ; preds = %155
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(24) %25, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %26, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %112, i64 noundef %104, i64 noundef %103)
          to label %182 unwind label %.split614.us.split.us.split.us

182:                                              ; preds = %181
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %99, ptr noundef nonnull align 8 dereferenceable(24) %26, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  invoke void @_ZN3vox8geometryL10SingleCubeERKSt5arrayIdLm8EERKS1_ImLm12EERKS1_INS0_6MatrixIdLm3ELm1EEELm8EERKNS0_11BoundingBoxIdLm3EEEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(64) %13, ptr noundef nonnull align 8 dereferenceable(96) %14, ptr noundef nonnull align 8 dereferenceable(192) %15, ptr noundef nonnull align 8 dereferenceable(48) %16, ptr noundef nonnull %8, ptr noundef %3, double noundef %4)
          to label %183 unwind label %.split584.us.split.us.split.us

183:                                              ; preds = %182
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #7
  %exitcond.not = icmp eq i64 %.0516580.us.us.us, %101
  br i1 %exitcond.not, label %._crit_edge.us.us.us, label %105, !llvm.loop !15

._crit_edge.us.us.us:                             ; preds = %183
  %exitcond752.not = icmp eq i64 %.0517581.us.us.us, %102
  br i1 %exitcond752.not, label %._crit_edge582.split.us.us.us, label %.preheader565.us.us.us, !llvm.loop !17

._crit_edge582.split.us.us.us:                    ; preds = %._crit_edge.us.us.us
  %exitcond753.not = icmp eq i64 %103, %96
  br i1 %exitcond753.not, label %._crit_edge, label %.preheader566.us.us, !llvm.loop !18

.split.us.split.us.split.us:                      ; preds = %105
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %200

.split584.us.split.us.split.us:                   ; preds = %182, %134, %130, %126, %122, %118, %114, %109, %107, %106
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %199

.split587.us.split.us.split.us:                   ; preds = %138
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #7
  br label %199

.split590.us.split.us.split.us:                   ; preds = %141
  %187 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  br label %199

.split593.us.split.us.split.us:                   ; preds = %143
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #7
  br label %199

.split596.us.split.us.split.us:                   ; preds = %145
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #7
  br label %199

.split599.us.split.us.split.us:                   ; preds = %147
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #7
  br label %199

.split602.us.split.us.split.us:                   ; preds = %149
  %191 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #7
  br label %199

.split605.us.split.us.split.us:                   ; preds = %151
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #7
  br label %199

.split608.us.split.us.split.us:                   ; preds = %153
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #7
  br label %199

.split611.us.split.us.split.us:                   ; preds = %155
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #7
  br label %199

.split614.us.split.us.split.us:                   ; preds = %181
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  br label %199

._crit_edge:                                      ; preds = %._crit_edge582.split.us.us.us, %.preheader566.lr.ph, %89
  %196 = and i32 %5, 48
  %.not = icmp eq i32 %196, 0
  br i1 %.not, label %313, label %201

197:                                              ; preds = %88, %7
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  br label %541

199:                                              ; preds = %.split614.us.split.us.split.us, %.split611.us.split.us.split.us, %.split608.us.split.us.split.us, %.split605.us.split.us.split.us, %.split602.us.split.us.split.us, %.split599.us.split.us.split.us, %.split596.us.split.us.split.us, %.split593.us.split.us.split.us, %.split590.us.split.us.split.us, %.split587.us.split.us.split.us, %.split584.us.split.us.split.us
  %.pn558 = phi { ptr, i32 } [ %185, %.split584.us.split.us.split.us ], [ %195, %.split614.us.split.us.split.us ], [ %194, %.split611.us.split.us.split.us ], [ %193, %.split608.us.split.us.split.us ], [ %192, %.split605.us.split.us.split.us ], [ %191, %.split602.us.split.us.split.us ], [ %190, %.split599.us.split.us.split.us ], [ %189, %.split596.us.split.us.split.us ], [ %188, %.split593.us.split.us.split.us ], [ %187, %.split590.us.split.us.split.us ], [ %186, %.split587.us.split.us.split.us ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %16) #7
  br label %200

200:                                              ; preds = %199, %.split.us.split.us.split.us
  %.pn558.pn = phi { ptr, i32 } [ %.pn558, %199 ], [ %184, %.split.us.split.us.split.us ]
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #7
  br label %540

201:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %27) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %28) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %28) #7
  %202 = icmp sgt i64 %93, 1
  br i1 %202, label %.preheader564.lr.ph, label %._crit_edge650

.preheader564.lr.ph:                              ; preds = %201
  %203 = icmp sgt i64 %91, 1
  %204 = and i32 %5, 16
  %.not551 = icmp eq i32 %204, 0
  %205 = getelementptr inbounds i8, ptr %34, i64 8
  %206 = and i32 %6, 16
  %.not552 = icmp eq i32 %206, 0
  %. = select i1 %.not552, ptr %27, ptr %8
  %207 = add nsw i64 %95, -2
  %208 = and i32 %5, 32
  %.not553 = icmp eq i32 %208, 0
  %209 = getelementptr inbounds i8, ptr %41, i64 8
  %210 = and i32 %6, 32
  %.not554 = icmp eq i32 %210, 0
  %.1 = select i1 %.not554, ptr %28, ptr %8
  br i1 %203, label %.preheader564.us.preheader, label %._crit_edge650

.preheader564.us.preheader:                       ; preds = %.preheader564.lr.ph
  %211 = add nsw i64 %91, -2
  %212 = add nsw i64 %93, -2
  br label %.preheader564.us

.preheader564.us:                                 ; preds = %.preheader564.us.preheader, %._crit_edge648.us
  %.0514649.us = phi i64 [ %213, %._crit_edge648.us ], [ 0, %.preheader564.us.preheader ]
  %213 = add nuw nsw i64 %.0514649.us, 1
  br label %214

214:                                              ; preds = %.preheader564.us, %300
  %.0513647.us = phi i64 [ 0, %.preheader564.us ], [ %216, %300 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %29, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %30) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %30, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %31) #7
  invoke void @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %31)
          to label %215 unwind label %.split.us651

215:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #7
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32)
  %216 = add nuw nsw i64 %.0513647.us, 1
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %216, i64 noundef %.0514649.us, i64 noundef 0)
          to label %218 unwind label %.split654.us

218:                                              ; preds = %215
  %219 = load double, ptr %217, align 8, !tbaa !5
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 0) #7
  store double %219, ptr %220, align 8, !tbaa !5
  %221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0)
          to label %222 unwind label %.split654.us

222:                                              ; preds = %218
  %223 = load double, ptr %221, align 8, !tbaa !5
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 1) #7
  store double %223, ptr %224, align 8, !tbaa !5
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0513647.us, i64 noundef %213, i64 noundef 0)
          to label %226 unwind label %.split654.us

226:                                              ; preds = %222
  %227 = load double, ptr %225, align 8, !tbaa !5
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 2) #7
  store double %227, ptr %228, align 8, !tbaa !5
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %216, i64 noundef %213, i64 noundef 0)
          to label %230 unwind label %.split654.us

230:                                              ; preds = %226
  %231 = load double, ptr %229, align 8, !tbaa !5
  %232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 3) #7
  store double %231, ptr %232, align 8, !tbaa !5
  br i1 %.not551, label %258, label %233

233:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 8 dereferenceable(24) @constinit, i64 24, i1 false), !tbaa.struct !19
  store ptr %35, ptr %34, align 8, !tbaa !21
  store i64 3, ptr %205, align 8, !tbaa !24
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(16) %34)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(24) %33, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #7
  %234 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 1)
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 0) #7
  store i64 %234, ptr %235, align 8, !tbaa !14
  %236 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 0)
  %237 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 1) #7
  store i64 %236, ptr %237, align 8, !tbaa !14
  %238 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 4)
  %239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 2) #7
  store i64 %238, ptr %239, align 8, !tbaa !14
  %240 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 5)
  %241 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 3) #7
  store i64 %240, ptr %241, align 8, !tbaa !14
  %242 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 0)
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 4) #7
  store i64 %242, ptr %243, align 8, !tbaa !14
  %244 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 8)
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 5) #7
  store i64 %244, ptr %245, align 8, !tbaa !14
  %246 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 4)
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 6) #7
  store i64 %246, ptr %247, align 8, !tbaa !14
  %248 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 9)
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 7) #7
  store i64 %248, ptr %249, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %36, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %216, i64 noundef %.0514649.us, i64 noundef 0)
          to label %250 unwind label %.split657.us

250:                                              ; preds = %233
  %251 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %31, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %251, ptr noundef nonnull align 8 dereferenceable(24) %36, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %37, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef 0)
          to label %252 unwind label %.split660.us

252:                                              ; preds = %250
  %253 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %31, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %253, ptr noundef nonnull align 8 dereferenceable(24) %37, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %38, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %.0513647.us, i64 noundef %213, i64 noundef 0)
          to label %254 unwind label %.split663.us

254:                                              ; preds = %252
  %255 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %31, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %255, ptr noundef nonnull align 8 dereferenceable(24) %38, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %39) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %39, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %216, i64 noundef %213, i64 noundef 0)
          to label %256 unwind label %.split666.us

256:                                              ; preds = %254
  %257 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %31, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %257, ptr noundef nonnull align 8 dereferenceable(24) %39, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %39) #7
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(64) %30, ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(96) %31, ptr noundef nonnull %., ptr noundef %3, double noundef %4)
          to label %258 unwind label %.split654.us

258:                                              ; preds = %256, %230
  %259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %96)
          to label %260 unwind label %.split654.us

260:                                              ; preds = %258
  %261 = load double, ptr %259, align 8, !tbaa !5
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 0) #7
  store double %261, ptr %262, align 8, !tbaa !5
  %263 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %216, i64 noundef %.0514649.us, i64 noundef %96)
          to label %264 unwind label %.split654.us

264:                                              ; preds = %260
  %265 = load double, ptr %263, align 8, !tbaa !5
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 1) #7
  store double %265, ptr %266, align 8, !tbaa !5
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %216, i64 noundef %213, i64 noundef %96)
          to label %268 unwind label %.split654.us

268:                                              ; preds = %264
  %269 = load double, ptr %267, align 8, !tbaa !5
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 2) #7
  store double %269, ptr %270, align 8, !tbaa !5
  %271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0513647.us, i64 noundef %213, i64 noundef %96)
          to label %272 unwind label %.split654.us

272:                                              ; preds = %268
  %273 = load double, ptr %271, align 8, !tbaa !5
  %274 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 3) #7
  store double %273, ptr %274, align 8, !tbaa !5
  br i1 %.not553, label %300, label %275

275:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %42) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %42, ptr noundef nonnull align 8 dereferenceable(24) @constinit.1, i64 24, i1 false), !tbaa.struct !19
  store ptr %42, ptr %41, align 8, !tbaa !21
  store i64 3, ptr %209, align 8, !tbaa !24
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef nonnull align 8 dereferenceable(16) %41)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(24) %40, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #7
  %276 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %207, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 3)
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 0) #7
  store i64 %276, ptr %277, align 8, !tbaa !14
  %278 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %207, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 2)
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 1) #7
  store i64 %278, ptr %279, align 8, !tbaa !14
  %280 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %207, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 6)
  %281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 2) #7
  store i64 %280, ptr %281, align 8, !tbaa !14
  %282 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %207, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 7)
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 3) #7
  store i64 %282, ptr %283, align 8, !tbaa !14
  %284 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %207, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 2)
  %285 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 4) #7
  store i64 %284, ptr %285, align 8, !tbaa !14
  %286 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %207, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 10)
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 5) #7
  store i64 %286, ptr %287, align 8, !tbaa !14
  %288 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %207, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 6)
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 6) #7
  store i64 %288, ptr %289, align 8, !tbaa !14
  %290 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %207, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 11)
  %291 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %30, i64 noundef 7) #7
  store i64 %290, ptr %291, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %43) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %43, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %.0513647.us, i64 noundef %.0514649.us, i64 noundef %96)
          to label %292 unwind label %.split669.us

292:                                              ; preds = %275
  %293 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %31, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %293, ptr noundef nonnull align 8 dereferenceable(24) %43, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %44) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %44, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %216, i64 noundef %.0514649.us, i64 noundef %96)
          to label %294 unwind label %.split672.us

294:                                              ; preds = %292
  %295 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %31, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %295, ptr noundef nonnull align 8 dereferenceable(24) %44, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %45, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %216, i64 noundef %213, i64 noundef %96)
          to label %296 unwind label %.split675.us

296:                                              ; preds = %294
  %297 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %31, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %297, ptr noundef nonnull align 8 dereferenceable(24) %45, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %46) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %46, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %.0513647.us, i64 noundef %213, i64 noundef %96)
          to label %298 unwind label %.split678.us

298:                                              ; preds = %296
  %299 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %31, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %299, ptr noundef nonnull align 8 dereferenceable(24) %46, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #7
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(64) %30, ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(96) %31, ptr noundef nonnull %.1, ptr noundef %3, double noundef %4)
          to label %300 unwind label %.split654.us

300:                                              ; preds = %298, %272
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  %exitcond754.not = icmp eq i64 %.0513647.us, %211
  br i1 %exitcond754.not, label %._crit_edge648.us, label %214, !llvm.loop !25

._crit_edge648.us:                                ; preds = %300
  %exitcond755.not = icmp eq i64 %.0514649.us, %212
  br i1 %exitcond755.not, label %._crit_edge650, label %.preheader564.us, !llvm.loop !26

.split.us651:                                     ; preds = %214
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %312

.split654.us:                                     ; preds = %298, %268, %264, %260, %258, %256, %226, %222, %218, %215
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %311

.split657.us:                                     ; preds = %233
  %303 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #7
  br label %311

.split660.us:                                     ; preds = %250
  %304 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #7
  br label %311

.split663.us:                                     ; preds = %252
  %305 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #7
  br label %311

.split666.us:                                     ; preds = %254
  %306 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %39) #7
  br label %311

.split669.us:                                     ; preds = %275
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #7
  br label %311

.split672.us:                                     ; preds = %292
  %308 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #7
  br label %311

.split675.us:                                     ; preds = %294
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #7
  br label %311

.split678.us:                                     ; preds = %296
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #7
  br label %311

._crit_edge650:                                   ; preds = %._crit_edge648.us, %.preheader564.lr.ph, %201
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %28) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %28) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %27) #7
  br label %313

311:                                              ; preds = %.split678.us, %.split675.us, %.split672.us, %.split669.us, %.split666.us, %.split663.us, %.split660.us, %.split657.us, %.split654.us
  %.pn555 = phi { ptr, i32 } [ %302, %.split654.us ], [ %310, %.split678.us ], [ %309, %.split675.us ], [ %308, %.split672.us ], [ %307, %.split669.us ], [ %306, %.split666.us ], [ %305, %.split663.us ], [ %304, %.split660.us ], [ %303, %.split657.us ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #7
  br label %312

312:                                              ; preds = %311, %.split.us651
  %.pn555.pn = phi { ptr, i32 } [ %.pn555, %311 ], [ %301, %.split.us651 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %28) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %28) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %27) #7
  br label %540

313:                                              ; preds = %._crit_edge650, %._crit_edge
  %314 = and i32 %5, 3
  %.not536 = icmp eq i32 %314, 0
  br i1 %.not536, label %426, label %315

315:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %47) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %47) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %48) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %48) #7
  br i1 %97, label %.preheader563.lr.ph, label %._crit_edge683

.preheader563.lr.ph:                              ; preds = %315
  %316 = icmp sgt i64 %93, 1
  %317 = and i32 %5, 1
  %.not544 = icmp eq i32 %317, 0
  %318 = getelementptr inbounds i8, ptr %54, i64 8
  %319 = and i32 %6, 1
  %.not545 = icmp eq i32 %319, 0
  %.2 = select i1 %.not545, ptr %47, ptr %8
  %320 = add nsw i64 %91, -2
  %321 = add nsw i64 %91, -1
  %322 = and i32 %5, 2
  %.not546 = icmp eq i32 %322, 0
  %323 = getelementptr inbounds i8, ptr %61, i64 8
  %324 = and i32 %6, 2
  %.not547 = icmp eq i32 %324, 0
  %.3 = select i1 %.not547, ptr %48, ptr %8
  br i1 %316, label %.preheader563.us.preheader, label %._crit_edge683

.preheader563.us.preheader:                       ; preds = %.preheader563.lr.ph
  %325 = add nsw i64 %93, -2
  br label %.preheader563.us

.preheader563.us:                                 ; preds = %.preheader563.us.preheader, %._crit_edge681.us
  %.0512682.us = phi i64 [ %326, %._crit_edge681.us ], [ 0, %.preheader563.us.preheader ]
  %326 = add nuw nsw i64 %.0512682.us, 1
  br label %327

327:                                              ; preds = %.preheader563.us, %413
  %.0511680.us = phi i64 [ 0, %.preheader563.us ], [ %337, %413 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %49, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %50) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %50, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %51) #7
  invoke void @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %51)
          to label %328 unwind label %.split.us684

328:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %52) #7
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52)
  %329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us)
          to label %330 unwind label %.split687.us

330:                                              ; preds = %328
  %331 = load double, ptr %329, align 8, !tbaa !5
  %332 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 0) #7
  store double %331, ptr %332, align 8, !tbaa !5
  %333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %326)
          to label %334 unwind label %.split687.us

334:                                              ; preds = %330
  %335 = load double, ptr %333, align 8, !tbaa !5
  %336 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 1) #7
  store double %335, ptr %336, align 8, !tbaa !5
  %337 = add nuw nsw i64 %.0511680.us, 1
  %338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef 0, i64 noundef %337, i64 noundef %326)
          to label %339 unwind label %.split687.us

339:                                              ; preds = %334
  %340 = load double, ptr %338, align 8, !tbaa !5
  %341 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 2) #7
  store double %340, ptr %341, align 8, !tbaa !5
  %342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef 0, i64 noundef %337, i64 noundef %.0512682.us)
          to label %343 unwind label %.split687.us

343:                                              ; preds = %339
  %344 = load double, ptr %342, align 8, !tbaa !5
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 3) #7
  store double %344, ptr %345, align 8, !tbaa !5
  br i1 %.not544, label %371, label %346

346:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 8 dereferenceable(24) @constinit.2, i64 24, i1 false), !tbaa.struct !19
  store ptr %55, ptr %54, align 8, !tbaa !21
  store i64 3, ptr %318, align 8, !tbaa !24
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(16) %54)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(24) %53, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #7
  %347 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 0)
  %348 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 0) #7
  store i64 %347, ptr %348, align 8, !tbaa !14
  %349 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 3)
  %350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 1) #7
  store i64 %349, ptr %350, align 8, !tbaa !14
  %351 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 7)
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 2) #7
  store i64 %351, ptr %352, align 8, !tbaa !14
  %353 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 4)
  %354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 3) #7
  store i64 %353, ptr %354, align 8, !tbaa !14
  %355 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 3)
  %356 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 4) #7
  store i64 %355, ptr %356, align 8, !tbaa !14
  %357 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 11)
  %358 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 5) #7
  store i64 %357, ptr %358, align 8, !tbaa !14
  %359 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 7)
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 6) #7
  store i64 %359, ptr %360, align 8, !tbaa !14
  %361 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 8)
  %362 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 7) #7
  store i64 %361, ptr %362, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %56) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %56, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %.0512682.us)
          to label %363 unwind label %.split690.us

363:                                              ; preds = %346
  %364 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %51, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %364, ptr noundef nonnull align 8 dereferenceable(24) %56, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %57) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %57, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef 0, i64 noundef %.0511680.us, i64 noundef %326)
          to label %365 unwind label %.split693.us

365:                                              ; preds = %363
  %366 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %51, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %366, ptr noundef nonnull align 8 dereferenceable(24) %57, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %58) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %58, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef 0, i64 noundef %337, i64 noundef %326)
          to label %367 unwind label %.split696.us

367:                                              ; preds = %365
  %368 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %51, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %368, ptr noundef nonnull align 8 dereferenceable(24) %58, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %59) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %59, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef 0, i64 noundef %337, i64 noundef %.0512682.us)
          to label %369 unwind label %.split699.us

369:                                              ; preds = %367
  %370 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %51, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %370, ptr noundef nonnull align 8 dereferenceable(24) %59, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #7
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(64) %50, ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(96) %51, ptr noundef nonnull %.2, ptr noundef %3, double noundef %4)
          to label %371 unwind label %.split687.us

371:                                              ; preds = %369, %343
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %321, i64 noundef %.0511680.us, i64 noundef %326)
          to label %373 unwind label %.split687.us

373:                                              ; preds = %371
  %374 = load double, ptr %372, align 8, !tbaa !5
  %375 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 0) #7
  store double %374, ptr %375, align 8, !tbaa !5
  %376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %321, i64 noundef %.0511680.us, i64 noundef %.0512682.us)
          to label %377 unwind label %.split687.us

377:                                              ; preds = %373
  %378 = load double, ptr %376, align 8, !tbaa !5
  %379 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 1) #7
  store double %378, ptr %379, align 8, !tbaa !5
  %380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %321, i64 noundef %337, i64 noundef %.0512682.us)
          to label %381 unwind label %.split687.us

381:                                              ; preds = %377
  %382 = load double, ptr %380, align 8, !tbaa !5
  %383 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 2) #7
  store double %382, ptr %383, align 8, !tbaa !5
  %384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %321, i64 noundef %337, i64 noundef %326)
          to label %385 unwind label %.split687.us

385:                                              ; preds = %381
  %386 = load double, ptr %384, align 8, !tbaa !5
  %387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %49, i64 noundef 3) #7
  store double %386, ptr %387, align 8, !tbaa !5
  br i1 %.not546, label %413, label %388

388:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %60) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %62) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %62, ptr noundef nonnull align 8 dereferenceable(24) @constinit.3, i64 24, i1 false), !tbaa.struct !19
  store ptr %62, ptr %61, align 8, !tbaa !21
  store i64 3, ptr %323, align 8, !tbaa !24
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %60, ptr noundef nonnull align 8 dereferenceable(16) %61)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(24) %60, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %60) #7
  %389 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %320, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 2)
  %390 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 0) #7
  store i64 %389, ptr %390, align 8, !tbaa !14
  %391 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %320, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 1)
  %392 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 1) #7
  store i64 %391, ptr %392, align 8, !tbaa !14
  %393 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %320, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 5)
  %394 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 2) #7
  store i64 %393, ptr %394, align 8, !tbaa !14
  %395 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %320, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 6)
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 3) #7
  store i64 %395, ptr %396, align 8, !tbaa !14
  %397 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %320, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 1)
  %398 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 4) #7
  store i64 %397, ptr %398, align 8, !tbaa !14
  %399 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %320, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 9)
  %400 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 5) #7
  store i64 %399, ptr %400, align 8, !tbaa !14
  %401 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %320, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 5)
  %402 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 6) #7
  store i64 %401, ptr %402, align 8, !tbaa !14
  %403 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %320, i64 noundef %.0511680.us, i64 noundef %.0512682.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 10)
  %404 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %50, i64 noundef 7) #7
  store i64 %403, ptr %404, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %63) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %63, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %321, i64 noundef %.0511680.us, i64 noundef %326)
          to label %405 unwind label %.split702.us

405:                                              ; preds = %388
  %406 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %51, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %406, ptr noundef nonnull align 8 dereferenceable(24) %63, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %63) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %64) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %64, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %321, i64 noundef %.0511680.us, i64 noundef %.0512682.us)
          to label %407 unwind label %.split705.us

407:                                              ; preds = %405
  %408 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %51, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %408, ptr noundef nonnull align 8 dereferenceable(24) %64, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %64) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %65) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %65, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %321, i64 noundef %337, i64 noundef %.0512682.us)
          to label %409 unwind label %.split708.us

409:                                              ; preds = %407
  %410 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %51, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %410, ptr noundef nonnull align 8 dereferenceable(24) %65, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %66) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %66, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %321, i64 noundef %337, i64 noundef %326)
          to label %411 unwind label %.split711.us

411:                                              ; preds = %409
  %412 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %51, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %412, ptr noundef nonnull align 8 dereferenceable(24) %66, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %66) #7
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(64) %50, ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(96) %51, ptr noundef nonnull %.3, ptr noundef %3, double noundef %4)
          to label %413 unwind label %.split687.us

413:                                              ; preds = %411, %385
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  %exitcond756.not = icmp eq i64 %.0511680.us, %325
  br i1 %exitcond756.not, label %._crit_edge681.us, label %327, !llvm.loop !27

._crit_edge681.us:                                ; preds = %413
  %exitcond757.not = icmp eq i64 %326, %96
  br i1 %exitcond757.not, label %._crit_edge683, label %.preheader563.us, !llvm.loop !28

.split.us684:                                     ; preds = %327
  %414 = landingpad { ptr, i32 }
          cleanup
  br label %425

.split687.us:                                     ; preds = %411, %381, %377, %373, %371, %369, %339, %334, %330, %328
  %415 = landingpad { ptr, i32 }
          cleanup
  br label %424

.split690.us:                                     ; preds = %346
  %416 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #7
  br label %424

.split693.us:                                     ; preds = %363
  %417 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #7
  br label %424

.split696.us:                                     ; preds = %365
  %418 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #7
  br label %424

.split699.us:                                     ; preds = %367
  %419 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #7
  br label %424

.split702.us:                                     ; preds = %388
  %420 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %63) #7
  br label %424

.split705.us:                                     ; preds = %405
  %421 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %64) #7
  br label %424

.split708.us:                                     ; preds = %407
  %422 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65) #7
  br label %424

.split711.us:                                     ; preds = %409
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %66) #7
  br label %424

._crit_edge683:                                   ; preds = %._crit_edge681.us, %.preheader563.lr.ph, %315
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %48) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %48) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %47) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %47) #7
  br label %426

424:                                              ; preds = %.split711.us, %.split708.us, %.split705.us, %.split702.us, %.split699.us, %.split696.us, %.split693.us, %.split690.us, %.split687.us
  %.pn548 = phi { ptr, i32 } [ %415, %.split687.us ], [ %423, %.split711.us ], [ %422, %.split708.us ], [ %421, %.split705.us ], [ %420, %.split702.us ], [ %419, %.split699.us ], [ %418, %.split696.us ], [ %417, %.split693.us ], [ %416, %.split690.us ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #7
  br label %425

425:                                              ; preds = %424, %.split.us684
  %.pn548.pn = phi { ptr, i32 } [ %.pn548, %424 ], [ %414, %.split.us684 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %48) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %48) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %47) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %47) #7
  br label %540

426:                                              ; preds = %._crit_edge683, %313
  %427 = and i32 %5, 12
  %.not537 = icmp eq i32 %427, 0
  br i1 %.not537, label %539, label %428

428:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %67) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %67) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %68) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  br i1 %97, label %.preheader.lr.ph, label %._crit_edge716

.preheader.lr.ph:                                 ; preds = %428
  %429 = icmp sgt i64 %91, 1
  %430 = and i32 %5, 4
  %.not538 = icmp eq i32 %430, 0
  %431 = getelementptr inbounds i8, ptr %74, i64 8
  %432 = and i32 %6, 4
  %.not539 = icmp eq i32 %432, 0
  %.4 = select i1 %.not539, ptr %67, ptr %8
  %433 = add nsw i64 %93, -2
  %434 = add nsw i64 %93, -1
  %435 = and i32 %5, 8
  %.not540 = icmp eq i32 %435, 0
  %436 = getelementptr inbounds i8, ptr %81, i64 8
  %437 = and i32 %6, 8
  %.not541 = icmp eq i32 %437, 0
  %.5 = select i1 %.not541, ptr %68, ptr %8
  br i1 %429, label %.preheader.us.preheader, label %._crit_edge716

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

.preheader.us:                                    ; preds = %.preheader.us.preheader, %._crit_edge714.us
  %.0510715.us = phi i64 [ %439, %._crit_edge714.us ], [ 0, %.preheader.us.preheader ]
  %439 = add nuw nsw i64 %.0510715.us, 1
  br label %440

440:                                              ; preds = %.preheader.us, %526
  %.0713.us = phi i64 [ 0, %.preheader.us ], [ %446, %526 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %69, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %70) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %70, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %71) #7
  invoke void @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %71)
          to label %441 unwind label %.split.us717

441:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %72) #7
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72)
  %442 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us)
          to label %443 unwind label %.split720.us

443:                                              ; preds = %441
  %444 = load double, ptr %442, align 8, !tbaa !5
  %445 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef 0) #7
  store double %444, ptr %445, align 8, !tbaa !5
  %446 = add nuw nsw i64 %.0713.us, 1
  %447 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %446, i64 noundef 0, i64 noundef %.0510715.us)
          to label %448 unwind label %.split720.us

448:                                              ; preds = %443
  %449 = load double, ptr %447, align 8, !tbaa !5
  %450 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef 1) #7
  store double %449, ptr %450, align 8, !tbaa !5
  %451 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %446, i64 noundef 0, i64 noundef %439)
          to label %452 unwind label %.split720.us

452:                                              ; preds = %448
  %453 = load double, ptr %451, align 8, !tbaa !5
  %454 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef 2) #7
  store double %453, ptr %454, align 8, !tbaa !5
  %455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0713.us, i64 noundef 0, i64 noundef %439)
          to label %456 unwind label %.split720.us

456:                                              ; preds = %452
  %457 = load double, ptr %455, align 8, !tbaa !5
  %458 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef 3) #7
  store double %457, ptr %458, align 8, !tbaa !5
  br i1 %.not538, label %484, label %459

459:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %73) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %74) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %75) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr noundef nonnull align 8 dereferenceable(24) @constinit.4, i64 24, i1 false), !tbaa.struct !19
  store ptr %75, ptr %74, align 8, !tbaa !21
  store i64 3, ptr %431, align 8, !tbaa !24
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(16) %74)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef nonnull align 8 dereferenceable(24) %73, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %73) #7
  %460 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 0)
  %461 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 0) #7
  store i64 %460, ptr %461, align 8, !tbaa !14
  %462 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 1)
  %463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 1) #7
  store i64 %462, ptr %463, align 8, !tbaa !14
  %464 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 2)
  %465 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 2) #7
  store i64 %464, ptr %465, align 8, !tbaa !14
  %466 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 3)
  %467 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 3) #7
  store i64 %466, ptr %467, align 8, !tbaa !14
  %468 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 0)
  %469 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 4) #7
  store i64 %468, ptr %469, align 8, !tbaa !14
  %470 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 1)
  %471 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 5) #7
  store i64 %470, ptr %471, align 8, !tbaa !14
  %472 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 2)
  %473 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 6) #7
  store i64 %472, ptr %473, align 8, !tbaa !14
  %474 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 3)
  %475 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 7) #7
  store i64 %474, ptr %475, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %76) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %76, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %.0713.us, i64 noundef 0, i64 noundef %.0510715.us)
          to label %476 unwind label %.split723.us

476:                                              ; preds = %459
  %477 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %71, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %477, ptr noundef nonnull align 8 dereferenceable(24) %76, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %76) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %77) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %77, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %446, i64 noundef 0, i64 noundef %.0510715.us)
          to label %478 unwind label %.split726.us

478:                                              ; preds = %476
  %479 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %71, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %479, ptr noundef nonnull align 8 dereferenceable(24) %77, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %77) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %78) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %78, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %446, i64 noundef 0, i64 noundef %439)
          to label %480 unwind label %.split729.us

480:                                              ; preds = %478
  %481 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %71, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %481, ptr noundef nonnull align 8 dereferenceable(24) %78, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %78) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %79) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %79, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %.0713.us, i64 noundef 0, i64 noundef %439)
          to label %482 unwind label %.split732.us

482:                                              ; preds = %480
  %483 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %71, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %483, ptr noundef nonnull align 8 dereferenceable(24) %79, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %79) #7
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(64) %70, ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef nonnull align 8 dereferenceable(96) %71, ptr noundef nonnull %.4, ptr noundef %3, double noundef %4)
          to label %484 unwind label %.split720.us

484:                                              ; preds = %482, %456
  %485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %446, i64 noundef %434, i64 noundef %.0510715.us)
          to label %486 unwind label %.split720.us

486:                                              ; preds = %484
  %487 = load double, ptr %485, align 8, !tbaa !5
  %488 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef 0) #7
  store double %487, ptr %488, align 8, !tbaa !5
  %489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0713.us, i64 noundef %434, i64 noundef %.0510715.us)
          to label %490 unwind label %.split720.us

490:                                              ; preds = %486
  %491 = load double, ptr %489, align 8, !tbaa !5
  %492 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef 1) #7
  store double %491, ptr %492, align 8, !tbaa !5
  %493 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %.0713.us, i64 noundef %434, i64 noundef %439)
          to label %494 unwind label %.split720.us

494:                                              ; preds = %490
  %495 = load double, ptr %493, align 8, !tbaa !5
  %496 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef 2) #7
  store double %495, ptr %496, align 8, !tbaa !5
  %497 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40) %0, i64 noundef %446, i64 noundef %434, i64 noundef %439)
          to label %498 unwind label %.split720.us

498:                                              ; preds = %494
  %499 = load double, ptr %497, align 8, !tbaa !5
  %500 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIdLm4EEixEm(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef 3) #7
  store double %499, ptr %500, align 8, !tbaa !5
  br i1 %.not540, label %526, label %501

501:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %80) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %81) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %82) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %82, ptr noundef nonnull align 8 dereferenceable(24) @constinit.5, i64 24, i1 false), !tbaa.struct !19
  store ptr %82, ptr %81, align 8, !tbaa !21
  store i64 3, ptr %436, align 8, !tbaa !24
  call void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24) %80, ptr noundef nonnull align 8 dereferenceable(16) %81)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef nonnull align 8 dereferenceable(24) %80, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %82) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %80) #7
  %502 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef %433, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 5)
  %503 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 0) #7
  store i64 %502, ptr %503, align 8, !tbaa !14
  %504 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef %433, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 4)
  %505 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 1) #7
  store i64 %504, ptr %505, align 8, !tbaa !14
  %506 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef %433, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 7)
  %507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 2) #7
  store i64 %506, ptr %507, align 8, !tbaa !14
  %508 = call noundef i64 @_ZN3vox8geometry14globalVertexIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef %433, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 6)
  %509 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 3) #7
  store i64 %508, ptr %509, align 8, !tbaa !14
  %510 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef %433, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 4)
  %511 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 4) #7
  store i64 %510, ptr %511, align 8, !tbaa !14
  %512 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef %433, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 7)
  %513 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 5) #7
  store i64 %512, ptr %513, align 8, !tbaa !14
  %514 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef %433, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 6)
  %515 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 6) #7
  store i64 %514, ptr %515, align 8, !tbaa !14
  %516 = call noundef i64 @_ZN3vox8geometry12globalEdgeIDEmmmRKNS0_6MatrixImLm3ELm1EEEm(i64 noundef %.0713.us, i64 noundef %433, i64 noundef %.0510715.us, ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef 5)
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm8EEixEm(ptr noundef nonnull align 8 dereferenceable(64) %70, i64 noundef 7) #7
  store i64 %516, ptr %517, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %83) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %83, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %446, i64 noundef %434, i64 noundef %.0510715.us)
          to label %518 unwind label %.split735.us

518:                                              ; preds = %501
  %519 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %71, i64 noundef 0) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %519, ptr noundef nonnull align 8 dereferenceable(24) %83, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %83) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %84) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %84, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %.0713.us, i64 noundef %434, i64 noundef %.0510715.us)
          to label %520 unwind label %.split738.us

520:                                              ; preds = %518
  %521 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %71, i64 noundef 1) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %521, ptr noundef nonnull align 8 dereferenceable(24) %84, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %84) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %85) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %85, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %.0713.us, i64 noundef %434, i64 noundef %439)
          to label %522 unwind label %.split741.us

522:                                              ; preds = %520
  %523 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %71, i64 noundef 2) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %523, ptr noundef nonnull align 8 dereferenceable(24) %85, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %85) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %86) #7
  invoke void @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind nonnull writable sret(%"class.vox::geometry::Matrix.2") align 8 %86, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 noundef %446, i64 noundef %434, i64 noundef %439)
          to label %524 unwind label %.split744.us

524:                                              ; preds = %522
  %525 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96) %71, i64 noundef 3) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %525, ptr noundef nonnull align 8 dereferenceable(24) %86, i64 24, i1 false)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %86) #7
  invoke void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_13TriangleMesh3Ed(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(64) %70, ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef nonnull align 8 dereferenceable(96) %71, ptr noundef nonnull %.5, ptr noundef %3, double noundef %4)
          to label %526 unwind label %.split720.us

526:                                              ; preds = %524, %498
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %72) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #7
  %exitcond758.not = icmp eq i64 %.0713.us, %438
  br i1 %exitcond758.not, label %._crit_edge714.us, label %440, !llvm.loop !29

._crit_edge714.us:                                ; preds = %526
  %exitcond759.not = icmp eq i64 %439, %96
  br i1 %exitcond759.not, label %._crit_edge716, label %.preheader.us, !llvm.loop !30

.split.us717:                                     ; preds = %440
  %527 = landingpad { ptr, i32 }
          cleanup
  br label %538

.split720.us:                                     ; preds = %524, %494, %490, %486, %484, %482, %452, %448, %443, %441
  %528 = landingpad { ptr, i32 }
          cleanup
  br label %537

.split723.us:                                     ; preds = %459
  %529 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %76) #7
  br label %537

.split726.us:                                     ; preds = %476
  %530 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %77) #7
  br label %537

.split729.us:                                     ; preds = %478
  %531 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %78) #7
  br label %537

.split732.us:                                     ; preds = %480
  %532 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %79) #7
  br label %537

.split735.us:                                     ; preds = %501
  %533 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %83) #7
  br label %537

.split738.us:                                     ; preds = %518
  %534 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %84) #7
  br label %537

.split741.us:                                     ; preds = %520
  %535 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %85) #7
  br label %537

.split744.us:                                     ; preds = %522
  %536 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %86) #7
  br label %537

._crit_edge716:                                   ; preds = %._crit_edge714.us, %.preheader.lr.ph, %428
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %68) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %67) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %67) #7
  br label %539

537:                                              ; preds = %.split744.us, %.split741.us, %.split738.us, %.split735.us, %.split732.us, %.split729.us, %.split726.us, %.split723.us, %.split720.us
  %.pn = phi { ptr, i32 } [ %528, %.split720.us ], [ %536, %.split744.us ], [ %535, %.split741.us ], [ %534, %.split738.us ], [ %533, %.split735.us ], [ %532, %.split732.us ], [ %531, %.split729.us ], [ %530, %.split726.us ], [ %529, %.split723.us ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %72) #7
  br label %538

538:                                              ; preds = %537, %.split.us717
  %.pn.pn = phi { ptr, i32 } [ %.pn, %537 ], [ %527, %.split.us717 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %68) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %67) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %67) #7
  br label %540

539:                                              ; preds = %._crit_edge716, %426
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #7
  ret void

540:                                              ; preds = %538, %425, %312, %200
  %.pn558.pn.pn = phi { ptr, i32 } [ %.pn558.pn, %200 ], [ %.pn555.pn, %312 ], [ %.pn548.pn, %425 ], [ %.pn.pn, %538 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #7
  br label %541

541:                                              ; preds = %540, %197
  %.pn558.pn.pn.pn = phi { ptr, i32 } [ %.pn558.pn.pn, %540 ], [ %198, %197 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #7
  resume { ptr, i32 } %.pn558.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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3vox8geometrydvIdLm3ELm1ENS0_6MatrixIdLm3ELm1EEEEEDaRKT_RKNS0_16MatrixExpressionIS4_XT0_EXT1_ET2_EE(ptr dead_on_unwind noalias writable sret(%"class.vox::geometry::ScalarMatrixElemWiseBinaryOp") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ILm3ELm1ENS0_28ScalarMatrixElemWiseBinaryOpIdLm3ELm1ERKS2_St7dividesIdEEEEERKNS0_16MatrixExpressionIdXT_EXT0_ET1_EE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) 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: mustprogress nounwind uwtable
declare dso_local void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3vox8geometry9ArrayBaseIKdLm3ENS0_9ArrayViewIS2_Lm3EEEEclIJllEEERS2_mDpT_(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #0 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 @_ZN3vox8geometry4GradERKNS0_9ArrayViewIKdLm3EEElllRKNS0_6MatrixIdLm3ELm1EEE(ptr dead_on_unwind noalias writable sret(%"class.vox::geometry::Matrix.2") align 8, ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

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

; 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 @"_ZZN3vox8geometry13marchingCubesERKNS0_9ArrayViewIKdLm3EEERKNS0_6MatrixIdLm3ELm1EEES9_PNS0_13TriangleMesh3EdiiENK3$_0clElll"(ptr dead_on_unwind noalias writable sret(%"class.vox::geometry::Matrix.2") align 8, ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN3vox8geometryL10SingleCubeERKSt5arrayIdLm8EERKS1_ImLm12EERKS1_INS0_6MatrixIdLm3ELm1EEELm8EERKNS0_11BoundingBoxIdLm3EEEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_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 @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 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 @_ZN3vox8geometry6MatrixIdLm3ELm1EEC2ERKSt16initializer_listIdE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

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

; 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 @_ZNSt5arrayIN3vox8geometry6MatrixIdLm3ELm1EEELm4EEixEm(ptr noundef nonnull align 8 dereferenceable(96), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN3vox8geometryL12SingleSquareERKSt5arrayIdLm4EERKS1_ImLm8EERKNS0_6MatrixIdLm3ELm1EEERKS1_IS9_Lm4EEPSt13unordered_mapImmSt4hashImESt8equal_toImESaISt4pairIKmmEEEPNS0_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 #6 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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { 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 #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { 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 #7 = { nounwind }

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

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


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