; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnextract (blockNet)

; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%class.voxelField.35 = type { ptr, i64, %class.var3.28, %"class.std::vector.18" }
%class.var3.28 = type { i32, i32, i32 }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.83" = type { %"class.std::_Rb_tree.84" }
%"class.std::_Rb_tree.84" = type { %"struct.std::_Rb_tree<int, std::pair<const int, short>, std::_Select1st<std::pair<const int, short>>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, short>, std::_Select1st<std::pair<const int, short>>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::pair.88" = type <{ %"struct.std::_Rb_tree_iterator.90", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator.90" = type { ptr }
%"struct.std::pair.92" = type <{ i32, i16, [2 x i8] }>
%class.mapComparer = type { i8 }
%class.inputDataNE = type { %class.InputFile.base, i32, i32, i32, i32, double, %class.var3, %"class.std::__cxx11::basic_string", i64, %"class.std::__cxx11::basic_string", %"class.std::vector.13", %class.segment, %"class.std::vector.18", %"class.std::vector.23", %class.voxelImageT }
%class.InputFile.base = type <{ %"class.std::vector.5", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8 }>
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.var3 = type { double, double, double }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<std::vector<segments>, std::allocator<std::vector<segments>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<segments>, std::allocator<std::vector<segments>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<segments>, std::allocator<std::vector<segments>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<segments>, std::allocator<std::vector<segments>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.segment = type { i32, i8, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<poroRange, std::allocator<poroRange>>::_Vector_impl" }
%"struct.std::_Vector_base<poroRange, std::allocator<poroRange>>::_Vector_impl" = type { %"struct.std::_Vector_base<poroRange, std::allocator<poroRange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<poroRange, std::allocator<poroRange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.voxelImageT = type { %class.voxelImageTBase, %class.voxelField, %class.var3, %class.var3 }
%class.voxelImageTBase = type { ptr }
%class.voxelField = type { ptr, i64, %class.var3.28, %"class.std::vector.29" }
%"class.std::vector.29" = type { %"struct.std::_Vector_base.30" }
%"struct.std::_Vector_base.30" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.segments = type <{ ptr, i32, [4 x i8] }>
%"struct.std::pair.95" = type <{ i32, i16, [2 x i8] }>

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [14 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z20growPoresMedEqsLooseRK11inputDataNER10voxelFieldIiEllRKSt6vectorIP6poreNESaIS7_EEl(ptr noundef nonnull align 8 dereferenceable(448) %0, ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef %2, i64 noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %5) #4 personality ptr @__gxx_personality_v0 {
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i64, align 8
  %13 = alloca %class.voxelField.35, align 8
  %14 = alloca i64, align 8
  %15 = alloca i16, align 2
  %16 = alloca i32, align 4
  %17 = alloca i16, align 2
  %18 = alloca ptr, align 8
  %19 = alloca i16, align 2
  %20 = alloca i16, align 2
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i64, align 8
  %25 = alloca i16, align 2
  %26 = alloca %"class.std::map.83", align 8
  %27 = alloca i64, align 8
  %28 = alloca %"struct.std::pair.88", align 8
  %29 = alloca %"struct.std::pair.92", align 4
  %30 = alloca i32, align 4
  %31 = alloca { ptr, i8 }, align 8
  %32 = alloca %"struct.std::pair.88", align 8
  %33 = alloca %"struct.std::pair.92", align 4
  %34 = alloca i32, align 4
  %35 = alloca { ptr, i8 }, align 8
  %36 = alloca %"struct.std::pair.88", align 8
  %37 = alloca %"struct.std::pair.92", align 4
  %38 = alloca i32, align 4
  %39 = alloca { ptr, i8 }, align 8
  %40 = alloca %"struct.std::pair.88", align 8
  %41 = alloca %"struct.std::pair.92", align 4
  %42 = alloca i32, align 4
  %43 = alloca { ptr, i8 }, align 8
  %44 = alloca %"struct.std::pair.88", align 8
  %45 = alloca %"struct.std::pair.92", align 4
  %46 = alloca i32, align 4
  %47 = alloca { ptr, i8 }, align 8
  %48 = alloca %"struct.std::pair.88", align 8
  %49 = alloca %"struct.std::pair.92", align 4
  %50 = alloca i32, align 4
  %51 = alloca { ptr, i8 }, align 8
  %52 = alloca %"struct.std::_Rb_tree_iterator.90", align 8
  %53 = alloca %"struct.std::_Rb_tree_iterator.90", align 8
  %54 = alloca %"struct.std::_Rb_tree_iterator.90", align 8
  %55 = alloca %class.mapComparer, align 1
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store i64 %2, ptr %9, align 8, !tbaa !9
  store i64 %3, ptr %10, align 8, !tbaa !9
  store ptr %4, ptr %11, align 8, !tbaa !5
  store i64 %5, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 56, ptr %13) #5
  %56 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN10voxelFieldIiEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(56) %13, ptr noundef nonnull align 8 dereferenceable(56) %56)
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  store i64 0, ptr %14, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %15) #5
  store i16 1, ptr %15, align 2, !tbaa !13
  br label %57

57:                                               ; preds = %500, %6
  %58 = load i16, ptr %15, align 2, !tbaa !13
  %59 = sext i16 %58 to i32
  %60 = load ptr, ptr %7, align 8, !tbaa !5
  %61 = getelementptr inbounds %class.inputDataNE, ptr %60, i32 0, i32 3
  %62 = load i32, ptr %61, align 4, !tbaa !15
  %63 = icmp sle i32 %59, %62
  br i1 %63, label %65, label %64

64:                                               ; preds = %57
  store i32 2, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %15) #5
  br label %503

65:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 2, ptr %17) #5
  store i16 1, ptr %17, align 2, !tbaa !13
  br label %66

66:                                               ; preds = %496, %65
  %67 = load i16, ptr %17, align 2, !tbaa !13
  %68 = sext i16 %67 to i32
  %69 = load ptr, ptr %7, align 8, !tbaa !5
  %70 = getelementptr inbounds %class.inputDataNE, ptr %69, i32 0, i32 2
  %71 = load i32, ptr %70, align 8, !tbaa !49
  %72 = icmp sle i32 %68, %71
  br i1 %72, label %74, label %73

73:                                               ; preds = %66
  store i32 5, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %17) #5
  br label %499

74:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %75 = load ptr, ptr %7, align 8, !tbaa !5
  %76 = getelementptr inbounds %class.inputDataNE, ptr %75, i32 0, i32 10
  %77 = load i16, ptr %15, align 2, !tbaa !13
  %78 = sext i16 %77 to i32
  %79 = sub nsw i32 %78, 1
  %80 = sext i32 %79 to i64
  %81 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %76, i64 noundef %80) #5
  %82 = load i16, ptr %17, align 2, !tbaa !13
  %83 = sext i16 %82 to i32
  %84 = sub nsw i32 %83, 1
  %85 = sext i32 %84 to i64
  %86 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %81, i64 noundef %85) #5
  store ptr %86, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %19) #5
  store i16 0, ptr %19, align 2, !tbaa !13
  br label %87

87:                                               ; preds = %492, %74
  %88 = load i16, ptr %19, align 2, !tbaa !13
  %89 = sext i16 %88 to i32
  %90 = load ptr, ptr %18, align 8, !tbaa !5
  %91 = getelementptr inbounds %class.segments, ptr %90, i32 0, i32 1
  %92 = load i32, ptr %91, align 8, !tbaa !50
  %93 = icmp slt i32 %89, %92
  br i1 %93, label %95, label %94

94:                                               ; preds = %87
  store i32 8, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %19) #5
  br label %495

95:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 2, ptr %20) #5
  %96 = load ptr, ptr %18, align 8, !tbaa !5
  %97 = getelementptr inbounds %class.segments, ptr %96, i32 0, i32 0
  %98 = load ptr, ptr %97, align 8, !tbaa !52
  %99 = load i16, ptr %19, align 2, !tbaa !13
  %100 = sext i16 %99 to i64
  %101 = getelementptr inbounds %class.segment, ptr %98, i64 %100
  %102 = getelementptr inbounds %class.segment, ptr %101, i32 0, i32 0
  %103 = load i32, ptr %102, align 8, !tbaa !53
  %104 = add nsw i32 %103, 1
  %105 = trunc i32 %104 to i16
  store i16 %105, ptr %20, align 2, !tbaa !13
  br label %106

106:                                              ; preds = %487, %95
  %107 = load i16, ptr %20, align 2, !tbaa !13
  %108 = sext i16 %107 to i32
  %109 = load ptr, ptr %18, align 8, !tbaa !5
  %110 = getelementptr inbounds %class.segments, ptr %109, i32 0, i32 0
  %111 = load ptr, ptr %110, align 8, !tbaa !52
  %112 = load i16, ptr %19, align 2, !tbaa !13
  %113 = sext i16 %112 to i32
  %114 = add nsw i32 %113, 1
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds %class.segment, ptr %111, i64 %115
  %117 = getelementptr inbounds %class.segment, ptr %116, i32 0, i32 0
  %118 = load i32, ptr %117, align 8, !tbaa !53
  %119 = icmp sle i32 %108, %118
  br i1 %119, label %121, label %120

120:                                              ; preds = %106
  store i32 11, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %20) #5
  br label %491

121:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %122 = load i16, ptr %20, align 2, !tbaa !13
  %123 = sext i16 %122 to i32
  %124 = load i16, ptr %17, align 2, !tbaa !13
  %125 = sext i16 %124 to i32
  %126 = load i16, ptr %15, align 2, !tbaa !13
  %127 = sext i16 %126 to i64
  %128 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef %123, i32 noundef %125, i64 noundef %127)
          to label %129 unwind label %155

129:                                              ; preds = %121
  store ptr %128, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %130 = load ptr, ptr %21, align 8, !tbaa !5
  %131 = load i32, ptr %130, align 4, !tbaa !54
  %132 = sext i32 %131 to i64
  store i64 %132, ptr %24, align 8, !tbaa !9
  %133 = load i64, ptr %24, align 8, !tbaa !9
  %134 = load i64, ptr %12, align 8, !tbaa !9
  %135 = icmp eq i64 %133, %134
  br i1 %135, label %136, label %486

136:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 2, ptr %25) #5
  store i16 0, ptr %25, align 2, !tbaa !13
  %137 = load i64, ptr %9, align 8, !tbaa !9
  %138 = load ptr, ptr %21, align 8, !tbaa !5
  %139 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %138)
          to label %140 unwind label %159

140:                                              ; preds = %136
  %141 = load i32, ptr %139, align 4, !tbaa !54
  %142 = sext i32 %141 to i64
  %143 = icmp sle i64 %137, %142
  br i1 %143, label %144, label %163

144:                                              ; preds = %140
  %145 = load i64, ptr %10, align 8, !tbaa !9
  %146 = load ptr, ptr %21, align 8, !tbaa !5
  %147 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %146)
          to label %148 unwind label %159

148:                                              ; preds = %144
  %149 = load i32, ptr %147, align 4, !tbaa !54
  %150 = sext i32 %149 to i64
  %151 = icmp sge i64 %145, %150
  br i1 %151, label %152, label %163

152:                                              ; preds = %148
  %153 = load i16, ptr %25, align 2, !tbaa !13
  %154 = add i16 %153, 1
  store i16 %154, ptr %25, align 2, !tbaa !13
  br label %163

155:                                              ; preds = %121
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  store ptr %157, ptr %22, align 8
  %158 = extractvalue { ptr, i32 } %156, 1
  store i32 %158, ptr %23, align 4
  br label %490

159:                                              ; preds = %247, %239, %228, %220, %209, %201, %190, %182, %171, %163, %144, %136
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %22, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %23, align 4
  br label %485

163:                                              ; preds = %152, %148, %140
  %164 = load i64, ptr %9, align 8, !tbaa !9
  %165 = load ptr, ptr %21, align 8, !tbaa !5
  %166 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %165)
          to label %167 unwind label %159

167:                                              ; preds = %163
  %168 = load i32, ptr %166, align 4, !tbaa !54
  %169 = sext i32 %168 to i64
  %170 = icmp sle i64 %164, %169
  br i1 %170, label %171, label %182

171:                                              ; preds = %167
  %172 = load i64, ptr %10, align 8, !tbaa !9
  %173 = load ptr, ptr %21, align 8, !tbaa !5
  %174 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %173)
          to label %175 unwind label %159

175:                                              ; preds = %171
  %176 = load i32, ptr %174, align 4, !tbaa !54
  %177 = sext i32 %176 to i64
  %178 = icmp sge i64 %172, %177
  br i1 %178, label %179, label %182

179:                                              ; preds = %175
  %180 = load i16, ptr %25, align 2, !tbaa !13
  %181 = add i16 %180, 1
  store i16 %181, ptr %25, align 2, !tbaa !13
  br label %182

182:                                              ; preds = %179, %175, %167
  %183 = load i64, ptr %9, align 8, !tbaa !9
  %184 = load ptr, ptr %21, align 8, !tbaa !5
  %185 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %184)
          to label %186 unwind label %159

186:                                              ; preds = %182
  %187 = load i32, ptr %185, align 4, !tbaa !54
  %188 = sext i32 %187 to i64
  %189 = icmp sle i64 %183, %188
  br i1 %189, label %190, label %201

190:                                              ; preds = %186
  %191 = load i64, ptr %10, align 8, !tbaa !9
  %192 = load ptr, ptr %21, align 8, !tbaa !5
  %193 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %192)
          to label %194 unwind label %159

194:                                              ; preds = %190
  %195 = load i32, ptr %193, align 4, !tbaa !54
  %196 = sext i32 %195 to i64
  %197 = icmp sge i64 %191, %196
  br i1 %197, label %198, label %201

198:                                              ; preds = %194
  %199 = load i16, ptr %25, align 2, !tbaa !13
  %200 = add i16 %199, 1
  store i16 %200, ptr %25, align 2, !tbaa !13
  br label %201

201:                                              ; preds = %198, %194, %186
  %202 = load i64, ptr %9, align 8, !tbaa !9
  %203 = load ptr, ptr %21, align 8, !tbaa !5
  %204 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %203)
          to label %205 unwind label %159

205:                                              ; preds = %201
  %206 = load i32, ptr %204, align 4, !tbaa !54
  %207 = sext i32 %206 to i64
  %208 = icmp sle i64 %202, %207
  br i1 %208, label %209, label %220

209:                                              ; preds = %205
  %210 = load i64, ptr %10, align 8, !tbaa !9
  %211 = load ptr, ptr %21, align 8, !tbaa !5
  %212 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %211)
          to label %213 unwind label %159

213:                                              ; preds = %209
  %214 = load i32, ptr %212, align 4, !tbaa !54
  %215 = sext i32 %214 to i64
  %216 = icmp sge i64 %210, %215
  br i1 %216, label %217, label %220

217:                                              ; preds = %213
  %218 = load i16, ptr %25, align 2, !tbaa !13
  %219 = add i16 %218, 1
  store i16 %219, ptr %25, align 2, !tbaa !13
  br label %220

220:                                              ; preds = %217, %213, %205
  %221 = load i64, ptr %9, align 8, !tbaa !9
  %222 = load ptr, ptr %21, align 8, !tbaa !5
  %223 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %222)
          to label %224 unwind label %159

224:                                              ; preds = %220
  %225 = load i32, ptr %223, align 4, !tbaa !54
  %226 = sext i32 %225 to i64
  %227 = icmp sle i64 %221, %226
  br i1 %227, label %228, label %239

228:                                              ; preds = %224
  %229 = load i64, ptr %10, align 8, !tbaa !9
  %230 = load ptr, ptr %21, align 8, !tbaa !5
  %231 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %230)
          to label %232 unwind label %159

232:                                              ; preds = %228
  %233 = load i32, ptr %231, align 4, !tbaa !54
  %234 = sext i32 %233 to i64
  %235 = icmp sge i64 %229, %234
  br i1 %235, label %236, label %239

236:                                              ; preds = %232
  %237 = load i16, ptr %25, align 2, !tbaa !13
  %238 = add i16 %237, 1
  store i16 %238, ptr %25, align 2, !tbaa !13
  br label %239

239:                                              ; preds = %236, %232, %224
  %240 = load i64, ptr %9, align 8, !tbaa !9
  %241 = load ptr, ptr %21, align 8, !tbaa !5
  %242 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %241)
          to label %243 unwind label %159

243:                                              ; preds = %239
  %244 = load i32, ptr %242, align 4, !tbaa !54
  %245 = sext i32 %244 to i64
  %246 = icmp sle i64 %240, %245
  br i1 %246, label %247, label %258

247:                                              ; preds = %243
  %248 = load i64, ptr %10, align 8, !tbaa !9
  %249 = load ptr, ptr %21, align 8, !tbaa !5
  %250 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %249)
          to label %251 unwind label %159

251:                                              ; preds = %247
  %252 = load i32, ptr %250, align 4, !tbaa !54
  %253 = sext i32 %252 to i64
  %254 = icmp sge i64 %248, %253
  br i1 %254, label %255, label %258

255:                                              ; preds = %251
  %256 = load i16, ptr %25, align 2, !tbaa !13
  %257 = add i16 %256, 1
  store i16 %257, ptr %25, align 2, !tbaa !13
  br label %258

258:                                              ; preds = %255, %251, %243
  %259 = load i16, ptr %25, align 2, !tbaa !13
  %260 = sext i16 %259 to i32
  %261 = icmp sge i32 %260, 2
  br i1 %261, label %262, label %484

262:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 48, ptr %26) #5
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  %263 = load ptr, ptr %21, align 8, !tbaa !5
  %264 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %263)
          to label %265 unwind label %288

265:                                              ; preds = %262
  %266 = load i32, ptr %264, align 4, !tbaa !54
  %267 = sext i32 %266 to i64
  store i64 %267, ptr %27, align 8, !tbaa !9
  %268 = load i64, ptr %27, align 8, !tbaa !9
  %269 = load i64, ptr %24, align 8, !tbaa !9
  %270 = icmp ne i64 %268, %269
  br i1 %270, label %271, label %296

271:                                              ; preds = %265
  %272 = load i64, ptr %9, align 8, !tbaa !9
  %273 = load i64, ptr %27, align 8, !tbaa !9
  %274 = icmp sle i64 %272, %273
  br i1 %274, label %275, label %296

275:                                              ; preds = %271
  %276 = load i64, ptr %10, align 8, !tbaa !9
  %277 = load i64, ptr %27, align 8, !tbaa !9
  %278 = icmp sge i64 %276, %277
  br i1 %278, label %279, label %296

279:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  store i32 0, ptr %30, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %29, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %280 unwind label %292

280:                                              ; preds = %279
  %281 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(6) %29)
          to label %282 unwind label %292

282:                                              ; preds = %280
  store { ptr, i8 } %281, ptr %31, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %28, ptr align 8 %31, i64 9, i1 false)
  %283 = getelementptr inbounds %"struct.std::pair.88", ptr %28, i32 0, i32 0
  %284 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %283) #5
  %285 = getelementptr inbounds %"struct.std::pair.95", ptr %284, i32 0, i32 1
  %286 = load i16, ptr %285, align 4, !tbaa !55
  %287 = add i16 %286, 1
  store i16 %287, ptr %285, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #5
  br label %296

288:                                              ; preds = %416, %386, %356, %326, %296, %262
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %22, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %23, align 4
  br label %483

292:                                              ; preds = %280, %279
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %22, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #5
  br label %483

296:                                              ; preds = %282, %275, %271, %265
  %297 = load ptr, ptr %21, align 8, !tbaa !5
  %298 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %297)
          to label %299 unwind label %288

299:                                              ; preds = %296
  %300 = load i32, ptr %298, align 4, !tbaa !54
  %301 = sext i32 %300 to i64
  store i64 %301, ptr %27, align 8, !tbaa !9
  %302 = load i64, ptr %27, align 8, !tbaa !9
  %303 = load i64, ptr %24, align 8, !tbaa !9
  %304 = icmp ne i64 %302, %303
  br i1 %304, label %305, label %326

305:                                              ; preds = %299
  %306 = load i64, ptr %9, align 8, !tbaa !9
  %307 = load i64, ptr %27, align 8, !tbaa !9
  %308 = icmp sle i64 %306, %307
  br i1 %308, label %309, label %326

309:                                              ; preds = %305
  %310 = load i64, ptr %10, align 8, !tbaa !9
  %311 = load i64, ptr %27, align 8, !tbaa !9
  %312 = icmp sge i64 %310, %311
  br i1 %312, label %313, label %326

313:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  store i32 0, ptr %34, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %33, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(4) %34)
          to label %314 unwind label %322

314:                                              ; preds = %313
  %315 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(6) %33)
          to label %316 unwind label %322

316:                                              ; preds = %314
  store { ptr, i8 } %315, ptr %35, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %32, ptr align 8 %35, i64 9, i1 false)
  %317 = getelementptr inbounds %"struct.std::pair.88", ptr %32, i32 0, i32 0
  %318 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %317) #5
  %319 = getelementptr inbounds %"struct.std::pair.95", ptr %318, i32 0, i32 1
  %320 = load i16, ptr %319, align 4, !tbaa !55
  %321 = add i16 %320, 1
  store i16 %321, ptr %319, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #5
  br label %326

322:                                              ; preds = %314, %313
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %22, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #5
  br label %483

326:                                              ; preds = %316, %309, %305, %299
  %327 = load ptr, ptr %21, align 8, !tbaa !5
  %328 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %327)
          to label %329 unwind label %288

329:                                              ; preds = %326
  %330 = load i32, ptr %328, align 4, !tbaa !54
  %331 = sext i32 %330 to i64
  store i64 %331, ptr %27, align 8, !tbaa !9
  %332 = load i64, ptr %27, align 8, !tbaa !9
  %333 = load i64, ptr %24, align 8, !tbaa !9
  %334 = icmp ne i64 %332, %333
  br i1 %334, label %335, label %356

335:                                              ; preds = %329
  %336 = load i64, ptr %9, align 8, !tbaa !9
  %337 = load i64, ptr %27, align 8, !tbaa !9
  %338 = icmp sle i64 %336, %337
  br i1 %338, label %339, label %356

339:                                              ; preds = %335
  %340 = load i64, ptr %10, align 8, !tbaa !9
  %341 = load i64, ptr %27, align 8, !tbaa !9
  %342 = icmp sge i64 %340, %341
  br i1 %342, label %343, label %356

343:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  store i32 0, ptr %38, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %37, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %344 unwind label %352

344:                                              ; preds = %343
  %345 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(6) %37)
          to label %346 unwind label %352

346:                                              ; preds = %344
  store { ptr, i8 } %345, ptr %39, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %36, ptr align 8 %39, i64 9, i1 false)
  %347 = getelementptr inbounds %"struct.std::pair.88", ptr %36, i32 0, i32 0
  %348 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %347) #5
  %349 = getelementptr inbounds %"struct.std::pair.95", ptr %348, i32 0, i32 1
  %350 = load i16, ptr %349, align 4, !tbaa !55
  %351 = add i16 %350, 1
  store i16 %351, ptr %349, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #5
  br label %356

352:                                              ; preds = %344, %343
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %22, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #5
  br label %483

356:                                              ; preds = %346, %339, %335, %329
  %357 = load ptr, ptr %21, align 8, !tbaa !5
  %358 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %357)
          to label %359 unwind label %288

359:                                              ; preds = %356
  %360 = load i32, ptr %358, align 4, !tbaa !54
  %361 = sext i32 %360 to i64
  store i64 %361, ptr %27, align 8, !tbaa !9
  %362 = load i64, ptr %27, align 8, !tbaa !9
  %363 = load i64, ptr %24, align 8, !tbaa !9
  %364 = icmp ne i64 %362, %363
  br i1 %364, label %365, label %386

365:                                              ; preds = %359
  %366 = load i64, ptr %9, align 8, !tbaa !9
  %367 = load i64, ptr %27, align 8, !tbaa !9
  %368 = icmp sle i64 %366, %367
  br i1 %368, label %369, label %386

369:                                              ; preds = %365
  %370 = load i64, ptr %10, align 8, !tbaa !9
  %371 = load i64, ptr %27, align 8, !tbaa !9
  %372 = icmp sge i64 %370, %371
  br i1 %372, label %373, label %386

373:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  store i32 0, ptr %42, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %41, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %374 unwind label %382

374:                                              ; preds = %373
  %375 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(6) %41)
          to label %376 unwind label %382

376:                                              ; preds = %374
  store { ptr, i8 } %375, ptr %43, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %40, ptr align 8 %43, i64 9, i1 false)
  %377 = getelementptr inbounds %"struct.std::pair.88", ptr %40, i32 0, i32 0
  %378 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %377) #5
  %379 = getelementptr inbounds %"struct.std::pair.95", ptr %378, i32 0, i32 1
  %380 = load i16, ptr %379, align 4, !tbaa !55
  %381 = add i16 %380, 1
  store i16 %381, ptr %379, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #5
  br label %386

382:                                              ; preds = %374, %373
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %22, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #5
  br label %483

386:                                              ; preds = %376, %369, %365, %359
  %387 = load ptr, ptr %21, align 8, !tbaa !5
  %388 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %387)
          to label %389 unwind label %288

389:                                              ; preds = %386
  %390 = load i32, ptr %388, align 4, !tbaa !54
  %391 = sext i32 %390 to i64
  store i64 %391, ptr %27, align 8, !tbaa !9
  %392 = load i64, ptr %27, align 8, !tbaa !9
  %393 = load i64, ptr %24, align 8, !tbaa !9
  %394 = icmp ne i64 %392, %393
  br i1 %394, label %395, label %416

395:                                              ; preds = %389
  %396 = load i64, ptr %9, align 8, !tbaa !9
  %397 = load i64, ptr %27, align 8, !tbaa !9
  %398 = icmp sle i64 %396, %397
  br i1 %398, label %399, label %416

399:                                              ; preds = %395
  %400 = load i64, ptr %10, align 8, !tbaa !9
  %401 = load i64, ptr %27, align 8, !tbaa !9
  %402 = icmp sge i64 %400, %401
  br i1 %402, label %403, label %416

403:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  store i32 0, ptr %46, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %45, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(4) %46)
          to label %404 unwind label %412

404:                                              ; preds = %403
  %405 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(6) %45)
          to label %406 unwind label %412

406:                                              ; preds = %404
  store { ptr, i8 } %405, ptr %47, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %44, ptr align 8 %47, i64 9, i1 false)
  %407 = getelementptr inbounds %"struct.std::pair.88", ptr %44, i32 0, i32 0
  %408 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %407) #5
  %409 = getelementptr inbounds %"struct.std::pair.95", ptr %408, i32 0, i32 1
  %410 = load i16, ptr %409, align 4, !tbaa !55
  %411 = add i16 %410, 1
  store i16 %411, ptr %409, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #5
  br label %416

412:                                              ; preds = %404, %403
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %22, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #5
  br label %483

416:                                              ; preds = %406, %399, %395, %389
  %417 = load ptr, ptr %21, align 8, !tbaa !5
  %418 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %417)
          to label %419 unwind label %288

419:                                              ; preds = %416
  %420 = load i32, ptr %418, align 4, !tbaa !54
  %421 = sext i32 %420 to i64
  store i64 %421, ptr %27, align 8, !tbaa !9
  %422 = load i64, ptr %27, align 8, !tbaa !9
  %423 = load i64, ptr %24, align 8, !tbaa !9
  %424 = icmp ne i64 %422, %423
  br i1 %424, label %425, label %446

425:                                              ; preds = %419
  %426 = load i64, ptr %9, align 8, !tbaa !9
  %427 = load i64, ptr %27, align 8, !tbaa !9
  %428 = icmp sle i64 %426, %427
  br i1 %428, label %429, label %446

429:                                              ; preds = %425
  %430 = load i64, ptr %10, align 8, !tbaa !9
  %431 = load i64, ptr %27, align 8, !tbaa !9
  %432 = icmp sge i64 %430, %431
  br i1 %432, label %433, label %446

433:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  store i32 0, ptr %50, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %49, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %434 unwind label %442

434:                                              ; preds = %433
  %435 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(6) %49)
          to label %436 unwind label %442

436:                                              ; preds = %434
  store { ptr, i8 } %435, ptr %51, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %48, ptr align 8 %51, i64 9, i1 false)
  %437 = getelementptr inbounds %"struct.std::pair.88", ptr %48, i32 0, i32 0
  %438 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %437) #5
  %439 = getelementptr inbounds %"struct.std::pair.95", ptr %438, i32 0, i32 1
  %440 = load i16, ptr %439, align 4, !tbaa !55
  %441 = add i16 %440, 1
  store i16 %441, ptr %439, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #5
  br label %446

442:                                              ; preds = %434, %433
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %22, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #5
  br label %483

446:                                              ; preds = %436, %429, %425, %419
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  %447 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %26) #5
  %448 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %53, i32 0, i32 0
  store ptr %447, ptr %448, align 8
  %449 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %26) #5
  %450 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %54, i32 0, i32 0
  store ptr %449, ptr %450, align 8
  %451 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %53, i32 0, i32 0
  %452 = load ptr, ptr %451, align 8
  %453 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %54, i32 0, i32 0
  %454 = load ptr, ptr %453, align 8
  %455 = invoke ptr @_ZSt11max_elementISt17_Rb_tree_iteratorISt4pairIKisEE11mapComparerIiEET_S7_S7_T0_(ptr %452, ptr %454)
          to label %456 unwind label %478

456:                                              ; preds = %446
  %457 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %52, i32 0, i32 0
  store ptr %455, ptr %457, align 8
  %458 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %52) #5
  %459 = getelementptr inbounds %"struct.std::pair.95", ptr %458, i32 0, i32 1
  %460 = load i16, ptr %459, align 4, !tbaa !55
  %461 = sext i16 %460 to i32
  %462 = icmp sge i32 %461, 2
  br i1 %462, label %463, label %482

463:                                              ; preds = %456
  %464 = load i64, ptr %14, align 8, !tbaa !11
  %465 = add nsw i64 %464, 1
  store i64 %465, ptr %14, align 8, !tbaa !11
  %466 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %52) #5
  %467 = getelementptr inbounds %"struct.std::pair.95", ptr %466, i32 0, i32 0
  %468 = load i32, ptr %467, align 4, !tbaa !57
  %469 = load ptr, ptr %8, align 8, !tbaa !5
  %470 = load i16, ptr %20, align 2, !tbaa !13
  %471 = sext i16 %470 to i32
  %472 = load i16, ptr %17, align 2, !tbaa !13
  %473 = sext i16 %472 to i32
  %474 = load i16, ptr %15, align 2, !tbaa !13
  %475 = sext i16 %474 to i64
  %476 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %469, i32 noundef %471, i32 noundef %473, i64 noundef %475)
          to label %477 unwind label %478

477:                                              ; preds = %463
  store i32 %468, ptr %476, align 4, !tbaa !54
  br label %482

478:                                              ; preds = %463, %446
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %22, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  br label %483

482:                                              ; preds = %477, %456
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #5
  br label %484

483:                                              ; preds = %478, %442, %412, %382, %352, %322, %292, %288
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #5
  br label %485

484:                                              ; preds = %482, %258
  call void @llvm.lifetime.end.p0(i64 2, ptr %25) #5
  br label %486

485:                                              ; preds = %483, %159
  call void @llvm.lifetime.end.p0(i64 2, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  br label %490

486:                                              ; preds = %484, %129
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %487

487:                                              ; preds = %486
  %488 = load i16, ptr %20, align 2, !tbaa !13
  %489 = add i16 %488, 1
  store i16 %489, ptr %20, align 2, !tbaa !13
  br label %106, !llvm.loop !58

490:                                              ; preds = %485, %155
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %15) #5
  br label %515

491:                                              ; preds = %120
  br label %492

492:                                              ; preds = %491
  %493 = load i16, ptr %19, align 2, !tbaa !13
  %494 = add i16 %493, 1
  store i16 %494, ptr %19, align 2, !tbaa !13
  br label %87, !llvm.loop !60

495:                                              ; preds = %94
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  br label %496

496:                                              ; preds = %495
  %497 = load i16, ptr %17, align 2, !tbaa !13
  %498 = add i16 %497, 1
  store i16 %498, ptr %17, align 2, !tbaa !13
  br label %66, !llvm.loop !61

499:                                              ; preds = %73
  br label %500

500:                                              ; preds = %499
  %501 = load i16, ptr %15, align 2, !tbaa !13
  %502 = add i16 %501, 1
  store i16 %502, ptr %15, align 2, !tbaa !13
  br label %57, !llvm.loop !62

503:                                              ; preds = %64
  %504 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.67)
          to label %505 unwind label %511

505:                                              ; preds = %503
  %506 = load i64, ptr %14, align 8, !tbaa !11
  %507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %504, i64 noundef %506)
          to label %508 unwind label %511

508:                                              ; preds = %505
  %509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %507, ptr noundef @.str.28)
          to label %510 unwind label %511

510:                                              ; preds = %508
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @_ZN10voxelFieldIiED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %13) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %13) #5
  ret void

511:                                              ; preds = %508, %505, %503
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %22, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %23, align 4
  br label %515

515:                                              ; preds = %511, %490
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @_ZN10voxelFieldIiED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %13) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %13) #5
  br label %516

516:                                              ; preds = %515
  %517 = load ptr, ptr %22, align 8
  %518 = load i32, ptr %23, align 4
  %519 = insertvalue { ptr, i32 } poison, ptr %517, 0
  %520 = insertvalue { ptr, i32 } %519, i32 %518, 1
  resume { ptr, i32 } %520
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, ptr noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, ptr noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, ptr noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(6)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt11max_elementISt17_Rb_tree_iteratorISt4pairIKisEE11mapComparerIiEET_S7_S7_T0_(ptr, ptr) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"short", !7, i64 0}
!15 = !{!16, !25, i64 132}
!16 = !{!"_ZTS11inputDataNE", !17, i64 0, !25, i64 124, !25, i64 128, !25, i64 132, !25, i64 136, !26, i64 144, !27, i64 152, !22, i64 176, !12, i64 208, !22, i64 216, !28, i64 248, !32, i64 272, !33, i64 288, !37, i64 312, !41, i64 336}
!17 = !{!"_ZTS9InputFile", !18, i64 0, !22, i64 24, !22, i64 56, !22, i64 88, !24, i64 120, !24, i64 121}
!18 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !10, i64 8, !7, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!24 = !{!"bool", !7, i64 0}
!25 = !{!"int", !7, i64 0}
!26 = !{!"double", !7, i64 0}
!27 = !{!"_ZTS4var3IdE", !26, i64 0, !26, i64 8, !26, i64 16}
!28 = !{!"_ZTSSt6vectorIS_I8segmentsSaIS0_EESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTS7segment", !25, i64 0, !7, i64 4, !6, i64 8}
!33 = !{!"_ZTSSt6vectorIiSaIiEE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSSt6vectorI9poroRangeSaIS0_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseI9poroRangeSaIS0_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!"_ZTS11voxelImageTIhE", !42, i64 0, !43, i64 8, !27, i64 64, !27, i64 88}
!42 = !{!"_ZTS15voxelImageTBase"}
!43 = !{!"_ZTS10voxelFieldIhE", !12, i64 8, !44, i64 16, !45, i64 32}
!44 = !{!"_ZTS4var3IiE", !25, i64 0, !25, i64 4, !25, i64 8}
!45 = !{!"_ZTSSt6vectorIhSaIhEE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!49 = !{!16, !25, i64 128}
!50 = !{!51, !25, i64 8}
!51 = !{!"_ZTS8segments", !6, i64 0, !25, i64 8}
!52 = !{!51, !6, i64 0}
!53 = !{!32, !25, i64 0}
!54 = !{!25, !25, i64 0}
!55 = !{!56, !14, i64 4}
!56 = !{!"_ZTSSt4pairIKisE", !25, i64 0, !14, i64 4}
!57 = !{!56, !25, i64 0}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = distinct !{!60, !59}
!61 = distinct !{!61, !59}
!62 = distinct !{!62, !59}


; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%class.voxelField.35 = type { ptr, i64, %class.var3.28, %"class.std::vector.18" }
%class.var3.28 = type { i32, i32, i32 }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.83" = type { %"class.std::_Rb_tree.84" }
%"class.std::_Rb_tree.84" = type { %"struct.std::_Rb_tree<int, std::pair<const int, short>, std::_Select1st<std::pair<const int, short>>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, short>, std::_Select1st<std::pair<const int, short>>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::pair.88" = type <{ %"struct.std::_Rb_tree_iterator.90", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator.90" = type { ptr }
%"struct.std::pair.92" = type <{ i32, i16, [2 x i8] }>
%class.segment = type { i32, i8, ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [14 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z20growPoresMedEqsLooseRK11inputDataNER10voxelFieldIiEllRKSt6vectorIP6poreNESaIS7_EEl(ptr noundef nonnull align 8 dereferenceable(448) %0, ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef %2, i64 noundef %3, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %4, i64 noundef %5) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %7 = alloca %class.voxelField.35, align 8
  %8 = alloca %"class.std::map.83", align 8
  %9 = alloca i64, align 8
  %10 = alloca %"struct.std::pair.88", align 8
  %11 = alloca %"struct.std::pair.92", align 4
  %12 = alloca i32, align 4
  %13 = alloca %"struct.std::pair.88", align 8
  %14 = alloca %"struct.std::pair.92", align 4
  %15 = alloca i32, align 4
  %16 = alloca %"struct.std::pair.88", align 8
  %17 = alloca %"struct.std::pair.92", align 4
  %18 = alloca i32, align 4
  %19 = alloca %"struct.std::pair.88", align 8
  %20 = alloca %"struct.std::pair.92", align 4
  %21 = alloca i32, align 4
  %22 = alloca %"struct.std::pair.88", align 8
  %23 = alloca %"struct.std::pair.92", align 4
  %24 = alloca i32, align 4
  %25 = alloca %"struct.std::pair.88", align 8
  %26 = alloca %"struct.std::pair.92", align 4
  %27 = alloca i32, align 4
  %28 = alloca %"struct.std::_Rb_tree_iterator.90", align 8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %7) #4
  call void @_ZN10voxelFieldIiEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(56) %7, ptr noundef nonnull align 8 dereferenceable(56) %1)
  %29 = getelementptr inbounds i8, ptr %0, i64 132
  %30 = load i32, ptr %29, align 4, !tbaa !5
  %.not228 = icmp slt i32 %30, 1
  br i1 %.not228, label %._crit_edge231, label %.preheader.lr.ph

.preheader.lr.ph:                                 ; preds = %6
  %31 = getelementptr inbounds i8, ptr %0, i64 128
  %32 = getelementptr inbounds i8, ptr %0, i64 248
  %.sroa.222.0..sroa_idx = getelementptr inbounds i8, ptr %10, i64 8
  %.sroa.218.0..sroa_idx = getelementptr inbounds i8, ptr %13, i64 8
  %.sroa.214.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 8
  %.sroa.210.0..sroa_idx = getelementptr inbounds i8, ptr %19, i64 8
  %.sroa.26.0..sroa_idx = getelementptr inbounds i8, ptr %22, i64 8
  %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %25, i64 8
  %33 = load i32, ptr %31, align 8, !tbaa !44
  %34 = icmp slt i32 %33, 1
  br i1 %34, label %._crit_edge231, label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge226
  %35 = phi i32 [ %42, %._crit_edge226 ], [ %30, %.preheader.lr.ph ]
  %36 = phi i32 [ %43, %._crit_edge226 ], [ %33, %.preheader.lr.ph ]
  %37 = phi i32 [ %45, %._crit_edge226 ], [ 1, %.preheader.lr.ph ]
  %.0230 = phi i64 [ %.1.lcssa, %._crit_edge226 ], [ 0, %.preheader.lr.ph ]
  %.0109229 = phi i16 [ %44, %._crit_edge226 ], [ 1, %.preheader.lr.ph ]
  %.not134222 = icmp slt i32 %36, 1
  br i1 %.not134222, label %._crit_edge226, label %.lr.ph225

.lr.ph225:                                        ; preds = %.preheader
  %38 = add nsw i32 %37, -1
  %39 = sext i32 %38 to i64
  %40 = sext i16 %.0109229 to i64
  br label %46

._crit_edge231:                                   ; preds = %._crit_edge226, %.preheader.lr.ph, %6
  %.0.lcssa = phi i64 [ 0, %6 ], [ 0, %.preheader.lr.ph ], [ %.1.lcssa, %._crit_edge226 ]
  %41 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.67)
          to label %234 unwind label %239

._crit_edge226.loopexit:                          ; preds = %._crit_edge220
  %.pre235 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge226

._crit_edge226:                                   ; preds = %._crit_edge226.loopexit, %.preheader
  %42 = phi i32 [ %35, %.preheader ], [ %.pre235, %._crit_edge226.loopexit ]
  %43 = phi i32 [ %36, %.preheader ], [ %57, %._crit_edge226.loopexit ]
  %.1.lcssa = phi i64 [ %.0230, %.preheader ], [ %.2.lcssa, %._crit_edge226.loopexit ]
  %44 = add i16 %.0109229, 1
  %45 = sext i16 %44 to i32
  %.not = icmp slt i32 %42, %45
  br i1 %.not, label %._crit_edge231, label %.preheader, !llvm.loop !45

46:                                               ; preds = %.lr.ph225, %._crit_edge220
  %47 = phi i32 [ 1, %.lr.ph225 ], [ %56, %._crit_edge220 ]
  %.1224 = phi i64 [ %.0230, %.lr.ph225 ], [ %.2.lcssa, %._crit_edge220 ]
  %.0110223 = phi i16 [ 1, %.lr.ph225 ], [ %55, %._crit_edge220 ]
  %48 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %49 = add nsw i32 %47, -1
  %50 = sext i32 %49 to i64
  %51 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %50) #4
  %52 = getelementptr inbounds i8, ptr %51, i64 8
  %53 = load i32, ptr %52, align 8, !tbaa !48
  %54 = icmp sgt i32 %53, 0
  br i1 %54, label %.lr.ph219.preheader, label %._crit_edge220

.lr.ph219.preheader:                              ; preds = %46
  %.pre = load ptr, ptr %51, align 8, !tbaa !50
  br label %.lr.ph219

._crit_edge220:                                   ; preds = %._crit_edge, %46
  %.2.lcssa = phi i64 [ %.1224, %46 ], [ %.3.lcssa, %._crit_edge ]
  %55 = add i16 %.0110223, 1
  %56 = sext i16 %55 to i32
  %57 = load i32, ptr %31, align 8, !tbaa !44
  %.not134 = icmp slt i32 %57, %56
  br i1 %.not134, label %._crit_edge226.loopexit, label %46, !llvm.loop !51

.lr.ph219:                                        ; preds = %.lr.ph219.preheader, %._crit_edge
  %58 = phi i32 [ %67, %._crit_edge ], [ %53, %.lr.ph219.preheader ]
  %59 = phi ptr [ %68, %._crit_edge ], [ %.pre, %.lr.ph219.preheader ]
  %.2217 = phi i64 [ %.3.lcssa, %._crit_edge ], [ %.1224, %.lr.ph219.preheader ]
  %.0111216 = phi i16 [ %69, %._crit_edge ], [ 0, %.lr.ph219.preheader ]
  %60 = sext i16 %.0111216 to i64
  %61 = getelementptr %class.segment, ptr %59, i64 %60
  %62 = load i32, ptr %61, align 8, !tbaa !52
  %63 = trunc i32 %62 to i16
  %.0112212 = add i16 %63, 1
  %64 = sext i16 %.0112212 to i32
  %65 = getelementptr i8, ptr %61, i64 16
  %66 = load i32, ptr %65, align 8, !tbaa !52
  %.not135213 = icmp slt i32 %66, %64
  br i1 %.not135213, label %._crit_edge, label %.lr.ph

._crit_edge.loopexit:                             ; preds = %228
  %.pre234 = load i32, ptr %52, align 8, !tbaa !48
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.lr.ph219
  %67 = phi i32 [ %58, %.lr.ph219 ], [ %.pre234, %._crit_edge.loopexit ]
  %68 = phi ptr [ %59, %.lr.ph219 ], [ %230, %._crit_edge.loopexit ]
  %.3.lcssa = phi i64 [ %.2217, %.lr.ph219 ], [ %.6, %._crit_edge.loopexit ]
  %69 = add i16 %.0111216, 1
  %70 = sext i16 %69 to i32
  %71 = icmp sgt i32 %67, %70
  br i1 %71, label %.lr.ph219, label %._crit_edge220, !llvm.loop !53

.lr.ph:                                           ; preds = %.lr.ph219, %228
  %72 = phi i32 [ %229, %228 ], [ %64, %.lr.ph219 ]
  %.0112215 = phi i16 [ %.0112, %228 ], [ %.0112212, %.lr.ph219 ]
  %.3214 = phi i64 [ %.6, %228 ], [ %.2217, %.lr.ph219 ]
  %73 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef %72, i32 noundef %47, i64 noundef %40)
  %74 = load i32, ptr %73, align 4, !tbaa !54
  %75 = sext i32 %74 to i64
  %76 = icmp eq i64 %75, %5
  br i1 %76, label %77, label %228

77:                                               ; preds = %.lr.ph
  %78 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %73)
  %79 = load i32, ptr %78, align 4, !tbaa !54
  %80 = sext i32 %79 to i64
  %.not136 = icmp slt i64 %80, %2
  br i1 %.not136, label %85, label %81

81:                                               ; preds = %77
  %82 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %73)
  %83 = load i32, ptr %82, align 4, !tbaa !54
  %84 = sext i32 %83 to i64
  %.not137 = icmp sle i64 %84, %3
  %spec.select = zext i1 %.not137 to i16
  br label %85

85:                                               ; preds = %81, %77
  %.0117 = phi i16 [ 0, %77 ], [ %spec.select, %81 ]
  %86 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %73)
  %87 = load i32, ptr %86, align 4, !tbaa !54
  %88 = sext i32 %87 to i64
  %.not138 = icmp slt i64 %88, %2
  br i1 %.not138, label %94, label %89

89:                                               ; preds = %85
  %90 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %73)
  %91 = load i32, ptr %90, align 4, !tbaa !54
  %92 = sext i32 %91 to i64
  %.not139 = icmp sle i64 %92, %3
  %93 = zext i1 %.not139 to i16
  %spec.select168 = add nuw nsw i16 %.0117, %93
  br label %94

94:                                               ; preds = %89, %85
  %.1118 = phi i16 [ %.0117, %85 ], [ %spec.select168, %89 ]
  %95 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %73)
  %96 = load i32, ptr %95, align 4, !tbaa !54
  %97 = sext i32 %96 to i64
  %.not140 = icmp slt i64 %97, %2
  br i1 %.not140, label %103, label %98

98:                                               ; preds = %94
  %99 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %73)
  %100 = load i32, ptr %99, align 4, !tbaa !54
  %101 = sext i32 %100 to i64
  %.not141 = icmp sle i64 %101, %3
  %102 = zext i1 %.not141 to i16
  %spec.select169 = add nuw nsw i16 %.1118, %102
  br label %103

103:                                              ; preds = %98, %94
  %.2119 = phi i16 [ %.1118, %94 ], [ %spec.select169, %98 ]
  %104 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %73)
  %105 = load i32, ptr %104, align 4, !tbaa !54
  %106 = sext i32 %105 to i64
  %.not142 = icmp slt i64 %106, %2
  br i1 %.not142, label %112, label %107

107:                                              ; preds = %103
  %108 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %73)
  %109 = load i32, ptr %108, align 4, !tbaa !54
  %110 = sext i32 %109 to i64
  %.not143 = icmp sle i64 %110, %3
  %111 = zext i1 %.not143 to i16
  %spec.select170 = add nuw nsw i16 %.2119, %111
  br label %112

112:                                              ; preds = %107, %103
  %.3120 = phi i16 [ %.2119, %103 ], [ %spec.select170, %107 ]
  %113 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %73)
  %114 = load i32, ptr %113, align 4, !tbaa !54
  %115 = sext i32 %114 to i64
  %.not144 = icmp slt i64 %115, %2
  br i1 %.not144, label %121, label %116

116:                                              ; preds = %112
  %117 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %73)
  %118 = load i32, ptr %117, align 4, !tbaa !54
  %119 = sext i32 %118 to i64
  %.not145 = icmp sle i64 %119, %3
  %120 = zext i1 %.not145 to i16
  %spec.select171 = add nuw nsw i16 %.3120, %120
  br label %121

121:                                              ; preds = %116, %112
  %.4121 = phi i16 [ %.3120, %112 ], [ %spec.select171, %116 ]
  %122 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %73)
  %123 = load i32, ptr %122, align 4, !tbaa !54
  %124 = sext i32 %123 to i64
  %.not146 = icmp slt i64 %124, %2
  br i1 %.not146, label %130, label %125

125:                                              ; preds = %121
  %126 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %73)
  %127 = load i32, ptr %126, align 4, !tbaa !54
  %128 = sext i32 %127 to i64
  %.not147 = icmp sle i64 %128, %3
  %129 = zext i1 %.not147 to i16
  %spec.select172 = add nuw nsw i16 %.4121, %129
  br label %130

130:                                              ; preds = %125, %121
  %.5122 = phi i16 [ %.4121, %121 ], [ %spec.select172, %125 ]
  %131 = icmp ugt i16 %.5122, 1
  br i1 %131, label %132, label %228

132:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) #4
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #4
  %133 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %73)
  %134 = load i32, ptr %133, align 4, !tbaa !54
  %135 = sext i32 %134 to i64
  store i64 %135, ptr %9, align 8, !tbaa !55
  %.not148 = icmp eq i32 %134, %74
  %.not149 = icmp slt i64 %135, %2
  %or.cond = or i1 %.not148, %.not149
  %.not150 = icmp sgt i64 %135, %3
  %or.cond173 = or i1 %.not150, %or.cond
  br i1 %or.cond173, label %145, label %136

136:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #4
  store i32 0, ptr %12, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %11, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(4) %12)
  %137 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %8, ptr noundef nonnull align 4 dereferenceable(6) %11)
          to label %138 unwind label %143

138:                                              ; preds = %136
  %.fca.0.extract19 = extractvalue { ptr, i8 } %137, 0
  %.fca.1.extract20 = extractvalue { ptr, i8 } %137, 1
  store ptr %.fca.0.extract19, ptr %10, align 8
  store i8 %.fca.1.extract20, ptr %.sroa.222.0..sroa_idx, align 8
  %139 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #4
  %140 = getelementptr inbounds i8, ptr %139, i64 4
  %141 = load i16, ptr %140, align 4, !tbaa !56
  %142 = add i16 %141, 1
  store i16 %142, ptr %140, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #4
  br label %145

143:                                              ; preds = %136
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #4
  br label %227

145:                                              ; preds = %138, %132
  %146 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %73)
  %147 = load i32, ptr %146, align 4, !tbaa !54
  %148 = sext i32 %147 to i64
  store i64 %148, ptr %9, align 8, !tbaa !55
  %.not151 = icmp eq i32 %147, %74
  %.not152 = icmp slt i64 %148, %2
  %or.cond174 = or i1 %.not151, %.not152
  %.not153 = icmp sgt i64 %148, %3
  %or.cond175 = or i1 %.not153, %or.cond174
  br i1 %or.cond175, label %158, label %149

149:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #4
  store i32 0, ptr %15, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %14, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(4) %15)
  %150 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %8, ptr noundef nonnull align 4 dereferenceable(6) %14)
          to label %151 unwind label %156

151:                                              ; preds = %149
  %.fca.0.extract15 = extractvalue { ptr, i8 } %150, 0
  %.fca.1.extract16 = extractvalue { ptr, i8 } %150, 1
  store ptr %.fca.0.extract15, ptr %13, align 8
  store i8 %.fca.1.extract16, ptr %.sroa.218.0..sroa_idx, align 8
  %152 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #4
  %153 = getelementptr inbounds i8, ptr %152, i64 4
  %154 = load i16, ptr %153, align 4, !tbaa !56
  %155 = add i16 %154, 1
  store i16 %155, ptr %153, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #4
  br label %158

156:                                              ; preds = %149
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #4
  br label %227

158:                                              ; preds = %151, %145
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %73)
  %160 = load i32, ptr %159, align 4, !tbaa !54
  %161 = sext i32 %160 to i64
  store i64 %161, ptr %9, align 8, !tbaa !55
  %.not154 = icmp eq i32 %160, %74
  %.not155 = icmp slt i64 %161, %2
  %or.cond176 = or i1 %.not154, %.not155
  %.not156 = icmp sgt i64 %161, %3
  %or.cond177 = or i1 %.not156, %or.cond176
  br i1 %or.cond177, label %171, label %162

162:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #4
  store i32 0, ptr %18, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %17, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(4) %18)
  %163 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %8, ptr noundef nonnull align 4 dereferenceable(6) %17)
          to label %164 unwind label %169

164:                                              ; preds = %162
  %.fca.0.extract11 = extractvalue { ptr, i8 } %163, 0
  %.fca.1.extract12 = extractvalue { ptr, i8 } %163, 1
  store ptr %.fca.0.extract11, ptr %16, align 8
  store i8 %.fca.1.extract12, ptr %.sroa.214.0..sroa_idx, align 8
  %165 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #4
  %166 = getelementptr inbounds i8, ptr %165, i64 4
  %167 = load i16, ptr %166, align 4, !tbaa !56
  %168 = add i16 %167, 1
  store i16 %168, ptr %166, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #4
  br label %171

169:                                              ; preds = %162
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #4
  br label %227

171:                                              ; preds = %164, %158
  %172 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %73)
  %173 = load i32, ptr %172, align 4, !tbaa !54
  %174 = sext i32 %173 to i64
  store i64 %174, ptr %9, align 8, !tbaa !55
  %.not157 = icmp eq i32 %173, %74
  %.not158 = icmp slt i64 %174, %2
  %or.cond178 = or i1 %.not157, %.not158
  %.not159 = icmp sgt i64 %174, %3
  %or.cond179 = or i1 %.not159, %or.cond178
  br i1 %or.cond179, label %184, label %175

175:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #4
  store i32 0, ptr %21, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %20, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(4) %21)
  %176 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %8, ptr noundef nonnull align 4 dereferenceable(6) %20)
          to label %177 unwind label %182

177:                                              ; preds = %175
  %.fca.0.extract7 = extractvalue { ptr, i8 } %176, 0
  %.fca.1.extract8 = extractvalue { ptr, i8 } %176, 1
  store ptr %.fca.0.extract7, ptr %19, align 8
  store i8 %.fca.1.extract8, ptr %.sroa.210.0..sroa_idx, align 8
  %178 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #4
  %179 = getelementptr inbounds i8, ptr %178, i64 4
  %180 = load i16, ptr %179, align 4, !tbaa !56
  %181 = add i16 %180, 1
  store i16 %181, ptr %179, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #4
  br label %184

182:                                              ; preds = %175
  %183 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #4
  br label %227

184:                                              ; preds = %177, %171
  %185 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %73)
  %186 = load i32, ptr %185, align 4, !tbaa !54
  %187 = sext i32 %186 to i64
  store i64 %187, ptr %9, align 8, !tbaa !55
  %.not160 = icmp eq i32 %186, %74
  %.not161 = icmp slt i64 %187, %2
  %or.cond180 = or i1 %.not160, %.not161
  %.not162 = icmp sgt i64 %187, %3
  %or.cond181 = or i1 %.not162, %or.cond180
  br i1 %or.cond181, label %197, label %188

188:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #4
  store i32 0, ptr %24, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %23, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(4) %24)
  %189 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %8, ptr noundef nonnull align 4 dereferenceable(6) %23)
          to label %190 unwind label %195

190:                                              ; preds = %188
  %.fca.0.extract3 = extractvalue { ptr, i8 } %189, 0
  %.fca.1.extract4 = extractvalue { ptr, i8 } %189, 1
  store ptr %.fca.0.extract3, ptr %22, align 8
  store i8 %.fca.1.extract4, ptr %.sroa.26.0..sroa_idx, align 8
  %191 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #4
  %192 = getelementptr inbounds i8, ptr %191, i64 4
  %193 = load i16, ptr %192, align 4, !tbaa !56
  %194 = add i16 %193, 1
  store i16 %194, ptr %192, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #4
  br label %197

195:                                              ; preds = %188
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #4
  br label %227

197:                                              ; preds = %190, %184
  %198 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %73)
  %199 = load i32, ptr %198, align 4, !tbaa !54
  %200 = sext i32 %199 to i64
  store i64 %200, ptr %9, align 8, !tbaa !55
  %.not163 = icmp eq i32 %199, %74
  %.not164 = icmp slt i64 %200, %2
  %or.cond182 = or i1 %.not163, %.not164
  %.not165 = icmp sgt i64 %200, %3
  %or.cond183 = or i1 %.not165, %or.cond182
  br i1 %or.cond183, label %210, label %201

201:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #4
  store i32 0, ptr %27, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %26, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(4) %27)
  %202 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %8, ptr noundef nonnull align 4 dereferenceable(6) %26)
          to label %203 unwind label %208

203:                                              ; preds = %201
  %.fca.0.extract = extractvalue { ptr, i8 } %202, 0
  %.fca.1.extract = extractvalue { ptr, i8 } %202, 1
  store ptr %.fca.0.extract, ptr %25, align 8
  store i8 %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  %204 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #4
  %205 = getelementptr inbounds i8, ptr %204, i64 4
  %206 = load i16, ptr %205, align 4, !tbaa !56
  %207 = add i16 %206, 1
  store i16 %207, ptr %205, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #4
  br label %210

208:                                              ; preds = %201
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #4
  br label %227

210:                                              ; preds = %203, %197
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #4
  %211 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  %212 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  %213 = invoke ptr @_ZSt11max_elementISt17_Rb_tree_iteratorISt4pairIKisEE11mapComparerIiEET_S7_S7_T0_(ptr %211, ptr %212)
          to label %214 unwind label %224

214:                                              ; preds = %210
  store ptr %213, ptr %28, align 8
  %215 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #4
  %216 = getelementptr inbounds i8, ptr %215, i64 4
  %217 = load i16, ptr %216, align 4, !tbaa !56
  %218 = icmp sgt i16 %217, 1
  br i1 %218, label %219, label %226

219:                                              ; preds = %214
  %220 = add nsw i64 %.3214, 1
  %221 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #4
  %222 = load i32, ptr %221, align 4, !tbaa !59
  %223 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef %72, i32 noundef %47, i64 noundef %40)
  store i32 %222, ptr %223, align 4, !tbaa !54
  br label %226

224:                                              ; preds = %210
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  br label %227

226:                                              ; preds = %219, %214
  %.4 = phi i64 [ %220, %219 ], [ %.3214, %214 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #4
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #4
  br label %228

227:                                              ; preds = %224, %208, %195, %182, %169, %156, %143
  %.pn = phi { ptr, i32 } [ %225, %224 ], [ %209, %208 ], [ %196, %195 ], [ %183, %182 ], [ %170, %169 ], [ %157, %156 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #4
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #4
  br label %241

228:                                              ; preds = %130, %226, %.lr.ph
  %.6 = phi i64 [ %.3214, %.lr.ph ], [ %.4, %226 ], [ %.3214, %130 ]
  %.0112 = add i16 %.0112215, 1
  %229 = sext i16 %.0112 to i32
  %230 = load ptr, ptr %51, align 8, !tbaa !50
  %231 = getelementptr %class.segment, ptr %230, i64 %60
  %232 = getelementptr i8, ptr %231, i64 16
  %233 = load i32, ptr %232, align 8, !tbaa !52
  %.not135 = icmp slt i32 %233, %229
  br i1 %.not135, label %._crit_edge.loopexit, label %.lr.ph, !llvm.loop !60

234:                                              ; preds = %._crit_edge231
  %235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %41, i64 noundef %.0.lcssa)
          to label %236 unwind label %239

236:                                              ; preds = %234
  %237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %235, ptr noundef nonnull @.str.28)
          to label %238 unwind label %239

238:                                              ; preds = %236
  call void @_ZN10voxelFieldIiED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %7) #4
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7) #4
  ret void

239:                                              ; preds = %236, %234, %._crit_edge231
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %241

241:                                              ; preds = %239, %227
  %.pn.pn = phi { ptr, i32 } [ %.pn, %227 ], [ %240, %239 ]
  call void @_ZN10voxelFieldIiED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %7) #4
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7) #4
  resume { ptr, i32 } %.pn.pn
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(6)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt11max_elementISt17_Rb_tree_iteratorISt4pairIKisEE11mapComparerIiEET_S7_S7_T0_(ptr, ptr) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2 align 2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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, !19, i64 132}
!6 = !{!"_ZTS11inputDataNE", !7, i64 0, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !20, i64 144, !21, i64 152, !15, i64 176, !22, i64 208, !15, i64 216, !23, i64 248, !27, i64 272, !28, i64 288, !32, i64 312, !36, i64 336}
!7 = !{!"_ZTS9InputFile", !8, i64 0, !15, i64 24, !15, i64 56, !15, i64 88, !18, i64 120, !18, i64 121}
!8 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !9, i64 0}
!9 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !10, i64 0}
!10 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !11, i64 0}
!11 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!12 = !{!"any pointer", !13, i64 0}
!13 = !{!"omnipotent char", !14, i64 0}
!14 = !{!"Simple C++ TBAA"}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !16, i64 0, !17, i64 8, !13, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!17 = !{!"long", !13, i64 0}
!18 = !{!"bool", !13, i64 0}
!19 = !{!"int", !13, i64 0}
!20 = !{!"double", !13, i64 0}
!21 = !{!"_ZTS4var3IdE", !20, i64 0, !20, i64 8, !20, i64 16}
!22 = !{!"long long", !13, i64 0}
!23 = !{!"_ZTSSt6vectorIS_I8segmentsSaIS0_EESaIS2_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!27 = !{!"_ZTS7segment", !19, i64 0, !13, i64 4, !12, i64 8}
!28 = !{!"_ZTSSt6vectorIiSaIiEE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!32 = !{!"_ZTSSt6vectorI9poroRangeSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseI9poroRangeSaIS0_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!36 = !{!"_ZTS11voxelImageTIhE", !37, i64 0, !38, i64 8, !21, i64 64, !21, i64 88}
!37 = !{!"_ZTS15voxelImageTBase"}
!38 = !{!"_ZTS10voxelFieldIhE", !22, i64 8, !39, i64 16, !40, i64 32}
!39 = !{!"_ZTS4var3IiE", !19, i64 0, !19, i64 4, !19, i64 8}
!40 = !{!"_ZTSSt6vectorIhSaIhEE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!44 = !{!6, !19, i64 128}
!45 = distinct !{!45, !46, !47}
!46 = !{!"llvm.loop.mustprogress"}
!47 = !{!"llvm.loop.unswitch.partial.disable"}
!48 = !{!49, !19, i64 8}
!49 = !{!"_ZTS8segments", !12, i64 0, !19, i64 8}
!50 = !{!49, !12, i64 0}
!51 = distinct !{!51, !46}
!52 = !{!27, !19, i64 0}
!53 = distinct !{!53, !46}
!54 = !{!19, !19, i64 0}
!55 = !{!17, !17, i64 0}
!56 = !{!57, !58, i64 4}
!57 = !{!"_ZTSSt4pairIKisE", !19, i64 0, !58, i64 4}
!58 = !{!"short", !13, i64 0}
!59 = !{!57, !19, i64 0}
!60 = distinct !{!60, !46}


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