; 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.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [15 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 @_Z18growPoresMedStrictRK11inputDataNER10voxelFieldIiEllRKSt6vectorIP6poreNESaIS7_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 i64, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca ptr, 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 = %791, %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 %794

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 = %787, %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 %790

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 = %783, %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 %786

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 = %777, %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 %782

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 @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef %124, i32 noundef %126, i64 noundef %128)
          to label %130 unwind label %204

130:                                              ; preds = %122
  %131 = load i32, ptr %129, align 4, !tbaa !54
  %132 = sext i32 %131 to i64
  store i64 %132, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %133 = load i16, ptr %20, align 2, !tbaa !13
  %134 = sext i16 %133 to i32
  %135 = load i16, ptr %17, align 2, !tbaa !13
  %136 = sext i16 %135 to i32
  %137 = load i16, ptr %15, align 2, !tbaa !13
  %138 = sext i16 %137 to i64
  %139 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef %134, i32 noundef %136, i64 noundef %138)
          to label %140 unwind label %208

140:                                              ; preds = %130
  store ptr %139, ptr %24, align 8, !tbaa !5
  %141 = load i64, ptr %21, align 8, !tbaa !9
  %142 = load i64, ptr %12, align 8, !tbaa !9
  %143 = icmp eq i64 %141, %142
  br i1 %143, label %144, label %776

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

161:                                              ; preds = %144
  %162 = getelementptr inbounds %class.voxel, ptr %160, i32 0, i32 5
  %163 = load float, ptr %162, align 8, !tbaa !55
  store float %163, 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
  %164 = load i64, ptr %9, align 8, !tbaa !9
  %165 = load ptr, ptr %24, align 8, !tbaa !5
  %166 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %165)
          to label %167 unwind label %216

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

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

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

179:                                              ; preds = %175
  %180 = load ptr, ptr %7, align 8, !tbaa !5
  %181 = getelementptr inbounds %class.inputDataNE, ptr %180, i32 0, i32 10
  %182 = load i16, ptr %15, align 2, !tbaa !13
  %183 = sext i16 %182 to i32
  %184 = sub nsw i32 %183, 1
  %185 = sext i32 %184 to i64
  %186 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %181, i64 noundef %185) #5
  %187 = load i16, ptr %17, align 2, !tbaa !13
  %188 = sext i16 %187 to i32
  %189 = sub nsw i32 %188, 1
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %186, i64 noundef %190) #5
  %192 = load i16, ptr %20, align 2, !tbaa !13
  %193 = sext i16 %192 to i32
  %194 = sub nsw i32 %193, 2
  %195 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %191, i32 noundef %194)
          to label %196 unwind label %216

196:                                              ; preds = %179
  %197 = getelementptr inbounds %class.voxel, ptr %195, i32 0, i32 5
  %198 = load float, ptr %197, align 8, !tbaa !55
  %199 = load float, ptr %25, align 4, !tbaa !58
  %200 = fcmp oge float %198, %199
  br i1 %200, label %201, label %220

201:                                              ; preds = %196
  %202 = load i16, ptr %26, align 2, !tbaa !13
  %203 = add i16 %202, 1
  store i16 %203, ptr %26, align 2, !tbaa !13
  br label %220

204:                                              ; preds = %122
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %22, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %23, align 4
  br label %781

208:                                              ; preds = %130
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %22, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %23, align 4
  br label %780

212:                                              ; preds = %144
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %22, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %23, align 4
  br label %775

216:                                              ; preds = %397, %389, %381, %356, %348, %340, %317, %309, %301, %276, %268, %260, %236, %228, %220, %179, %171, %161
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %22, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %23, align 4
  br label %774

220:                                              ; preds = %201, %196, %175, %167
  %221 = load i64, ptr %9, align 8, !tbaa !9
  %222 = load ptr, ptr %24, align 8, !tbaa !5
  %223 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %222)
          to label %224 unwind label %216

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

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

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

236:                                              ; preds = %232
  %237 = load ptr, ptr %7, align 8, !tbaa !5
  %238 = getelementptr inbounds %class.inputDataNE, ptr %237, i32 0, i32 10
  %239 = load i16, ptr %15, align 2, !tbaa !13
  %240 = sext i16 %239 to i32
  %241 = sub nsw i32 %240, 1
  %242 = sext i32 %241 to i64
  %243 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %238, i64 noundef %242) #5
  %244 = load i16, ptr %17, align 2, !tbaa !13
  %245 = sext i16 %244 to i32
  %246 = sub nsw i32 %245, 1
  %247 = sext i32 %246 to i64
  %248 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %243, i64 noundef %247) #5
  %249 = load i16, ptr %20, align 2, !tbaa !13
  %250 = sext i16 %249 to i32
  %251 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %248, i32 noundef %250)
          to label %252 unwind label %216

252:                                              ; preds = %236
  %253 = getelementptr inbounds %class.voxel, ptr %251, i32 0, i32 5
  %254 = load float, ptr %253, align 8, !tbaa !55
  %255 = load float, ptr %25, align 4, !tbaa !58
  %256 = fcmp oge float %254, %255
  br i1 %256, label %257, label %260

257:                                              ; preds = %252
  %258 = load i16, ptr %26, align 2, !tbaa !13
  %259 = add i16 %258, 1
  store i16 %259, ptr %26, align 2, !tbaa !13
  br label %260

260:                                              ; preds = %257, %252, %232, %224
  %261 = load i64, ptr %9, align 8, !tbaa !9
  %262 = load ptr, ptr %24, align 8, !tbaa !5
  %263 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %262)
          to label %264 unwind label %216

264:                                              ; preds = %260
  %265 = load i32, ptr %263, align 4, !tbaa !54
  %266 = sext i32 %265 to i64
  %267 = icmp sle i64 %261, %266
  br i1 %267, label %268, label %301

268:                                              ; preds = %264
  %269 = load i64, ptr %10, align 8, !tbaa !9
  %270 = load ptr, ptr %24, align 8, !tbaa !5
  %271 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %270)
          to label %272 unwind label %216

272:                                              ; preds = %268
  %273 = load i32, ptr %271, align 4, !tbaa !54
  %274 = sext i32 %273 to i64
  %275 = icmp sge i64 %269, %274
  br i1 %275, label %276, label %301

276:                                              ; preds = %272
  %277 = load ptr, ptr %7, align 8, !tbaa !5
  %278 = getelementptr inbounds %class.inputDataNE, ptr %277, i32 0, i32 10
  %279 = load i16, ptr %15, align 2, !tbaa !13
  %280 = sext i16 %279 to i32
  %281 = sub nsw i32 %280, 1
  %282 = sext i32 %281 to i64
  %283 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %278, i64 noundef %282) #5
  %284 = load i16, ptr %17, align 2, !tbaa !13
  %285 = sext i16 %284 to i32
  %286 = sub nsw i32 %285, 2
  %287 = sext i32 %286 to i64
  %288 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %283, i64 noundef %287) #5
  %289 = load i16, ptr %20, align 2, !tbaa !13
  %290 = sext i16 %289 to i32
  %291 = sub nsw i32 %290, 1
  %292 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %288, i32 noundef %291)
          to label %293 unwind label %216

293:                                              ; preds = %276
  %294 = getelementptr inbounds %class.voxel, ptr %292, i32 0, i32 5
  %295 = load float, ptr %294, align 8, !tbaa !55
  %296 = load float, ptr %25, align 4, !tbaa !58
  %297 = fcmp oge float %295, %296
  br i1 %297, label %298, label %301

298:                                              ; preds = %293
  %299 = load i16, ptr %26, align 2, !tbaa !13
  %300 = add i16 %299, 1
  store i16 %300, ptr %26, align 2, !tbaa !13
  br label %301

301:                                              ; preds = %298, %293, %272, %264
  %302 = load i64, ptr %9, align 8, !tbaa !9
  %303 = load ptr, ptr %24, align 8, !tbaa !5
  %304 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %303)
          to label %305 unwind label %216

305:                                              ; preds = %301
  %306 = load i32, ptr %304, align 4, !tbaa !54
  %307 = sext i32 %306 to i64
  %308 = icmp sle i64 %302, %307
  br i1 %308, label %309, label %340

309:                                              ; preds = %305
  %310 = load i64, ptr %10, align 8, !tbaa !9
  %311 = load ptr, ptr %24, align 8, !tbaa !5
  %312 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %311)
          to label %313 unwind label %216

313:                                              ; preds = %309
  %314 = load i32, ptr %312, align 4, !tbaa !54
  %315 = sext i32 %314 to i64
  %316 = icmp sge i64 %310, %315
  br i1 %316, label %317, label %340

317:                                              ; preds = %313
  %318 = load ptr, ptr %7, align 8, !tbaa !5
  %319 = getelementptr inbounds %class.inputDataNE, ptr %318, i32 0, i32 10
  %320 = load i16, ptr %15, align 2, !tbaa !13
  %321 = sext i16 %320 to i32
  %322 = sub nsw i32 %321, 1
  %323 = sext i32 %322 to i64
  %324 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %319, i64 noundef %323) #5
  %325 = load i16, ptr %17, align 2, !tbaa !13
  %326 = sext i16 %325 to i64
  %327 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %324, i64 noundef %326) #5
  %328 = load i16, ptr %20, align 2, !tbaa !13
  %329 = sext i16 %328 to i32
  %330 = sub nsw i32 %329, 1
  %331 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %327, i32 noundef %330)
          to label %332 unwind label %216

332:                                              ; preds = %317
  %333 = getelementptr inbounds %class.voxel, ptr %331, i32 0, i32 5
  %334 = load float, ptr %333, align 8, !tbaa !55
  %335 = load float, ptr %25, align 4, !tbaa !58
  %336 = fcmp oge float %334, %335
  br i1 %336, label %337, label %340

337:                                              ; preds = %332
  %338 = load i16, ptr %26, align 2, !tbaa !13
  %339 = add i16 %338, 1
  store i16 %339, ptr %26, align 2, !tbaa !13
  br label %340

340:                                              ; preds = %337, %332, %313, %305
  %341 = load i64, ptr %9, align 8, !tbaa !9
  %342 = load ptr, ptr %24, align 8, !tbaa !5
  %343 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %342)
          to label %344 unwind label %216

344:                                              ; preds = %340
  %345 = load i32, ptr %343, align 4, !tbaa !54
  %346 = sext i32 %345 to i64
  %347 = icmp sle i64 %341, %346
  br i1 %347, label %348, label %381

348:                                              ; preds = %344
  %349 = load i64, ptr %10, align 8, !tbaa !9
  %350 = load ptr, ptr %24, align 8, !tbaa !5
  %351 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %350)
          to label %352 unwind label %216

352:                                              ; preds = %348
  %353 = load i32, ptr %351, align 4, !tbaa !54
  %354 = sext i32 %353 to i64
  %355 = icmp sge i64 %349, %354
  br i1 %355, label %356, label %381

356:                                              ; preds = %352
  %357 = load ptr, ptr %7, align 8, !tbaa !5
  %358 = getelementptr inbounds %class.inputDataNE, ptr %357, i32 0, i32 10
  %359 = load i16, ptr %15, align 2, !tbaa !13
  %360 = sext i16 %359 to i32
  %361 = sub nsw i32 %360, 2
  %362 = sext i32 %361 to i64
  %363 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %358, i64 noundef %362) #5
  %364 = load i16, ptr %17, align 2, !tbaa !13
  %365 = sext i16 %364 to i32
  %366 = sub nsw i32 %365, 1
  %367 = sext i32 %366 to i64
  %368 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %363, i64 noundef %367) #5
  %369 = load i16, ptr %20, align 2, !tbaa !13
  %370 = sext i16 %369 to i32
  %371 = sub nsw i32 %370, 1
  %372 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %368, i32 noundef %371)
          to label %373 unwind label %216

373:                                              ; preds = %356
  %374 = getelementptr inbounds %class.voxel, ptr %372, i32 0, i32 5
  %375 = load float, ptr %374, align 8, !tbaa !55
  %376 = load float, ptr %25, align 4, !tbaa !58
  %377 = fcmp oge float %375, %376
  br i1 %377, label %378, label %381

378:                                              ; preds = %373
  %379 = load i16, ptr %26, align 2, !tbaa !13
  %380 = add i16 %379, 1
  store i16 %380, ptr %26, align 2, !tbaa !13
  br label %381

381:                                              ; preds = %378, %373, %352, %344
  %382 = load i64, ptr %9, align 8, !tbaa !9
  %383 = load ptr, ptr %24, align 8, !tbaa !5
  %384 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %383)
          to label %385 unwind label %216

385:                                              ; preds = %381
  %386 = load i32, ptr %384, align 4, !tbaa !54
  %387 = sext i32 %386 to i64
  %388 = icmp sle i64 %382, %387
  br i1 %388, label %389, label %420

389:                                              ; preds = %385
  %390 = load i64, ptr %10, align 8, !tbaa !9
  %391 = load ptr, ptr %24, align 8, !tbaa !5
  %392 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %391)
          to label %393 unwind label %216

393:                                              ; preds = %389
  %394 = load i32, ptr %392, align 4, !tbaa !54
  %395 = sext i32 %394 to i64
  %396 = icmp sge i64 %390, %395
  br i1 %396, label %397, label %420

397:                                              ; preds = %393
  %398 = load ptr, ptr %7, align 8, !tbaa !5
  %399 = getelementptr inbounds %class.inputDataNE, ptr %398, i32 0, i32 10
  %400 = load i16, ptr %15, align 2, !tbaa !13
  %401 = sext i16 %400 to i64
  %402 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %399, i64 noundef %401) #5
  %403 = load i16, ptr %17, align 2, !tbaa !13
  %404 = sext i16 %403 to i32
  %405 = sub nsw i32 %404, 1
  %406 = sext i32 %405 to i64
  %407 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %402, i64 noundef %406) #5
  %408 = load i16, ptr %20, align 2, !tbaa !13
  %409 = sext i16 %408 to i32
  %410 = sub nsw i32 %409, 1
  %411 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %407, i32 noundef %410)
          to label %412 unwind label %216

412:                                              ; preds = %397
  %413 = getelementptr inbounds %class.voxel, ptr %411, i32 0, i32 5
  %414 = load float, ptr %413, align 8, !tbaa !55
  %415 = load float, ptr %25, align 4, !tbaa !58
  %416 = fcmp oge float %414, %415
  br i1 %416, label %417, label %420

417:                                              ; preds = %412
  %418 = load i16, ptr %26, align 2, !tbaa !13
  %419 = add i16 %418, 1
  store i16 %419, ptr %26, align 2, !tbaa !13
  br label %420

420:                                              ; preds = %417, %412, %393, %385
  %421 = load i16, ptr %26, align 2, !tbaa !13
  %422 = sext i16 %421 to i32
  %423 = icmp sge i32 %422, 3
  br i1 %423, label %424, label %773

424:                                              ; preds = %420
  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
  %425 = load ptr, ptr %24, align 8, !tbaa !5
  %426 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %425)
          to label %427 unwind label %472

427:                                              ; preds = %424
  %428 = load i32, ptr %426, align 4, !tbaa !54
  %429 = sext i32 %428 to i64
  store i64 %429, ptr %28, align 8, !tbaa !9
  %430 = load i64, ptr %28, align 8, !tbaa !9
  %431 = load i64, ptr %21, align 8, !tbaa !9
  %432 = icmp ne i64 %430, %431
  br i1 %432, label %433, label %480

433:                                              ; preds = %427
  %434 = load i64, ptr %9, align 8, !tbaa !9
  %435 = load i64, ptr %28, align 8, !tbaa !9
  %436 = icmp sle i64 %434, %435
  br i1 %436, label %437, label %480

437:                                              ; preds = %433
  %438 = load i64, ptr %10, align 8, !tbaa !9
  %439 = load i64, ptr %28, align 8, !tbaa !9
  %440 = icmp sge i64 %438, %439
  br i1 %440, label %441, label %480

441:                                              ; preds = %437
  %442 = load ptr, ptr %7, align 8, !tbaa !5
  %443 = getelementptr inbounds %class.inputDataNE, ptr %442, i32 0, i32 10
  %444 = load i16, ptr %15, align 2, !tbaa !13
  %445 = sext i16 %444 to i32
  %446 = sub nsw i32 %445, 1
  %447 = sext i32 %446 to i64
  %448 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %443, i64 noundef %447) #5
  %449 = load i16, ptr %17, align 2, !tbaa !13
  %450 = sext i16 %449 to i32
  %451 = sub nsw i32 %450, 1
  %452 = sext i32 %451 to i64
  %453 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %448, i64 noundef %452) #5
  %454 = load i16, ptr %20, align 2, !tbaa !13
  %455 = sext i16 %454 to i32
  %456 = sub nsw i32 %455, 2
  %457 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %453, i32 noundef %456)
          to label %458 unwind label %472

458:                                              ; preds = %441
  %459 = getelementptr inbounds %class.voxel, ptr %457, i32 0, i32 5
  %460 = load float, ptr %459, align 8, !tbaa !55
  %461 = load float, ptr %25, align 4, !tbaa !58
  %462 = fcmp ogt float %460, %461
  br i1 %462, label %463, label %480

463:                                              ; preds = %458
  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 %464 unwind label %476

464:                                              ; preds = %463
  %465 = 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 %466 unwind label %476

466:                                              ; preds = %464
  store { ptr, i8 } %465, ptr %32, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %32, i64 9, i1 false)
  %467 = getelementptr inbounds %"struct.std::pair.88", ptr %29, i32 0, i32 0
  %468 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %467) #5
  %469 = getelementptr inbounds %"struct.std::pair.95", ptr %468, i32 0, i32 1
  %470 = load i16, ptr %469, align 4, !tbaa !59
  %471 = add i16 %470, 1
  store i16 %471, ptr %469, 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 %480

472:                                              ; preds = %702, %685, %650, %633, %600, %583, %548, %531, %497, %480, %441, %424
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %22, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %23, align 4
  br label %772

476:                                              ; preds = %464, %463
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %22, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, 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 %772

480:                                              ; preds = %466, %458, %437, %433, %427
  %481 = load ptr, ptr %24, align 8, !tbaa !5
  %482 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %481)
          to label %483 unwind label %472

483:                                              ; preds = %480
  %484 = load i32, ptr %482, align 4, !tbaa !54
  %485 = sext i32 %484 to i64
  store i64 %485, ptr %28, align 8, !tbaa !9
  %486 = load i64, ptr %28, align 8, !tbaa !9
  %487 = load i64, ptr %21, align 8, !tbaa !9
  %488 = icmp ne i64 %486, %487
  br i1 %488, label %489, label %531

489:                                              ; preds = %483
  %490 = load i64, ptr %9, align 8, !tbaa !9
  %491 = load i64, ptr %28, align 8, !tbaa !9
  %492 = icmp sle i64 %490, %491
  br i1 %492, label %493, label %531

493:                                              ; preds = %489
  %494 = load i64, ptr %10, align 8, !tbaa !9
  %495 = load i64, ptr %28, align 8, !tbaa !9
  %496 = icmp sge i64 %494, %495
  br i1 %496, label %497, label %531

497:                                              ; preds = %493
  %498 = load ptr, ptr %7, align 8, !tbaa !5
  %499 = getelementptr inbounds %class.inputDataNE, ptr %498, i32 0, i32 10
  %500 = load i16, ptr %15, align 2, !tbaa !13
  %501 = sext i16 %500 to i32
  %502 = sub nsw i32 %501, 1
  %503 = sext i32 %502 to i64
  %504 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %499, i64 noundef %503) #5
  %505 = load i16, ptr %17, align 2, !tbaa !13
  %506 = sext i16 %505 to i32
  %507 = sub nsw i32 %506, 1
  %508 = sext i32 %507 to i64
  %509 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %504, i64 noundef %508) #5
  %510 = load i16, ptr %20, align 2, !tbaa !13
  %511 = sext i16 %510 to i32
  %512 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %509, i32 noundef %511)
          to label %513 unwind label %472

513:                                              ; preds = %497
  %514 = getelementptr inbounds %class.voxel, ptr %512, i32 0, i32 5
  %515 = load float, ptr %514, align 8, !tbaa !55
  %516 = load float, ptr %25, align 4, !tbaa !58
  %517 = fcmp ogt float %515, %516
  br i1 %517, label %518, label %531

518:                                              ; preds = %513
  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 %519 unwind label %527

519:                                              ; preds = %518
  %520 = 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 %521 unwind label %527

521:                                              ; preds = %519
  store { ptr, i8 } %520, ptr %36, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %33, ptr align 8 %36, i64 9, i1 false)
  %522 = getelementptr inbounds %"struct.std::pair.88", ptr %33, i32 0, i32 0
  %523 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %522) #5
  %524 = getelementptr inbounds %"struct.std::pair.95", ptr %523, i32 0, i32 1
  %525 = load i16, ptr %524, align 4, !tbaa !59
  %526 = add i16 %525, 1
  store i16 %526, ptr %524, 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 %531

527:                                              ; preds = %519, %518
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %22, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, 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 %772

531:                                              ; preds = %521, %513, %493, %489, %483
  %532 = load ptr, ptr %24, align 8, !tbaa !5
  %533 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %532)
          to label %534 unwind label %472

534:                                              ; preds = %531
  %535 = load i32, ptr %533, align 4, !tbaa !54
  %536 = sext i32 %535 to i64
  store i64 %536, ptr %28, align 8, !tbaa !9
  %537 = load i64, ptr %28, align 8, !tbaa !9
  %538 = load i64, ptr %21, align 8, !tbaa !9
  %539 = icmp ne i64 %537, %538
  br i1 %539, label %540, label %583

540:                                              ; preds = %534
  %541 = load i64, ptr %9, align 8, !tbaa !9
  %542 = load i64, ptr %28, align 8, !tbaa !9
  %543 = icmp sle i64 %541, %542
  br i1 %543, label %544, label %583

544:                                              ; preds = %540
  %545 = load i64, ptr %10, align 8, !tbaa !9
  %546 = load i64, ptr %28, align 8, !tbaa !9
  %547 = icmp sge i64 %545, %546
  br i1 %547, label %548, label %583

548:                                              ; preds = %544
  %549 = load ptr, ptr %7, align 8, !tbaa !5
  %550 = getelementptr inbounds %class.inputDataNE, ptr %549, i32 0, i32 10
  %551 = load i16, ptr %15, align 2, !tbaa !13
  %552 = sext i16 %551 to i32
  %553 = sub nsw i32 %552, 1
  %554 = sext i32 %553 to i64
  %555 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %550, i64 noundef %554) #5
  %556 = load i16, ptr %17, align 2, !tbaa !13
  %557 = sext i16 %556 to i32
  %558 = sub nsw i32 %557, 2
  %559 = sext i32 %558 to i64
  %560 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %555, i64 noundef %559) #5
  %561 = load i16, ptr %20, align 2, !tbaa !13
  %562 = sext i16 %561 to i32
  %563 = sub nsw i32 %562, 1
  %564 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %560, i32 noundef %563)
          to label %565 unwind label %472

565:                                              ; preds = %548
  %566 = getelementptr inbounds %class.voxel, ptr %564, i32 0, i32 5
  %567 = load float, ptr %566, align 8, !tbaa !55
  %568 = load float, ptr %25, align 4, !tbaa !58
  %569 = fcmp ogt float %567, %568
  br i1 %569, label %570, label %583

570:                                              ; preds = %565
  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 %571 unwind label %579

571:                                              ; preds = %570
  %572 = 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 %573 unwind label %579

573:                                              ; preds = %571
  store { ptr, i8 } %572, ptr %40, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %37, ptr align 8 %40, i64 9, i1 false)
  %574 = getelementptr inbounds %"struct.std::pair.88", ptr %37, i32 0, i32 0
  %575 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %574) #5
  %576 = getelementptr inbounds %"struct.std::pair.95", ptr %575, i32 0, i32 1
  %577 = load i16, ptr %576, align 4, !tbaa !59
  %578 = add i16 %577, 1
  store i16 %578, ptr %576, 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 %583

579:                                              ; preds = %571, %570
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %22, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, 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 %772

583:                                              ; preds = %573, %565, %544, %540, %534
  %584 = load ptr, ptr %24, align 8, !tbaa !5
  %585 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %584)
          to label %586 unwind label %472

586:                                              ; preds = %583
  %587 = load i32, ptr %585, align 4, !tbaa !54
  %588 = sext i32 %587 to i64
  store i64 %588, ptr %28, align 8, !tbaa !9
  %589 = load i64, ptr %28, align 8, !tbaa !9
  %590 = load i64, ptr %21, align 8, !tbaa !9
  %591 = icmp ne i64 %589, %590
  br i1 %591, label %592, label %633

592:                                              ; preds = %586
  %593 = load i64, ptr %9, align 8, !tbaa !9
  %594 = load i64, ptr %28, align 8, !tbaa !9
  %595 = icmp sle i64 %593, %594
  br i1 %595, label %596, label %633

596:                                              ; preds = %592
  %597 = load i64, ptr %10, align 8, !tbaa !9
  %598 = load i64, ptr %28, align 8, !tbaa !9
  %599 = icmp sge i64 %597, %598
  br i1 %599, label %600, label %633

600:                                              ; preds = %596
  %601 = load ptr, ptr %7, align 8, !tbaa !5
  %602 = getelementptr inbounds %class.inputDataNE, ptr %601, i32 0, i32 10
  %603 = load i16, ptr %15, align 2, !tbaa !13
  %604 = sext i16 %603 to i32
  %605 = sub nsw i32 %604, 1
  %606 = sext i32 %605 to i64
  %607 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %602, i64 noundef %606) #5
  %608 = load i16, ptr %17, align 2, !tbaa !13
  %609 = sext i16 %608 to i64
  %610 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %607, i64 noundef %609) #5
  %611 = load i16, ptr %20, align 2, !tbaa !13
  %612 = sext i16 %611 to i32
  %613 = sub nsw i32 %612, 1
  %614 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %610, i32 noundef %613)
          to label %615 unwind label %472

615:                                              ; preds = %600
  %616 = getelementptr inbounds %class.voxel, ptr %614, i32 0, i32 5
  %617 = load float, ptr %616, align 8, !tbaa !55
  %618 = load float, ptr %25, align 4, !tbaa !58
  %619 = fcmp ogt float %617, %618
  br i1 %619, label %620, label %633

620:                                              ; preds = %615
  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 %621 unwind label %629

621:                                              ; preds = %620
  %622 = 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 %623 unwind label %629

623:                                              ; preds = %621
  store { ptr, i8 } %622, ptr %44, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %41, ptr align 8 %44, i64 9, i1 false)
  %624 = getelementptr inbounds %"struct.std::pair.88", ptr %41, i32 0, i32 0
  %625 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %624) #5
  %626 = getelementptr inbounds %"struct.std::pair.95", ptr %625, i32 0, i32 1
  %627 = load i16, ptr %626, align 4, !tbaa !59
  %628 = add i16 %627, 1
  store i16 %628, ptr %626, 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 %633

629:                                              ; preds = %621, %620
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %22, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, 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 %772

633:                                              ; preds = %623, %615, %596, %592, %586
  %634 = load ptr, ptr %24, align 8, !tbaa !5
  %635 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef -1, ptr noundef %634)
          to label %636 unwind label %472

636:                                              ; preds = %633
  %637 = load i32, ptr %635, align 4, !tbaa !54
  %638 = sext i32 %637 to i64
  store i64 %638, ptr %28, align 8, !tbaa !9
  %639 = load i64, ptr %28, align 8, !tbaa !9
  %640 = load i64, ptr %21, align 8, !tbaa !9
  %641 = icmp ne i64 %639, %640
  br i1 %641, label %642, label %685

642:                                              ; preds = %636
  %643 = load i64, ptr %9, align 8, !tbaa !9
  %644 = load i64, ptr %28, align 8, !tbaa !9
  %645 = icmp sle i64 %643, %644
  br i1 %645, label %646, label %685

646:                                              ; preds = %642
  %647 = load i64, ptr %10, align 8, !tbaa !9
  %648 = load i64, ptr %28, align 8, !tbaa !9
  %649 = icmp sge i64 %647, %648
  br i1 %649, label %650, label %685

650:                                              ; preds = %646
  %651 = load ptr, ptr %7, align 8, !tbaa !5
  %652 = getelementptr inbounds %class.inputDataNE, ptr %651, i32 0, i32 10
  %653 = load i16, ptr %15, align 2, !tbaa !13
  %654 = sext i16 %653 to i32
  %655 = sub nsw i32 %654, 2
  %656 = sext i32 %655 to i64
  %657 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %652, i64 noundef %656) #5
  %658 = load i16, ptr %17, align 2, !tbaa !13
  %659 = sext i16 %658 to i32
  %660 = sub nsw i32 %659, 1
  %661 = sext i32 %660 to i64
  %662 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %657, i64 noundef %661) #5
  %663 = load i16, ptr %20, align 2, !tbaa !13
  %664 = sext i16 %663 to i32
  %665 = sub nsw i32 %664, 1
  %666 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %662, i32 noundef %665)
          to label %667 unwind label %472

667:                                              ; preds = %650
  %668 = getelementptr inbounds %class.voxel, ptr %666, i32 0, i32 5
  %669 = load float, ptr %668, align 8, !tbaa !55
  %670 = load float, ptr %25, align 4, !tbaa !58
  %671 = fcmp ogt float %669, %670
  br i1 %671, label %672, label %685

672:                                              ; preds = %667
  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 %673 unwind label %681

673:                                              ; preds = %672
  %674 = 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 %675 unwind label %681

675:                                              ; preds = %673
  store { ptr, i8 } %674, ptr %48, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %45, ptr align 8 %48, i64 9, i1 false)
  %676 = getelementptr inbounds %"struct.std::pair.88", ptr %45, i32 0, i32 0
  %677 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %676) #5
  %678 = getelementptr inbounds %"struct.std::pair.95", ptr %677, i32 0, i32 1
  %679 = load i16, ptr %678, align 4, !tbaa !59
  %680 = add i16 %679, 1
  store i16 %680, ptr %678, 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 %685

681:                                              ; preds = %673, %672
  %682 = landingpad { ptr, i32 }
          cleanup
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %22, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, 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 %772

685:                                              ; preds = %675, %667, %646, %642, %636
  %686 = load ptr, ptr %24, align 8, !tbaa !5
  %687 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %13, i32 noundef 1, ptr noundef %686)
          to label %688 unwind label %472

688:                                              ; preds = %685
  %689 = load i32, ptr %687, align 4, !tbaa !54
  %690 = sext i32 %689 to i64
  store i64 %690, ptr %28, align 8, !tbaa !9
  %691 = load i64, ptr %28, align 8, !tbaa !9
  %692 = load i64, ptr %21, align 8, !tbaa !9
  %693 = icmp ne i64 %691, %692
  br i1 %693, label %694, label %735

694:                                              ; preds = %688
  %695 = load i64, ptr %9, align 8, !tbaa !9
  %696 = load i64, ptr %28, align 8, !tbaa !9
  %697 = icmp sle i64 %695, %696
  br i1 %697, label %698, label %735

698:                                              ; preds = %694
  %699 = load i64, ptr %10, align 8, !tbaa !9
  %700 = load i64, ptr %28, align 8, !tbaa !9
  %701 = icmp sge i64 %699, %700
  br i1 %701, label %702, label %735

702:                                              ; preds = %698
  %703 = load ptr, ptr %7, align 8, !tbaa !5
  %704 = getelementptr inbounds %class.inputDataNE, ptr %703, i32 0, i32 10
  %705 = load i16, ptr %15, align 2, !tbaa !13
  %706 = sext i16 %705 to i64
  %707 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIS_I8segmentsSaIS0_EESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %704, i64 noundef %706) #5
  %708 = load i16, ptr %17, align 2, !tbaa !13
  %709 = sext i16 %708 to i32
  %710 = sub nsw i32 %709, 1
  %711 = sext i32 %710 to i64
  %712 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt6vectorI8segmentsSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %707, i64 noundef %711) #5
  %713 = load i16, ptr %20, align 2, !tbaa !13
  %714 = sext i16 %713 to i32
  %715 = sub nsw i32 %714, 1
  %716 = invoke noundef ptr @_ZNK8segments3vxlEi(ptr noundef nonnull align 8 dereferenceable(12) %712, i32 noundef %715)
          to label %717 unwind label %472

717:                                              ; preds = %702
  %718 = getelementptr inbounds %class.voxel, ptr %716, i32 0, i32 5
  %719 = load float, ptr %718, align 8, !tbaa !55
  %720 = load float, ptr %25, align 4, !tbaa !58
  %721 = fcmp ogt float %719, %720
  br i1 %721, label %722, label %735

722:                                              ; preds = %717
  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 %723 unwind label %731

723:                                              ; preds = %722
  %724 = 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 %725 unwind label %731

725:                                              ; preds = %723
  store { ptr, i8 } %724, ptr %52, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 %52, i64 9, i1 false)
  %726 = getelementptr inbounds %"struct.std::pair.88", ptr %49, i32 0, i32 0
  %727 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %726) #5
  %728 = getelementptr inbounds %"struct.std::pair.95", ptr %727, i32 0, i32 1
  %729 = load i16, ptr %728, align 4, !tbaa !59
  %730 = add i16 %729, 1
  store i16 %730, ptr %728, 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 %735

731:                                              ; preds = %723, %722
  %732 = landingpad { ptr, i32 }
          cleanup
  %733 = extractvalue { ptr, i32 } %732, 0
  store ptr %733, ptr %22, align 8
  %734 = extractvalue { ptr, i32 } %732, 1
  store i32 %734, 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 %772

735:                                              ; preds = %725, %717, %698, %694, %688
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  %736 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %27) #5
  %737 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %54, i32 0, i32 0
  store ptr %736, ptr %737, align 8
  %738 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %27) #5
  %739 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %55, i32 0, i32 0
  store ptr %738, ptr %739, align 8
  %740 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %54, i32 0, i32 0
  %741 = load ptr, ptr %740, align 8
  %742 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %55, i32 0, i32 0
  %743 = load ptr, ptr %742, align 8
  %744 = invoke ptr @_ZSt11max_elementISt17_Rb_tree_iteratorISt4pairIKisEE11mapComparerIiEET_S7_S7_T0_(ptr %741, ptr %743)
          to label %745 unwind label %767

745:                                              ; preds = %735
  %746 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.90", ptr %53, i32 0, i32 0
  store ptr %744, ptr %746, align 8
  %747 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #5
  %748 = getelementptr inbounds %"struct.std::pair.95", ptr %747, i32 0, i32 1
  %749 = load i16, ptr %748, align 4, !tbaa !59
  %750 = sext i16 %749 to i32
  %751 = icmp sge i32 %750, 3
  br i1 %751, label %752, label %771

752:                                              ; preds = %745
  %753 = load i64, ptr %14, align 8, !tbaa !11
  %754 = add nsw i64 %753, 1
  store i64 %754, ptr %14, align 8, !tbaa !11
  %755 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #5
  %756 = getelementptr inbounds %"struct.std::pair.95", ptr %755, i32 0, i32 0
  %757 = load i32, ptr %756, align 4, !tbaa !61
  %758 = load ptr, ptr %8, align 8, !tbaa !5
  %759 = load i16, ptr %20, align 2, !tbaa !13
  %760 = sext i16 %759 to i32
  %761 = load i16, ptr %17, align 2, !tbaa !13
  %762 = sext i16 %761 to i32
  %763 = load i16, ptr %15, align 2, !tbaa !13
  %764 = sext i16 %763 to i64
  %765 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %758, i32 noundef %760, i32 noundef %762, i64 noundef %764)
          to label %766 unwind label %767

766:                                              ; preds = %752
  store i32 %757, ptr %765, align 4, !tbaa !54
  br label %771

767:                                              ; preds = %752, %735
  %768 = landingpad { ptr, i32 }
          cleanup
  %769 = extractvalue { ptr, i32 } %768, 0
  store ptr %769, ptr %22, align 8
  %770 = extractvalue { ptr, i32 } %768, 1
  store i32 %770, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  br label %772

771:                                              ; preds = %766, %745
  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 %773

772:                                              ; preds = %767, %731, %681, %629, %579, %527, %476, %472
  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 %774

773:                                              ; preds = %771, %420
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %776

774:                                              ; preds = %772, %216
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #5
  br label %775

775:                                              ; preds = %774, %212
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %780

776:                                              ; preds = %773, %140
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %777

777:                                              ; preds = %776
  %778 = load i16, ptr %20, align 2, !tbaa !13
  %779 = add i16 %778, 1
  store i16 %779, ptr %20, align 2, !tbaa !13
  br label %107, !llvm.loop !62

780:                                              ; preds = %775, %208
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  br label %781

781:                                              ; preds = %780, %204
  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 %806

782:                                              ; preds = %121
  br label %783

783:                                              ; preds = %782
  %784 = load i16, ptr %19, align 2, !tbaa !13
  %785 = add i16 %784, 1
  store i16 %785, ptr %19, align 2, !tbaa !13
  br label %88, !llvm.loop !64

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

787:                                              ; preds = %786
  %788 = load i16, ptr %17, align 2, !tbaa !13
  %789 = add i16 %788, 1
  store i16 %789, ptr %17, align 2, !tbaa !13
  br label %67, !llvm.loop !65

790:                                              ; preds = %74
  br label %791

791:                                              ; preds = %790
  %792 = load i16, ptr %15, align 2, !tbaa !13
  %793 = add i16 %792, 1
  store i16 %793, ptr %15, align 2, !tbaa !13
  br label %58, !llvm.loop !66

794:                                              ; preds = %65
  %795 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.64)
          to label %796 unwind label %802

796:                                              ; preds = %794
  %797 = load i64, ptr %14, align 8, !tbaa !11
  %798 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEx(ptr noundef nonnull align 8 dereferenceable(8) %795, i64 noundef %797)
          to label %799 unwind label %802

799:                                              ; preds = %796
  %800 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %798, ptr noundef @.str.17)
          to label %801 unwind label %802

801:                                              ; preds = %799
  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

802:                                              ; preds = %799, %796, %794
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %22, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %23, align 4
  br label %806

806:                                              ; preds = %802, %781
  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 %807

807:                                              ; preds = %806
  %808 = load ptr, ptr %22, align 8
  %809 = load i32, ptr %23, align 4
  %810 = insertvalue { ptr, i32 } poison, ptr %808, 0
  %811 = insertvalue { ptr, i32 } %810, i32 %809, 1
  resume { ptr, i32 } %811
}

; 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 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.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [15 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 @_Z18growPoresMedStrictRK11inputDataNER10voxelFieldIiEllRKSt6vectorIP6poreNESaIS7_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
  %.not307 = icmp slt i32 %30, 1
  br i1 %.not307, label %._crit_edge310, 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_edge310, label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge305
  %35 = phi i32 [ %44, %._crit_edge305 ], [ %30, %.preheader.lr.ph ]
  %36 = phi i32 [ %45, %._crit_edge305 ], [ %33, %.preheader.lr.ph ]
  %37 = phi i32 [ %47, %._crit_edge305 ], [ 1, %.preheader.lr.ph ]
  %.0309 = phi i64 [ %.1.lcssa, %._crit_edge305 ], [ 0, %.preheader.lr.ph ]
  %.0175308 = phi i16 [ %46, %._crit_edge305 ], [ 1, %.preheader.lr.ph ]
  %.not204301 = icmp slt i32 %36, 1
  br i1 %.not204301, label %._crit_edge305, label %.lr.ph304

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

._crit_edge310:                                   ; preds = %._crit_edge305, %.preheader.lr.ph, %6
  %.0.lcssa = phi i64 [ 0, %6 ], [ 0, %.preheader.lr.ph ], [ %.1.lcssa, %._crit_edge305 ]
  %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.64)
          to label %358 unwind label %363

._crit_edge305.loopexit:                          ; preds = %._crit_edge299
  %.pre314 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge305

._crit_edge305:                                   ; preds = %._crit_edge305.loopexit, %.preheader
  %44 = phi i32 [ %35, %.preheader ], [ %.pre314, %._crit_edge305.loopexit ]
  %45 = phi i32 [ %36, %.preheader ], [ %62, %._crit_edge305.loopexit ]
  %.1.lcssa = phi i64 [ %.0309, %.preheader ], [ %.2.lcssa, %._crit_edge305.loopexit ]
  %46 = add i16 %.0175308, 1
  %47 = sext i16 %46 to i32
  %.not = icmp slt i32 %44, %47
  br i1 %.not, label %._crit_edge310, label %.preheader, !llvm.loop !45

48:                                               ; preds = %.lr.ph304, %._crit_edge299
  %49 = phi i32 [ 1, %.lr.ph304 ], [ %61, %._crit_edge299 ]
  %.1303 = phi i64 [ %.0309, %.lr.ph304 ], [ %.2.lcssa, %._crit_edge299 ]
  %.0176302 = phi i16 [ 1, %.lr.ph304 ], [ %60, %._crit_edge299 ]
  %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.ph298, label %._crit_edge299

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

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

63:                                               ; preds = %.lr.ph298, %._crit_edge
  %64 = phi i32 [ %55, %.lr.ph298 ], [ %73, %._crit_edge ]
  %65 = phi ptr [ %.pre, %.lr.ph298 ], [ %74, %._crit_edge ]
  %.2296 = phi i64 [ %.1303, %.lr.ph298 ], [ %.3.lcssa, %._crit_edge ]
  %.0177295 = phi i16 [ 0, %.lr.ph298 ], [ %75, %._crit_edge ]
  %66 = sext i16 %.0177295 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
  %.0178291 = add i16 %69, 1
  %70 = sext i16 %.0178291 to i32
  %71 = getelementptr i8, ptr %67, i64 16
  %72 = load i32, ptr %71, align 8, !tbaa !52
  %.not205292 = icmp slt i32 %72, %70
  br i1 %.not205292, label %._crit_edge, label %.lr.ph

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

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

.lr.ph:                                           ; preds = %63, %352
  %78 = phi i32 [ %353, %352 ], [ %70, %63 ]
  %.0178294 = phi i16 [ %.0178, %352 ], [ %.0178291, %63 ]
  %.3293 = phi i64 [ %.6, %352 ], [ %.2296, %63 ]
  %79 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(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 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef %78, i32 noundef %49, i64 noundef %40)
  %83 = icmp eq i64 %81, %5
  br i1 %83, label %84, label %352

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

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

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

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

104:                                              ; preds = %99
  %105 = getelementptr inbounds i8, ptr %103, i64 16
  %106 = load float, ptr %105, align 8, !tbaa !55
  %107 = fcmp ult float %106, %91
  br i1 %107, label %113, label %108

108:                                              ; preds = %104
  br label %113

109:                                              ; preds = %84
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %365

111:                                              ; preds = %193, %175, %157, %139, %121, %99
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %365

113:                                              ; preds = %108, %104, %95, %89
  %.0187 = phi i16 [ 1, %108 ], [ 0, %104 ], [ 0, %95 ], [ 0, %89 ]
  %114 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %82)
  %115 = load i32, ptr %114, align 4, !tbaa !54
  %116 = sext i32 %115 to i64
  %.not208 = icmp slt i64 %116, %2
  br i1 %.not208, label %131, label %117

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

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

125:                                              ; preds = %121
  %126 = getelementptr inbounds i8, ptr %124, i64 16
  %127 = load float, ptr %126, align 8, !tbaa !55
  %128 = fcmp ult float %127, %91
  br i1 %128, label %131, label %129

129:                                              ; preds = %125
  %130 = add nuw nsw i16 %.0187, 1
  br label %131

131:                                              ; preds = %129, %125, %117, %113
  %.1188 = phi i16 [ %130, %129 ], [ %.0187, %125 ], [ %.0187, %117 ], [ %.0187, %113 ]
  %132 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %82)
  %133 = load i32, ptr %132, align 4, !tbaa !54
  %134 = sext i32 %133 to i64
  %.not210 = icmp slt i64 %134, %2
  br i1 %.not210, label %149, label %135

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

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

143:                                              ; preds = %139
  %144 = getelementptr inbounds i8, ptr %142, i64 16
  %145 = load float, ptr %144, align 8, !tbaa !55
  %146 = fcmp ult float %145, %91
  br i1 %146, label %149, label %147

147:                                              ; preds = %143
  %148 = add nuw nsw i16 %.1188, 1
  br label %149

149:                                              ; preds = %147, %143, %135, %131
  %.2189 = phi i16 [ %148, %147 ], [ %.1188, %143 ], [ %.1188, %135 ], [ %.1188, %131 ]
  %150 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %82)
  %151 = load i32, ptr %150, align 4, !tbaa !54
  %152 = sext i32 %151 to i64
  %.not212 = icmp slt i64 %152, %2
  br i1 %.not212, label %167, label %153

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

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

161:                                              ; preds = %157
  %162 = getelementptr inbounds i8, ptr %160, i64 16
  %163 = load float, ptr %162, align 8, !tbaa !55
  %164 = fcmp ult float %163, %91
  br i1 %164, label %167, label %165

165:                                              ; preds = %161
  %166 = add nuw nsw i16 %.2189, 1
  br label %167

167:                                              ; preds = %165, %161, %153, %149
  %.3190 = phi i16 [ %166, %165 ], [ %.2189, %161 ], [ %.2189, %153 ], [ %.2189, %149 ]
  %168 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %82)
  %169 = load i32, ptr %168, align 4, !tbaa !54
  %170 = sext i32 %169 to i64
  %.not214 = icmp slt i64 %170, %2
  br i1 %.not214, label %185, label %171

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

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

179:                                              ; preds = %175
  %180 = getelementptr inbounds i8, ptr %178, i64 16
  %181 = load float, ptr %180, align 8, !tbaa !55
  %182 = fcmp ult float %181, %91
  br i1 %182, label %185, label %183

183:                                              ; preds = %179
  %184 = add nuw nsw i16 %.3190, 1
  br label %185

185:                                              ; preds = %183, %179, %171, %167
  %.4191 = phi i16 [ %184, %183 ], [ %.3190, %179 ], [ %.3190, %171 ], [ %.3190, %167 ]
  %186 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %82)
  %187 = load i32, ptr %186, align 4, !tbaa !54
  %188 = sext i32 %187 to i64
  %.not216 = icmp slt i64 %188, %2
  br i1 %.not216, label %203, label %189

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

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

197:                                              ; preds = %193
  %198 = getelementptr inbounds i8, ptr %196, i64 16
  %199 = load float, ptr %198, align 8, !tbaa !55
  %200 = fcmp ult float %199, %91
  br i1 %200, label %203, label %201

201:                                              ; preds = %197
  %202 = add nuw nsw i16 %.4191, 1
  br label %203

203:                                              ; preds = %201, %197, %189, %185
  %.5192 = phi i16 [ %202, %201 ], [ %.4191, %197 ], [ %.4191, %189 ], [ %.4191, %185 ]
  %204 = icmp ugt i16 %.5192, 2
  br i1 %204, label %205, label %352

205:                                              ; preds = %203
  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
  %206 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %82)
  %207 = load i32, ptr %206, align 4, !tbaa !54
  %208 = sext i32 %207 to i64
  store i64 %208, ptr %9, align 8, !tbaa !59
  %.not218 = icmp eq i32 %207, %80
  %.not219 = icmp slt i64 %208, %2
  %or.cond = or i1 %.not218, %.not219
  %.not220 = icmp sgt i64 %208, %3
  %or.cond240 = or i1 %.not220, %or.cond
  br i1 %or.cond240, label %229, label %209

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

214:                                              ; preds = %209
  %215 = getelementptr inbounds i8, ptr %213, i64 16
  %216 = load float, ptr %215, align 8, !tbaa !55
  %217 = fcmp ogt float %216, %91
  br i1 %217, label %218, label %229

218:                                              ; preds = %214
  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)
  %219 = 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 %220 unwind label %227

220:                                              ; preds = %218
  %.fca.0.extract19 = extractvalue { ptr, i8 } %219, 0
  %.fca.1.extract20 = extractvalue { ptr, i8 } %219, 1
  store ptr %.fca.0.extract19, ptr %10, align 8
  store i8 %.fca.1.extract20, ptr %.sroa.222.0..sroa_idx, align 8
  %221 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #4
  %222 = getelementptr inbounds i8, ptr %221, i64 4
  %223 = load i16, ptr %222, align 4, !tbaa !60
  %224 = add i16 %223, 1
  store i16 %224, ptr %222, 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 %229

225:                                              ; preds = %317, %296, %275, %254, %233, %209
  %226 = landingpad { ptr, i32 }
          cleanup
  br label %351

227:                                              ; preds = %218
  %228 = 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 %351

229:                                              ; preds = %220, %214, %205
  %230 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_iEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %82)
  %231 = load i32, ptr %230, align 4, !tbaa !54
  %232 = sext i32 %231 to i64
  store i64 %232, ptr %9, align 8, !tbaa !59
  %.not221 = icmp eq i32 %231, %80
  %.not222 = icmp slt i64 %232, %2
  %or.cond241 = or i1 %.not221, %.not222
  %.not223 = icmp sgt i64 %232, %3
  %or.cond242 = or i1 %.not223, %or.cond241
  br i1 %or.cond242, label %250, label %233

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

237:                                              ; preds = %233
  %238 = getelementptr inbounds i8, ptr %236, i64 16
  %239 = load float, ptr %238, align 8, !tbaa !55
  %240 = fcmp ogt float %239, %91
  br i1 %240, label %241, label %250

241:                                              ; preds = %237
  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)
  %242 = 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 %243 unwind label %248

243:                                              ; preds = %241
  %.fca.0.extract15 = extractvalue { ptr, i8 } %242, 0
  %.fca.1.extract16 = extractvalue { ptr, i8 } %242, 1
  store ptr %.fca.0.extract15, ptr %13, align 8
  store i8 %.fca.1.extract16, ptr %.sroa.218.0..sroa_idx, align 8
  %244 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #4
  %245 = getelementptr inbounds i8, ptr %244, i64 4
  %246 = load i16, ptr %245, align 4, !tbaa !60
  %247 = add i16 %246, 1
  store i16 %247, ptr %245, 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 %250

248:                                              ; preds = %241
  %249 = 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 %351

250:                                              ; preds = %243, %237, %229
  %251 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %82)
  %252 = load i32, ptr %251, align 4, !tbaa !54
  %253 = sext i32 %252 to i64
  store i64 %253, ptr %9, align 8, !tbaa !59
  %.not224 = icmp eq i32 %252, %80
  %.not225 = icmp slt i64 %253, %2
  %or.cond243 = or i1 %.not224, %.not225
  %.not226 = icmp sgt i64 %253, %3
  %or.cond244 = or i1 %.not226, %or.cond243
  br i1 %or.cond244, label %271, label %254

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

258:                                              ; preds = %254
  %259 = getelementptr inbounds i8, ptr %257, i64 16
  %260 = load float, ptr %259, align 8, !tbaa !55
  %261 = fcmp ogt float %260, %91
  br i1 %261, label %262, label %271

262:                                              ; preds = %258
  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)
  %263 = 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 %264 unwind label %269

264:                                              ; preds = %262
  %.fca.0.extract11 = extractvalue { ptr, i8 } %263, 0
  %.fca.1.extract12 = extractvalue { ptr, i8 } %263, 1
  store ptr %.fca.0.extract11, ptr %16, align 8
  store i8 %.fca.1.extract12, ptr %.sroa.214.0..sroa_idx, align 8
  %265 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #4
  %266 = getelementptr inbounds i8, ptr %265, i64 4
  %267 = load i16, ptr %266, align 4, !tbaa !60
  %268 = add i16 %267, 1
  store i16 %268, ptr %266, 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 %271

269:                                              ; preds = %262
  %270 = 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 %351

271:                                              ; preds = %264, %258, %250
  %272 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_jEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %82)
  %273 = load i32, ptr %272, align 4, !tbaa !54
  %274 = sext i32 %273 to i64
  store i64 %274, ptr %9, align 8, !tbaa !59
  %.not227 = icmp eq i32 %273, %80
  %.not228 = icmp slt i64 %274, %2
  %or.cond245 = or i1 %.not227, %.not228
  %.not229 = icmp sgt i64 %274, %3
  %or.cond246 = or i1 %.not229, %or.cond245
  br i1 %or.cond246, label %292, label %275

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

279:                                              ; preds = %275
  %280 = getelementptr inbounds i8, ptr %278, i64 16
  %281 = load float, ptr %280, align 8, !tbaa !55
  %282 = fcmp ogt float %281, %91
  br i1 %282, label %283, label %292

283:                                              ; preds = %279
  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)
  %284 = 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 %285 unwind label %290

285:                                              ; preds = %283
  %.fca.0.extract7 = extractvalue { ptr, i8 } %284, 0
  %.fca.1.extract8 = extractvalue { ptr, i8 } %284, 1
  store ptr %.fca.0.extract7, ptr %19, align 8
  store i8 %.fca.1.extract8, ptr %.sroa.210.0..sroa_idx, align 8
  %286 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #4
  %287 = getelementptr inbounds i8, ptr %286, i64 4
  %288 = load i16, ptr %287, align 4, !tbaa !60
  %289 = add i16 %288, 1
  store i16 %289, ptr %287, 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 %292

290:                                              ; preds = %283
  %291 = 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 %351

292:                                              ; preds = %285, %279, %271
  %293 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef -1, ptr noundef nonnull %82)
  %294 = load i32, ptr %293, align 4, !tbaa !54
  %295 = sext i32 %294 to i64
  store i64 %295, ptr %9, align 8, !tbaa !59
  %.not230 = icmp eq i32 %294, %80
  %.not231 = icmp slt i64 %295, %2
  %or.cond247 = or i1 %.not230, %.not231
  %.not232 = icmp sgt i64 %295, %3
  %or.cond248 = or i1 %.not232, %or.cond247
  br i1 %or.cond248, label %313, label %296

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

300:                                              ; preds = %296
  %301 = getelementptr inbounds i8, ptr %299, i64 16
  %302 = load float, ptr %301, align 8, !tbaa !55
  %303 = fcmp ogt float %302, %91
  br i1 %303, label %304, label %313

304:                                              ; preds = %300
  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)
  %305 = 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 %306 unwind label %311

306:                                              ; preds = %304
  %.fca.0.extract3 = extractvalue { ptr, i8 } %305, 0
  %.fca.1.extract4 = extractvalue { ptr, i8 } %305, 1
  store ptr %.fca.0.extract3, ptr %22, align 8
  store i8 %.fca.1.extract4, ptr %.sroa.26.0..sroa_idx, align 8
  %307 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #4
  %308 = getelementptr inbounds i8, ptr %307, i64 4
  %309 = load i16, ptr %308, align 4, !tbaa !60
  %310 = add i16 %309, 1
  store i16 %310, ptr %308, 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 %313

311:                                              ; preds = %304
  %312 = 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 %351

313:                                              ; preds = %306, %300, %292
  %314 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK10voxelFieldIiE3v_kEiPKi(ptr noundef nonnull align 8 dereferenceable(56) %7, i32 noundef 1, ptr noundef nonnull %82)
  %315 = load i32, ptr %314, align 4, !tbaa !54
  %316 = sext i32 %315 to i64
  store i64 %316, ptr %9, align 8, !tbaa !59
  %.not233 = icmp eq i32 %315, %80
  %.not234 = icmp slt i64 %316, %2
  %or.cond249 = or i1 %.not233, %.not234
  %.not235 = icmp sgt i64 %316, %3
  %or.cond250 = or i1 %.not235, %or.cond249
  br i1 %or.cond250, label %334, label %317

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

321:                                              ; preds = %317
  %322 = getelementptr inbounds i8, ptr %320, i64 16
  %323 = load float, ptr %322, align 8, !tbaa !55
  %324 = fcmp ogt float %323, %91
  br i1 %324, label %325, label %334

325:                                              ; preds = %321
  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)
  %326 = 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 %327 unwind label %332

327:                                              ; preds = %325
  %.fca.0.extract = extractvalue { ptr, i8 } %326, 0
  %.fca.1.extract = extractvalue { ptr, i8 } %326, 1
  store ptr %.fca.0.extract, ptr %25, align 8
  store i8 %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  %328 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #4
  %329 = getelementptr inbounds i8, ptr %328, i64 4
  %330 = load i16, ptr %329, align 4, !tbaa !60
  %331 = add i16 %330, 1
  store i16 %331, ptr %329, 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 %334

332:                                              ; preds = %325
  %333 = 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 %351

334:                                              ; preds = %327, %321, %313
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #4
  %335 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  %336 = call ptr @_ZNSt3mapIisSt4lessIiESaISt4pairIKisEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %8) #4
  %337 = invoke ptr @_ZSt11max_elementISt17_Rb_tree_iteratorISt4pairIKisEE11mapComparerIiEET_S7_S7_T0_(ptr %335, ptr %336)
          to label %338 unwind label %348

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

343:                                              ; preds = %338
  %344 = add nsw i64 %.3293, 1
  %345 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKisEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #4
  %346 = load i32, ptr %345, align 4, !tbaa !62
  %347 = 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 %346, ptr %347, align 4, !tbaa !54
  br label %350

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

350:                                              ; preds = %343, %338
  %.4 = phi i64 [ %344, %343 ], [ %.3293, %338 ]
  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 %352

351:                                              ; preds = %348, %332, %311, %290, %269, %248, %227, %225
  %.pn = phi { ptr, i32 } [ %349, %348 ], [ %333, %332 ], [ %226, %225 ], [ %312, %311 ], [ %291, %290 ], [ %270, %269 ], [ %249, %248 ], [ %228, %227 ]
  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 %365

352:                                              ; preds = %203, %350, %.lr.ph
  %.6 = phi i64 [ %.3293, %.lr.ph ], [ %.4, %350 ], [ %.3293, %203 ]
  %.0178 = add i16 %.0178294, 1
  %353 = sext i16 %.0178 to i32
  %354 = load ptr, ptr %53, align 8, !tbaa !50
  %355 = getelementptr %class.segment, ptr %354, i64 %66
  %356 = getelementptr i8, ptr %355, i64 16
  %357 = load i32, ptr %356, align 8, !tbaa !52
  %.not205 = icmp slt i32 %357, %353
  br i1 %.not205, label %._crit_edge.loopexit, label %.lr.ph, !llvm.loop !63

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

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

362:                                              ; preds = %360
  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

363:                                              ; preds = %360, %358, %._crit_edge310
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %365

365:                                              ; preds = %109, %351, %111, %363
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %364, %363 ], [ %110, %109 ], [ %.pn, %351 ], [ %112, %111 ]
  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 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