; 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.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.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [11 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 @_Z10medianElemRK11inputDataNER10voxelFieldIiEllRKSt6vectorIP6poreNESaIS7_EE(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) #4 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %class.voxelField.35, align 8
  %12 = alloca i64, align 8
  %13 = alloca i16, align 2
  %14 = alloca i32, align 4
  %15 = alloca i16, align 2
  %16 = alloca ptr, align 8
  %17 = alloca i16, align 2
  %18 = alloca i16, align 2
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i64, align 8
  %23 = alloca i16, align 2
  %24 = alloca i16, align 2
  %25 = alloca %"class.std::map.83", align 8
  %26 = alloca i64, align 8
  %27 = alloca %"struct.std::pair.88", align 8
  %28 = alloca %"struct.std::pair.92", align 4
  %29 = alloca i32, align 4
  %30 = alloca { ptr, i8 }, align 8
  %31 = alloca %"struct.std::pair.88", align 8
  %32 = alloca %"struct.std::pair.92", align 4
  %33 = alloca i32, align 4
  %34 = alloca { ptr, i8 }, align 8
  %35 = alloca %"struct.std::pair.88", align 8
  %36 = alloca %"struct.std::pair.92", align 4
  %37 = alloca i32, align 4
  %38 = alloca { ptr, i8 }, align 8
  %39 = alloca %"struct.std::pair.88", align 8
  %40 = alloca %"struct.std::pair.92", align 4
  %41 = alloca i32, align 4
  %42 = alloca { ptr, i8 }, align 8
  %43 = alloca %"struct.std::pair.88", align 8
  %44 = alloca %"struct.std::pair.92", align 4
  %45 = alloca i32, align 4
  %46 = alloca { ptr, i8 }, align 8
  %47 = alloca %"struct.std::pair.88", align 8
  %48 = alloca %"struct.std::pair.92", align 4
  %49 = alloca i32, align 4
  %50 = alloca { ptr, i8 }, align 8
  %51 = alloca %"struct.std::_Rb_tree_iterator.90", align 8
  %52 = alloca %"struct.std::_Rb_tree_iterator.90", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store i64 %2, ptr %8, align 8, !tbaa !9
  store i64 %3, ptr %9, align 8, !tbaa !9
  store ptr %4, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %11) #5
  %53 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN10voxelFieldIiEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(56) %11, ptr noundef nonnull align 8 dereferenceable(56) %53)
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  store i64 0, ptr %12, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %13) #5
  store i16 1, ptr %13, align 2, !tbaa !13
  br label %54

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

61:                                               ; preds = %54
  store i32 2, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %13) #5
  br label %583

62:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 2, ptr %15) #5
  store i16 1, ptr %15, align 2, !tbaa !13
  br label %63

63:                                               ; preds = %576, %62
  %64 = load i16, ptr %15, align 2, !tbaa !13
  %65 = sext i16 %64 to i32
  %66 = load ptr, ptr %6, align 8, !tbaa !5
  %67 = getelementptr inbounds %class.inputDataNE, ptr %66, i32 0, i32 2
  %68 = load i32, ptr %67, align 8, !tbaa !49
  %69 = icmp sle i32 %65, %68
  br i1 %69, label %71, label %70

70:                                               ; preds = %63
  store i32 5, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %15) #5
  br label %579

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

84:                                               ; preds = %572, %71
  %85 = load i16, ptr %17, align 2, !tbaa !13
  %86 = sext i16 %85 to i32
  %87 = load ptr, ptr %16, align 8, !tbaa !5
  %88 = getelementptr inbounds %class.segments, ptr %87, i32 0, i32 1
  %89 = load i32, ptr %88, align 8, !tbaa !50
  %90 = icmp slt i32 %86, %89
  br i1 %90, label %92, label %91

91:                                               ; preds = %84
  store i32 8, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %17) #5
  br label %575

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

103:                                              ; preds = %566, %92
  %104 = load i16, ptr %18, align 2, !tbaa !13
  %105 = sext i16 %104 to i32
  %106 = load ptr, ptr %16, align 8, !tbaa !5
  %107 = getelementptr inbounds %class.segments, ptr %106, i32 0, i32 0
  %108 = load ptr, ptr %107, align 8, !tbaa !52
  %109 = load i16, ptr %17, align 2, !tbaa !13
  %110 = sext i16 %109 to i32
  %111 = add nsw i32 %110, 1
  %112 = sext i32 %111 to i64
  %113 = getelementptr inbounds %class.segment, ptr %108, i64 %112
  %114 = getelementptr inbounds %class.segment, ptr %113, i32 0, i32 0
  %115 = load i32, ptr %114, align 8, !tbaa !53
  %116 = icmp sle i32 %105, %115
  br i1 %116, label %118, label %117

117:                                              ; preds = %103
  store i32 11, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %18) #5
  br label %571

118:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %119 = load i16, ptr %18, align 2, !tbaa !13
  %120 = sext i16 %119 to i32
  %121 = load i16, ptr %15, align 2, !tbaa !13
  %122 = sext i16 %121 to i32
  %123 = load i16, ptr %13, align 2, !tbaa !13
  %124 = sext i16 %123 to i64
  %125 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef %120, i32 noundef %122, i64 noundef %124)
          to label %126 unwind label %148

126:                                              ; preds = %118
  store ptr %125, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %127 = load ptr, ptr %19, align 8, !tbaa !5
  %128 = load i32, ptr %127, align 4, !tbaa !54
  %129 = sext i32 %128 to i64
  store i64 %129, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %23) #5
  store i16 0, ptr %23, align 2, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 2, ptr %24) #5
  store i16 0, ptr %24, align 2, !tbaa !13
  %130 = load i64, ptr %22, align 8, !tbaa !9
  %131 = load i64, ptr %8, align 8, !tbaa !9
  %132 = icmp sge i64 %130, %131
  br i1 %132, label %133, label %565

133:                                              ; preds = %126
  %134 = load i64, ptr %22, align 8, !tbaa !9
  %135 = load i64, ptr %9, align 8, !tbaa !9
  %136 = icmp sle i64 %134, %135
  br i1 %136, label %137, label %565

137:                                              ; preds = %133
  %138 = load ptr, ptr %19, align 8, !tbaa !5
  %139 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %138)
          to label %140 unwind label %152

140:                                              ; preds = %137
  %141 = load i32, ptr %139, align 4, !tbaa !54
  %142 = sext i32 %141 to i64
  %143 = load i64, ptr %22, align 8, !tbaa !9
  %144 = icmp eq i64 %142, %143
  br i1 %144, label %145, label %156

145:                                              ; preds = %140
  %146 = load i16, ptr %23, align 2, !tbaa !13
  %147 = add i16 %146, 1
  store i16 %147, ptr %23, align 2, !tbaa !13
  br label %176

148:                                              ; preds = %118
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %20, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %21, align 4
  br label %570

152:                                              ; preds = %319, %311, %300, %288, %280, %269, %257, %249, %238, %226, %218, %207, %195, %187, %176, %164, %156, %137
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %20, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %21, align 4
  br label %569

156:                                              ; preds = %140
  %157 = load i64, ptr %8, align 8, !tbaa !9
  %158 = load ptr, ptr %19, align 8, !tbaa !5
  %159 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %158)
          to label %160 unwind label %152

160:                                              ; preds = %156
  %161 = load i32, ptr %159, align 4, !tbaa !54
  %162 = sext i32 %161 to i64
  %163 = icmp sle i64 %157, %162
  br i1 %163, label %164, label %175

164:                                              ; preds = %160
  %165 = load i64, ptr %9, align 8, !tbaa !9
  %166 = load ptr, ptr %19, align 8, !tbaa !5
  %167 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %166)
          to label %168 unwind label %152

168:                                              ; preds = %164
  %169 = load i32, ptr %167, align 4, !tbaa !54
  %170 = sext i32 %169 to i64
  %171 = icmp sge i64 %165, %170
  br i1 %171, label %172, label %175

172:                                              ; preds = %168
  %173 = load i16, ptr %24, align 2, !tbaa !13
  %174 = add i16 %173, 1
  store i16 %174, ptr %24, align 2, !tbaa !13
  br label %175

175:                                              ; preds = %172, %168, %160
  br label %176

176:                                              ; preds = %175, %145
  %177 = load ptr, ptr %19, align 8, !tbaa !5
  %178 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %177)
          to label %179 unwind label %152

179:                                              ; preds = %176
  %180 = load i32, ptr %178, align 4, !tbaa !54
  %181 = sext i32 %180 to i64
  %182 = load i64, ptr %22, align 8, !tbaa !9
  %183 = icmp eq i64 %181, %182
  br i1 %183, label %184, label %187

184:                                              ; preds = %179
  %185 = load i16, ptr %23, align 2, !tbaa !13
  %186 = add i16 %185, 1
  store i16 %186, ptr %23, align 2, !tbaa !13
  br label %207

187:                                              ; preds = %179
  %188 = load i64, ptr %8, align 8, !tbaa !9
  %189 = load ptr, ptr %19, align 8, !tbaa !5
  %190 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %189)
          to label %191 unwind label %152

191:                                              ; preds = %187
  %192 = load i32, ptr %190, align 4, !tbaa !54
  %193 = sext i32 %192 to i64
  %194 = icmp sle i64 %188, %193
  br i1 %194, label %195, label %206

195:                                              ; preds = %191
  %196 = load i64, ptr %9, align 8, !tbaa !9
  %197 = load ptr, ptr %19, align 8, !tbaa !5
  %198 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %197)
          to label %199 unwind label %152

199:                                              ; preds = %195
  %200 = load i32, ptr %198, align 4, !tbaa !54
  %201 = sext i32 %200 to i64
  %202 = icmp sge i64 %196, %201
  br i1 %202, label %203, label %206

203:                                              ; preds = %199
  %204 = load i16, ptr %24, align 2, !tbaa !13
  %205 = add i16 %204, 1
  store i16 %205, ptr %24, align 2, !tbaa !13
  br label %206

206:                                              ; preds = %203, %199, %191
  br label %207

207:                                              ; preds = %206, %184
  %208 = load ptr, ptr %19, align 8, !tbaa !5
  %209 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %208)
          to label %210 unwind label %152

210:                                              ; preds = %207
  %211 = load i32, ptr %209, align 4, !tbaa !54
  %212 = sext i32 %211 to i64
  %213 = load i64, ptr %22, align 8, !tbaa !9
  %214 = icmp eq i64 %212, %213
  br i1 %214, label %215, label %218

215:                                              ; preds = %210
  %216 = load i16, ptr %23, align 2, !tbaa !13
  %217 = add i16 %216, 1
  store i16 %217, ptr %23, align 2, !tbaa !13
  br label %238

218:                                              ; preds = %210
  %219 = load i64, ptr %8, align 8, !tbaa !9
  %220 = load ptr, ptr %19, align 8, !tbaa !5
  %221 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %220)
          to label %222 unwind label %152

222:                                              ; preds = %218
  %223 = load i32, ptr %221, align 4, !tbaa !54
  %224 = sext i32 %223 to i64
  %225 = icmp sle i64 %219, %224
  br i1 %225, label %226, label %237

226:                                              ; preds = %222
  %227 = load i64, ptr %9, align 8, !tbaa !9
  %228 = load ptr, ptr %19, align 8, !tbaa !5
  %229 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %228)
          to label %230 unwind label %152

230:                                              ; preds = %226
  %231 = load i32, ptr %229, align 4, !tbaa !54
  %232 = sext i32 %231 to i64
  %233 = icmp sge i64 %227, %232
  br i1 %233, label %234, label %237

234:                                              ; preds = %230
  %235 = load i16, ptr %24, align 2, !tbaa !13
  %236 = add i16 %235, 1
  store i16 %236, ptr %24, align 2, !tbaa !13
  br label %237

237:                                              ; preds = %234, %230, %222
  br label %238

238:                                              ; preds = %237, %215
  %239 = load ptr, ptr %19, align 8, !tbaa !5
  %240 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %239)
          to label %241 unwind label %152

241:                                              ; preds = %238
  %242 = load i32, ptr %240, align 4, !tbaa !54
  %243 = sext i32 %242 to i64
  %244 = load i64, ptr %22, align 8, !tbaa !9
  %245 = icmp eq i64 %243, %244
  br i1 %245, label %246, label %249

246:                                              ; preds = %241
  %247 = load i16, ptr %23, align 2, !tbaa !13
  %248 = add i16 %247, 1
  store i16 %248, ptr %23, align 2, !tbaa !13
  br label %269

249:                                              ; preds = %241
  %250 = load i64, ptr %8, align 8, !tbaa !9
  %251 = load ptr, ptr %19, align 8, !tbaa !5
  %252 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %251)
          to label %253 unwind label %152

253:                                              ; preds = %249
  %254 = load i32, ptr %252, align 4, !tbaa !54
  %255 = sext i32 %254 to i64
  %256 = icmp sle i64 %250, %255
  br i1 %256, label %257, label %268

257:                                              ; preds = %253
  %258 = load i64, ptr %9, align 8, !tbaa !9
  %259 = load ptr, ptr %19, align 8, !tbaa !5
  %260 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %259)
          to label %261 unwind label %152

261:                                              ; preds = %257
  %262 = load i32, ptr %260, align 4, !tbaa !54
  %263 = sext i32 %262 to i64
  %264 = icmp sge i64 %258, %263
  br i1 %264, label %265, label %268

265:                                              ; preds = %261
  %266 = load i16, ptr %24, align 2, !tbaa !13
  %267 = add i16 %266, 1
  store i16 %267, ptr %24, align 2, !tbaa !13
  br label %268

268:                                              ; preds = %265, %261, %253
  br label %269

269:                                              ; preds = %268, %246
  %270 = load ptr, ptr %19, align 8, !tbaa !5
  %271 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %270)
          to label %272 unwind label %152

272:                                              ; preds = %269
  %273 = load i32, ptr %271, align 4, !tbaa !54
  %274 = sext i32 %273 to i64
  %275 = load i64, ptr %22, align 8, !tbaa !9
  %276 = icmp eq i64 %274, %275
  br i1 %276, label %277, label %280

277:                                              ; preds = %272
  %278 = load i16, ptr %23, align 2, !tbaa !13
  %279 = add i16 %278, 1
  store i16 %279, ptr %23, align 2, !tbaa !13
  br label %300

280:                                              ; preds = %272
  %281 = load i64, ptr %8, align 8, !tbaa !9
  %282 = load ptr, ptr %19, align 8, !tbaa !5
  %283 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %282)
          to label %284 unwind label %152

284:                                              ; preds = %280
  %285 = load i32, ptr %283, align 4, !tbaa !54
  %286 = sext i32 %285 to i64
  %287 = icmp sle i64 %281, %286
  br i1 %287, label %288, label %299

288:                                              ; preds = %284
  %289 = load i64, ptr %9, align 8, !tbaa !9
  %290 = load ptr, ptr %19, align 8, !tbaa !5
  %291 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %290)
          to label %292 unwind label %152

292:                                              ; preds = %288
  %293 = load i32, ptr %291, align 4, !tbaa !54
  %294 = sext i32 %293 to i64
  %295 = icmp sge i64 %289, %294
  br i1 %295, label %296, label %299

296:                                              ; preds = %292
  %297 = load i16, ptr %24, align 2, !tbaa !13
  %298 = add i16 %297, 1
  store i16 %298, ptr %24, align 2, !tbaa !13
  br label %299

299:                                              ; preds = %296, %292, %284
  br label %300

300:                                              ; preds = %299, %277
  %301 = load ptr, ptr %19, align 8, !tbaa !5
  %302 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %301)
          to label %303 unwind label %152

303:                                              ; preds = %300
  %304 = load i32, ptr %302, align 4, !tbaa !54
  %305 = sext i32 %304 to i64
  %306 = load i64, ptr %22, align 8, !tbaa !9
  %307 = icmp eq i64 %305, %306
  br i1 %307, label %308, label %311

308:                                              ; preds = %303
  %309 = load i16, ptr %23, align 2, !tbaa !13
  %310 = add i16 %309, 1
  store i16 %310, ptr %23, align 2, !tbaa !13
  br label %331

311:                                              ; preds = %303
  %312 = load i64, ptr %8, align 8, !tbaa !9
  %313 = load ptr, ptr %19, align 8, !tbaa !5
  %314 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %313)
          to label %315 unwind label %152

315:                                              ; preds = %311
  %316 = load i32, ptr %314, align 4, !tbaa !54
  %317 = sext i32 %316 to i64
  %318 = icmp sle i64 %312, %317
  br i1 %318, label %319, label %330

319:                                              ; preds = %315
  %320 = load i64, ptr %9, align 8, !tbaa !9
  %321 = load ptr, ptr %19, align 8, !tbaa !5
  %322 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %321)
          to label %323 unwind label %152

323:                                              ; preds = %319
  %324 = load i32, ptr %322, align 4, !tbaa !54
  %325 = sext i32 %324 to i64
  %326 = icmp sge i64 %320, %325
  br i1 %326, label %327, label %330

327:                                              ; preds = %323
  %328 = load i16, ptr %24, align 2, !tbaa !13
  %329 = add i16 %328, 1
  store i16 %329, ptr %24, align 2, !tbaa !13
  br label %330

330:                                              ; preds = %327, %323, %315
  br label %331

331:                                              ; preds = %330, %308
  %332 = load i16, ptr %24, align 2, !tbaa !13
  %333 = sext i16 %332 to i32
  %334 = load i16, ptr %23, align 2, !tbaa !13
  %335 = sext i16 %334 to i32
  %336 = icmp sgt i32 %333, %335
  br i1 %336, label %337, label %564

337:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 48, ptr %25) #5
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %338 = load ptr, ptr %19, align 8, !tbaa !5
  %339 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %338)
          to label %340 unwind label %363

340:                                              ; preds = %337
  %341 = load i32, ptr %339, align 4, !tbaa !54
  %342 = sext i32 %341 to i64
  store i64 %342, ptr %26, align 8, !tbaa !9
  %343 = load i64, ptr %26, align 8, !tbaa !9
  %344 = load i64, ptr %22, align 8, !tbaa !9
  %345 = icmp ne i64 %343, %344
  br i1 %345, label %346, label %371

346:                                              ; preds = %340
  %347 = load i64, ptr %8, align 8, !tbaa !9
  %348 = load i64, ptr %26, align 8, !tbaa !9
  %349 = icmp sle i64 %347, %348
  br i1 %349, label %350, label %371

350:                                              ; preds = %346
  %351 = load i64, ptr %9, align 8, !tbaa !9
  %352 = load i64, ptr %26, align 8, !tbaa !9
  %353 = icmp sge i64 %351, %352
  br i1 %353, label %354, label %371

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

355:                                              ; preds = %354
  %356 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 4 dereferenceable(6) %28)
          to label %357 unwind label %367

357:                                              ; preds = %355
  store { ptr, i8 } %356, ptr %30, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %27, ptr align 8 %30, i64 9, i1 false)
  %358 = getelementptr inbounds %"struct.std::pair.88", ptr %27, i32 0, i32 0
  %359 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %358) #5
  %360 = getelementptr inbounds %"struct.std::pair.95", ptr %359, i32 0, i32 1
  %361 = load i16, ptr %360, align 4, !tbaa !55
  %362 = add i16 %361, 1
  store i16 %362, ptr %360, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #5
  br label %371

363:                                              ; preds = %491, %461, %431, %401, %371, %337
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %20, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %21, align 4
  br label %563

367:                                              ; preds = %355, %354
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %20, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #5
  br label %563

371:                                              ; preds = %357, %350, %346, %340
  %372 = load ptr, ptr %19, align 8, !tbaa !5
  %373 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %372)
          to label %374 unwind label %363

374:                                              ; preds = %371
  %375 = load i32, ptr %373, align 4, !tbaa !54
  %376 = sext i32 %375 to i64
  store i64 %376, ptr %26, align 8, !tbaa !9
  %377 = load i64, ptr %26, align 8, !tbaa !9
  %378 = load i64, ptr %22, align 8, !tbaa !9
  %379 = icmp ne i64 %377, %378
  br i1 %379, label %380, label %401

380:                                              ; preds = %374
  %381 = load i64, ptr %8, align 8, !tbaa !9
  %382 = load i64, ptr %26, align 8, !tbaa !9
  %383 = icmp sle i64 %381, %382
  br i1 %383, label %384, label %401

384:                                              ; preds = %380
  %385 = load i64, ptr %9, align 8, !tbaa !9
  %386 = load i64, ptr %26, align 8, !tbaa !9
  %387 = icmp sge i64 %385, %386
  br i1 %387, label %388, label %401

388:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  store i32 0, ptr %33, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %32, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %389 unwind label %397

389:                                              ; preds = %388
  %390 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 4 dereferenceable(6) %32)
          to label %391 unwind label %397

391:                                              ; preds = %389
  store { ptr, i8 } %390, ptr %34, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %31, ptr align 8 %34, i64 9, i1 false)
  %392 = getelementptr inbounds %"struct.std::pair.88", ptr %31, i32 0, i32 0
  %393 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %392) #5
  %394 = getelementptr inbounds %"struct.std::pair.95", ptr %393, i32 0, i32 1
  %395 = load i16, ptr %394, align 4, !tbaa !55
  %396 = add i16 %395, 1
  store i16 %396, ptr %394, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #5
  br label %401

397:                                              ; preds = %389, %388
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %20, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #5
  br label %563

401:                                              ; preds = %391, %384, %380, %374
  %402 = load ptr, ptr %19, align 8, !tbaa !5
  %403 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %402)
          to label %404 unwind label %363

404:                                              ; preds = %401
  %405 = load i32, ptr %403, align 4, !tbaa !54
  %406 = sext i32 %405 to i64
  store i64 %406, ptr %26, align 8, !tbaa !9
  %407 = load i64, ptr %26, align 8, !tbaa !9
  %408 = load i64, ptr %22, align 8, !tbaa !9
  %409 = icmp ne i64 %407, %408
  br i1 %409, label %410, label %431

410:                                              ; preds = %404
  %411 = load i64, ptr %8, align 8, !tbaa !9
  %412 = load i64, ptr %26, align 8, !tbaa !9
  %413 = icmp sle i64 %411, %412
  br i1 %413, label %414, label %431

414:                                              ; preds = %410
  %415 = load i64, ptr %9, align 8, !tbaa !9
  %416 = load i64, ptr %26, align 8, !tbaa !9
  %417 = icmp sge i64 %415, %416
  br i1 %417, label %418, label %431

418:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  store i32 0, ptr %37, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %36, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %419 unwind label %427

419:                                              ; preds = %418
  %420 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 4 dereferenceable(6) %36)
          to label %421 unwind label %427

421:                                              ; preds = %419
  store { ptr, i8 } %420, ptr %38, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %35, ptr align 8 %38, i64 9, i1 false)
  %422 = getelementptr inbounds %"struct.std::pair.88", ptr %35, i32 0, i32 0
  %423 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %422) #5
  %424 = getelementptr inbounds %"struct.std::pair.95", ptr %423, i32 0, i32 1
  %425 = load i16, ptr %424, align 4, !tbaa !55
  %426 = add i16 %425, 1
  store i16 %426, ptr %424, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #5
  br label %431

427:                                              ; preds = %419, %418
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %20, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #5
  br label %563

431:                                              ; preds = %421, %414, %410, %404
  %432 = load ptr, ptr %19, align 8, !tbaa !5
  %433 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %432)
          to label %434 unwind label %363

434:                                              ; preds = %431
  %435 = load i32, ptr %433, align 4, !tbaa !54
  %436 = sext i32 %435 to i64
  store i64 %436, ptr %26, align 8, !tbaa !9
  %437 = load i64, ptr %26, align 8, !tbaa !9
  %438 = load i64, ptr %22, align 8, !tbaa !9
  %439 = icmp ne i64 %437, %438
  br i1 %439, label %440, label %461

440:                                              ; preds = %434
  %441 = load i64, ptr %8, align 8, !tbaa !9
  %442 = load i64, ptr %26, align 8, !tbaa !9
  %443 = icmp sle i64 %441, %442
  br i1 %443, label %444, label %461

444:                                              ; preds = %440
  %445 = load i64, ptr %9, align 8, !tbaa !9
  %446 = load i64, ptr %26, align 8, !tbaa !9
  %447 = icmp sge i64 %445, %446
  br i1 %447, label %448, label %461

448:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  store i32 0, ptr %41, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %40, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %449 unwind label %457

449:                                              ; preds = %448
  %450 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 4 dereferenceable(6) %40)
          to label %451 unwind label %457

451:                                              ; preds = %449
  store { ptr, i8 } %450, ptr %42, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %39, ptr align 8 %42, i64 9, i1 false)
  %452 = getelementptr inbounds %"struct.std::pair.88", ptr %39, i32 0, i32 0
  %453 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %452) #5
  %454 = getelementptr inbounds %"struct.std::pair.95", ptr %453, i32 0, i32 1
  %455 = load i16, ptr %454, align 4, !tbaa !55
  %456 = add i16 %455, 1
  store i16 %456, ptr %454, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #5
  br label %461

457:                                              ; preds = %449, %448
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %20, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #5
  br label %563

461:                                              ; preds = %451, %444, %440, %434
  %462 = load ptr, ptr %19, align 8, !tbaa !5
  %463 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef -1, ptr noundef %462)
          to label %464 unwind label %363

464:                                              ; preds = %461
  %465 = load i32, ptr %463, align 4, !tbaa !54
  %466 = sext i32 %465 to i64
  store i64 %466, ptr %26, align 8, !tbaa !9
  %467 = load i64, ptr %26, align 8, !tbaa !9
  %468 = load i64, ptr %22, align 8, !tbaa !9
  %469 = icmp ne i64 %467, %468
  br i1 %469, label %470, label %491

470:                                              ; preds = %464
  %471 = load i64, ptr %8, align 8, !tbaa !9
  %472 = load i64, ptr %26, align 8, !tbaa !9
  %473 = icmp sle i64 %471, %472
  br i1 %473, label %474, label %491

474:                                              ; preds = %470
  %475 = load i64, ptr %9, align 8, !tbaa !9
  %476 = load i64, ptr %26, align 8, !tbaa !9
  %477 = icmp sge i64 %475, %476
  br i1 %477, label %478, label %491

478:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  store i32 0, ptr %45, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %44, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %479 unwind label %487

479:                                              ; preds = %478
  %480 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 4 dereferenceable(6) %44)
          to label %481 unwind label %487

481:                                              ; preds = %479
  store { ptr, i8 } %480, ptr %46, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %43, ptr align 8 %46, i64 9, i1 false)
  %482 = getelementptr inbounds %"struct.std::pair.88", ptr %43, i32 0, i32 0
  %483 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %482) #5
  %484 = getelementptr inbounds %"struct.std::pair.95", ptr %483, i32 0, i32 1
  %485 = load i16, ptr %484, align 4, !tbaa !55
  %486 = add i16 %485, 1
  store i16 %486, ptr %484, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #5
  br label %491

487:                                              ; preds = %479, %478
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %20, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #5
  br label %563

491:                                              ; preds = %481, %474, %470, %464
  %492 = load ptr, ptr %19, align 8, !tbaa !5
  %493 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef 1, ptr noundef %492)
          to label %494 unwind label %363

494:                                              ; preds = %491
  %495 = load i32, ptr %493, align 4, !tbaa !54
  %496 = sext i32 %495 to i64
  store i64 %496, ptr %26, align 8, !tbaa !9
  %497 = load i64, ptr %26, align 8, !tbaa !9
  %498 = load i64, ptr %22, align 8, !tbaa !9
  %499 = icmp ne i64 %497, %498
  br i1 %499, label %500, label %521

500:                                              ; preds = %494
  %501 = load i64, ptr %8, align 8, !tbaa !9
  %502 = load i64, ptr %26, align 8, !tbaa !9
  %503 = icmp sle i64 %501, %502
  br i1 %503, label %504, label %521

504:                                              ; preds = %500
  %505 = load i64, ptr %9, align 8, !tbaa !9
  %506 = load i64, ptr %26, align 8, !tbaa !9
  %507 = icmp sge i64 %505, %506
  br i1 %507, label %508, label %521

508:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  store i32 0, ptr %49, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %48, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %509 unwind label %517

509:                                              ; preds = %508
  %510 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 4 dereferenceable(6) %48)
          to label %511 unwind label %517

511:                                              ; preds = %509
  store { ptr, i8 } %510, ptr %50, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %47, ptr align 8 %50, i64 9, i1 false)
  %512 = getelementptr inbounds %"struct.std::pair.88", ptr %47, i32 0, i32 0
  %513 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %512) #5
  %514 = getelementptr inbounds %"struct.std::pair.95", ptr %513, i32 0, i32 1
  %515 = load i16, ptr %514, align 4, !tbaa !55
  %516 = add i16 %515, 1
  store i16 %516, ptr %514, align 4, !tbaa !55
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #5
  br label %521

517:                                              ; preds = %509, %508
  %518 = landingpad { ptr, i32 }
          cleanup
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %20, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #5
  br label %563

521:                                              ; preds = %511, %504, %500, %494
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  %522 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %25) #5
  %523 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %51, i32 0, i32 0
  store ptr %522, ptr %523, align 8
  br label %524

524:                                              ; preds = %560, %521
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  %525 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %25) #5
  %526 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %52, i32 0, i32 0
  store ptr %525, ptr %526, align 8
  %527 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKisEES5_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  br i1 %527, label %529, label %528

528:                                              ; preds = %524
  store i32 14, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  br label %562

529:                                              ; preds = %524
  %530 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #5
  %531 = getelementptr inbounds %"struct.std::pair.95", ptr %530, i32 0, i32 1
  %532 = load i16, ptr %531, align 4, !tbaa !55
  %533 = sext i16 %532 to i32
  %534 = load i16, ptr %23, align 2, !tbaa !13
  %535 = sext i16 %534 to i32
  %536 = icmp sgt i32 %533, %535
  br i1 %536, label %537, label %559

537:                                              ; preds = %529
  %538 = load i64, ptr %12, align 8, !tbaa !11
  %539 = add nsw i64 %538, 1
  store i64 %539, ptr %12, align 8, !tbaa !11
  %540 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #5
  %541 = getelementptr inbounds %"struct.std::pair.95", ptr %540, i32 0, i32 0
  %542 = load i32, ptr %541, align 4, !tbaa !57
  %543 = load ptr, ptr %7, align 8, !tbaa !5
  %544 = load i16, ptr %18, align 2, !tbaa !13
  %545 = sext i16 %544 to i32
  %546 = load i16, ptr %15, align 2, !tbaa !13
  %547 = sext i16 %546 to i32
  %548 = load i16, ptr %13, align 2, !tbaa !13
  %549 = sext i16 %548 to i64
  %550 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %543, i32 noundef %545, i32 noundef %547, i64 noundef %549)
          to label %551 unwind label %555

551:                                              ; preds = %537
  store i32 %542, ptr %550, align 4, !tbaa !54
  %552 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #5
  %553 = getelementptr inbounds %"struct.std::pair.95", ptr %552, i32 0, i32 1
  %554 = load i16, ptr %553, align 4, !tbaa !55
  store i16 %554, ptr %23, align 2, !tbaa !13
  br label %559

555:                                              ; preds = %537
  %556 = landingpad { ptr, i32 }
          cleanup
  %557 = extractvalue { ptr, i32 } %556, 0
  store ptr %557, ptr %20, align 8
  %558 = extractvalue { ptr, i32 } %556, 1
  store i32 %558, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  br label %563

559:                                              ; preds = %551, %529
  br label %560

560:                                              ; preds = %559
  %561 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKisEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #5
  br label %524, !llvm.loop !58

562:                                              ; preds = %528
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %25) #5
  br label %564

563:                                              ; preds = %555, %517, %487, %457, %427, %397, %367, %363
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %25) #5
  br label %569

564:                                              ; preds = %562, %331
  br label %565

565:                                              ; preds = %564, %133, %126
  call void @llvm.lifetime.end.p0(i64 2, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  br label %566

566:                                              ; preds = %565
  %567 = load i16, ptr %18, align 2, !tbaa !13
  %568 = add i16 %567, 1
  store i16 %568, ptr %18, align 2, !tbaa !13
  br label %103, !llvm.loop !60

569:                                              ; preds = %563, %152
  call void @llvm.lifetime.end.p0(i64 2, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  br label %570

570:                                              ; preds = %569, %148
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %13) #5
  br label %595

571:                                              ; preds = %117
  br label %572

572:                                              ; preds = %571
  %573 = load i16, ptr %17, align 2, !tbaa !13
  %574 = add i16 %573, 1
  store i16 %574, ptr %17, align 2, !tbaa !13
  br label %84, !llvm.loop !61

575:                                              ; preds = %91
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  br label %576

576:                                              ; preds = %575
  %577 = load i16, ptr %15, align 2, !tbaa !13
  %578 = add i16 %577, 1
  store i16 %578, ptr %15, align 2, !tbaa !13
  br label %63, !llvm.loop !62

579:                                              ; preds = %70
  br label %580

580:                                              ; preds = %579
  %581 = load i16, ptr %13, align 2, !tbaa !13
  %582 = add i16 %581, 1
  store i16 %582, ptr %13, align 2, !tbaa !13
  br label %54, !llvm.loop !63

583:                                              ; preds = %61
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.68)
          to label %585 unwind label %591

585:                                              ; preds = %583
  %586 = load i64, ptr %12, align 8, !tbaa !11
  %587 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %584, i64 noundef %586)
          to label %588 unwind label %591

588:                                              ; preds = %585
  %589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %587, ptr noundef @.str.17)
          to label %590 unwind label %591

590:                                              ; preds = %588
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @_ZN10voxelFieldIiED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %11) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %11) #5
  ret void

591:                                              ; preds = %588, %585, %583
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %20, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %21, align 4
  br label %595

595:                                              ; preds = %591, %570
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @_ZN10voxelFieldIiED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %11) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %11) #5
  br label %596

596:                                              ; preds = %595
  %597 = load ptr, ptr %20, align 8
  %598 = load i32, ptr %21, align 4
  %599 = insertvalue { ptr, i32 } poison, ptr %597, 0
  %600 = insertvalue { ptr, i32 } %599, i32 %598, 1
  resume { ptr, i32 } %600
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKisEES5_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKisEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #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}
!63 = distinct !{!63, !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.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [11 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 @_Z10medianElemRK11inputDataNER10voxelFieldIiEllRKSt6vectorIP6poreNESaIS7_EE(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) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %6 = alloca %class.voxelField.35, align 8
  %7 = alloca %"class.std::map.83", align 8
  %8 = alloca i64, align 8
  %9 = alloca %"struct.std::pair.88", align 8
  %10 = alloca %"struct.std::pair.92", align 4
  %11 = alloca i32, align 4
  %12 = alloca %"struct.std::pair.88", align 8
  %13 = alloca %"struct.std::pair.92", align 4
  %14 = alloca i32, align 4
  %15 = alloca %"struct.std::pair.88", align 8
  %16 = alloca %"struct.std::pair.92", align 4
  %17 = alloca i32, align 4
  %18 = alloca %"struct.std::pair.88", align 8
  %19 = alloca %"struct.std::pair.92", align 4
  %20 = alloca i32, align 4
  %21 = alloca %"struct.std::pair.88", align 8
  %22 = alloca %"struct.std::pair.92", align 4
  %23 = alloca i32, align 4
  %24 = alloca %"struct.std::pair.88", align 8
  %25 = alloca %"struct.std::pair.92", align 4
  %26 = alloca i32, align 4
  %27 = alloca %"struct.std::_Rb_tree_iterator.90", align 8
  %28 = alloca %"struct.std::_Rb_tree_iterator.90", align 8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %6) #4
  call void @_ZN10voxelFieldIiEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(56) %6, 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
  %.not262 = icmp slt i32 %30, 1
  br i1 %.not262, label %._crit_edge265, label %.preheader.lr.ph

.preheader.lr.ph:                                 ; preds = %5
  %31 = getelementptr inbounds i8, ptr %0, i64 128
  %32 = getelementptr inbounds i8, ptr %0, i64 248
  %.sroa.220.0..sroa_idx = getelementptr inbounds i8, ptr %9, i64 8
  %.sroa.216.0..sroa_idx = getelementptr inbounds i8, ptr %12, i64 8
  %.sroa.212.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 8
  %.sroa.28.0..sroa_idx = getelementptr inbounds i8, ptr %18, i64 8
  %.sroa.24.0..sroa_idx = getelementptr inbounds i8, ptr %21, i64 8
  %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %24, i64 8
  %33 = load i32, ptr %31, align 8, !tbaa !44
  %34 = icmp slt i32 %33, 1
  br i1 %34, label %._crit_edge265, label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge260
  %35 = phi i32 [ %42, %._crit_edge260 ], [ %30, %.preheader.lr.ph ]
  %36 = phi i32 [ %43, %._crit_edge260 ], [ %33, %.preheader.lr.ph ]
  %37 = phi i32 [ %45, %._crit_edge260 ], [ 1, %.preheader.lr.ph ]
  %.0264 = phi i64 [ %.1.lcssa, %._crit_edge260 ], [ 0, %.preheader.lr.ph ]
  %.0129263 = phi i16 [ %44, %._crit_edge260 ], [ 1, %.preheader.lr.ph ]
  %.not163256 = icmp slt i32 %36, 1
  br i1 %.not163256, label %._crit_edge260, label %.lr.ph259

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

._crit_edge265:                                   ; preds = %._crit_edge260, %.preheader.lr.ph, %5
  %.0.lcssa = phi i64 [ 0, %5 ], [ 0, %.preheader.lr.ph ], [ %.1.lcssa, %._crit_edge260 ]
  %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.68)
          to label %270 unwind label %275

._crit_edge260.loopexit:                          ; preds = %._crit_edge254
  %.pre269 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge260

._crit_edge260:                                   ; preds = %._crit_edge260.loopexit, %.preheader
  %42 = phi i32 [ %35, %.preheader ], [ %.pre269, %._crit_edge260.loopexit ]
  %43 = phi i32 [ %36, %.preheader ], [ %57, %._crit_edge260.loopexit ]
  %.1.lcssa = phi i64 [ %.0264, %.preheader ], [ %.2.lcssa, %._crit_edge260.loopexit ]
  %44 = add i16 %.0129263, 1
  %45 = sext i16 %44 to i32
  %.not = icmp slt i32 %42, %45
  br i1 %.not, label %._crit_edge265, label %.preheader, !llvm.loop !45

46:                                               ; preds = %.lr.ph259, %._crit_edge254
  %47 = phi i32 [ 1, %.lr.ph259 ], [ %56, %._crit_edge254 ]
  %.1258 = phi i64 [ %.0264, %.lr.ph259 ], [ %.2.lcssa, %._crit_edge254 ]
  %.0130257 = phi i16 [ 1, %.lr.ph259 ], [ %55, %._crit_edge254 ]
  %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.ph253.preheader, label %._crit_edge254

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

._crit_edge254:                                   ; preds = %._crit_edge248, %46
  %.2.lcssa = phi i64 [ %.1258, %46 ], [ %.3.lcssa, %._crit_edge248 ]
  %55 = add i16 %.0130257, 1
  %56 = sext i16 %55 to i32
  %57 = load i32, ptr %31, align 8, !tbaa !44
  %.not163 = icmp slt i32 %57, %56
  br i1 %.not163, label %._crit_edge260.loopexit, label %46, !llvm.loop !51

.lr.ph253:                                        ; preds = %.lr.ph253.preheader, %._crit_edge248
  %58 = phi i32 [ %67, %._crit_edge248 ], [ %53, %.lr.ph253.preheader ]
  %59 = phi ptr [ %68, %._crit_edge248 ], [ %.pre, %.lr.ph253.preheader ]
  %.2251 = phi i64 [ %.3.lcssa, %._crit_edge248 ], [ %.1258, %.lr.ph253.preheader ]
  %.0131250 = phi i16 [ %69, %._crit_edge248 ], [ 0, %.lr.ph253.preheader ]
  %60 = sext i16 %.0131250 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
  %.0132242 = add i16 %63, 1
  %64 = sext i16 %.0132242 to i32
  %65 = getelementptr i8, ptr %61, i64 16
  %66 = load i32, ptr %65, align 8, !tbaa !52
  %.not164243 = icmp slt i32 %66, %64
  br i1 %.not164243, label %._crit_edge248, label %.lr.ph247

._crit_edge248.loopexit:                          ; preds = %264
  %.pre268 = load i32, ptr %52, align 8, !tbaa !48
  br label %._crit_edge248

._crit_edge248:                                   ; preds = %._crit_edge248.loopexit, %.lr.ph253
  %67 = phi i32 [ %58, %.lr.ph253 ], [ %.pre268, %._crit_edge248.loopexit ]
  %68 = phi ptr [ %59, %.lr.ph253 ], [ %266, %._crit_edge248.loopexit ]
  %.3.lcssa = phi i64 [ %.2251, %.lr.ph253 ], [ %.6, %._crit_edge248.loopexit ]
  %69 = add i16 %.0131250, 1
  %70 = sext i16 %69 to i32
  %71 = icmp sgt i32 %67, %70
  br i1 %71, label %.lr.ph253, label %._crit_edge254, !llvm.loop !53

.lr.ph247:                                        ; preds = %.lr.ph253, %264
  %72 = phi i32 [ %265, %264 ], [ %64, %.lr.ph253 ]
  %.0132245 = phi i16 [ %.0132, %264 ], [ %.0132242, %.lr.ph253 ]
  %.3244 = phi i64 [ %.6, %264 ], [ %.2251, %.lr.ph253 ]
  %73 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef %72, i32 noundef %47, i64 noundef %40)
  %74 = load i32, ptr %73, align 4, !tbaa !54
  %75 = sext i32 %74 to i64
  %.not165 = icmp slt i64 %75, %2
  %.not166 = icmp sgt i64 %75, %3
  %or.cond = or i1 %.not165, %.not166
  br i1 %or.cond, label %264, label %76

76:                                               ; preds = %.lr.ph247
  %77 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %78 = load i32, ptr %77, align 4, !tbaa !54
  %79 = icmp eq i32 %78, %74
  br i1 %79, label %88, label %80

80:                                               ; preds = %76
  %81 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %82 = load i32, ptr %81, align 4, !tbaa !54
  %83 = sext i32 %82 to i64
  %.not167 = icmp slt i64 %83, %2
  br i1 %.not167, label %88, label %84

84:                                               ; preds = %80
  %85 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %86 = load i32, ptr %85, align 4, !tbaa !54
  %87 = sext i32 %86 to i64
  %.not168 = icmp sle i64 %87, %3
  %spec.select = zext i1 %.not168 to i16
  br label %88

88:                                               ; preds = %84, %76, %80
  %.0144 = phi i16 [ 0, %80 ], [ 0, %76 ], [ %spec.select, %84 ]
  %.0137 = phi i16 [ 0, %80 ], [ 1, %76 ], [ 0, %84 ]
  %89 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %90 = load i32, ptr %89, align 4, !tbaa !54
  %91 = icmp eq i32 %90, %74
  br i1 %91, label %92, label %94

92:                                               ; preds = %88
  %93 = add nuw nsw i16 %.0137, 1
  br label %103

94:                                               ; preds = %88
  %95 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %96 = load i32, ptr %95, align 4, !tbaa !54
  %97 = sext i32 %96 to i64
  %.not169 = icmp slt i64 %97, %2
  br i1 %.not169, label %103, label %98

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

103:                                              ; preds = %98, %94, %92
  %.1145 = phi i16 [ %.0144, %92 ], [ %.0144, %94 ], [ %spec.select199, %98 ]
  %.1138 = phi i16 [ %93, %92 ], [ %.0137, %94 ], [ %.0137, %98 ]
  %104 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %105 = load i32, ptr %104, align 4, !tbaa !54
  %106 = icmp eq i32 %105, %74
  br i1 %106, label %107, label %109

107:                                              ; preds = %103
  %108 = add nuw nsw i16 %.1138, 1
  br label %118

109:                                              ; preds = %103
  %110 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %111 = load i32, ptr %110, align 4, !tbaa !54
  %112 = sext i32 %111 to i64
  %.not171 = icmp slt i64 %112, %2
  br i1 %.not171, label %118, label %113

113:                                              ; preds = %109
  %114 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %115 = load i32, ptr %114, align 4, !tbaa !54
  %116 = sext i32 %115 to i64
  %.not172 = icmp sle i64 %116, %3
  %117 = zext i1 %.not172 to i16
  %spec.select200 = add nuw nsw i16 %.1145, %117
  br label %118

118:                                              ; preds = %113, %109, %107
  %.2146 = phi i16 [ %.1145, %107 ], [ %.1145, %109 ], [ %spec.select200, %113 ]
  %.2139 = phi i16 [ %108, %107 ], [ %.1138, %109 ], [ %.1138, %113 ]
  %119 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %120 = load i32, ptr %119, align 4, !tbaa !54
  %121 = icmp eq i32 %120, %74
  br i1 %121, label %122, label %124

122:                                              ; preds = %118
  %123 = add nuw nsw i16 %.2139, 1
  br label %133

124:                                              ; preds = %118
  %125 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %126 = load i32, ptr %125, align 4, !tbaa !54
  %127 = sext i32 %126 to i64
  %.not173 = icmp slt i64 %127, %2
  br i1 %.not173, label %133, label %128

128:                                              ; preds = %124
  %129 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %130 = load i32, ptr %129, align 4, !tbaa !54
  %131 = sext i32 %130 to i64
  %.not174 = icmp sle i64 %131, %3
  %132 = zext i1 %.not174 to i16
  %spec.select201 = add nuw nsw i16 %.2146, %132
  br label %133

133:                                              ; preds = %128, %124, %122
  %.3147 = phi i16 [ %.2146, %122 ], [ %.2146, %124 ], [ %spec.select201, %128 ]
  %.3140 = phi i16 [ %123, %122 ], [ %.2139, %124 ], [ %.2139, %128 ]
  %134 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %135 = load i32, ptr %134, align 4, !tbaa !54
  %136 = icmp eq i32 %135, %74
  br i1 %136, label %137, label %139

137:                                              ; preds = %133
  %138 = add nuw nsw i16 %.3140, 1
  br label %148

139:                                              ; preds = %133
  %140 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %141 = load i32, ptr %140, align 4, !tbaa !54
  %142 = sext i32 %141 to i64
  %.not175 = icmp slt i64 %142, %2
  br i1 %.not175, label %148, label %143

143:                                              ; preds = %139
  %144 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %145 = load i32, ptr %144, align 4, !tbaa !54
  %146 = sext i32 %145 to i64
  %.not176 = icmp sle i64 %146, %3
  %147 = zext i1 %.not176 to i16
  %spec.select202 = add nuw nsw i16 %.3147, %147
  br label %148

148:                                              ; preds = %143, %139, %137
  %.4148 = phi i16 [ %.3147, %137 ], [ %.3147, %139 ], [ %spec.select202, %143 ]
  %.4141 = phi i16 [ %138, %137 ], [ %.3140, %139 ], [ %.3140, %143 ]
  %149 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %150 = load i32, ptr %149, align 4, !tbaa !54
  %151 = icmp eq i32 %150, %74
  br i1 %151, label %152, label %154

152:                                              ; preds = %148
  %153 = add nuw nsw i16 %.4141, 1
  br label %163

154:                                              ; preds = %148
  %155 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %156 = load i32, ptr %155, align 4, !tbaa !54
  %157 = sext i32 %156 to i64
  %.not177 = icmp slt i64 %157, %2
  br i1 %.not177, label %163, label %158

158:                                              ; preds = %154
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %160 = load i32, ptr %159, align 4, !tbaa !54
  %161 = sext i32 %160 to i64
  %.not178 = icmp sle i64 %161, %3
  %162 = zext i1 %.not178 to i16
  %spec.select203 = add nuw nsw i16 %.4148, %162
  br label %163

163:                                              ; preds = %158, %154, %152
  %.5149 = phi i16 [ %.4148, %152 ], [ %.4148, %154 ], [ %spec.select203, %158 ]
  %.5142 = phi i16 [ %153, %152 ], [ %.4141, %154 ], [ %.4141, %158 ]
  %164 = icmp ugt i16 %.5149, %.5142
  br i1 %164, label %165, label %264

165:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) #4
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #4
  %166 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %167 = load i32, ptr %166, align 4, !tbaa !54
  %168 = sext i32 %167 to i64
  store i64 %168, ptr %8, align 8, !tbaa !55
  %.not179 = icmp eq i32 %167, %74
  %.not180 = icmp slt i64 %168, %2
  %or.cond204 = or i1 %.not179, %.not180
  %.not181 = icmp sgt i64 %168, %3
  %or.cond205 = or i1 %.not181, %or.cond204
  br i1 %or.cond205, label %178, label %169

169:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #4
  store i32 0, ptr %11, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %10, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(4) %11)
  %170 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull align 4 dereferenceable(6) %10)
          to label %171 unwind label %176

171:                                              ; preds = %169
  %.fca.0.extract17 = extractvalue { ptr, i8 } %170, 0
  %.fca.1.extract18 = extractvalue { ptr, i8 } %170, 1
  store ptr %.fca.0.extract17, ptr %9, align 8
  store i8 %.fca.1.extract18, ptr %.sroa.220.0..sroa_idx, align 8
  %172 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #4
  %173 = getelementptr inbounds i8, ptr %172, i64 4
  %174 = load i16, ptr %173, align 4, !tbaa !56
  %175 = add i16 %174, 1
  store i16 %175, ptr %173, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #4
  br label %178

176:                                              ; preds = %169
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #4
  br label %263

178:                                              ; preds = %171, %165
  %179 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %180 = load i32, ptr %179, align 4, !tbaa !54
  %181 = sext i32 %180 to i64
  store i64 %181, ptr %8, align 8, !tbaa !55
  %.not182 = icmp eq i32 %180, %74
  %.not183 = icmp slt i64 %181, %2
  %or.cond206 = or i1 %.not182, %.not183
  %.not184 = icmp sgt i64 %181, %3
  %or.cond207 = or i1 %.not184, %or.cond206
  br i1 %or.cond207, label %191, label %182

182:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #4
  store i32 0, ptr %14, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %13, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(4) %14)
  %183 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull align 4 dereferenceable(6) %13)
          to label %184 unwind label %189

184:                                              ; preds = %182
  %.fca.0.extract13 = extractvalue { ptr, i8 } %183, 0
  %.fca.1.extract14 = extractvalue { ptr, i8 } %183, 1
  store ptr %.fca.0.extract13, ptr %12, align 8
  store i8 %.fca.1.extract14, ptr %.sroa.216.0..sroa_idx, align 8
  %185 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #4
  %186 = getelementptr inbounds i8, ptr %185, i64 4
  %187 = load i16, ptr %186, align 4, !tbaa !56
  %188 = add i16 %187, 1
  store i16 %188, ptr %186, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #4
  br label %191

189:                                              ; preds = %182
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #4
  br label %263

191:                                              ; preds = %184, %178
  %192 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %193 = load i32, ptr %192, align 4, !tbaa !54
  %194 = sext i32 %193 to i64
  store i64 %194, ptr %8, align 8, !tbaa !55
  %.not185 = icmp eq i32 %193, %74
  %.not186 = icmp slt i64 %194, %2
  %or.cond208 = or i1 %.not185, %.not186
  %.not187 = icmp sgt i64 %194, %3
  %or.cond209 = or i1 %.not187, %or.cond208
  br i1 %or.cond209, label %204, label %195

195:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #4
  store i32 0, ptr %17, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %16, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(4) %17)
  %196 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull align 4 dereferenceable(6) %16)
          to label %197 unwind label %202

197:                                              ; preds = %195
  %.fca.0.extract9 = extractvalue { ptr, i8 } %196, 0
  %.fca.1.extract10 = extractvalue { ptr, i8 } %196, 1
  store ptr %.fca.0.extract9, ptr %15, align 8
  store i8 %.fca.1.extract10, ptr %.sroa.212.0..sroa_idx, align 8
  %198 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #4
  %199 = getelementptr inbounds i8, ptr %198, i64 4
  %200 = load i16, ptr %199, align 4, !tbaa !56
  %201 = add i16 %200, 1
  store i16 %201, ptr %199, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #4
  br label %204

202:                                              ; preds = %195
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #4
  br label %263

204:                                              ; preds = %197, %191
  %205 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %206 = load i32, ptr %205, align 4, !tbaa !54
  %207 = sext i32 %206 to i64
  store i64 %207, ptr %8, align 8, !tbaa !55
  %.not188 = icmp eq i32 %206, %74
  %.not189 = icmp slt i64 %207, %2
  %or.cond210 = or i1 %.not188, %.not189
  %.not190 = icmp sgt i64 %207, %3
  %or.cond211 = or i1 %.not190, %or.cond210
  br i1 %or.cond211, label %217, label %208

208:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #4
  store i32 0, ptr %20, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %19, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(4) %20)
  %209 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull align 4 dereferenceable(6) %19)
          to label %210 unwind label %215

210:                                              ; preds = %208
  %.fca.0.extract5 = extractvalue { ptr, i8 } %209, 0
  %.fca.1.extract6 = extractvalue { ptr, i8 } %209, 1
  store ptr %.fca.0.extract5, ptr %18, align 8
  store i8 %.fca.1.extract6, ptr %.sroa.28.0..sroa_idx, align 8
  %211 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #4
  %212 = getelementptr inbounds i8, ptr %211, i64 4
  %213 = load i16, ptr %212, align 4, !tbaa !56
  %214 = add i16 %213, 1
  store i16 %214, ptr %212, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #4
  br label %217

215:                                              ; preds = %208
  %216 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #4
  br label %263

217:                                              ; preds = %210, %204
  %218 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef -1, ptr noundef nonnull %73)
  %219 = load i32, ptr %218, align 4, !tbaa !54
  %220 = sext i32 %219 to i64
  store i64 %220, ptr %8, align 8, !tbaa !55
  %.not191 = icmp eq i32 %219, %74
  %.not192 = icmp slt i64 %220, %2
  %or.cond212 = or i1 %.not191, %.not192
  %.not193 = icmp sgt i64 %220, %3
  %or.cond213 = or i1 %.not193, %or.cond212
  br i1 %or.cond213, label %230, label %221

221:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #4
  store i32 0, ptr %23, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %22, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(4) %23)
  %222 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull align 4 dereferenceable(6) %22)
          to label %223 unwind label %228

223:                                              ; preds = %221
  %.fca.0.extract1 = extractvalue { ptr, i8 } %222, 0
  %.fca.1.extract2 = extractvalue { ptr, i8 } %222, 1
  store ptr %.fca.0.extract1, ptr %21, align 8
  store i8 %.fca.1.extract2, ptr %.sroa.24.0..sroa_idx, align 8
  %224 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #4
  %225 = getelementptr inbounds i8, ptr %224, i64 4
  %226 = load i16, ptr %225, align 4, !tbaa !56
  %227 = add i16 %226, 1
  store i16 %227, ptr %225, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #4
  br label %230

228:                                              ; preds = %221
  %229 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #4
  br label %263

230:                                              ; preds = %223, %217
  %231 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %6, i32 noundef 1, ptr noundef nonnull %73)
  %232 = load i32, ptr %231, align 4, !tbaa !54
  %233 = sext i32 %232 to i64
  store i64 %233, ptr %8, align 8, !tbaa !55
  %.not194 = icmp eq i32 %232, %74
  %.not195 = icmp slt i64 %233, %2
  %or.cond214 = or i1 %.not194, %.not195
  %.not196 = icmp sgt i64 %233, %3
  %or.cond215 = or i1 %.not196, %or.cond214
  br i1 %or.cond215, label %243, label %234

234:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #4
  store i32 0, ptr %26, align 4, !tbaa !54
  call void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %25, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(4) %26)
  %235 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull align 4 dereferenceable(6) %25)
          to label %236 unwind label %241

236:                                              ; preds = %234
  %.fca.0.extract = extractvalue { ptr, i8 } %235, 0
  %.fca.1.extract = extractvalue { ptr, i8 } %235, 1
  store ptr %.fca.0.extract, ptr %24, align 8
  store i8 %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  %237 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #4
  %238 = getelementptr inbounds i8, ptr %237, i64 4
  %239 = load i16, ptr %238, align 4, !tbaa !56
  %240 = add i16 %239, 1
  store i16 %240, ptr %238, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #4
  br label %243

241:                                              ; preds = %234
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #4
  br label %263

243:                                              ; preds = %236, %230
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #4
  %244 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %7) #4
  store ptr %244, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #4
  %245 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %7) #4
  store ptr %245, ptr %28, align 8
  %246 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKisEES5_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  br i1 %246, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %259, %243
  %.4.lcssa = phi i64 [ %.3244, %243 ], [ %.5, %259 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #4
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #4
  br label %264

.lr.ph:                                           ; preds = %243, %259
  %.4241 = phi i64 [ %.5, %259 ], [ %.3244, %243 ]
  %.6143240 = phi i16 [ %.7, %259 ], [ %.5142, %243 ]
  %247 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #4
  %248 = getelementptr inbounds i8, ptr %247, i64 4
  %249 = load i16, ptr %248, align 4, !tbaa !56
  %250 = icmp sgt i16 %249, %.6143240
  br i1 %250, label %251, label %259

251:                                              ; preds = %.lr.ph
  %252 = add nsw i64 %.4241, 1
  %253 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #4
  %254 = load i32, ptr %253, align 4, !tbaa !59
  %255 = 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 %254, ptr %255, align 4, !tbaa !54
  %256 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #4
  %257 = getelementptr inbounds i8, ptr %256, i64 4
  %258 = load i16, ptr %257, align 4, !tbaa !56
  br label %259

259:                                              ; preds = %.lr.ph, %251
  %.7 = phi i16 [ %258, %251 ], [ %.6143240, %.lr.ph ]
  %.5 = phi i64 [ %252, %251 ], [ %.4241, %.lr.ph ]
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKisEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #4
  %261 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %7) #4
  store ptr %261, ptr %28, align 8
  %262 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKisEES5_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  br i1 %262, label %.lr.ph, label %._crit_edge, !llvm.loop !60

263:                                              ; preds = %241, %228, %215, %202, %189, %176
  %.pn = phi { ptr, i32 } [ %242, %241 ], [ %229, %228 ], [ %216, %215 ], [ %203, %202 ], [ %190, %189 ], [ %177, %176 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #4
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #4
  br label %277

264:                                              ; preds = %163, %._crit_edge, %.lr.ph247
  %.6 = phi i64 [ %.4.lcssa, %._crit_edge ], [ %.3244, %163 ], [ %.3244, %.lr.ph247 ]
  %.0132 = add i16 %.0132245, 1
  %265 = sext i16 %.0132 to i32
  %266 = load ptr, ptr %51, align 8, !tbaa !50
  %267 = getelementptr %class.segment, ptr %266, i64 %60
  %268 = getelementptr i8, ptr %267, i64 16
  %269 = load i32, ptr %268, align 8, !tbaa !52
  %.not164 = icmp slt i32 %269, %265
  br i1 %.not164, label %._crit_edge248.loopexit, label %.lr.ph247, !llvm.loop !61

270:                                              ; preds = %._crit_edge265
  %271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %41, i64 noundef %.0.lcssa)
          to label %272 unwind label %275

272:                                              ; preds = %270
  %273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef nonnull @.str.17)
          to label %274 unwind label %275

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

275:                                              ; preds = %272, %270, %._crit_edge265
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %277

277:                                              ; preds = %275, %263
  %.pn.pn = phi { ptr, i32 } [ %.pn, %263 ], [ %276, %275 ]
  call void @_ZN10voxelFieldIiED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %6) #4
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #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: 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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKisEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_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}
!61 = distinct !{!61, !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