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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

137:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  %138 = load ptr, ptr %7, align 8, !tbaa !5
  %139 = getelementptr inbounds %class.inputDataNE, ptr %138, i32 0, i32 10
  %140 = load i16, ptr %15, align 2, !tbaa !13
  %141 = sext i16 %140 to i32
  %142 = sub nsw i32 %141, 1
  %143 = sext i32 %142 to i64
  %144 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef %143) #5
  %145 = load i16, ptr %17, align 2, !tbaa !13
  %146 = sext i16 %145 to i32
  %147 = sub nsw i32 %146, 1
  %148 = sext i32 %147 to i64
  %149 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %144, i64 noundef %148) #5
  %150 = load i16, ptr %20, align 2, !tbaa !13
  %151 = sext i16 %150 to i32
  %152 = sub nsw i32 %151, 1
  %153 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %149, i32 noundef %152)
          to label %154 unwind label %201

154:                                              ; preds = %137
  %155 = getelementptr inbounds %class.voxel, ptr %153, i32 0, i32 5
  %156 = load float, ptr %155, align 8, !tbaa !55
  store float %156, ptr %25, align 4, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 2, ptr %26) #5
  store i16 0, ptr %26, align 2, !tbaa !13
  %157 = load i64, ptr %9, align 8, !tbaa !9
  %158 = load ptr, ptr %21, align 8, !tbaa !5
  %159 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %158)
          to label %160 unwind label %205

160:                                              ; preds = %154
  %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 %209

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

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 %209

172:                                              ; preds = %168
  %173 = load ptr, ptr %7, align 8, !tbaa !5
  %174 = getelementptr inbounds %class.inputDataNE, ptr %173, i32 0, i32 10
  %175 = load i16, ptr %15, align 2, !tbaa !13
  %176 = sext i16 %175 to i32
  %177 = sub nsw i32 %176, 1
  %178 = sext i32 %177 to i64
  %179 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %174, i64 noundef %178) #5
  %180 = load i16, ptr %17, align 2, !tbaa !13
  %181 = sext i16 %180 to i32
  %182 = sub nsw i32 %181, 1
  %183 = sext i32 %182 to i64
  %184 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %183) #5
  %185 = load i16, ptr %20, align 2, !tbaa !13
  %186 = sext i16 %185 to i32
  %187 = sub nsw i32 %186, 2
  %188 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %184, i32 noundef %187)
          to label %189 unwind label %205

189:                                              ; preds = %172
  %190 = getelementptr inbounds %class.voxel, ptr %188, i32 0, i32 5
  %191 = load float, ptr %190, align 8, !tbaa !55
  %192 = load float, ptr %25, align 4, !tbaa !58
  %193 = fcmp oge float %191, %192
  br i1 %193, label %194, label %209

194:                                              ; preds = %189
  %195 = load i16, ptr %26, align 2, !tbaa !13
  %196 = add i16 %195, 1
  store i16 %196, ptr %26, align 2, !tbaa !13
  br label %209

197:                                              ; preds = %122
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %22, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %23, align 4
  br label %769

201:                                              ; preds = %137
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %22, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %23, align 4
  br label %764

205:                                              ; preds = %386, %378, %370, %345, %337, %329, %306, %298, %290, %265, %257, %249, %225, %217, %209, %172, %164, %154
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %22, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %23, align 4
  br label %763

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

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

217:                                              ; preds = %213
  %218 = load i64, ptr %10, align 8, !tbaa !9
  %219 = load ptr, ptr %21, align 8, !tbaa !5
  %220 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %219)
          to label %221 unwind label %205

221:                                              ; preds = %217
  %222 = load i32, ptr %220, align 4, !tbaa !54
  %223 = sext i32 %222 to i64
  %224 = icmp sge i64 %218, %223
  br i1 %224, label %225, label %249

225:                                              ; preds = %221
  %226 = load ptr, ptr %7, align 8, !tbaa !5
  %227 = getelementptr inbounds %class.inputDataNE, ptr %226, i32 0, i32 10
  %228 = load i16, ptr %15, align 2, !tbaa !13
  %229 = sext i16 %228 to i32
  %230 = sub nsw i32 %229, 1
  %231 = sext i32 %230 to i64
  %232 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %227, i64 noundef %231) #5
  %233 = load i16, ptr %17, align 2, !tbaa !13
  %234 = sext i16 %233 to i32
  %235 = sub nsw i32 %234, 1
  %236 = sext i32 %235 to i64
  %237 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %236) #5
  %238 = load i16, ptr %20, align 2, !tbaa !13
  %239 = sext i16 %238 to i32
  %240 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %237, i32 noundef %239)
          to label %241 unwind label %205

241:                                              ; preds = %225
  %242 = getelementptr inbounds %class.voxel, ptr %240, i32 0, i32 5
  %243 = load float, ptr %242, align 8, !tbaa !55
  %244 = load float, ptr %25, align 4, !tbaa !58
  %245 = fcmp oge float %243, %244
  br i1 %245, label %246, label %249

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

249:                                              ; preds = %246, %241, %221, %213
  %250 = load i64, ptr %9, align 8, !tbaa !9
  %251 = load ptr, ptr %21, align 8, !tbaa !5
  %252 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %251)
          to label %253 unwind label %205

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 %290

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

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 %290

265:                                              ; preds = %261
  %266 = load ptr, ptr %7, align 8, !tbaa !5
  %267 = getelementptr inbounds %class.inputDataNE, ptr %266, i32 0, i32 10
  %268 = load i16, ptr %15, align 2, !tbaa !13
  %269 = sext i16 %268 to i32
  %270 = sub nsw i32 %269, 1
  %271 = sext i32 %270 to i64
  %272 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %267, i64 noundef %271) #5
  %273 = load i16, ptr %17, align 2, !tbaa !13
  %274 = sext i16 %273 to i32
  %275 = sub nsw i32 %274, 2
  %276 = sext i32 %275 to i64
  %277 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %272, i64 noundef %276) #5
  %278 = load i16, ptr %20, align 2, !tbaa !13
  %279 = sext i16 %278 to i32
  %280 = sub nsw i32 %279, 1
  %281 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %277, i32 noundef %280)
          to label %282 unwind label %205

282:                                              ; preds = %265
  %283 = getelementptr inbounds %class.voxel, ptr %281, i32 0, i32 5
  %284 = load float, ptr %283, align 8, !tbaa !55
  %285 = load float, ptr %25, align 4, !tbaa !58
  %286 = fcmp oge float %284, %285
  br i1 %286, label %287, label %290

287:                                              ; preds = %282
  %288 = load i16, ptr %26, align 2, !tbaa !13
  %289 = add i16 %288, 1
  store i16 %289, ptr %26, align 2, !tbaa !13
  br label %290

290:                                              ; preds = %287, %282, %261, %253
  %291 = load i64, ptr %9, align 8, !tbaa !9
  %292 = load ptr, ptr %21, align 8, !tbaa !5
  %293 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %292)
          to label %294 unwind label %205

294:                                              ; preds = %290
  %295 = load i32, ptr %293, align 4, !tbaa !54
  %296 = sext i32 %295 to i64
  %297 = icmp sle i64 %291, %296
  br i1 %297, label %298, label %329

298:                                              ; preds = %294
  %299 = load i64, ptr %10, align 8, !tbaa !9
  %300 = load ptr, ptr %21, align 8, !tbaa !5
  %301 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %300)
          to label %302 unwind label %205

302:                                              ; preds = %298
  %303 = load i32, ptr %301, align 4, !tbaa !54
  %304 = sext i32 %303 to i64
  %305 = icmp sge i64 %299, %304
  br i1 %305, label %306, label %329

306:                                              ; preds = %302
  %307 = load ptr, ptr %7, align 8, !tbaa !5
  %308 = getelementptr inbounds %class.inputDataNE, ptr %307, i32 0, i32 10
  %309 = load i16, ptr %15, align 2, !tbaa !13
  %310 = sext i16 %309 to i32
  %311 = sub nsw i32 %310, 1
  %312 = sext i32 %311 to i64
  %313 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %308, i64 noundef %312) #5
  %314 = load i16, ptr %17, align 2, !tbaa !13
  %315 = sext i16 %314 to i64
  %316 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %313, i64 noundef %315) #5
  %317 = load i16, ptr %20, align 2, !tbaa !13
  %318 = sext i16 %317 to i32
  %319 = sub nsw i32 %318, 1
  %320 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %316, i32 noundef %319)
          to label %321 unwind label %205

321:                                              ; preds = %306
  %322 = getelementptr inbounds %class.voxel, ptr %320, i32 0, i32 5
  %323 = load float, ptr %322, align 8, !tbaa !55
  %324 = load float, ptr %25, align 4, !tbaa !58
  %325 = fcmp oge float %323, %324
  br i1 %325, label %326, label %329

326:                                              ; preds = %321
  %327 = load i16, ptr %26, align 2, !tbaa !13
  %328 = add i16 %327, 1
  store i16 %328, ptr %26, align 2, !tbaa !13
  br label %329

329:                                              ; preds = %326, %321, %302, %294
  %330 = load i64, ptr %9, align 8, !tbaa !9
  %331 = load ptr, ptr %21, align 8, !tbaa !5
  %332 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %331)
          to label %333 unwind label %205

333:                                              ; preds = %329
  %334 = load i32, ptr %332, align 4, !tbaa !54
  %335 = sext i32 %334 to i64
  %336 = icmp sle i64 %330, %335
  br i1 %336, label %337, label %370

337:                                              ; preds = %333
  %338 = load i64, ptr %10, align 8, !tbaa !9
  %339 = load ptr, ptr %21, align 8, !tbaa !5
  %340 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %339)
          to label %341 unwind label %205

341:                                              ; preds = %337
  %342 = load i32, ptr %340, align 4, !tbaa !54
  %343 = sext i32 %342 to i64
  %344 = icmp sge i64 %338, %343
  br i1 %344, label %345, label %370

345:                                              ; preds = %341
  %346 = load ptr, ptr %7, align 8, !tbaa !5
  %347 = getelementptr inbounds %class.inputDataNE, ptr %346, i32 0, i32 10
  %348 = load i16, ptr %15, align 2, !tbaa !13
  %349 = sext i16 %348 to i32
  %350 = sub nsw i32 %349, 2
  %351 = sext i32 %350 to i64
  %352 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %347, i64 noundef %351) #5
  %353 = load i16, ptr %17, align 2, !tbaa !13
  %354 = sext i16 %353 to i32
  %355 = sub nsw i32 %354, 1
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %352, i64 noundef %356) #5
  %358 = load i16, ptr %20, align 2, !tbaa !13
  %359 = sext i16 %358 to i32
  %360 = sub nsw i32 %359, 1
  %361 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %357, i32 noundef %360)
          to label %362 unwind label %205

362:                                              ; preds = %345
  %363 = getelementptr inbounds %class.voxel, ptr %361, i32 0, i32 5
  %364 = load float, ptr %363, align 8, !tbaa !55
  %365 = load float, ptr %25, align 4, !tbaa !58
  %366 = fcmp oge float %364, %365
  br i1 %366, label %367, label %370

367:                                              ; preds = %362
  %368 = load i16, ptr %26, align 2, !tbaa !13
  %369 = add i16 %368, 1
  store i16 %369, ptr %26, align 2, !tbaa !13
  br label %370

370:                                              ; preds = %367, %362, %341, %333
  %371 = load i64, ptr %9, align 8, !tbaa !9
  %372 = load ptr, ptr %21, align 8, !tbaa !5
  %373 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %372)
          to label %374 unwind label %205

374:                                              ; preds = %370
  %375 = load i32, ptr %373, align 4, !tbaa !54
  %376 = sext i32 %375 to i64
  %377 = icmp sle i64 %371, %376
  br i1 %377, label %378, label %409

378:                                              ; preds = %374
  %379 = load i64, ptr %10, align 8, !tbaa !9
  %380 = load ptr, ptr %21, align 8, !tbaa !5
  %381 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %380)
          to label %382 unwind label %205

382:                                              ; preds = %378
  %383 = load i32, ptr %381, align 4, !tbaa !54
  %384 = sext i32 %383 to i64
  %385 = icmp sge i64 %379, %384
  br i1 %385, label %386, label %409

386:                                              ; preds = %382
  %387 = load ptr, ptr %7, align 8, !tbaa !5
  %388 = getelementptr inbounds %class.inputDataNE, ptr %387, i32 0, i32 10
  %389 = load i16, ptr %15, align 2, !tbaa !13
  %390 = sext i16 %389 to i64
  %391 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %388, i64 noundef %390) #5
  %392 = load i16, ptr %17, align 2, !tbaa !13
  %393 = sext i16 %392 to i32
  %394 = sub nsw i32 %393, 1
  %395 = sext i32 %394 to i64
  %396 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %391, i64 noundef %395) #5
  %397 = load i16, ptr %20, align 2, !tbaa !13
  %398 = sext i16 %397 to i32
  %399 = sub nsw i32 %398, 1
  %400 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %396, i32 noundef %399)
          to label %401 unwind label %205

401:                                              ; preds = %386
  %402 = getelementptr inbounds %class.voxel, ptr %400, i32 0, i32 5
  %403 = load float, ptr %402, align 8, !tbaa !55
  %404 = load float, ptr %25, align 4, !tbaa !58
  %405 = fcmp oge float %403, %404
  br i1 %405, label %406, label %409

406:                                              ; preds = %401
  %407 = load i16, ptr %26, align 2, !tbaa !13
  %408 = add i16 %407, 1
  store i16 %408, ptr %26, align 2, !tbaa !13
  br label %409

409:                                              ; preds = %406, %401, %382, %374
  %410 = load i16, ptr %26, align 2, !tbaa !13
  %411 = sext i16 %410 to i32
  %412 = icmp sge i32 %411, 2
  br i1 %412, label %413, label %762

413:                                              ; preds = %409
  call void @llvm.lifetime.start.p0(i64 48, ptr %27) #5
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  %414 = load ptr, ptr %21, align 8, !tbaa !5
  %415 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %414)
          to label %416 unwind label %461

416:                                              ; preds = %413
  %417 = load i32, ptr %415, align 4, !tbaa !54
  %418 = sext i32 %417 to i64
  store i64 %418, ptr %28, align 8, !tbaa !9
  %419 = load i64, ptr %28, align 8, !tbaa !9
  %420 = load i64, ptr %24, align 8, !tbaa !9
  %421 = icmp ne i64 %419, %420
  br i1 %421, label %422, label %469

422:                                              ; preds = %416
  %423 = load i64, ptr %9, align 8, !tbaa !9
  %424 = load i64, ptr %28, align 8, !tbaa !9
  %425 = icmp sle i64 %423, %424
  br i1 %425, label %426, label %469

426:                                              ; preds = %422
  %427 = load i64, ptr %10, align 8, !tbaa !9
  %428 = load i64, ptr %28, align 8, !tbaa !9
  %429 = icmp sge i64 %427, %428
  br i1 %429, label %430, label %469

430:                                              ; preds = %426
  %431 = load ptr, ptr %7, align 8, !tbaa !5
  %432 = getelementptr inbounds %class.inputDataNE, ptr %431, i32 0, i32 10
  %433 = load i16, ptr %15, align 2, !tbaa !13
  %434 = sext i16 %433 to i32
  %435 = sub nsw i32 %434, 1
  %436 = sext i32 %435 to i64
  %437 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %432, i64 noundef %436) #5
  %438 = load i16, ptr %17, align 2, !tbaa !13
  %439 = sext i16 %438 to i32
  %440 = sub nsw i32 %439, 1
  %441 = sext i32 %440 to i64
  %442 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %437, i64 noundef %441) #5
  %443 = load i16, ptr %20, align 2, !tbaa !13
  %444 = sext i16 %443 to i32
  %445 = sub nsw i32 %444, 2
  %446 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %442, i32 noundef %445)
          to label %447 unwind label %461

447:                                              ; preds = %430
  %448 = getelementptr inbounds %class.voxel, ptr %446, i32 0, i32 5
  %449 = load float, ptr %448, align 8, !tbaa !55
  %450 = load float, ptr %25, align 4, !tbaa !58
  %451 = fcmp oge float %449, %450
  br i1 %451, label %452, label %469

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

453:                                              ; preds = %452
  %454 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull align 4 dereferenceable(6) %30)
          to label %455 unwind label %465

455:                                              ; preds = %453
  store { ptr, i8 } %454, ptr %32, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %32, i64 9, i1 false)
  %456 = getelementptr inbounds %"struct.std::pair.88", ptr %29, i32 0, i32 0
  %457 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %456) #5
  %458 = getelementptr inbounds %"struct.std::pair.95", ptr %457, i32 0, i32 1
  %459 = load i16, ptr %458, align 4, !tbaa !59
  %460 = add i16 %459, 1
  store i16 %460, ptr %458, align 4, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #5
  br label %469

461:                                              ; preds = %691, %674, %639, %622, %589, %572, %537, %520, %486, %469, %430, %413
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %22, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %23, align 4
  br label %761

465:                                              ; preds = %453, %452
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %22, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #5
  br label %761

469:                                              ; preds = %455, %447, %426, %422, %416
  %470 = load ptr, ptr %21, align 8, !tbaa !5
  %471 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %470)
          to label %472 unwind label %461

472:                                              ; preds = %469
  %473 = load i32, ptr %471, align 4, !tbaa !54
  %474 = sext i32 %473 to i64
  store i64 %474, ptr %28, align 8, !tbaa !9
  %475 = load i64, ptr %28, align 8, !tbaa !9
  %476 = load i64, ptr %24, align 8, !tbaa !9
  %477 = icmp ne i64 %475, %476
  br i1 %477, label %478, label %520

478:                                              ; preds = %472
  %479 = load i64, ptr %9, align 8, !tbaa !9
  %480 = load i64, ptr %28, align 8, !tbaa !9
  %481 = icmp sle i64 %479, %480
  br i1 %481, label %482, label %520

482:                                              ; preds = %478
  %483 = load i64, ptr %10, align 8, !tbaa !9
  %484 = load i64, ptr %28, align 8, !tbaa !9
  %485 = icmp sge i64 %483, %484
  br i1 %485, label %486, label %520

486:                                              ; preds = %482
  %487 = load ptr, ptr %7, align 8, !tbaa !5
  %488 = getelementptr inbounds %class.inputDataNE, ptr %487, i32 0, i32 10
  %489 = load i16, ptr %15, align 2, !tbaa !13
  %490 = sext i16 %489 to i32
  %491 = sub nsw i32 %490, 1
  %492 = sext i32 %491 to i64
  %493 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %488, i64 noundef %492) #5
  %494 = load i16, ptr %17, align 2, !tbaa !13
  %495 = sext i16 %494 to i32
  %496 = sub nsw i32 %495, 1
  %497 = sext i32 %496 to i64
  %498 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %493, i64 noundef %497) #5
  %499 = load i16, ptr %20, align 2, !tbaa !13
  %500 = sext i16 %499 to i32
  %501 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %498, i32 noundef %500)
          to label %502 unwind label %461

502:                                              ; preds = %486
  %503 = getelementptr inbounds %class.voxel, ptr %501, i32 0, i32 5
  %504 = load float, ptr %503, align 8, !tbaa !55
  %505 = load float, ptr %25, align 4, !tbaa !58
  %506 = fcmp oge float %504, %505
  br i1 %506, label %507, label %520

507:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  store i32 0, ptr %35, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %34, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %508 unwind label %516

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

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

516:                                              ; preds = %508, %507
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %22, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #5
  br label %761

520:                                              ; preds = %510, %502, %482, %478, %472
  %521 = load ptr, ptr %21, align 8, !tbaa !5
  %522 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %521)
          to label %523 unwind label %461

523:                                              ; preds = %520
  %524 = load i32, ptr %522, align 4, !tbaa !54
  %525 = sext i32 %524 to i64
  store i64 %525, ptr %28, align 8, !tbaa !9
  %526 = load i64, ptr %28, align 8, !tbaa !9
  %527 = load i64, ptr %24, align 8, !tbaa !9
  %528 = icmp ne i64 %526, %527
  br i1 %528, label %529, label %572

529:                                              ; preds = %523
  %530 = load i64, ptr %9, align 8, !tbaa !9
  %531 = load i64, ptr %28, align 8, !tbaa !9
  %532 = icmp sle i64 %530, %531
  br i1 %532, label %533, label %572

533:                                              ; preds = %529
  %534 = load i64, ptr %10, align 8, !tbaa !9
  %535 = load i64, ptr %28, align 8, !tbaa !9
  %536 = icmp sge i64 %534, %535
  br i1 %536, label %537, label %572

537:                                              ; preds = %533
  %538 = load ptr, ptr %7, align 8, !tbaa !5
  %539 = getelementptr inbounds %class.inputDataNE, ptr %538, i32 0, i32 10
  %540 = load i16, ptr %15, align 2, !tbaa !13
  %541 = sext i16 %540 to i32
  %542 = sub nsw i32 %541, 1
  %543 = sext i32 %542 to i64
  %544 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %539, i64 noundef %543) #5
  %545 = load i16, ptr %17, align 2, !tbaa !13
  %546 = sext i16 %545 to i32
  %547 = sub nsw i32 %546, 2
  %548 = sext i32 %547 to i64
  %549 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %544, i64 noundef %548) #5
  %550 = load i16, ptr %20, align 2, !tbaa !13
  %551 = sext i16 %550 to i32
  %552 = sub nsw i32 %551, 1
  %553 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %549, i32 noundef %552)
          to label %554 unwind label %461

554:                                              ; preds = %537
  %555 = getelementptr inbounds %class.voxel, ptr %553, i32 0, i32 5
  %556 = load float, ptr %555, align 8, !tbaa !55
  %557 = load float, ptr %25, align 4, !tbaa !58
  %558 = fcmp oge float %556, %557
  br i1 %558, label %559, label %572

559:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  store i32 0, ptr %39, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %38, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %560 unwind label %568

560:                                              ; preds = %559
  %561 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull align 4 dereferenceable(6) %38)
          to label %562 unwind label %568

562:                                              ; preds = %560
  store { ptr, i8 } %561, ptr %40, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %37, ptr align 8 %40, i64 9, i1 false)
  %563 = getelementptr inbounds %"struct.std::pair.88", ptr %37, i32 0, i32 0
  %564 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %563) #5
  %565 = getelementptr inbounds %"struct.std::pair.95", ptr %564, i32 0, i32 1
  %566 = load i16, ptr %565, align 4, !tbaa !59
  %567 = add i16 %566, 1
  store i16 %567, ptr %565, align 4, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #5
  br label %572

568:                                              ; preds = %560, %559
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %22, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #5
  br label %761

572:                                              ; preds = %562, %554, %533, %529, %523
  %573 = load ptr, ptr %21, align 8, !tbaa !5
  %574 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %573)
          to label %575 unwind label %461

575:                                              ; preds = %572
  %576 = load i32, ptr %574, align 4, !tbaa !54
  %577 = sext i32 %576 to i64
  store i64 %577, ptr %28, align 8, !tbaa !9
  %578 = load i64, ptr %28, align 8, !tbaa !9
  %579 = load i64, ptr %24, align 8, !tbaa !9
  %580 = icmp ne i64 %578, %579
  br i1 %580, label %581, label %622

581:                                              ; preds = %575
  %582 = load i64, ptr %9, align 8, !tbaa !9
  %583 = load i64, ptr %28, align 8, !tbaa !9
  %584 = icmp sle i64 %582, %583
  br i1 %584, label %585, label %622

585:                                              ; preds = %581
  %586 = load i64, ptr %10, align 8, !tbaa !9
  %587 = load i64, ptr %28, align 8, !tbaa !9
  %588 = icmp sge i64 %586, %587
  br i1 %588, label %589, label %622

589:                                              ; preds = %585
  %590 = load ptr, ptr %7, align 8, !tbaa !5
  %591 = getelementptr inbounds %class.inputDataNE, ptr %590, i32 0, i32 10
  %592 = load i16, ptr %15, align 2, !tbaa !13
  %593 = sext i16 %592 to i32
  %594 = sub nsw i32 %593, 1
  %595 = sext i32 %594 to i64
  %596 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %591, i64 noundef %595) #5
  %597 = load i16, ptr %17, align 2, !tbaa !13
  %598 = sext i16 %597 to i64
  %599 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %596, i64 noundef %598) #5
  %600 = load i16, ptr %20, align 2, !tbaa !13
  %601 = sext i16 %600 to i32
  %602 = sub nsw i32 %601, 1
  %603 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %599, i32 noundef %602)
          to label %604 unwind label %461

604:                                              ; preds = %589
  %605 = getelementptr inbounds %class.voxel, ptr %603, i32 0, i32 5
  %606 = load float, ptr %605, align 8, !tbaa !55
  %607 = load float, ptr %25, align 4, !tbaa !58
  %608 = fcmp oge float %606, %607
  br i1 %608, label %609, label %622

609:                                              ; preds = %604
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  store i32 0, ptr %43, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %42, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %610 unwind label %618

610:                                              ; preds = %609
  %611 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull align 4 dereferenceable(6) %42)
          to label %612 unwind label %618

612:                                              ; preds = %610
  store { ptr, i8 } %611, ptr %44, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %41, ptr align 8 %44, i64 9, i1 false)
  %613 = getelementptr inbounds %"struct.std::pair.88", ptr %41, i32 0, i32 0
  %614 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %613) #5
  %615 = getelementptr inbounds %"struct.std::pair.95", ptr %614, i32 0, i32 1
  %616 = load i16, ptr %615, align 4, !tbaa !59
  %617 = add i16 %616, 1
  store i16 %617, ptr %615, align 4, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #5
  br label %622

618:                                              ; preds = %610, %609
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %22, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #5
  br label %761

622:                                              ; preds = %612, %604, %585, %581, %575
  %623 = load ptr, ptr %21, align 8, !tbaa !5
  %624 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %623)
          to label %625 unwind label %461

625:                                              ; preds = %622
  %626 = load i32, ptr %624, align 4, !tbaa !54
  %627 = sext i32 %626 to i64
  store i64 %627, ptr %28, align 8, !tbaa !9
  %628 = load i64, ptr %28, align 8, !tbaa !9
  %629 = load i64, ptr %24, align 8, !tbaa !9
  %630 = icmp ne i64 %628, %629
  br i1 %630, label %631, label %674

631:                                              ; preds = %625
  %632 = load i64, ptr %9, align 8, !tbaa !9
  %633 = load i64, ptr %28, align 8, !tbaa !9
  %634 = icmp sle i64 %632, %633
  br i1 %634, label %635, label %674

635:                                              ; preds = %631
  %636 = load i64, ptr %10, align 8, !tbaa !9
  %637 = load i64, ptr %28, align 8, !tbaa !9
  %638 = icmp sge i64 %636, %637
  br i1 %638, label %639, label %674

639:                                              ; preds = %635
  %640 = load ptr, ptr %7, align 8, !tbaa !5
  %641 = getelementptr inbounds %class.inputDataNE, ptr %640, i32 0, i32 10
  %642 = load i16, ptr %15, align 2, !tbaa !13
  %643 = sext i16 %642 to i32
  %644 = sub nsw i32 %643, 2
  %645 = sext i32 %644 to i64
  %646 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %641, i64 noundef %645) #5
  %647 = load i16, ptr %17, align 2, !tbaa !13
  %648 = sext i16 %647 to i32
  %649 = sub nsw i32 %648, 1
  %650 = sext i32 %649 to i64
  %651 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %646, i64 noundef %650) #5
  %652 = load i16, ptr %20, align 2, !tbaa !13
  %653 = sext i16 %652 to i32
  %654 = sub nsw i32 %653, 1
  %655 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %651, i32 noundef %654)
          to label %656 unwind label %461

656:                                              ; preds = %639
  %657 = getelementptr inbounds %class.voxel, ptr %655, i32 0, i32 5
  %658 = load float, ptr %657, align 8, !tbaa !55
  %659 = load float, ptr %25, align 4, !tbaa !58
  %660 = fcmp oge float %658, %659
  br i1 %660, label %661, label %674

661:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #5
  store i32 0, ptr %47, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %46, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(4) %47)
          to label %662 unwind label %670

662:                                              ; preds = %661
  %663 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull align 4 dereferenceable(6) %46)
          to label %664 unwind label %670

664:                                              ; preds = %662
  store { ptr, i8 } %663, ptr %48, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %45, ptr align 8 %48, i64 9, i1 false)
  %665 = getelementptr inbounds %"struct.std::pair.88", ptr %45, i32 0, i32 0
  %666 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %665) #5
  %667 = getelementptr inbounds %"struct.std::pair.95", ptr %666, i32 0, i32 1
  %668 = load i16, ptr %667, align 4, !tbaa !59
  %669 = add i16 %668, 1
  store i16 %669, ptr %667, align 4, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #5
  br label %674

670:                                              ; preds = %662, %661
  %671 = landingpad { ptr, i32 }
          cleanup
  %672 = extractvalue { ptr, i32 } %671, 0
  store ptr %672, ptr %22, align 8
  %673 = extractvalue { ptr, i32 } %671, 1
  store i32 %673, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #5
  br label %761

674:                                              ; preds = %664, %656, %635, %631, %625
  %675 = load ptr, ptr %21, align 8, !tbaa !5
  %676 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %675)
          to label %677 unwind label %461

677:                                              ; preds = %674
  %678 = load i32, ptr %676, align 4, !tbaa !54
  %679 = sext i32 %678 to i64
  store i64 %679, ptr %28, align 8, !tbaa !9
  %680 = load i64, ptr %28, align 8, !tbaa !9
  %681 = load i64, ptr %24, align 8, !tbaa !9
  %682 = icmp ne i64 %680, %681
  br i1 %682, label %683, label %724

683:                                              ; preds = %677
  %684 = load i64, ptr %9, align 8, !tbaa !9
  %685 = load i64, ptr %28, align 8, !tbaa !9
  %686 = icmp sle i64 %684, %685
  br i1 %686, label %687, label %724

687:                                              ; preds = %683
  %688 = load i64, ptr %10, align 8, !tbaa !9
  %689 = load i64, ptr %28, align 8, !tbaa !9
  %690 = icmp sge i64 %688, %689
  br i1 %690, label %691, label %724

691:                                              ; preds = %687
  %692 = load ptr, ptr %7, align 8, !tbaa !5
  %693 = getelementptr inbounds %class.inputDataNE, ptr %692, i32 0, i32 10
  %694 = load i16, ptr %15, align 2, !tbaa !13
  %695 = sext i16 %694 to i64
  %696 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %693, i64 noundef %695) #5
  %697 = load i16, ptr %17, align 2, !tbaa !13
  %698 = sext i16 %697 to i32
  %699 = sub nsw i32 %698, 1
  %700 = sext i32 %699 to i64
  %701 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %696, i64 noundef %700) #5
  %702 = load i16, ptr %20, align 2, !tbaa !13
  %703 = sext i16 %702 to i32
  %704 = sub nsw i32 %703, 1
  %705 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %701, i32 noundef %704)
          to label %706 unwind label %461

706:                                              ; preds = %691
  %707 = getelementptr inbounds %class.voxel, ptr %705, i32 0, i32 5
  %708 = load float, ptr %707, align 8, !tbaa !55
  %709 = load float, ptr %25, align 4, !tbaa !58
  %710 = fcmp oge float %708, %709
  br i1 %710, label %711, label %724

711:                                              ; preds = %706
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  store i32 0, ptr %51, align 4, !tbaa !54
  invoke void @_ZNSt4pairIisEC2IRliTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(6) %50, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %712 unwind label %720

712:                                              ; preds = %711
  %713 = invoke { ptr, i8 } @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE6insertIS2_IisEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull align 4 dereferenceable(6) %50)
          to label %714 unwind label %720

714:                                              ; preds = %712
  store { ptr, i8 } %713, ptr %52, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 %52, i64 9, i1 false)
  %715 = getelementptr inbounds %"struct.std::pair.88", ptr %49, i32 0, i32 0
  %716 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %715) #5
  %717 = getelementptr inbounds %"struct.std::pair.95", ptr %716, i32 0, i32 1
  %718 = load i16, ptr %717, align 4, !tbaa !59
  %719 = add i16 %718, 1
  store i16 %719, ptr %717, align 4, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #5
  br label %724

720:                                              ; preds = %712, %711
  %721 = landingpad { ptr, i32 }
          cleanup
  %722 = extractvalue { ptr, i32 } %721, 0
  store ptr %722, ptr %22, align 8
  %723 = extractvalue { ptr, i32 } %721, 1
  store i32 %723, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #5
  br label %761

724:                                              ; preds = %714, %706, %687, %683, %677
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  %725 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %27) #5
  %726 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %54, i32 0, i32 0
  store ptr %725, ptr %726, align 8
  %727 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %27) #5
  %728 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %55, i32 0, i32 0
  store ptr %727, ptr %728, align 8
  %729 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %54, i32 0, i32 0
  %730 = load ptr, ptr %729, align 8
  %731 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %55, i32 0, i32 0
  %732 = load ptr, ptr %731, align 8
  %733 = invoke ptr @_ZSt11max_elementISt17_Rb_tree_iteratorISt4pairIKisEE11mapComparerIiEET_S7_S7_T0_(ptr %730, ptr %732)
          to label %734 unwind label %756

734:                                              ; preds = %724
  %735 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %53, i32 0, i32 0
  store ptr %733, ptr %735, align 8
  %736 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #5
  %737 = getelementptr inbounds %"struct.std::pair.95", ptr %736, i32 0, i32 1
  %738 = load i16, ptr %737, align 4, !tbaa !59
  %739 = sext i16 %738 to i32
  %740 = icmp sge i32 %739, 2
  br i1 %740, label %741, label %760

741:                                              ; preds = %734
  %742 = load i64, ptr %14, align 8, !tbaa !11
  %743 = add nsw i64 %742, 1
  store i64 %743, ptr %14, align 8, !tbaa !11
  %744 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #5
  %745 = getelementptr inbounds %"struct.std::pair.95", ptr %744, i32 0, i32 0
  %746 = load i32, ptr %745, align 4, !tbaa !61
  %747 = load ptr, ptr %8, align 8, !tbaa !5
  %748 = load i16, ptr %20, align 2, !tbaa !13
  %749 = sext i16 %748 to i32
  %750 = load i16, ptr %17, align 2, !tbaa !13
  %751 = sext i16 %750 to i32
  %752 = load i16, ptr %15, align 2, !tbaa !13
  %753 = sext i16 %752 to i64
  %754 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %747, i32 noundef %749, i32 noundef %751, i64 noundef %753)
          to label %755 unwind label %756

755:                                              ; preds = %741
  store i32 %746, ptr %754, align 4, !tbaa !54
  br label %760

756:                                              ; preds = %741, %724
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %22, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  br label %761

760:                                              ; preds = %755, %734
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %27) #5
  br label %762

761:                                              ; preds = %756, %720, %670, %618, %568, %516, %465, %461
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %27) #5
  br label %763

762:                                              ; preds = %760, %409
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %765

763:                                              ; preds = %761, %205
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #5
  br label %764

764:                                              ; preds = %763, %201
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  br label %769

765:                                              ; preds = %762, %130
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %766

766:                                              ; preds = %765
  %767 = load i16, ptr %20, align 2, !tbaa !13
  %768 = add i16 %767, 1
  store i16 %768, ptr %20, align 2, !tbaa !13
  br label %107, !llvm.loop !62

769:                                              ; preds = %764, %197
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %15) #5
  br label %794

770:                                              ; preds = %121
  br label %771

771:                                              ; preds = %770
  %772 = load i16, ptr %19, align 2, !tbaa !13
  %773 = add i16 %772, 1
  store i16 %773, ptr %19, align 2, !tbaa !13
  br label %88, !llvm.loop !64

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

775:                                              ; preds = %774
  %776 = load i16, ptr %17, align 2, !tbaa !13
  %777 = add i16 %776, 1
  store i16 %777, ptr %17, align 2, !tbaa !13
  br label %67, !llvm.loop !65

778:                                              ; preds = %74
  br label %779

779:                                              ; preds = %778
  %780 = load i16, ptr %15, align 2, !tbaa !13
  %781 = add i16 %780, 1
  store i16 %781, ptr %15, align 2, !tbaa !13
  br label %58, !llvm.loop !66

782:                                              ; preds = %65
  %783 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.66)
          to label %784 unwind label %790

784:                                              ; preds = %782
  %785 = load i64, ptr %14, align 8, !tbaa !11
  %786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %783, i64 noundef %785)
          to label %787 unwind label %790

787:                                              ; preds = %784
  %788 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %786, ptr noundef @.str.28)
          to label %789 unwind label %790

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

790:                                              ; preds = %787, %784, %782
  %791 = landingpad { ptr, i32 }
          cleanup
  %792 = extractvalue { ptr, i32 } %791, 0
  store ptr %792, ptr %22, align 8
  %793 = extractvalue { ptr, i32 } %791, 1
  store i32 %793, ptr %23, align 4
  br label %794

794:                                              ; preds = %790, %769
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @_ZN10voxelFieldIiED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %13) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %13) #5
  br label %795

795:                                              ; preds = %794
  %796 = load ptr, ptr %22, align 8
  %797 = load i32, ptr %23, align 4
  %798 = insertvalue { ptr, i32 } poison, ptr %796, 0
  %799 = insertvalue { ptr, i32 } %798, i32 %797, 1
  resume { ptr, i32 } %799
}

; 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 noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef) #4 align 2

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"short", !7, i64 0}
!15 = !{!16, !25, i64 132}
!16 = !{!"_ZTS11inputDataNE", !17, i64 0, !25, i64 124, !25, i64 128, !25, i64 132, !25, i64 136, !26, i64 144, !27, i64 152, !22, i64 176, !12, i64 208, !22, i64 216, !28, i64 248, !32, i64 272, !33, i64 288, !37, i64 312, !41, i64 336}
!17 = !{!"_ZTS9InputFile", !18, i64 0, !22, i64 24, !22, i64 56, !22, i64 88, !24, i64 120, !24, i64 121}
!18 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !10, i64 8, !7, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!24 = !{!"bool", !7, i64 0}
!25 = !{!"int", !7, i64 0}
!26 = !{!"double", !7, i64 0}
!27 = !{!"_ZTS4var3IdE", !26, i64 0, !26, i64 8, !26, i64 16}
!28 = !{!"_ZTSSt6vectorIS_I8segmentsSaIS0_EESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTS7segment", !25, i64 0, !7, i64 4, !6, i64 8}
!33 = !{!"_ZTSSt6vectorIiSaIiEE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSSt6vectorI9poroRangeSaIS0_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseI9poroRangeSaIS0_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!"_ZTS11voxelImageTIhE", !42, i64 0, !43, i64 8, !27, i64 64, !27, i64 88}
!42 = !{!"_ZTS15voxelImageTBase"}
!43 = !{!"_ZTS10voxelFieldIhE", !12, i64 8, !44, i64 16, !45, i64 32}
!44 = !{!"_ZTS4var3IiE", !25, i64 0, !25, i64 4, !25, i64 8}
!45 = !{!"_ZTSSt6vectorIhSaIhEE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!49 = !{!16, !25, i64 128}
!50 = !{!51, !25, i64 8}
!51 = !{!"_ZTS8segments", !6, i64 0, !25, i64 8}
!52 = !{!51, !6, i64 0}
!53 = !{!32, !25, i64 0}
!54 = !{!25, !25, i64 0}
!55 = !{!56, !57, i64 16}
!56 = !{!"_ZTS5voxel", !6, i64 0, !14, i64 8, !14, i64 10, !14, i64 12, !57, i64 16}
!57 = !{!"float", !7, i64 0}
!58 = !{!57, !57, i64 0}
!59 = !{!60, !14, i64 4}
!60 = !{!"_ZTSSt4pairIKisE", !25, i64 0, !14, i64 4}
!61 = !{!60, !25, i64 0}
!62 = distinct !{!62, !63}
!63 = !{!"llvm.loop.mustprogress"}
!64 = distinct !{!64, !63}
!65 = distinct !{!65, !63}
!66 = distinct !{!66, !63}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [12 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 @_Z15growPoresMedEqsRK11inputDataNER10voxelFieldIiEllRKSt6vectorIP6poreNESaIS7_EEl(ptr noundef nonnull align 8 dereferenceable(448) %0, ptr noundef nonnull align 8 dereferenceable(56) %1, i64 noundef %2, i64 noundef %3, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %4, i64 noundef %5) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %7 = alloca %class.voxelField.35, align 8
  %8 = alloca %"class.std::map.83", align 8
  %9 = alloca i64, align 8
  %10 = alloca %"struct.std::pair.88", align 8
  %11 = alloca %"struct.std::pair.92", align 4
  %12 = alloca i32, align 4
  %13 = alloca %"struct.std::pair.88", align 8
  %14 = alloca %"struct.std::pair.92", align 4
  %15 = alloca i32, align 4
  %16 = alloca %"struct.std::pair.88", align 8
  %17 = alloca %"struct.std::pair.92", align 4
  %18 = alloca i32, align 4
  %19 = alloca %"struct.std::pair.88", align 8
  %20 = alloca %"struct.std::pair.92", align 4
  %21 = alloca i32, align 4
  %22 = alloca %"struct.std::pair.88", align 8
  %23 = alloca %"struct.std::pair.92", align 4
  %24 = alloca i32, align 4
  %25 = alloca %"struct.std::pair.88", align 8
  %26 = alloca %"struct.std::pair.92", align 4
  %27 = alloca i32, align 4
  %28 = alloca %"struct.std::_Rb_tree_iterator.90", align 8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %7) #4
  call void @_ZN10voxelFieldIiEC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(56) %7, ptr noundef nonnull align 8 dereferenceable(56) %1)
  %29 = getelementptr inbounds i8, ptr %0, i64 132
  %30 = load i32, ptr %29, align 4, !tbaa !5
  %.not305 = icmp slt i32 %30, 1
  br i1 %.not305, label %._crit_edge308, label %.preheader.lr.ph

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

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge303
  %35 = phi i32 [ %44, %._crit_edge303 ], [ %30, %.preheader.lr.ph ]
  %36 = phi i32 [ %45, %._crit_edge303 ], [ %33, %.preheader.lr.ph ]
  %37 = phi i32 [ %47, %._crit_edge303 ], [ 1, %.preheader.lr.ph ]
  %.0307 = phi i64 [ %.1.lcssa, %._crit_edge303 ], [ 0, %.preheader.lr.ph ]
  %.0173306 = phi i16 [ %46, %._crit_edge303 ], [ 1, %.preheader.lr.ph ]
  %.not202299 = icmp slt i32 %36, 1
  br i1 %.not202299, label %._crit_edge303, label %.lr.ph302

.lr.ph302:                                        ; preds = %.preheader
  %38 = add nsw i32 %37, -1
  %39 = sext i32 %38 to i64
  %40 = sext i16 %.0173306 to i64
  %41 = add nsw i32 %37, -2
  %42 = sext i32 %41 to i64
  br label %48

._crit_edge308:                                   ; preds = %._crit_edge303, %.preheader.lr.ph, %6
  %.0.lcssa = phi i64 [ 0, %6 ], [ 0, %.preheader.lr.ph ], [ %.1.lcssa, %._crit_edge303 ]
  %43 = 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.66)
          to label %357 unwind label %362

._crit_edge303.loopexit:                          ; preds = %._crit_edge297
  %.pre312 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge303

._crit_edge303:                                   ; preds = %._crit_edge303.loopexit, %.preheader
  %44 = phi i32 [ %35, %.preheader ], [ %.pre312, %._crit_edge303.loopexit ]
  %45 = phi i32 [ %36, %.preheader ], [ %62, %._crit_edge303.loopexit ]
  %.1.lcssa = phi i64 [ %.0307, %.preheader ], [ %.2.lcssa, %._crit_edge303.loopexit ]
  %46 = add i16 %.0173306, 1
  %47 = sext i16 %46 to i32
  %.not = icmp slt i32 %44, %47
  br i1 %.not, label %._crit_edge308, label %.preheader, !llvm.loop !45

48:                                               ; preds = %.lr.ph302, %._crit_edge297
  %49 = phi i32 [ 1, %.lr.ph302 ], [ %61, %._crit_edge297 ]
  %.1301 = phi i64 [ %.0307, %.lr.ph302 ], [ %.2.lcssa, %._crit_edge297 ]
  %.0174300 = phi i16 [ 1, %.lr.ph302 ], [ %60, %._crit_edge297 ]
  %50 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %51 = add nsw i32 %49, -1
  %52 = sext i32 %51 to i64
  %53 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %50, i64 noundef %52) #4
  %54 = getelementptr inbounds i8, ptr %53, i64 8
  %55 = load i32, ptr %54, align 8, !tbaa !48
  %56 = icmp sgt i32 %55, 0
  br i1 %56, label %.lr.ph296, label %._crit_edge297

.lr.ph296:                                        ; preds = %48
  %57 = add nsw i32 %49, -2
  %58 = sext i32 %57 to i64
  %59 = sext i16 %.0174300 to i64
  %.pre = load ptr, ptr %53, align 8, !tbaa !50
  br label %63

._crit_edge297:                                   ; preds = %._crit_edge, %48
  %.2.lcssa = phi i64 [ %.1301, %48 ], [ %.3.lcssa, %._crit_edge ]
  %60 = add i16 %.0174300, 1
  %61 = sext i16 %60 to i32
  %62 = load i32, ptr %31, align 8, !tbaa !44
  %.not202 = icmp slt i32 %62, %61
  br i1 %.not202, label %._crit_edge303.loopexit, label %48, !llvm.loop !51

63:                                               ; preds = %.lr.ph296, %._crit_edge
  %64 = phi i32 [ %55, %.lr.ph296 ], [ %73, %._crit_edge ]
  %65 = phi ptr [ %.pre, %.lr.ph296 ], [ %74, %._crit_edge ]
  %.2294 = phi i64 [ %.1301, %.lr.ph296 ], [ %.3.lcssa, %._crit_edge ]
  %.0175293 = phi i16 [ 0, %.lr.ph296 ], [ %75, %._crit_edge ]
  %66 = sext i16 %.0175293 to i64
  %67 = getelementptr %class.segment, ptr %65, i64 %66
  %68 = load i32, ptr %67, align 8, !tbaa !52
  %69 = trunc i32 %68 to i16
  %.0176289 = add i16 %69, 1
  %70 = sext i16 %.0176289 to i32
  %71 = getelementptr i8, ptr %67, i64 16
  %72 = load i32, ptr %71, align 8, !tbaa !52
  %.not203290 = icmp slt i32 %72, %70
  br i1 %.not203290, label %._crit_edge, label %.lr.ph

._crit_edge.loopexit:                             ; preds = %351
  %.pre311 = load i32, ptr %54, align 8, !tbaa !48
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %63
  %73 = phi i32 [ %64, %63 ], [ %.pre311, %._crit_edge.loopexit ]
  %74 = phi ptr [ %65, %63 ], [ %353, %._crit_edge.loopexit ]
  %.3.lcssa = phi i64 [ %.2294, %63 ], [ %.6, %._crit_edge.loopexit ]
  %75 = add i16 %.0175293, 1
  %76 = sext i16 %75 to i32
  %77 = icmp sgt i32 %73, %76
  br i1 %77, label %63, label %._crit_edge297, !llvm.loop !53

.lr.ph:                                           ; preds = %63, %351
  %78 = phi i32 [ %352, %351 ], [ %70, %63 ]
  %.0176292 = phi i16 [ %.0176, %351 ], [ %.0176289, %63 ]
  %.3291 = phi i64 [ %.6, %351 ], [ %.2294, %63 ]
  %79 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef %78, i32 noundef %49, i64 noundef %40)
  %80 = load i32, ptr %79, align 4, !tbaa !54
  %81 = sext i32 %80 to i64
  %82 = icmp eq i64 %81, %5
  br i1 %82, label %83, label %351

83:                                               ; preds = %.lr.ph
  %84 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %85 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %52) #4
  %86 = add nsw i32 %78, -1
  %87 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %85, i32 noundef %86)
          to label %88 unwind label %108

88:                                               ; preds = %83
  %89 = getelementptr inbounds i8, ptr %87, i64 16
  %90 = load float, ptr %89, align 8, !tbaa !55
  %91 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %79)
  %92 = load i32, ptr %91, align 4, !tbaa !54
  %93 = sext i32 %92 to i64
  %.not204 = icmp slt i64 %93, %2
  br i1 %.not204, label %112, label %94

94:                                               ; preds = %88
  %95 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %79)
  %96 = load i32, ptr %95, align 4, !tbaa !54
  %97 = sext i32 %96 to i64
  %.not205 = icmp sgt i64 %97, %3
  br i1 %.not205, label %112, label %98

98:                                               ; preds = %94
  %99 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %100 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %99, i64 noundef %52) #4
  %101 = add nsw i32 %78, -2
  %102 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %100, i32 noundef %101)
          to label %103 unwind label %110

103:                                              ; preds = %98
  %104 = getelementptr inbounds i8, ptr %102, i64 16
  %105 = load float, ptr %104, align 8, !tbaa !55
  %106 = fcmp ult float %105, %90
  br i1 %106, label %112, label %107

107:                                              ; preds = %103
  br label %112

108:                                              ; preds = %83
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %364

110:                                              ; preds = %192, %174, %156, %138, %120, %98
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %364

112:                                              ; preds = %107, %103, %94, %88
  %.0185 = phi i16 [ 1, %107 ], [ 0, %103 ], [ 0, %94 ], [ 0, %88 ]
  %113 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %79)
  %114 = load i32, ptr %113, align 4, !tbaa !54
  %115 = sext i32 %114 to i64
  %.not206 = icmp slt i64 %115, %2
  br i1 %.not206, label %130, label %116

116:                                              ; preds = %112
  %117 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %79)
  %118 = load i32, ptr %117, align 4, !tbaa !54
  %119 = sext i32 %118 to i64
  %.not207 = icmp sgt i64 %119, %3
  br i1 %.not207, label %130, label %120

120:                                              ; preds = %116
  %121 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %122 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %121, i64 noundef %52) #4
  %123 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %122, i32 noundef %78)
          to label %124 unwind label %110

124:                                              ; preds = %120
  %125 = getelementptr inbounds i8, ptr %123, i64 16
  %126 = load float, ptr %125, align 8, !tbaa !55
  %127 = fcmp ult float %126, %90
  br i1 %127, label %130, label %128

128:                                              ; preds = %124
  %129 = add nuw nsw i16 %.0185, 1
  br label %130

130:                                              ; preds = %128, %124, %116, %112
  %.1186 = phi i16 [ %129, %128 ], [ %.0185, %124 ], [ %.0185, %116 ], [ %.0185, %112 ]
  %131 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %79)
  %132 = load i32, ptr %131, align 4, !tbaa !54
  %133 = sext i32 %132 to i64
  %.not208 = icmp slt i64 %133, %2
  br i1 %.not208, label %148, label %134

134:                                              ; preds = %130
  %135 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %79)
  %136 = load i32, ptr %135, align 4, !tbaa !54
  %137 = sext i32 %136 to i64
  %.not209 = icmp sgt i64 %137, %3
  br i1 %.not209, label %148, label %138

138:                                              ; preds = %134
  %139 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %140 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef %58) #4
  %141 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %140, i32 noundef %86)
          to label %142 unwind label %110

142:                                              ; preds = %138
  %143 = getelementptr inbounds i8, ptr %141, i64 16
  %144 = load float, ptr %143, align 8, !tbaa !55
  %145 = fcmp ult float %144, %90
  br i1 %145, label %148, label %146

146:                                              ; preds = %142
  %147 = add nuw nsw i16 %.1186, 1
  br label %148

148:                                              ; preds = %146, %142, %134, %130
  %.2187 = phi i16 [ %147, %146 ], [ %.1186, %142 ], [ %.1186, %134 ], [ %.1186, %130 ]
  %149 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %79)
  %150 = load i32, ptr %149, align 4, !tbaa !54
  %151 = sext i32 %150 to i64
  %.not210 = icmp slt i64 %151, %2
  br i1 %.not210, label %166, label %152

152:                                              ; preds = %148
  %153 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %79)
  %154 = load i32, ptr %153, align 4, !tbaa !54
  %155 = sext i32 %154 to i64
  %.not211 = icmp sgt i64 %155, %3
  br i1 %.not211, label %166, label %156

156:                                              ; preds = %152
  %157 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %158 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %157, i64 noundef %59) #4
  %159 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %158, i32 noundef %86)
          to label %160 unwind label %110

160:                                              ; preds = %156
  %161 = getelementptr inbounds i8, ptr %159, i64 16
  %162 = load float, ptr %161, align 8, !tbaa !55
  %163 = fcmp ult float %162, %90
  br i1 %163, label %166, label %164

164:                                              ; preds = %160
  %165 = add nuw nsw i16 %.2187, 1
  br label %166

166:                                              ; preds = %164, %160, %152, %148
  %.3188 = phi i16 [ %165, %164 ], [ %.2187, %160 ], [ %.2187, %152 ], [ %.2187, %148 ]
  %167 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %79)
  %168 = load i32, ptr %167, align 4, !tbaa !54
  %169 = sext i32 %168 to i64
  %.not212 = icmp slt i64 %169, %2
  br i1 %.not212, label %184, label %170

170:                                              ; preds = %166
  %171 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %79)
  %172 = load i32, ptr %171, align 4, !tbaa !54
  %173 = sext i32 %172 to i64
  %.not213 = icmp sgt i64 %173, %3
  br i1 %.not213, label %184, label %174

174:                                              ; preds = %170
  %175 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %42) #4
  %176 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %175, i64 noundef %52) #4
  %177 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %176, i32 noundef %86)
          to label %178 unwind label %110

178:                                              ; preds = %174
  %179 = getelementptr inbounds i8, ptr %177, i64 16
  %180 = load float, ptr %179, align 8, !tbaa !55
  %181 = fcmp ult float %180, %90
  br i1 %181, label %184, label %182

182:                                              ; preds = %178
  %183 = add nuw nsw i16 %.3188, 1
  br label %184

184:                                              ; preds = %182, %178, %170, %166
  %.4189 = phi i16 [ %183, %182 ], [ %.3188, %178 ], [ %.3188, %170 ], [ %.3188, %166 ]
  %185 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %79)
  %186 = load i32, ptr %185, align 4, !tbaa !54
  %187 = sext i32 %186 to i64
  %.not214 = icmp slt i64 %187, %2
  br i1 %.not214, label %202, label %188

188:                                              ; preds = %184
  %189 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %79)
  %190 = load i32, ptr %189, align 4, !tbaa !54
  %191 = sext i32 %190 to i64
  %.not215 = icmp sgt i64 %191, %3
  br i1 %.not215, label %202, label %192

192:                                              ; preds = %188
  %193 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %40) #4
  %194 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %193, i64 noundef %52) #4
  %195 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %194, i32 noundef %86)
          to label %196 unwind label %110

196:                                              ; preds = %192
  %197 = getelementptr inbounds i8, ptr %195, i64 16
  %198 = load float, ptr %197, align 8, !tbaa !55
  %199 = fcmp ult float %198, %90
  br i1 %199, label %202, label %200

200:                                              ; preds = %196
  %201 = add nuw nsw i16 %.4189, 1
  br label %202

202:                                              ; preds = %200, %196, %188, %184
  %.5190 = phi i16 [ %201, %200 ], [ %.4189, %196 ], [ %.4189, %188 ], [ %.4189, %184 ]
  %203 = icmp ugt i16 %.5190, 1
  br i1 %203, label %204, label %351

204:                                              ; preds = %202
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) #4
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #4
  %205 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %79)
  %206 = load i32, ptr %205, align 4, !tbaa !54
  %207 = sext i32 %206 to i64
  store i64 %207, ptr %9, align 8, !tbaa !59
  %.not216 = icmp eq i32 %206, %80
  %.not217 = icmp slt i64 %207, %2
  %or.cond = or i1 %.not216, %.not217
  %.not218 = icmp sgt i64 %207, %3
  %or.cond238 = or i1 %.not218, %or.cond
  br i1 %or.cond238, label %228, label %208

208:                                              ; preds = %204
  %209 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %210 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %52) #4
  %211 = add nsw i32 %78, -2
  %212 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %210, i32 noundef %211)
          to label %213 unwind label %224

213:                                              ; preds = %208
  %214 = getelementptr inbounds i8, ptr %212, i64 16
  %215 = load float, ptr %214, align 8, !tbaa !55
  %216 = fcmp ult float %215, %90
  br i1 %216, label %228, label %217

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

219:                                              ; preds = %217
  %.fca.0.extract19 = extractvalue { ptr, i8 } %218, 0
  %.fca.1.extract20 = extractvalue { ptr, i8 } %218, 1
  store ptr %.fca.0.extract19, ptr %10, align 8
  store i8 %.fca.1.extract20, ptr %.sroa.222.0..sroa_idx, align 8
  %220 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #4
  %221 = getelementptr inbounds i8, ptr %220, i64 4
  %222 = load i16, ptr %221, align 4, !tbaa !60
  %223 = add i16 %222, 1
  store i16 %223, ptr %221, align 4, !tbaa !60
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #4
  br label %228

224:                                              ; preds = %316, %295, %274, %253, %232, %208
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %350

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

228:                                              ; preds = %219, %213, %204
  %229 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %79)
  %230 = load i32, ptr %229, align 4, !tbaa !54
  %231 = sext i32 %230 to i64
  store i64 %231, ptr %9, align 8, !tbaa !59
  %.not219 = icmp eq i32 %230, %80
  %.not220 = icmp slt i64 %231, %2
  %or.cond239 = or i1 %.not219, %.not220
  %.not221 = icmp sgt i64 %231, %3
  %or.cond240 = or i1 %.not221, %or.cond239
  br i1 %or.cond240, label %249, label %232

232:                                              ; preds = %228
  %233 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %234 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %233, i64 noundef %52) #4
  %235 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %234, i32 noundef %78)
          to label %236 unwind label %224

236:                                              ; preds = %232
  %237 = getelementptr inbounds i8, ptr %235, i64 16
  %238 = load float, ptr %237, align 8, !tbaa !55
  %239 = fcmp ult float %238, %90
  br i1 %239, label %249, label %240

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

242:                                              ; preds = %240
  %.fca.0.extract15 = extractvalue { ptr, i8 } %241, 0
  %.fca.1.extract16 = extractvalue { ptr, i8 } %241, 1
  store ptr %.fca.0.extract15, ptr %13, align 8
  store i8 %.fca.1.extract16, ptr %.sroa.218.0..sroa_idx, align 8
  %243 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #4
  %244 = getelementptr inbounds i8, ptr %243, i64 4
  %245 = load i16, ptr %244, align 4, !tbaa !60
  %246 = add i16 %245, 1
  store i16 %246, ptr %244, align 4, !tbaa !60
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #4
  br label %249

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

249:                                              ; preds = %242, %236, %228
  %250 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %79)
  %251 = load i32, ptr %250, align 4, !tbaa !54
  %252 = sext i32 %251 to i64
  store i64 %252, ptr %9, align 8, !tbaa !59
  %.not222 = icmp eq i32 %251, %80
  %.not223 = icmp slt i64 %252, %2
  %or.cond241 = or i1 %.not222, %.not223
  %.not224 = icmp sgt i64 %252, %3
  %or.cond242 = or i1 %.not224, %or.cond241
  br i1 %or.cond242, label %270, label %253

253:                                              ; preds = %249
  %254 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %255 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %254, i64 noundef %58) #4
  %256 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %255, i32 noundef %86)
          to label %257 unwind label %224

257:                                              ; preds = %253
  %258 = getelementptr inbounds i8, ptr %256, i64 16
  %259 = load float, ptr %258, align 8, !tbaa !55
  %260 = fcmp ult float %259, %90
  br i1 %260, label %270, label %261

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

263:                                              ; preds = %261
  %.fca.0.extract11 = extractvalue { ptr, i8 } %262, 0
  %.fca.1.extract12 = extractvalue { ptr, i8 } %262, 1
  store ptr %.fca.0.extract11, ptr %16, align 8
  store i8 %.fca.1.extract12, ptr %.sroa.214.0..sroa_idx, align 8
  %264 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #4
  %265 = getelementptr inbounds i8, ptr %264, i64 4
  %266 = load i16, ptr %265, align 4, !tbaa !60
  %267 = add i16 %266, 1
  store i16 %267, ptr %265, align 4, !tbaa !60
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #4
  br label %270

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

270:                                              ; preds = %263, %257, %249
  %271 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %79)
  %272 = load i32, ptr %271, align 4, !tbaa !54
  %273 = sext i32 %272 to i64
  store i64 %273, ptr %9, align 8, !tbaa !59
  %.not225 = icmp eq i32 %272, %80
  %.not226 = icmp slt i64 %273, %2
  %or.cond243 = or i1 %.not225, %.not226
  %.not227 = icmp sgt i64 %273, %3
  %or.cond244 = or i1 %.not227, %or.cond243
  br i1 %or.cond244, label %291, label %274

274:                                              ; preds = %270
  %275 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %39) #4
  %276 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %275, i64 noundef %59) #4
  %277 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %276, i32 noundef %86)
          to label %278 unwind label %224

278:                                              ; preds = %274
  %279 = getelementptr inbounds i8, ptr %277, i64 16
  %280 = load float, ptr %279, align 8, !tbaa !55
  %281 = fcmp ult float %280, %90
  br i1 %281, label %291, label %282

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

284:                                              ; preds = %282
  %.fca.0.extract7 = extractvalue { ptr, i8 } %283, 0
  %.fca.1.extract8 = extractvalue { ptr, i8 } %283, 1
  store ptr %.fca.0.extract7, ptr %19, align 8
  store i8 %.fca.1.extract8, ptr %.sroa.210.0..sroa_idx, align 8
  %285 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #4
  %286 = getelementptr inbounds i8, ptr %285, i64 4
  %287 = load i16, ptr %286, align 4, !tbaa !60
  %288 = add i16 %287, 1
  store i16 %288, ptr %286, align 4, !tbaa !60
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #4
  br label %291

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

291:                                              ; preds = %284, %278, %270
  %292 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %79)
  %293 = load i32, ptr %292, align 4, !tbaa !54
  %294 = sext i32 %293 to i64
  store i64 %294, ptr %9, align 8, !tbaa !59
  %.not228 = icmp eq i32 %293, %80
  %.not229 = icmp slt i64 %294, %2
  %or.cond245 = or i1 %.not228, %.not229
  %.not230 = icmp sgt i64 %294, %3
  %or.cond246 = or i1 %.not230, %or.cond245
  br i1 %or.cond246, label %312, label %295

295:                                              ; preds = %291
  %296 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %42) #4
  %297 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %296, i64 noundef %52) #4
  %298 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %297, i32 noundef %86)
          to label %299 unwind label %224

299:                                              ; preds = %295
  %300 = getelementptr inbounds i8, ptr %298, i64 16
  %301 = load float, ptr %300, align 8, !tbaa !55
  %302 = fcmp ult float %301, %90
  br i1 %302, label %312, label %303

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

305:                                              ; preds = %303
  %.fca.0.extract3 = extractvalue { ptr, i8 } %304, 0
  %.fca.1.extract4 = extractvalue { ptr, i8 } %304, 1
  store ptr %.fca.0.extract3, ptr %22, align 8
  store i8 %.fca.1.extract4, ptr %.sroa.26.0..sroa_idx, align 8
  %306 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #4
  %307 = getelementptr inbounds i8, ptr %306, i64 4
  %308 = load i16, ptr %307, align 4, !tbaa !60
  %309 = add i16 %308, 1
  store i16 %309, ptr %307, align 4, !tbaa !60
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #4
  br label %312

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

312:                                              ; preds = %305, %299, %291
  %313 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %79)
  %314 = load i32, ptr %313, align 4, !tbaa !54
  %315 = sext i32 %314 to i64
  store i64 %315, ptr %9, align 8, !tbaa !59
  %.not231 = icmp eq i32 %314, %80
  %.not232 = icmp slt i64 %315, %2
  %or.cond247 = or i1 %.not231, %.not232
  %.not233 = icmp sgt i64 %315, %3
  %or.cond248 = or i1 %.not233, %or.cond247
  br i1 %or.cond248, label %333, label %316

316:                                              ; preds = %312
  %317 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %40) #4
  %318 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %317, i64 noundef %52) #4
  %319 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %318, i32 noundef %86)
          to label %320 unwind label %224

320:                                              ; preds = %316
  %321 = getelementptr inbounds i8, ptr %319, i64 16
  %322 = load float, ptr %321, align 8, !tbaa !55
  %323 = fcmp ult float %322, %90
  br i1 %323, label %333, label %324

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

326:                                              ; preds = %324
  %.fca.0.extract = extractvalue { ptr, i8 } %325, 0
  %.fca.1.extract = extractvalue { ptr, i8 } %325, 1
  store ptr %.fca.0.extract, ptr %25, align 8
  store i8 %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  %327 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #4
  %328 = getelementptr inbounds i8, ptr %327, i64 4
  %329 = load i16, ptr %328, align 4, !tbaa !60
  %330 = add i16 %329, 1
  store i16 %330, ptr %328, align 4, !tbaa !60
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #4
  br label %333

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

333:                                              ; preds = %326, %320, %312
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #4
  %334 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  %335 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  %336 = invoke ptr @_ZSt11max_elementISt17_Rb_tree_iteratorISt4pairIKisEE11mapComparerIiEET_S7_S7_T0_(ptr %334, ptr %335)
          to label %337 unwind label %347

337:                                              ; preds = %333
  store ptr %336, ptr %28, align 8
  %338 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #4
  %339 = getelementptr inbounds i8, ptr %338, i64 4
  %340 = load i16, ptr %339, align 4, !tbaa !60
  %341 = icmp sgt i16 %340, 1
  br i1 %341, label %342, label %349

342:                                              ; preds = %337
  %343 = add nsw i64 %.3291, 1
  %344 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #4
  %345 = load i32, ptr %344, align 4, !tbaa !62
  %346 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef %78, i32 noundef %49, i64 noundef %40)
  store i32 %345, ptr %346, align 4, !tbaa !54
  br label %349

347:                                              ; preds = %333
  %348 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  br label %350

349:                                              ; preds = %342, %337
  %.4 = phi i64 [ %343, %342 ], [ %.3291, %337 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #4
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #4
  br label %351

350:                                              ; preds = %347, %331, %310, %289, %268, %247, %226, %224
  %.pn = phi { ptr, i32 } [ %348, %347 ], [ %332, %331 ], [ %225, %224 ], [ %311, %310 ], [ %290, %289 ], [ %269, %268 ], [ %248, %247 ], [ %227, %226 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #4
  call void @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #4
  br label %364

351:                                              ; preds = %202, %349, %.lr.ph
  %.6 = phi i64 [ %.3291, %.lr.ph ], [ %.4, %349 ], [ %.3291, %202 ]
  %.0176 = add i16 %.0176292, 1
  %352 = sext i16 %.0176 to i32
  %353 = load ptr, ptr %53, align 8, !tbaa !50
  %354 = getelementptr %class.segment, ptr %353, i64 %66
  %355 = getelementptr i8, ptr %354, i64 16
  %356 = load i32, ptr %355, align 8, !tbaa !52
  %.not203 = icmp slt i32 %356, %352
  br i1 %.not203, label %._crit_edge.loopexit, label %.lr.ph, !llvm.loop !63

357:                                              ; preds = %._crit_edge308
  %358 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %43, i64 noundef %.0.lcssa)
          to label %359 unwind label %362

359:                                              ; preds = %357
  %360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull @.str.28)
          to label %361 unwind label %362

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

362:                                              ; preds = %359, %357, %._crit_edge308
  %363 = landingpad { ptr, i32 }
          cleanup
  br label %364

364:                                              ; preds = %108, %350, %110, %362
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %363, %362 ], [ %109, %108 ], [ %.pn, %350 ], [ %111, %110 ]
  call void @_ZN10voxelFieldIiED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %7) #4
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7) #4
  resume { ptr, i32 } %.pn.pn.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 noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !19, i64 132}
!6 = !{!"_ZTS11inputDataNE", !7, i64 0, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !20, i64 144, !21, i64 152, !15, i64 176, !22, i64 208, !15, i64 216, !23, i64 248, !27, i64 272, !28, i64 288, !32, i64 312, !36, i64 336}
!7 = !{!"_ZTS9InputFile", !8, i64 0, !15, i64 24, !15, i64 56, !15, i64 88, !18, i64 120, !18, i64 121}
!8 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !9, i64 0}
!9 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !10, i64 0}
!10 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !11, i64 0}
!11 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!12 = !{!"any pointer", !13, i64 0}
!13 = !{!"omnipotent char", !14, i64 0}
!14 = !{!"Simple C++ TBAA"}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !16, i64 0, !17, i64 8, !13, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!17 = !{!"long", !13, i64 0}
!18 = !{!"bool", !13, i64 0}
!19 = !{!"int", !13, i64 0}
!20 = !{!"double", !13, i64 0}
!21 = !{!"_ZTS4var3IdE", !20, i64 0, !20, i64 8, !20, i64 16}
!22 = !{!"long long", !13, i64 0}
!23 = !{!"_ZTSSt6vectorIS_I8segmentsSaIS0_EESaIS2_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!27 = !{!"_ZTS7segment", !19, i64 0, !13, i64 4, !12, i64 8}
!28 = !{!"_ZTSSt6vectorIiSaIiEE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!32 = !{!"_ZTSSt6vectorI9poroRangeSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseI9poroRangeSaIS0_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!36 = !{!"_ZTS11voxelImageTIhE", !37, i64 0, !38, i64 8, !21, i64 64, !21, i64 88}
!37 = !{!"_ZTS15voxelImageTBase"}
!38 = !{!"_ZTS10voxelFieldIhE", !22, i64 8, !39, i64 16, !40, i64 32}
!39 = !{!"_ZTS4var3IiE", !19, i64 0, !19, i64 4, !19, i64 8}
!40 = !{!"_ZTSSt6vectorIhSaIhEE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!44 = !{!6, !19, i64 128}
!45 = distinct !{!45, !46, !47}
!46 = !{!"llvm.loop.mustprogress"}
!47 = !{!"llvm.loop.unswitch.partial.disable"}
!48 = !{!49, !19, i64 8}
!49 = !{!"_ZTS8segments", !12, i64 0, !19, i64 8}
!50 = !{!49, !12, i64 0}
!51 = distinct !{!51, !46}
!52 = !{!27, !19, i64 0}
!53 = distinct !{!53, !46}
!54 = !{!19, !19, i64 0}
!55 = !{!56, !58, i64 16}
!56 = !{!"_ZTS5voxel", !12, i64 0, !57, i64 8, !57, i64 10, !57, i64 12, !58, i64 16}
!57 = !{!"short", !13, i64 0}
!58 = !{!"float", !13, i64 0}
!59 = !{!17, !17, i64 0}
!60 = !{!61, !57, i64 4}
!61 = !{!"_ZTSSt4pairIKisE", !19, i64 0, !57, i64 4}
!62 = !{!61, !19, i64 0}
!63 = distinct !{!63, !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