; LLVM IR from erayzesen/QuarkPhysics :: QuarkPhysics/qmesh.ll (ZN5QMesh25GenerateRectangleMeshDataE7QVectorS0_S0_f)

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

%"struct.QMesh::MeshData" = type <{ %"class.std::vector.15", %"class.std::vector.25", %"class.std::vector.127", %"class.std::vector.127", %"class.std::vector.127", %"class.std::vector.131", %"class.std::vector.131", %"class.std::vector.111", %"class.std::vector.20", %struct.QVector, float, [4 x i8] }>
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<QVector, std::allocator<QVector>>::_Vector_impl" }
%"struct.std::_Vector_base<QVector, std::allocator<QVector>>::_Vector_impl" = type { %"struct.std::_Vector_base<QVector, std::allocator<QVector>>::_Vector_impl_data" }
%"struct.std::_Vector_base<QVector, std::allocator<QVector>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.127" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::vector.131" = type { %"struct.std::_Vector_base.132" }
%"struct.std::_Vector_base.132" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.111" = type { %"struct.std::_Vector_base.112" }
%"struct.std::_Vector_base.112" = 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::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.QVector = type { float, float }
%"class.std::initializer_list.150" = type { ptr, i64 }
%"class.std::initializer_list.151" = type { ptr, i64 }
%"struct.std::pair.136" = type { i32, i32 }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.113" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.153" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.152" = type { ptr }

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_Zpl7QVectorS_(<2 x float>, <2 x float>) #1

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_Zml7QVectorf(<2 x float>, float 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 uwtable
declare dso_local <2 x float> @_Zmi7QVectorS_(<2 x float>, <2 x float>) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(8)) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5QMesh8MeshDataD2Ev(ptr noundef nonnull align 8 dereferenceable(276)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5QMesh25GenerateRectangleMeshDataE7QVectorS0_S0_f(ptr dead_on_unwind noalias writable sret(%"struct.QMesh::MeshData") align 8 %0, <2 x float> %1, <2 x float> %2, <2 x float> %3, float noundef %4) #1 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca %struct.QVector, align 4
  %8 = alloca %struct.QVector, align 4
  %9 = alloca %struct.QVector, align 4
  %10 = alloca float, align 4
  %11 = alloca i1, align 1
  %12 = alloca %struct.QVector, align 4
  %13 = alloca %struct.QVector, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca %struct.QVector, align 4
  %17 = alloca %struct.QVector, align 4
  %18 = alloca %struct.QVector, align 4
  %19 = alloca %struct.QVector, align 4
  %20 = alloca %struct.QVector, align 4
  %21 = alloca %struct.QVector, align 4
  %22 = alloca %struct.QVector, align 4
  %23 = alloca %struct.QVector, align 4
  %24 = alloca %struct.QVector, align 4
  %25 = alloca %struct.QVector, align 4
  %26 = alloca %struct.QVector, align 4
  %27 = alloca %struct.QVector, align 4
  %28 = alloca %"class.std::initializer_list.150", align 8
  %29 = alloca [4 x float], align 4
  %30 = alloca %"class.std::initializer_list.151", align 8
  %31 = alloca [4 x i8], align 1
  %32 = alloca %"class.std::initializer_list.151", align 8
  %33 = alloca [4 x i8], align 1
  %34 = alloca %"class.std::initializer_list.151", align 8
  %35 = alloca [4 x i8], align 1
  %36 = alloca i32, align 4
  %37 = alloca %"struct.std::pair.136", align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %"struct.std::pair.136", align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca %"struct.std::pair.136", align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca %"struct.std::pair.136", align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca %"struct.std::pair.136", align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca %"struct.std::pair.136", align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca %"class.std::vector.111", align 8
  %56 = alloca %"class.std::initializer_list", align 8
  %57 = alloca [3 x i32], align 4
  %58 = alloca %"class.std::allocator.113", align 1
  %59 = alloca %"class.std::vector.111", align 8
  %60 = alloca %"class.std::initializer_list", align 8
  %61 = alloca [3 x i32], align 4
  %62 = alloca %"class.std::allocator.113", align 1
  %63 = alloca %struct.QVector, align 4
  %64 = alloca %struct.QVector, align 4
  %65 = alloca %struct.QVector, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca %struct.QVector, align 4
  %70 = alloca %struct.QVector, align 4
  %71 = alloca %struct.QVector, align 4
  %72 = alloca %struct.QVector, align 4
  %73 = alloca %struct.QVector, align 4
  %74 = alloca %struct.QVector, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca %"struct.std::pair.136", align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %"struct.std::pair.136", align 4
  %82 = alloca float, align 4
  %83 = alloca %"struct.std::pair.136", align 4
  %84 = alloca float, align 4
  %85 = alloca %"struct.std::pair.136", align 4
  %86 = alloca float, align 4
  %87 = alloca float, align 4
  %88 = alloca %"class.std::vector.131", align 8
  %89 = alloca %"class.std::vector.131", align 8
  %90 = alloca %"class.__gnu_cxx::__normal_iterator.153", align 8
  %91 = alloca %"class.__gnu_cxx::__normal_iterator.152", align 8
  %92 = alloca %"class.__gnu_cxx::__normal_iterator.152", align 8
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca %"class.__gnu_cxx::__normal_iterator.153", align 8
  %96 = alloca %"class.__gnu_cxx::__normal_iterator.152", align 8
  %97 = alloca %"class.__gnu_cxx::__normal_iterator.152", align 8
  %98 = alloca %"class.__gnu_cxx::__normal_iterator.152", align 8
  %99 = alloca %"class.std::vector.111", align 8
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %"class.std::vector.111", align 8
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca %"class.std::vector.111", align 8
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  store ptr %0, ptr %6, align 8
  store <2 x float> %1, ptr %7, align 4
  store <2 x float> %2, ptr %8, align 4
  store <2 x float> %3, ptr %9, align 4
  store float %4, ptr %10, align 4, !tbaa !5
  store i1 false, ptr %11, align 1
  call void @_ZN5QMesh8MeshDataC2Ev(ptr noundef nonnull align 8 dereferenceable(276) %0)
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %13, ptr align 4 %7, i64 8, i1 false), !tbaa.struct !9
  %111 = load <2 x float>, ptr %13, align 4
  %112 = invoke <2 x float> @_Zml7QVectorf(<2 x float> %111, float noundef 5.000000e-01)
          to label %113 unwind label %229

113:                                              ; preds = %5
  store <2 x float> %112, ptr %12, align 4
  %114 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %115 = load float, ptr %114, align 4, !tbaa !10
  %116 = fcmp ole float %115, 1.000000e+00
  br i1 %116, label %117, label %358

117:                                              ; preds = %113
  %118 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 1
  %119 = load float, ptr %118, align 4, !tbaa !12
  %120 = fcmp ole float %119, 1.000000e+00
  br i1 %120, label %121, label %358

121:                                              ; preds = %117
  %122 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %123 = getelementptr inbounds %struct.QVector, ptr %12, i32 0, i32 0
  %124 = load float, ptr %123, align 4, !tbaa !10
  %125 = fneg float %124
  %126 = getelementptr inbounds %struct.QVector, ptr %12, i32 0, i32 1
  %127 = load float, ptr %126, align 4, !tbaa !12
  %128 = fneg float %127
  invoke void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef %125, float noundef %128)
          to label %129 unwind label %233

129:                                              ; preds = %121
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %18, ptr align 4 %8, i64 8, i1 false), !tbaa.struct !9
  %130 = load <2 x float>, ptr %17, align 4
  %131 = load <2 x float>, ptr %18, align 4
  %132 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %130, <2 x float> %131)
          to label %133 unwind label %233

133:                                              ; preds = %129
  store <2 x float> %132, ptr %16, align 4
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %122, ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %134 unwind label %233

134:                                              ; preds = %133
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  %135 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %136 = getelementptr inbounds %struct.QVector, ptr %12, i32 0, i32 0
  %137 = load float, ptr %136, align 4, !tbaa !10
  %138 = getelementptr inbounds %struct.QVector, ptr %12, i32 0, i32 1
  %139 = load float, ptr %138, align 4, !tbaa !12
  %140 = fneg float %139
  invoke void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef %137, float noundef %140)
          to label %141 unwind label %237

141:                                              ; preds = %134
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %21, ptr align 4 %8, i64 8, i1 false), !tbaa.struct !9
  %142 = load <2 x float>, ptr %20, align 4
  %143 = load <2 x float>, ptr %21, align 4
  %144 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %142, <2 x float> %143)
          to label %145 unwind label %237

145:                                              ; preds = %141
  store <2 x float> %144, ptr %19, align 4
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %135, ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %146 unwind label %237

146:                                              ; preds = %145
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  %147 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %148 = getelementptr inbounds %struct.QVector, ptr %12, i32 0, i32 0
  %149 = load float, ptr %148, align 4, !tbaa !10
  %150 = getelementptr inbounds %struct.QVector, ptr %12, i32 0, i32 1
  %151 = load float, ptr %150, align 4, !tbaa !12
  invoke void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef %149, float noundef %151)
          to label %152 unwind label %241

152:                                              ; preds = %146
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 4 %8, i64 8, i1 false), !tbaa.struct !9
  %153 = load <2 x float>, ptr %23, align 4
  %154 = load <2 x float>, ptr %24, align 4
  %155 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %153, <2 x float> %154)
          to label %156 unwind label %241

156:                                              ; preds = %152
  store <2 x float> %155, ptr %22, align 4
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %147, ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %157 unwind label %241

157:                                              ; preds = %156
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  %158 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %159 = getelementptr inbounds %struct.QVector, ptr %12, i32 0, i32 0
  %160 = load float, ptr %159, align 4, !tbaa !10
  %161 = fneg float %160
  %162 = getelementptr inbounds %struct.QVector, ptr %12, i32 0, i32 1
  %163 = load float, ptr %162, align 4, !tbaa !12
  invoke void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef %161, float noundef %163)
          to label %164 unwind label %245

164:                                              ; preds = %157
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %27, ptr align 4 %8, i64 8, i1 false), !tbaa.struct !9
  %165 = load <2 x float>, ptr %26, align 4
  %166 = load <2 x float>, ptr %27, align 4
  %167 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %165, <2 x float> %166)
          to label %168 unwind label %245

168:                                              ; preds = %164
  store <2 x float> %167, ptr %25, align 4
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %158, ptr noundef nonnull align 4 dereferenceable(8) %25)
          to label %169 unwind label %245

169:                                              ; preds = %168
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #8
  %170 = load float, ptr %10, align 4, !tbaa !5
  store float %170, ptr %29, align 4, !tbaa !5
  %171 = getelementptr inbounds float, ptr %29, i64 1
  %172 = load float, ptr %10, align 4, !tbaa !5
  store float %172, ptr %171, align 4, !tbaa !5
  %173 = getelementptr inbounds float, ptr %29, i64 2
  %174 = load float, ptr %10, align 4, !tbaa !5
  store float %174, ptr %173, align 4, !tbaa !5
  %175 = getelementptr inbounds float, ptr %29, i64 3
  %176 = load float, ptr %10, align 4, !tbaa !5
  store float %176, ptr %175, align 4, !tbaa !5
  %177 = getelementptr inbounds %"class.std::initializer_list.150", ptr %28, i32 0, i32 0
  store ptr %29, ptr %177, align 8, !tbaa !13
  %178 = getelementptr inbounds %"class.std::initializer_list.150", ptr %28, i32 0, i32 1
  store i64 4, ptr %178, align 8, !tbaa !17
  %179 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 1
  %180 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 0
  %181 = load ptr, ptr %180, align 8
  %182 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 1
  %183 = load i64, ptr %182, align 8
  %184 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIfSaIfEEaSESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %179, ptr %181, i64 %183)
          to label %185 unwind label %249

185:                                              ; preds = %169
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  store i8 0, ptr %31, align 1, !tbaa !18
  %186 = getelementptr inbounds i8, ptr %31, i64 1
  store i8 0, ptr %186, align 1, !tbaa !18
  %187 = getelementptr inbounds i8, ptr %31, i64 2
  store i8 0, ptr %187, align 1, !tbaa !18
  %188 = getelementptr inbounds i8, ptr %31, i64 3
  store i8 0, ptr %188, align 1, !tbaa !18
  %189 = getelementptr inbounds %"class.std::initializer_list.151", ptr %30, i32 0, i32 0
  store ptr %31, ptr %189, align 8, !tbaa !20
  %190 = getelementptr inbounds %"class.std::initializer_list.151", ptr %30, i32 0, i32 1
  store i64 4, ptr %190, align 8, !tbaa !22
  %191 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 2
  %192 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 0
  %193 = load ptr, ptr %192, align 8
  %194 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 1
  %195 = load i64, ptr %194, align 8
  %196 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIbSaIbEEaSESt16initializer_listIbE(ptr noundef nonnull align 8 dereferenceable(40) %191, ptr %193, i64 %195)
          to label %197 unwind label %253

197:                                              ; preds = %185
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store i8 1, ptr %33, align 1, !tbaa !18
  %198 = getelementptr inbounds i8, ptr %33, i64 1
  store i8 1, ptr %198, align 1, !tbaa !18
  %199 = getelementptr inbounds i8, ptr %33, i64 2
  store i8 1, ptr %199, align 1, !tbaa !18
  %200 = getelementptr inbounds i8, ptr %33, i64 3
  store i8 1, ptr %200, align 1, !tbaa !18
  %201 = getelementptr inbounds %"class.std::initializer_list.151", ptr %32, i32 0, i32 0
  store ptr %33, ptr %201, align 8, !tbaa !20
  %202 = getelementptr inbounds %"class.std::initializer_list.151", ptr %32, i32 0, i32 1
  store i64 4, ptr %202, align 8, !tbaa !22
  %203 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 3
  %204 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 0
  %205 = load ptr, ptr %204, align 8
  %206 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 1
  %207 = load i64, ptr %206, align 8
  %208 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIbSaIbEEaSESt16initializer_listIbE(ptr noundef nonnull align 8 dereferenceable(40) %203, ptr %205, i64 %207)
          to label %209 unwind label %257

209:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  store i8 0, ptr %35, align 1, !tbaa !18
  %210 = getelementptr inbounds i8, ptr %35, i64 1
  store i8 0, ptr %210, align 1, !tbaa !18
  %211 = getelementptr inbounds i8, ptr %35, i64 2
  store i8 0, ptr %211, align 1, !tbaa !18
  %212 = getelementptr inbounds i8, ptr %35, i64 3
  store i8 0, ptr %212, align 1, !tbaa !18
  %213 = getelementptr inbounds %"class.std::initializer_list.151", ptr %34, i32 0, i32 0
  store ptr %35, ptr %213, align 8, !tbaa !20
  %214 = getelementptr inbounds %"class.std::initializer_list.151", ptr %34, i32 0, i32 1
  store i64 4, ptr %214, align 8, !tbaa !22
  %215 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 4
  %216 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 0
  %217 = load ptr, ptr %216, align 8
  %218 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 1
  %219 = load i64, ptr %218, align 8
  %220 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIbSaIbEEaSESt16initializer_listIbE(ptr noundef nonnull align 8 dereferenceable(40) %215, ptr %217, i64 %219)
          to label %221 unwind label %261

221:                                              ; preds = %209
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  store i32 0, ptr %36, align 4, !tbaa !23
  br label %222

222:                                              ; preds = %268, %221
  %223 = load i32, ptr %36, align 4, !tbaa !23
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 0
  %226 = call noundef i64 @_ZNKSt6vectorI7QVectorSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %225) #8
  %227 = icmp ult i64 %224, %226
  br i1 %227, label %265, label %228

228:                                              ; preds = %222
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %275

229:                                              ; preds = %5
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %14, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %15, align 4
  br label %872

233:                                              ; preds = %133, %129, %121
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %14, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %872

237:                                              ; preds = %145, %141, %134
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %14, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %872

241:                                              ; preds = %156, %152, %146
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %14, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %872

245:                                              ; preds = %168, %164, %157
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %14, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %872

249:                                              ; preds = %169
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %14, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #8
  br label %872

253:                                              ; preds = %185
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %14, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %872

257:                                              ; preds = %197
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %14, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %872

261:                                              ; preds = %209
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %14, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %872

265:                                              ; preds = %222
  %266 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %266, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %267 unwind label %271

267:                                              ; preds = %265
  br label %268

268:                                              ; preds = %267
  %269 = load i32, ptr %36, align 4, !tbaa !23
  %270 = add nsw i32 %269, 1
  store i32 %270, ptr %36, align 4, !tbaa !23
  br label %222, !llvm.loop !25

271:                                              ; preds = %265
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %14, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %872

275:                                              ; preds = %228
  %276 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  store i32 0, ptr %38, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  store i32 1, ptr %39, align 4, !tbaa !23
  invoke void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %277 unwind label %316

277:                                              ; preds = %275
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %276, ptr noundef nonnull align 4 dereferenceable(8) %37)
          to label %278 unwind label %316

278:                                              ; preds = %277
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  %279 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  store i32 1, ptr %41, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  store i32 2, ptr %42, align 4, !tbaa !23
  invoke void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %280 unwind label %320

280:                                              ; preds = %278
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %279, ptr noundef nonnull align 4 dereferenceable(8) %40)
          to label %281 unwind label %320

281:                                              ; preds = %280
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  %282 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  store i32 2, ptr %44, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  store i32 3, ptr %45, align 4, !tbaa !23
  invoke void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %283 unwind label %324

283:                                              ; preds = %281
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %282, ptr noundef nonnull align 4 dereferenceable(8) %43)
          to label %284 unwind label %324

284:                                              ; preds = %283
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  %285 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  store i32 3, ptr %47, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  store i32 0, ptr %48, align 4, !tbaa !23
  invoke void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 4 dereferenceable(4) %48)
          to label %286 unwind label %328

286:                                              ; preds = %284
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %285, ptr noundef nonnull align 4 dereferenceable(8) %46)
          to label %287 unwind label %328

287:                                              ; preds = %286
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  %288 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  store i32 0, ptr %50, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  store i32 2, ptr %51, align 4, !tbaa !23
  invoke void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(4) %50, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %289 unwind label %332

289:                                              ; preds = %287
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %288, ptr noundef nonnull align 4 dereferenceable(8) %49)
          to label %290 unwind label %332

290:                                              ; preds = %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  %291 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  store i32 1, ptr %53, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  store i32 3, ptr %54, align 4, !tbaa !23
  invoke void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %52, ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef nonnull align 4 dereferenceable(4) %54)
          to label %292 unwind label %336

292:                                              ; preds = %290
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %291, ptr noundef nonnull align 4 dereferenceable(8) %52)
          to label %293 unwind label %336

293:                                              ; preds = %292
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  %294 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 12, ptr %57) #8
  store i32 0, ptr %57, align 4, !tbaa !23
  %295 = getelementptr inbounds i32, ptr %57, i64 1
  store i32 1, ptr %295, align 4, !tbaa !23
  %296 = getelementptr inbounds i32, ptr %57, i64 2
  store i32 3, ptr %296, align 4, !tbaa !23
  %297 = getelementptr inbounds %"class.std::initializer_list", ptr %56, i32 0, i32 0
  store ptr %57, ptr %297, align 8, !tbaa !27
  %298 = getelementptr inbounds %"class.std::initializer_list", ptr %56, i32 0, i32 1
  store i64 3, ptr %298, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  %299 = getelementptr inbounds { ptr, i64 }, ptr %56, i32 0, i32 0
  %300 = load ptr, ptr %299, align 8
  %301 = getelementptr inbounds { ptr, i64 }, ptr %56, i32 0, i32 1
  %302 = load i64, ptr %301, align 8
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr %300, i64 %302, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %303 unwind label %340

303:                                              ; preds = %293
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %294, ptr noundef nonnull align 8 dereferenceable(24) %55)
          to label %304 unwind label %344

304:                                              ; preds = %303
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #8
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #8
  %305 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 12, ptr %61) #8
  store i32 1, ptr %61, align 4, !tbaa !23
  %306 = getelementptr inbounds i32, ptr %61, i64 1
  store i32 2, ptr %306, align 4, !tbaa !23
  %307 = getelementptr inbounds i32, ptr %61, i64 2
  store i32 3, ptr %307, align 4, !tbaa !23
  %308 = getelementptr inbounds %"class.std::initializer_list", ptr %60, i32 0, i32 0
  store ptr %61, ptr %308, align 8, !tbaa !27
  %309 = getelementptr inbounds %"class.std::initializer_list", ptr %60, i32 0, i32 1
  store i64 3, ptr %309, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  %310 = getelementptr inbounds { ptr, i64 }, ptr %60, i32 0, i32 0
  %311 = load ptr, ptr %310, align 8
  %312 = getelementptr inbounds { ptr, i64 }, ptr %60, i32 0, i32 1
  %313 = load i64, ptr %312, align 8
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %59, ptr %311, i64 %313, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %314 unwind label %349

314:                                              ; preds = %304
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %305, ptr noundef nonnull align 8 dereferenceable(24) %59)
          to label %315 unwind label %353

315:                                              ; preds = %314
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #8
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #8
  br label %870

316:                                              ; preds = %277, %275
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %14, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %872

320:                                              ; preds = %280, %278
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %14, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %872

324:                                              ; preds = %283, %281
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %14, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %872

328:                                              ; preds = %286, %284
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %14, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  br label %872

332:                                              ; preds = %289, %287
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %14, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %872

336:                                              ; preds = %292, %290
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %14, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  br label %872

340:                                              ; preds = %293
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %14, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %15, align 4
  br label %348

344:                                              ; preds = %303
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %14, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %15, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #8
  br label %348

348:                                              ; preds = %344, %340
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #8
  br label %872

349:                                              ; preds = %304
  %350 = landingpad { ptr, i32 }
          cleanup
  %351 = extractvalue { ptr, i32 } %350, 0
  store ptr %351, ptr %14, align 8
  %352 = extractvalue { ptr, i32 } %350, 1
  store i32 %352, ptr %15, align 4
  br label %357

353:                                              ; preds = %314
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %14, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %15, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #8
  br label %357

357:                                              ; preds = %353, %349
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #8
  br label %872

358:                                              ; preds = %117, %113
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %64, ptr align 4 %7, i64 8, i1 false), !tbaa.struct !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %65, ptr align 4 %9, i64 8, i1 false), !tbaa.struct !9
  %359 = load <2 x float>, ptr %64, align 4
  %360 = load <2 x float>, ptr %65, align 4
  %361 = invoke <2 x float> @_Zdv7QVectorS_(<2 x float> %359, <2 x float> %360)
          to label %362 unwind label %371

362:                                              ; preds = %358
  store <2 x float> %361, ptr %63, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #8
  store i32 0, ptr %66, align 4, !tbaa !23
  br label %363

363:                                              ; preds = %449, %362
  %364 = load i32, ptr %66, align 4, !tbaa !23
  %365 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 1
  %366 = load float, ptr %365, align 4, !tbaa !12
  %367 = fptosi float %366 to i32
  %368 = add nsw i32 %367, 1
  %369 = icmp slt i32 %364, %368
  br i1 %369, label %375, label %370

370:                                              ; preds = %363
  store i32 5, ptr %67, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  br label %452

371:                                              ; preds = %358
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %14, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %15, align 4
  br label %869

375:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #8
  store i32 0, ptr %68, align 4, !tbaa !23
  br label %376

376:                                              ; preds = %444, %375
  %377 = load i32, ptr %68, align 4, !tbaa !23
  %378 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %379 = load float, ptr %378, align 4, !tbaa !10
  %380 = fptosi float %379 to i32
  %381 = add nsw i32 %380, 1
  %382 = icmp slt i32 %377, %381
  br i1 %382, label %384, label %383

383:                                              ; preds = %376
  store i32 8, ptr %67, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  br label %448

384:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  %385 = load i32, ptr %68, align 4, !tbaa !23
  %386 = sitofp i32 %385 to float
  %387 = getelementptr inbounds %struct.QVector, ptr %63, i32 0, i32 0
  %388 = load float, ptr %387, align 4, !tbaa !10
  %389 = fmul float %386, %388
  %390 = load i32, ptr %66, align 4, !tbaa !23
  %391 = sitofp i32 %390 to float
  %392 = getelementptr inbounds %struct.QVector, ptr %63, i32 0, i32 1
  %393 = load float, ptr %392, align 4, !tbaa !12
  %394 = fmul float %391, %393
  invoke void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %69, float noundef %389, float noundef %394)
          to label %395 unwind label %428

395:                                              ; preds = %384
  %396 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %72, ptr align 4 %8, i64 8, i1 false), !tbaa.struct !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %73, ptr align 4 %12, i64 8, i1 false), !tbaa.struct !9
  %397 = load <2 x float>, ptr %72, align 4
  %398 = load <2 x float>, ptr %73, align 4
  %399 = invoke <2 x float> @_Zmi7QVectorS_(<2 x float> %397, <2 x float> %398)
          to label %400 unwind label %432

400:                                              ; preds = %395
  store <2 x float> %399, ptr %71, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %74, ptr align 4 %69, i64 8, i1 false), !tbaa.struct !9
  %401 = load <2 x float>, ptr %71, align 4
  %402 = load <2 x float>, ptr %74, align 4
  %403 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %401, <2 x float> %402)
          to label %404 unwind label %432

404:                                              ; preds = %400
  store <2 x float> %403, ptr %70, align 4
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %396, ptr noundef nonnull align 4 dereferenceable(8) %70)
          to label %405 unwind label %432

405:                                              ; preds = %404
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  %406 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 1
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %406, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %407 unwind label %428

407:                                              ; preds = %405
  %408 = load i32, ptr %68, align 4, !tbaa !23
  %409 = icmp eq i32 %408, 0
  br i1 %409, label %425, label %410

410:                                              ; preds = %407
  %411 = load i32, ptr %68, align 4, !tbaa !23
  %412 = sitofp i32 %411 to float
  %413 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %414 = load float, ptr %413, align 4, !tbaa !10
  %415 = fcmp oeq float %412, %414
  br i1 %415, label %425, label %416

416:                                              ; preds = %410
  %417 = load i32, ptr %66, align 4, !tbaa !23
  %418 = icmp eq i32 %417, 0
  br i1 %418, label %425, label %419

419:                                              ; preds = %416
  %420 = load i32, ptr %66, align 4, !tbaa !23
  %421 = sitofp i32 %420 to float
  %422 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 1
  %423 = load float, ptr %422, align 4, !tbaa !12
  %424 = fcmp oeq float %421, %423
  br i1 %424, label %425, label %436

425:                                              ; preds = %419, %416, %410, %407
  %426 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 2
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %426, i1 noundef zeroext false)
          to label %427 unwind label %428

427:                                              ; preds = %425
  br label %439

428:                                              ; preds = %441, %439, %436, %425, %405, %384
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %14, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %15, align 4
  br label %447

432:                                              ; preds = %404, %400, %395
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %14, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  br label %447

436:                                              ; preds = %419
  %437 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 2
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %437, i1 noundef zeroext true)
          to label %438 unwind label %428

438:                                              ; preds = %436
  br label %439

439:                                              ; preds = %438, %427
  %440 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 3
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %440, i1 noundef zeroext true)
          to label %441 unwind label %428

441:                                              ; preds = %439
  %442 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 4
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %442, i1 noundef zeroext false)
          to label %443 unwind label %428

443:                                              ; preds = %441
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  br label %444

444:                                              ; preds = %443
  %445 = load i32, ptr %68, align 4, !tbaa !23
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr %68, align 4, !tbaa !23
  br label %376, !llvm.loop !30

447:                                              ; preds = %432, %428
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  br label %869

448:                                              ; preds = %383
  br label %449

449:                                              ; preds = %448
  %450 = load i32, ptr %66, align 4, !tbaa !23
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr %66, align 4, !tbaa !23
  br label %363, !llvm.loop !31

452:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  store i32 0, ptr %75, align 4, !tbaa !23
  br label %453

453:                                              ; preds = %632, %452
  %454 = load i32, ptr %75, align 4, !tbaa !23
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 0
  %457 = call noundef i64 @_ZNKSt6vectorI7QVectorSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %456) #8
  %458 = icmp ult i64 %455, %457
  br i1 %458, label %460, label %459

459:                                              ; preds = %453
  store i32 11, ptr %67, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  br label %636

460:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  %461 = load i32, ptr %75, align 4, !tbaa !23
  %462 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %463 = load float, ptr %462, align 4, !tbaa !10
  %464 = fadd float %463, 1.000000e+00
  %465 = fptosi float %464 to i32
  %466 = srem i32 %461, %465
  store i32 %466, ptr %76, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  %467 = load i32, ptr %75, align 4, !tbaa !23
  %468 = load i32, ptr %76, align 4, !tbaa !23
  %469 = sub nsw i32 %467, %468
  %470 = sitofp i32 %469 to float
  %471 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %472 = load float, ptr %471, align 4, !tbaa !10
  %473 = fadd float %472, 1.000000e+00
  %474 = fdiv float %470, %473
  %475 = invoke noundef float @_ZSt5floorf(float noundef %474)
          to label %476 unwind label %506

476:                                              ; preds = %460
  %477 = fptosi float %475 to i32
  store i32 %477, ptr %77, align 4, !tbaa !23
  %478 = load i32, ptr %76, align 4, !tbaa !23
  %479 = sitofp i32 %478 to float
  %480 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %481 = load float, ptr %480, align 4, !tbaa !10
  %482 = fcmp une float %479, %481
  br i1 %482, label %483, label %528

483:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #8
  %484 = load i32, ptr %77, align 4, !tbaa !23
  %485 = icmp eq i32 %484, 0
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #8
  br i1 %485, label %486, label %490

486:                                              ; preds = %483
  %487 = load i32, ptr %75, align 4, !tbaa !23
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr %79, align 4, !tbaa !23
  invoke void @_ZNSt4pairIiiEC2IRiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %78, ptr noundef nonnull align 4 dereferenceable(4) %75, ptr noundef nonnull align 4 dereferenceable(4) %79)
          to label %489 unwind label %510

489:                                              ; preds = %486
  br label %494

490:                                              ; preds = %483
  %491 = load i32, ptr %75, align 4, !tbaa !23
  %492 = add nsw i32 %491, 1
  store i32 %492, ptr %80, align 4, !tbaa !23
  invoke void @_ZNSt4pairIiiEC2IiRiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %78, ptr noundef nonnull align 4 dereferenceable(4) %80, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %493 unwind label %514

493:                                              ; preds = %490
  br label %494

494:                                              ; preds = %493, %489
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  %495 = load i32, ptr %77, align 4, !tbaa !23
  %496 = icmp eq i32 %495, 0
  br i1 %496, label %503, label %497

497:                                              ; preds = %494
  %498 = load i32, ptr %77, align 4, !tbaa !23
  %499 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 1
  %500 = load float, ptr %499, align 4, !tbaa !12
  %501 = fptosi float %500 to i32
  %502 = icmp eq i32 %498, %501
  br i1 %502, label %503, label %523

503:                                              ; preds = %497, %494
  %504 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %504, ptr noundef nonnull align 4 dereferenceable(8) %78)
          to label %505 unwind label %519

505:                                              ; preds = %503
  br label %526

506:                                              ; preds = %460
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %14, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %15, align 4
  br label %635

510:                                              ; preds = %486
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %14, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %15, align 4
  br label %518

514:                                              ; preds = %490
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %14, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  br label %518

518:                                              ; preds = %514, %510
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  br label %527

519:                                              ; preds = %523, %503
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %14, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %15, align 4
  br label %527

523:                                              ; preds = %497
  %524 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 6
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %524, ptr noundef nonnull align 4 dereferenceable(8) %78)
          to label %525 unwind label %519

525:                                              ; preds = %523
  br label %526

526:                                              ; preds = %525, %505
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  br label %528

527:                                              ; preds = %519, %518
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  br label %635

528:                                              ; preds = %526, %476
  %529 = load i32, ptr %76, align 4, !tbaa !23
  %530 = sitofp i32 %529 to float
  %531 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %532 = load float, ptr %531, align 4, !tbaa !10
  %533 = fcmp une float %530, %532
  br i1 %533, label %534, label %554

534:                                              ; preds = %528
  %535 = load i32, ptr %77, align 4, !tbaa !23
  %536 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 1
  %537 = load float, ptr %536, align 4, !tbaa !12
  %538 = fptosi float %537 to i32
  %539 = icmp ne i32 %535, %538
  br i1 %539, label %540, label %554

540:                                              ; preds = %534
  %541 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %542 = load i32, ptr %75, align 4, !tbaa !23
  %543 = sitofp i32 %542 to float
  %544 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %545 = load float, ptr %544, align 4, !tbaa !10
  %546 = fadd float %543, %545
  %547 = fadd float %546, 2.000000e+00
  store float %547, ptr %82, align 4, !tbaa !5
  invoke void @_ZNSt4pairIiiEC2IRifTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %81, ptr noundef nonnull align 4 dereferenceable(4) %75, ptr noundef nonnull align 4 dereferenceable(4) %82)
          to label %548 unwind label %550

548:                                              ; preds = %540
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %541, ptr noundef nonnull align 4 dereferenceable(8) %81)
          to label %549 unwind label %550

549:                                              ; preds = %548
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  br label %554

550:                                              ; preds = %548, %540
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %14, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  br label %635

554:                                              ; preds = %549, %534, %528
  %555 = load i32, ptr %76, align 4, !tbaa !23
  %556 = icmp ne i32 %555, 0
  br i1 %556, label %557, label %576

557:                                              ; preds = %554
  %558 = load i32, ptr %77, align 4, !tbaa !23
  %559 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 1
  %560 = load float, ptr %559, align 4, !tbaa !12
  %561 = fptosi float %560 to i32
  %562 = icmp ne i32 %558, %561
  br i1 %562, label %563, label %576

563:                                              ; preds = %557
  %564 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #8
  %565 = load i32, ptr %75, align 4, !tbaa !23
  %566 = sitofp i32 %565 to float
  %567 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %568 = load float, ptr %567, align 4, !tbaa !10
  %569 = fadd float %566, %568
  store float %569, ptr %84, align 4, !tbaa !5
  invoke void @_ZNSt4pairIiiEC2IRifTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %83, ptr noundef nonnull align 4 dereferenceable(4) %75, ptr noundef nonnull align 4 dereferenceable(4) %84)
          to label %570 unwind label %572

570:                                              ; preds = %563
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %564, ptr noundef nonnull align 4 dereferenceable(8) %83)
          to label %571 unwind label %572

571:                                              ; preds = %570
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  br label %576

572:                                              ; preds = %570, %563
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %14, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  br label %635

576:                                              ; preds = %571, %557, %554
  %577 = load i32, ptr %77, align 4, !tbaa !23
  %578 = sitofp i32 %577 to float
  %579 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 1
  %580 = load float, ptr %579, align 4, !tbaa !12
  %581 = fcmp une float %578, %580
  br i1 %581, label %582, label %631

582:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #8
  %583 = load i32, ptr %76, align 4, !tbaa !23
  %584 = icmp eq i32 %583, 0
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #8
  br i1 %584, label %585, label %593

585:                                              ; preds = %582
  %586 = load i32, ptr %75, align 4, !tbaa !23
  %587 = sitofp i32 %586 to float
  %588 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %589 = load float, ptr %588, align 4, !tbaa !10
  %590 = fadd float %587, %589
  %591 = fadd float %590, 1.000000e+00
  store float %591, ptr %86, align 4, !tbaa !5
  invoke void @_ZNSt4pairIiiEC2IfRiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %85, ptr noundef nonnull align 4 dereferenceable(4) %86, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %592 unwind label %613

592:                                              ; preds = %585
  br label %601

593:                                              ; preds = %582
  %594 = load i32, ptr %75, align 4, !tbaa !23
  %595 = sitofp i32 %594 to float
  %596 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %597 = load float, ptr %596, align 4, !tbaa !10
  %598 = fadd float %595, %597
  %599 = fadd float %598, 1.000000e+00
  store float %599, ptr %87, align 4, !tbaa !5
  invoke void @_ZNSt4pairIiiEC2IRifTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %85, ptr noundef nonnull align 4 dereferenceable(4) %75, ptr noundef nonnull align 4 dereferenceable(4) %87)
          to label %600 unwind label %617

600:                                              ; preds = %593
  br label %601

601:                                              ; preds = %600, %592
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #8
  %602 = load i32, ptr %76, align 4, !tbaa !23
  %603 = icmp eq i32 %602, 0
  br i1 %603, label %610, label %604

604:                                              ; preds = %601
  %605 = load i32, ptr %76, align 4, !tbaa !23
  %606 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %607 = load float, ptr %606, align 4, !tbaa !10
  %608 = fptosi float %607 to i32
  %609 = icmp eq i32 %605, %608
  br i1 %609, label %610, label %626

610:                                              ; preds = %604, %601
  %611 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %611, ptr noundef nonnull align 4 dereferenceable(8) %85)
          to label %612 unwind label %622

612:                                              ; preds = %610
  br label %629

613:                                              ; preds = %585
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %14, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %15, align 4
  br label %621

617:                                              ; preds = %593
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %14, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %621

621:                                              ; preds = %617, %613
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #8
  br label %630

622:                                              ; preds = %626, %610
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %14, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %15, align 4
  br label %630

626:                                              ; preds = %604
  %627 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 6
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %627, ptr noundef nonnull align 4 dereferenceable(8) %85)
          to label %628 unwind label %622

628:                                              ; preds = %626
  br label %629

629:                                              ; preds = %628, %612
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  br label %631

630:                                              ; preds = %622, %621
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  br label %635

631:                                              ; preds = %629, %576
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %632

632:                                              ; preds = %631
  %633 = load i32, ptr %75, align 4, !tbaa !23
  %634 = add nsw i32 %633, 1
  store i32 %634, ptr %75, align 4, !tbaa !23
  br label %453, !llvm.loop !32

635:                                              ; preds = %630, %572, %550, %527, %506
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  br label %869

636:                                              ; preds = %459
  %637 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  %638 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %637) #8
  %639 = icmp ugt i64 %638, 0
  br i1 %639, label %640, label %746

640:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 24, ptr %88) #8
  %641 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %88, ptr noundef nonnull align 8 dereferenceable(24) %641)
          to label %642 unwind label %661

642:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 24, ptr %89) #8
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #8
  %643 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef 0) #8
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 4 dereferenceable(8) %643)
          to label %644 unwind label %665

644:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #8
  %645 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  %646 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.152", ptr %91, i32 0, i32 0
  store ptr %645, ptr %646, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIiiESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  %647 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.153", ptr %90, i32 0, i32 0
  %648 = load ptr, ptr %647, align 8
  %649 = invoke ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %88, ptr %648)
          to label %650 unwind label %669

650:                                              ; preds = %644
  %651 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.152", ptr %92, i32 0, i32 0
  store ptr %649, ptr %651, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #8
  store i32 0, ptr %93, align 4, !tbaa !23
  br label %652

652:                                              ; preds = %737, %650
  %653 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  %654 = icmp ugt i64 %653, 0
  br i1 %654, label %655, label %739

655:                                              ; preds = %652
  %656 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  %657 = icmp eq i64 %656, 1
  br i1 %657, label %658, label %677

658:                                              ; preds = %655
  %659 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef 0) #8
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 4 dereferenceable(8) %659)
          to label %660 unwind label %673

660:                                              ; preds = %658
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  br label %739

661:                                              ; preds = %640
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %14, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %15, align 4
  br label %745

665:                                              ; preds = %642
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %14, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %15, align 4
  br label %744

669:                                              ; preds = %644
  %670 = landingpad { ptr, i32 }
          cleanup
  %671 = extractvalue { ptr, i32 } %670, 0
  store ptr %671, ptr %14, align 8
  %672 = extractvalue { ptr, i32 } %670, 1
  store i32 %672, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #8
  br label %744

673:                                              ; preds = %739, %658
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %14, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %15, align 4
  br label %743

677:                                              ; preds = %655
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #8
  store i32 0, ptr %94, align 4, !tbaa !23
  br label %678

678:                                              ; preds = %719, %677
  %679 = load i32, ptr %94, align 4, !tbaa !23
  %680 = sext i32 %679 to i64
  %681 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  %682 = icmp ult i64 %680, %681
  br i1 %682, label %683, label %722

683:                                              ; preds = %678
  %684 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %89) #8
  %685 = sub i64 %684, 1
  %686 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %89, i64 noundef %685) #8
  %687 = getelementptr inbounds %"struct.std::pair.136", ptr %686, i32 0, i32 1
  %688 = load i32, ptr %687, align 4, !tbaa !33
  %689 = load i32, ptr %94, align 4, !tbaa !23
  %690 = sext i32 %689 to i64
  %691 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %690) #8
  %692 = getelementptr inbounds %"struct.std::pair.136", ptr %691, i32 0, i32 0
  %693 = load i32, ptr %692, align 4, !tbaa !35
  %694 = icmp eq i32 %688, %693
  br i1 %694, label %695, label %719

695:                                              ; preds = %683
  %696 = load i32, ptr %94, align 4, !tbaa !23
  %697 = sext i32 %696 to i64
  %698 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %697) #8
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 4 dereferenceable(8) %698)
          to label %699 unwind label %711

699:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #8
  %700 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  %701 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.152", ptr %97, i32 0, i32 0
  store ptr %700, ptr %701, align 8
  %702 = load i32, ptr %94, align 4, !tbaa !23
  %703 = sext i32 %702 to i64
  %704 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %97, i64 noundef %703) #8
  %705 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.152", ptr %96, i32 0, i32 0
  store ptr %704, ptr %705, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIiiESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  %706 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.153", ptr %95, i32 0, i32 0
  %707 = load ptr, ptr %706, align 8
  %708 = invoke ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %88, ptr %707)
          to label %709 unwind label %715

709:                                              ; preds = %699
  %710 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.152", ptr %98, i32 0, i32 0
  store ptr %708, ptr %710, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  br label %722

711:                                              ; preds = %695
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %14, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, ptr %15, align 4
  br label %738

715:                                              ; preds = %699
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %14, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  br label %738

719:                                              ; preds = %683
  %720 = load i32, ptr %94, align 4, !tbaa !23
  %721 = add nsw i32 %720, 1
  store i32 %721, ptr %94, align 4, !tbaa !23
  br label %678, !llvm.loop !36

722:                                              ; preds = %709, %678
  %723 = load i32, ptr %93, align 4, !tbaa !23
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  %726 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %725) #8
  %727 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  %728 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %727) #8
  %729 = mul i64 %726, %728
  %730 = icmp ugt i64 %724, %729
  br i1 %730, label %731, label %732

731:                                              ; preds = %722
  store i32 15, ptr %67, align 4
  br label %735

732:                                              ; preds = %722
  %733 = load i32, ptr %93, align 4, !tbaa !23
  %734 = add nsw i32 %733, 1
  store i32 %734, ptr %93, align 4, !tbaa !23
  store i32 0, ptr %67, align 4
  br label %735

735:                                              ; preds = %732, %731
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #8
  %736 = load i32, ptr %67, align 4
  switch i32 %736, label %880 [
    i32 0, label %737
    i32 15, label %739
  ]

737:                                              ; preds = %735
  br label %652, !llvm.loop !37

738:                                              ; preds = %715, %711
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #8
  br label %743

739:                                              ; preds = %735, %660, %652
  %740 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  %741 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %740, ptr noundef nonnull align 8 dereferenceable(24) %89)
          to label %742 unwind label %673

742:                                              ; preds = %739
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #8
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #8
  br label %746

743:                                              ; preds = %738, %673
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  br label %744

744:                                              ; preds = %743, %669, %665
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #8
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  br label %745

745:                                              ; preds = %744, %661
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #8
  br label %869

746:                                              ; preds = %742, %636
  call void @llvm.lifetime.start.p0(i64 24, ptr %99) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #8
  store i32 0, ptr %100, align 4, !tbaa !23
  br label %747

747:                                              ; preds = %762, %746
  %748 = load i32, ptr %100, align 4, !tbaa !23
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  %751 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %750) #8
  %752 = icmp ult i64 %749, %751
  br i1 %752, label %754, label %753

753:                                              ; preds = %747
  store i32 18, ptr %67, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #8
  br label %769

754:                                              ; preds = %747
  %755 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 7
  %756 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 5
  %757 = load i32, ptr %100, align 4, !tbaa !23
  %758 = sext i32 %757 to i64
  %759 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %756, i64 noundef %758) #8
  %760 = getelementptr inbounds %"struct.std::pair.136", ptr %759, i32 0, i32 0
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %755, ptr noundef nonnull align 4 dereferenceable(4) %760)
          to label %761 unwind label %765

761:                                              ; preds = %754
  br label %762

762:                                              ; preds = %761
  %763 = load i32, ptr %100, align 4, !tbaa !23
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr %100, align 4, !tbaa !23
  br label %747, !llvm.loop !38

765:                                              ; preds = %754
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %14, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #8
  br label %868

769:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #8
  store i32 0, ptr %101, align 4, !tbaa !23
  br label %770

770:                                              ; preds = %864, %769
  %771 = load i32, ptr %101, align 4, !tbaa !23
  %772 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 1
  %773 = load float, ptr %772, align 4, !tbaa !12
  %774 = fptosi float %773 to i32
  %775 = icmp slt i32 %771, %774
  br i1 %775, label %777, label %776

776:                                              ; preds = %770
  store i32 21, ptr %67, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #8
  br label %867

777:                                              ; preds = %770
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #8
  store i32 0, ptr %102, align 4, !tbaa !23
  br label %778

778:                                              ; preds = %830, %777
  %779 = load i32, ptr %102, align 4, !tbaa !23
  %780 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %781 = load float, ptr %780, align 4, !tbaa !10
  %782 = fptosi float %781 to i32
  %783 = icmp slt i32 %779, %782
  br i1 %783, label %785, label %784

784:                                              ; preds = %778
  store i32 24, ptr %67, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #8
  br label %863

785:                                              ; preds = %778
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #8
  %786 = load i32, ptr %101, align 4, !tbaa !23
  %787 = sitofp i32 %786 to float
  %788 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %789 = load float, ptr %788, align 4, !tbaa !10
  %790 = fadd float %789, 1.000000e+00
  %791 = load i32, ptr %102, align 4, !tbaa !23
  %792 = sitofp i32 %791 to float
  %793 = call float @llvm.fmuladd.f32(float %787, float %790, float %792)
  %794 = fptosi float %793 to i32
  store i32 %794, ptr %103, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 24, ptr %104) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %104) #8
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %104, ptr noundef nonnull align 4 dereferenceable(4) %103)
          to label %795 unwind label %833

795:                                              ; preds = %785
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #8
  %796 = load i32, ptr %103, align 4, !tbaa !23
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr %105, align 4, !tbaa !23
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %104, ptr noundef nonnull align 4 dereferenceable(4) %105)
          to label %798 unwind label %837

798:                                              ; preds = %795
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #8
  %799 = load i32, ptr %103, align 4, !tbaa !23
  %800 = sitofp i32 %799 to float
  %801 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %802 = load float, ptr %801, align 4, !tbaa !10
  %803 = fadd float %800, %802
  %804 = fadd float %803, 1.000000e+00
  %805 = fptosi float %804 to i32
  store i32 %805, ptr %106, align 4, !tbaa !23
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %104, ptr noundef nonnull align 4 dereferenceable(4) %106)
          to label %806 unwind label %841

806:                                              ; preds = %798
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #8
  %807 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 8
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %807, ptr noundef nonnull align 8 dereferenceable(24) %104)
          to label %808 unwind label %833

808:                                              ; preds = %806
  call void @llvm.lifetime.start.p0(i64 24, ptr %107) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #8
  %809 = load i32, ptr %103, align 4, !tbaa !23
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr %108, align 4, !tbaa !23
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 4 dereferenceable(4) %108)
          to label %811 unwind label %845

811:                                              ; preds = %808
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #8
  %812 = load i32, ptr %103, align 4, !tbaa !23
  %813 = sitofp i32 %812 to float
  %814 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %815 = load float, ptr %814, align 4, !tbaa !10
  %816 = fadd float %813, %815
  %817 = fadd float %816, 2.000000e+00
  %818 = fptosi float %817 to i32
  store i32 %818, ptr %109, align 4, !tbaa !23
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 4 dereferenceable(4) %109)
          to label %819 unwind label %849

819:                                              ; preds = %811
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #8
  %820 = load i32, ptr %103, align 4, !tbaa !23
  %821 = add nsw i32 %820, 1
  %822 = sitofp i32 %821 to float
  %823 = getelementptr inbounds %struct.QVector, ptr %9, i32 0, i32 0
  %824 = load float, ptr %823, align 4, !tbaa !10
  %825 = fadd float %822, %824
  %826 = fptosi float %825 to i32
  store i32 %826, ptr %110, align 4, !tbaa !23
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 4 dereferenceable(4) %110)
          to label %827 unwind label %853

827:                                              ; preds = %819
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  %828 = getelementptr inbounds %"struct.QMesh::MeshData", ptr %0, i32 0, i32 8
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %828, ptr noundef nonnull align 8 dereferenceable(24) %107)
          to label %829 unwind label %857

829:                                              ; preds = %827
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %104) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %104) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #8
  br label %830

830:                                              ; preds = %829
  %831 = load i32, ptr %102, align 4, !tbaa !23
  %832 = add nsw i32 %831, 1
  store i32 %832, ptr %102, align 4, !tbaa !23
  br label %778, !llvm.loop !39

833:                                              ; preds = %806, %785
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %14, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %15, align 4
  br label %862

837:                                              ; preds = %795
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %14, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #8
  br label %862

841:                                              ; preds = %798
  %842 = landingpad { ptr, i32 }
          cleanup
  %843 = extractvalue { ptr, i32 } %842, 0
  store ptr %843, ptr %14, align 8
  %844 = extractvalue { ptr, i32 } %842, 1
  store i32 %844, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #8
  br label %862

845:                                              ; preds = %808
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %14, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  br label %861

849:                                              ; preds = %811
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %14, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  br label %861

853:                                              ; preds = %819
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %14, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  br label %861

857:                                              ; preds = %827
  %858 = landingpad { ptr, i32 }
          cleanup
  %859 = extractvalue { ptr, i32 } %858, 0
  store ptr %859, ptr %14, align 8
  %860 = extractvalue { ptr, i32 } %858, 1
  store i32 %860, ptr %15, align 4
  br label %861

861:                                              ; preds = %857, %853, %849, %845
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #8
  br label %862

862:                                              ; preds = %861, %841, %837, %833
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %104) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %104) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #8
  br label %868

863:                                              ; preds = %784
  br label %864

864:                                              ; preds = %863
  %865 = load i32, ptr %101, align 4, !tbaa !23
  %866 = add nsw i32 %865, 1
  store i32 %866, ptr %101, align 4, !tbaa !23
  br label %770, !llvm.loop !40

867:                                              ; preds = %776
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  br label %870

868:                                              ; preds = %862, %765
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #8
  br label %869

869:                                              ; preds = %868, %745, %635, %447, %371
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  br label %872

870:                                              ; preds = %867, %315
  store i1 true, ptr %11, align 1
  store i32 1, ptr %67, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  %871 = load i1, ptr %11, align 1
  br i1 %871, label %874, label %873

872:                                              ; preds = %869, %357, %348, %336, %332, %328, %324, %320, %316, %271, %261, %257, %253, %249, %245, %241, %237, %233, %229
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @_ZN5QMesh8MeshDataD2Ev(ptr noundef nonnull align 8 dereferenceable(276) %0) #8
  br label %875

873:                                              ; preds = %870
  call void @_ZN5QMesh8MeshDataD2Ev(ptr noundef nonnull align 8 dereferenceable(276) %0) #8
  br label %874

874:                                              ; preds = %873, %870
  ret void

875:                                              ; preds = %872
  %876 = load ptr, ptr %14, align 8
  %877 = load i32, ptr %15, align 4
  %878 = insertvalue { ptr, i32 } poison, ptr %876, 0
  %879 = insertvalue { ptr, i32 } %878, i32 %877, 1
  resume { ptr, i32 } %879

880:                                              ; preds = %735
  unreachable
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5QMesh8MeshDataC2Ev(ptr noundef nonnull align 8 dereferenceable(276)) unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(8)) #3 align 2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #7

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_Zdv7QVectorS_(<2 x float>, <2 x float>) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5floorf(float noundef) #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(8)) #3 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorISt4pairIiiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24)) #4 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="64" "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 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 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 #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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 = !{!"float", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{i64 0, i64 4, !5, i64 4, i64 4, !5}
!10 = !{!11, !6, i64 0}
!11 = !{!"_ZTS7QVector", !6, i64 0, !6, i64 4}
!12 = !{!11, !6, i64 4}
!13 = !{!14, !15, i64 0}
!14 = !{!"_ZTSSt16initializer_listIfE", !15, i64 0, !16, i64 8}
!15 = !{!"any pointer", !7, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!14, !16, i64 8}
!18 = !{!19, !19, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!21, !15, i64 0}
!21 = !{!"_ZTSSt16initializer_listIbE", !15, i64 0, !16, i64 8}
!22 = !{!21, !16, i64 8}
!23 = !{!24, !24, i64 0}
!24 = !{!"int", !7, i64 0}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!28, !15, i64 0}
!28 = !{!"_ZTSSt16initializer_listIiE", !15, i64 0, !16, i64 8}
!29 = !{!28, !16, i64 8}
!30 = distinct !{!30, !26}
!31 = distinct !{!31, !26}
!32 = distinct !{!32, !26}
!33 = !{!34, !24, i64 4}
!34 = !{!"_ZTSSt4pairIiiE", !24, i64 0, !24, i64 4}
!35 = !{!34, !24, i64 0}
!36 = distinct !{!36, !26}
!37 = distinct !{!37, !26}
!38 = distinct !{!38, !26}
!39 = distinct !{!39, !26}
!40 = distinct !{!40, !26}


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

%"struct.QMesh::MeshData" = type <{ %"class.std::vector.15", %"class.std::vector.25", %"class.std::vector.127", %"class.std::vector.127", %"class.std::vector.127", %"class.std::vector.131", %"class.std::vector.131", %"class.std::vector.111", %"class.std::vector.20", %struct.QVector, float, [4 x i8] }>
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<QVector, std::allocator<QVector>>::_Vector_impl" }
%"struct.std::_Vector_base<QVector, std::allocator<QVector>>::_Vector_impl" = type { %"struct.std::_Vector_base<QVector, std::allocator<QVector>>::_Vector_impl_data" }
%"struct.std::_Vector_base<QVector, std::allocator<QVector>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.127" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::vector.131" = type { %"struct.std::_Vector_base.132" }
%"struct.std::_Vector_base.132" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.111" = type { %"struct.std::_Vector_base.112" }
%"struct.std::_Vector_base.112" = 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::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.QVector = type { float, float }
%"struct.std::pair.136" = type { i32, i32 }
%"class.std::allocator.113" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.153" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.152" = type { ptr }

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_Zpl7QVectorS_(<2 x float>, <2 x float>) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_Zml7QVectorf(<2 x float>, float noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_Zmi7QVectorS_(<2 x float>, <2 x float>) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5QMesh25GenerateRectangleMeshDataE7QVectorS0_S0_f(ptr dead_on_unwind noalias nonnull writable sret(%"struct.QMesh::MeshData") align 8 %0, <2 x float> %1, <2 x float> %2, <2 x float> %3, float noundef %4) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca float, align 4
  %7 = alloca %struct.QVector, align 8
  %8 = alloca %struct.QVector, align 8
  %9 = alloca %struct.QVector, align 8
  %10 = alloca %struct.QVector, align 8
  %11 = alloca %struct.QVector, align 8
  %12 = alloca %struct.QVector, align 8
  %13 = alloca %struct.QVector, align 8
  %14 = alloca %struct.QVector, align 8
  %15 = alloca [4 x float], align 16
  %16 = alloca [4 x i8], align 4
  %17 = alloca [4 x i8], align 4
  %18 = alloca [4 x i8], align 4
  %19 = alloca i32, align 4
  %20 = alloca %"struct.std::pair.136", align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %"struct.std::pair.136", align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %"struct.std::pair.136", align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %"struct.std::pair.136", align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca %"struct.std::pair.136", align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca %"struct.std::pair.136", align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::vector.111", align 8
  %39 = alloca [3 x i32], align 4
  %40 = alloca %"class.std::allocator.113", align 1
  %41 = alloca %"class.std::vector.111", align 8
  %42 = alloca [3 x i32], align 4
  %43 = alloca %"class.std::allocator.113", align 1
  %44 = alloca %struct.QVector, align 8
  %45 = alloca %struct.QVector, align 8
  %46 = alloca i32, align 4
  %47 = alloca %"struct.std::pair.136", align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca %"struct.std::pair.136", align 4
  %51 = alloca float, align 4
  %52 = alloca %"struct.std::pair.136", align 4
  %53 = alloca float, align 4
  %54 = alloca %"struct.std::pair.136", align 4
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca %"class.std::vector.131", align 8
  %58 = alloca %"class.std::vector.131", align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator.153", align 8
  %60 = alloca %"class.__gnu_cxx::__normal_iterator.152", align 8
  %61 = alloca %"class.__gnu_cxx::__normal_iterator.153", align 8
  %62 = alloca %"class.__gnu_cxx::__normal_iterator.152", align 8
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.152", align 8
  %64 = alloca %"class.std::vector.111", align 8
  %65 = alloca i32, align 4
  %66 = alloca %"class.std::vector.111", align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca %"class.std::vector.111", align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  store float %4, ptr %6, align 4, !tbaa !5
  tail call void @_ZN5QMesh8MeshDataC2Ev(ptr noundef nonnull align 8 dereferenceable(276) %0)
  %73 = invoke <2 x float> @_Zml7QVectorf(<2 x float> %1, float noundef 5.000000e-01)
          to label %74 unwind label %114

74:                                               ; preds = %5
  %.sroa.084.0.vec.extract = extractelement <2 x float> %3, i64 0
  %75 = fcmp ole float %.sroa.084.0.vec.extract, 1.000000e+00
  %.sroa.084.4.vec.extract131 = extractelement <2 x float> %3, i64 1
  %76 = fcmp ole float %.sroa.084.4.vec.extract131, 1.000000e+00
  %or.cond = select i1 %75, i1 %76, i1 false
  br i1 %or.cond, label %77, label %179

77:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  %.sroa.069.0.vec.extract = extractelement <2 x float> %73, i64 0
  %78 = fneg float %.sroa.069.0.vec.extract
  %.sroa.069.4.vec.extract = extractelement <2 x float> %73, i64 1
  %79 = fneg float %.sroa.069.4.vec.extract
  call void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef %78, float noundef %79)
  %80 = load <2 x float>, ptr %8, align 8
  %81 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %80, <2 x float> %2)
          to label %82 unwind label %116

82:                                               ; preds = %77
  store <2 x float> %81, ptr %7, align 8
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 4 dereferenceable(8) %7)
          to label %83 unwind label %116

83:                                               ; preds = %82
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  call void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %.sroa.069.0.vec.extract, float noundef %79)
  %84 = load <2 x float>, ptr %10, align 8
  %85 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %84, <2 x float> %2)
          to label %86 unwind label %118

86:                                               ; preds = %83
  store <2 x float> %85, ptr %9, align 8
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 4 dereferenceable(8) %9)
          to label %87 unwind label %118

87:                                               ; preds = %86
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  call void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %12, float noundef %.sroa.069.0.vec.extract, float noundef %.sroa.069.4.vec.extract)
  %88 = load <2 x float>, ptr %12, align 8
  %89 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %88, <2 x float> %2)
          to label %90 unwind label %120

90:                                               ; preds = %87
  store <2 x float> %89, ptr %11, align 8
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 4 dereferenceable(8) %11)
          to label %91 unwind label %120

91:                                               ; preds = %90
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  call void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %14, float noundef %78, float noundef %.sroa.069.4.vec.extract)
  %92 = load <2 x float>, ptr %14, align 8
  %93 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %92, <2 x float> %2)
          to label %94 unwind label %122

94:                                               ; preds = %91
  store <2 x float> %93, ptr %13, align 8
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 4 dereferenceable(8) %13)
          to label %95 unwind label %122

95:                                               ; preds = %94
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #7
  %96 = load float, ptr %6, align 4, !tbaa !5
  %97 = insertelement <4 x float> poison, float %96, i64 0
  %98 = shufflevector <4 x float> %97, <4 x float> poison, <4 x i32> zeroinitializer
  store <4 x float> %98, ptr %15, align 16, !tbaa !5
  %99 = getelementptr inbounds i8, ptr %0, i64 24
  %100 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIfSaIfEEaSESt16initializer_listIfE(ptr noundef nonnull align 8 dereferenceable(24) %99, ptr nonnull %15, i64 4)
          to label %101 unwind label %124

101:                                              ; preds = %95
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #7
  %102 = getelementptr inbounds i8, ptr %0, i64 48
  store i32 0, ptr %16, align 4
  %103 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIbSaIbEEaSESt16initializer_listIbE(ptr noundef nonnull align 8 dereferenceable(40) %102, ptr nonnull %16, i64 4)
          to label %104 unwind label %126

104:                                              ; preds = %101
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #7
  %105 = getelementptr inbounds i8, ptr %0, i64 88
  store i32 16843009, ptr %17, align 4
  %106 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIbSaIbEEaSESt16initializer_listIbE(ptr noundef nonnull align 8 dereferenceable(40) %105, ptr nonnull %17, i64 4)
          to label %107 unwind label %128

107:                                              ; preds = %104
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  %108 = getelementptr inbounds i8, ptr %0, i64 128
  store i32 0, ptr %18, align 4
  %109 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIbSaIbEEaSESt16initializer_listIbE(ptr noundef nonnull align 8 dereferenceable(40) %108, ptr nonnull %18, i64 4)
          to label %110 unwind label %130

110:                                              ; preds = %107
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  store i32 0, ptr %19, align 4, !tbaa !9
  %111 = call noundef i64 @_ZNKSt6vectorI7QVectorSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %.not261 = icmp eq i64 %111, 0
  br i1 %.not261, label %._crit_edge256, label %.lr.ph255

.lr.ph255:                                        ; preds = %110
  %112 = getelementptr inbounds i8, ptr %0, i64 216
  br label %132

._crit_edge256:                                   ; preds = %133, %110
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  %113 = getelementptr inbounds i8, ptr %0, i64 168
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #7
  store i32 0, ptr %21, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #7
  store i32 1, ptr %22, align 4, !tbaa !9
  call void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %20, ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %22)
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %113, ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %141 unwind label %157

114:                                              ; preds = %5
  %115 = landingpad { ptr, i32 }
          cleanup
  br label %414

116:                                              ; preds = %82, %77
  %117 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  br label %414

118:                                              ; preds = %86, %83
  %119 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %414

120:                                              ; preds = %90, %87
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  br label %414

122:                                              ; preds = %94, %91
  %123 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %414

124:                                              ; preds = %95
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #7
  br label %414

126:                                              ; preds = %101
  %127 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  br label %414

128:                                              ; preds = %104
  %129 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br label %414

130:                                              ; preds = %107
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %414

132:                                              ; preds = %.lr.ph255, %133
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %112, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %133 unwind label %139

133:                                              ; preds = %132
  %134 = load i32, ptr %19, align 4, !tbaa !9
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr %19, align 4, !tbaa !9
  %136 = sext i32 %135 to i64
  %137 = call noundef i64 @_ZNKSt6vectorI7QVectorSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %138 = icmp ugt i64 %137, %136
  br i1 %138, label %132, label %._crit_edge256, !llvm.loop !11

139:                                              ; preds = %132
  %140 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br label %414

141:                                              ; preds = %._crit_edge256
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #7
  store i32 1, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #7
  store i32 2, ptr %25, align 4, !tbaa !9
  call void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25)
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %113, ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %142 unwind label %159

142:                                              ; preds = %141
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #7
  store i32 2, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #7
  store i32 3, ptr %28, align 4, !tbaa !9
  call void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %28)
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %113, ptr noundef nonnull align 4 dereferenceable(8) %26)
          to label %143 unwind label %161

143:                                              ; preds = %142
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  store i32 3, ptr %30, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  store i32 0, ptr %31, align 4, !tbaa !9
  call void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 4 dereferenceable(4) %31)
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %113, ptr noundef nonnull align 4 dereferenceable(8) %29)
          to label %144 unwind label %163

144:                                              ; preds = %143
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  %145 = getelementptr inbounds i8, ptr %0, i64 192
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #7
  store i32 0, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #7
  store i32 2, ptr %34, align 4, !tbaa !9
  call void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 4 dereferenceable(4) %34)
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %145, ptr noundef nonnull align 4 dereferenceable(8) %32)
          to label %146 unwind label %165

146:                                              ; preds = %144
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #7
  store i32 1, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #7
  store i32 3, ptr %37, align 4, !tbaa !9
  call void @_ZNSt4pairIiiEC2IiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS3_S4_EEEbE4typeELb1EEEOS3_OS4_(ptr noundef nonnull align 4 dereferenceable(8) %35, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37)
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %145, ptr noundef nonnull align 4 dereferenceable(8) %35)
          to label %147 unwind label %167

147:                                              ; preds = %146
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  %148 = getelementptr inbounds i8, ptr %0, i64 240
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %39) #7
  store i32 0, ptr %39, align 4, !tbaa !9
  %149 = getelementptr inbounds i8, ptr %39, i64 4
  store i32 1, ptr %149, align 4, !tbaa !9
  %150 = getelementptr inbounds i8, ptr %39, i64 8
  store i32 3, ptr %150, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %38, ptr nonnull %39, i64 3, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %151 unwind label %169

151:                                              ; preds = %147
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %148, ptr noundef nonnull align 8 dereferenceable(24) %38)
          to label %152 unwind label %171

152:                                              ; preds = %151
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %42) #7
  store i32 1, ptr %42, align 4, !tbaa !9
  %153 = getelementptr inbounds i8, ptr %42, i64 4
  store i32 2, ptr %153, align 4, !tbaa !9
  %154 = getelementptr inbounds i8, ptr %42, i64 8
  store i32 3, ptr %154, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr nonnull %42, i64 3, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %155 unwind label %174

155:                                              ; preds = %152
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %148, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %156 unwind label %176

156:                                              ; preds = %155
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #7
  br label %415

157:                                              ; preds = %._crit_edge256
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  br label %414

159:                                              ; preds = %141
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  br label %414

161:                                              ; preds = %142
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  br label %414

163:                                              ; preds = %143
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %414

165:                                              ; preds = %144
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  br label %414

167:                                              ; preds = %146
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  br label %414

169:                                              ; preds = %147
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %173

171:                                              ; preds = %151
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  br label %173

173:                                              ; preds = %171, %169
  %.pn187 = phi { ptr, i32 } [ %172, %171 ], [ %170, %169 ]
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #7
  br label %414

174:                                              ; preds = %152
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %178

176:                                              ; preds = %155
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #7
  br label %178

178:                                              ; preds = %176, %174
  %.pn189 = phi { ptr, i32 } [ %177, %176 ], [ %175, %174 ]
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #7
  br label %414

179:                                              ; preds = %74
  %180 = invoke <2 x float> @_Zdv7QVectorS_(<2 x float> %1, <2 x float> %3)
          to label %.preheader207 unwind label %223

.preheader207:                                    ; preds = %179
  %181 = fptosi float %.sroa.084.4.vec.extract131 to i32
  %.not217 = icmp slt i32 %181, 0
  br i1 %.not217, label %._crit_edge219, label %.preheader206.lr.ph

.preheader206.lr.ph:                              ; preds = %.preheader207
  %182 = fptosi float %.sroa.084.0.vec.extract to i32
  %.not182211 = icmp slt i32 %182, 0
  %.sroa.051.0.vec.extract = extractelement <2 x float> %180, i64 0
  %.sroa.051.4.vec.extract = extractelement <2 x float> %180, i64 1
  %183 = getelementptr inbounds i8, ptr %0, i64 24
  %184 = getelementptr inbounds i8, ptr %0, i64 48
  %185 = getelementptr inbounds i8, ptr %0, i64 88
  %186 = getelementptr inbounds i8, ptr %0, i64 128
  br i1 %.not182211, label %._crit_edge219, label %.preheader206.preheader

.preheader206.preheader:                          ; preds = %.preheader206.lr.ph
  %187 = fmul float %.sroa.051.0.vec.extract, 0.000000e+00
  %exitcond.peel.not = icmp eq i32 %182, 0
  br label %.preheader206

.preheader206:                                    ; preds = %.preheader206.preheader, %._crit_edge
  %.0158218 = phi i32 [ %225, %._crit_edge ], [ 0, %.preheader206.preheader ]
  %188 = uitofp nneg i32 %.0158218 to float
  %189 = fmul float %.sroa.051.4.vec.extract, %188
  %190 = icmp eq i32 %.0158218, 0
  %191 = fcmp oeq float %.sroa.084.4.vec.extract131, %188
  %.fr = freeze i1 %191
  %192 = or i1 %.fr, %190
  br i1 %192, label %.lr.ph.split.us, label %.lr.ph.split.preheader

.lr.ph.split.preheader:                           ; preds = %.preheader206
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #7
  call void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %187, float noundef %189)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  %193 = invoke <2 x float> @_Zmi7QVectorS_(<2 x float> %2, <2 x float> %73)
          to label %194 unwind label %.split.loopexit.split-lp

194:                                              ; preds = %.lr.ph.split.preheader
  %.sroa.034.0.copyload.peel = load <2 x float>, ptr %44, align 8
  %195 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %193, <2 x float> %.sroa.034.0.copyload.peel)
          to label %196 unwind label %.split.loopexit.split-lp

196:                                              ; preds = %194
  store <2 x float> %195, ptr %45, align 8
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 4 dereferenceable(8) %45)
          to label %197 unwind label %.split.loopexit.split-lp

197:                                              ; preds = %196
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %183, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %198 unwind label %.split214.loopexit.split-lp

198:                                              ; preds = %197
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %184, i1 noundef zeroext false)
          to label %199 unwind label %.split214.loopexit.split-lp

199:                                              ; preds = %198
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %185, i1 noundef zeroext true)
          to label %200 unwind label %.split214.loopexit.split-lp

200:                                              ; preds = %199
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %186, i1 noundef zeroext false)
          to label %201 unwind label %.split214.loopexit.split-lp

201:                                              ; preds = %200
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  br i1 %exitcond.peel.not, label %._crit_edge, label %.lr.ph.split

.lr.ph.split.us:                                  ; preds = %.preheader206, %212
  %.0160212.us = phi i32 [ %213, %212 ], [ 0, %.preheader206 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #7
  %202 = uitofp nneg i32 %.0160212.us to float
  %203 = fmul float %.sroa.051.0.vec.extract, %202
  call void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %203, float noundef %189)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  %204 = invoke <2 x float> @_Zmi7QVectorS_(<2 x float> %2, <2 x float> %73)
          to label %205 unwind label %.split.us

205:                                              ; preds = %.lr.ph.split.us
  %.sroa.034.0.copyload.us = load <2 x float>, ptr %44, align 8
  %206 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %204, <2 x float> %.sroa.034.0.copyload.us)
          to label %207 unwind label %.split.us

207:                                              ; preds = %205
  store <2 x float> %206, ptr %45, align 8
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 4 dereferenceable(8) %45)
          to label %208 unwind label %.split.us

208:                                              ; preds = %207
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %183, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %209 unwind label %.split214.us

209:                                              ; preds = %208
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %184, i1 noundef zeroext false)
          to label %210 unwind label %.split214.us

210:                                              ; preds = %209
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %185, i1 noundef zeroext true)
          to label %211 unwind label %.split214.us

211:                                              ; preds = %210
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %186, i1 noundef zeroext false)
          to label %212 unwind label %.split214.us

212:                                              ; preds = %211
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  %213 = add nuw i32 %.0160212.us, 1
  %exitcond270.not = icmp eq i32 %.0160212.us, %182
  br i1 %exitcond270.not, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !13

.split.us:                                        ; preds = %207, %205, %.lr.ph.split.us
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %.split

.split214.us:                                     ; preds = %211, %210, %209, %208
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %.split214

._crit_edge219:                                   ; preds = %._crit_edge, %.preheader206.lr.ph, %.preheader207
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #7
  store i32 0, ptr %46, align 4, !tbaa !9
  %216 = call noundef i64 @_ZNKSt6vectorI7QVectorSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %.not258 = icmp eq i64 %216, 0
  br i1 %.not258, label %._crit_edge222, label %.lr.ph

.lr.ph:                                           ; preds = %._crit_edge219
  %217 = fadd float %.sroa.084.0.vec.extract, 1.000000e+00
  %218 = fptosi float %217 to i32
  %219 = getelementptr inbounds i8, ptr %0, i64 192
  %220 = getelementptr inbounds i8, ptr %0, i64 168
  %221 = fptosi float %.sroa.084.0.vec.extract to i32
  %222 = icmp eq i32 %181, 0
  br label %240

223:                                              ; preds = %179
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %414

._crit_edge:                                      ; preds = %236, %212, %201
  %225 = add i32 %.0158218, 1
  %.not = icmp sgt i32 %225, %181
  br i1 %.not, label %._crit_edge219, label %.preheader206, !llvm.loop !14

.lr.ph.split:                                     ; preds = %201, %236
  %.0160212 = phi i32 [ %237, %236 ], [ 1, %201 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #7
  %226 = uitofp nneg i32 %.0160212 to float
  %227 = fmul float %.sroa.051.0.vec.extract, %226
  call void @_ZN7QVectorC2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %227, float noundef %189)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  %228 = invoke <2 x float> @_Zmi7QVectorS_(<2 x float> %2, <2 x float> %73)
          to label %229 unwind label %.split.loopexit

229:                                              ; preds = %.lr.ph.split
  %.sroa.034.0.copyload = load <2 x float>, ptr %44, align 8
  %230 = invoke <2 x float> @_Zpl7QVectorS_(<2 x float> %228, <2 x float> %.sroa.034.0.copyload)
          to label %231 unwind label %.split.loopexit

231:                                              ; preds = %229
  store <2 x float> %230, ptr %45, align 8
  invoke void @_ZNSt6vectorI7QVectorSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 4 dereferenceable(8) %45)
          to label %232 unwind label %.split.loopexit

232:                                              ; preds = %231
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %183, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %.invoke unwind label %.split214.loopexit

.invoke:                                          ; preds = %232
  %233 = fcmp une float %.sroa.084.0.vec.extract, %226
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %184, i1 noundef zeroext %233)
          to label %234 unwind label %.split214.loopexit

.split214.loopexit:                               ; preds = %.invoke, %232, %234, %235
  %lpad.loopexit267 = landingpad { ptr, i32 }
          cleanup
  br label %.split214

.split214.loopexit.split-lp:                      ; preds = %197, %198, %199, %200
  %lpad.loopexit.split-lp268 = landingpad { ptr, i32 }
          cleanup
  br label %.split214

.split.loopexit:                                  ; preds = %.lr.ph.split, %229, %231
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %.split

.split.loopexit.split-lp:                         ; preds = %.lr.ph.split.preheader, %194, %196
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %.split

.split:                                           ; preds = %.split.loopexit, %.split.loopexit.split-lp, %.split.us
  %.us-phi = phi { ptr, i32 } [ %214, %.split.us ], [ %lpad.loopexit, %.split.loopexit ], [ %lpad.loopexit.split-lp, %.split.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  br label %.split214

234:                                              ; preds = %.invoke
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %185, i1 noundef zeroext true)
          to label %235 unwind label %.split214.loopexit

235:                                              ; preds = %234
  invoke void @_ZNSt6vectorIbSaIbEE9push_backEb(ptr noundef nonnull align 8 dereferenceable(40) %186, i1 noundef zeroext false)
          to label %236 unwind label %.split214.loopexit

236:                                              ; preds = %235
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  %237 = add nuw i32 %.0160212, 1
  %exitcond.not = icmp eq i32 %.0160212, %182
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.split, !llvm.loop !15

.split214:                                        ; preds = %.split214.loopexit, %.split214.loopexit.split-lp, %.split214.us, %.split
  %.pn183 = phi { ptr, i32 } [ %.us-phi, %.split ], [ %215, %.split214.us ], [ %lpad.loopexit267, %.split214.loopexit ], [ %lpad.loopexit.split-lp268, %.split214.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  br label %414

._crit_edge222:                                   ; preds = %292, %._crit_edge219
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #7
  %238 = getelementptr inbounds i8, ptr %0, i64 168
  %239 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %238) #7
  %.not165 = icmp eq i64 %239, 0
  br i1 %.not165, label %355, label %299

240:                                              ; preds = %.lr.ph, %292
  %241 = load i32, ptr %46, align 4, !tbaa !9
  %242 = srem i32 %241, %218
  %243 = sub nsw i32 %241, %242
  %244 = sitofp i32 %243 to float
  %245 = fdiv float %244, %217
  %246 = call noundef float @_ZSt5floorf(float noundef %245)
  %247 = fptosi float %246 to i32
  %248 = sitofp i32 %242 to float
  %249 = fcmp une float %.sroa.084.0.vec.extract, %248
  br i1 %249, label %250, label %.critedge

250:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #7
  %251 = icmp eq i32 %247, 0
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #7
  %252 = load i32, ptr %46, align 4, !tbaa !9
  %253 = add nsw i32 %252, 1
  br i1 %251, label %.thread, label %254

.thread:                                          ; preds = %250
  store i32 %253, ptr %48, align 4, !tbaa !9
  call void @_ZNSt4pairIiiEC2IRiiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %47, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 4 dereferenceable(4) %48)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #7
  br label %256

254:                                              ; preds = %250
  store i32 %253, ptr %49, align 4, !tbaa !9
  call void @_ZNSt4pairIiiEC2IiRiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %47, ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 4 dereferenceable(4) %46)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #7
  %255 = icmp eq i32 %247, %181
  br i1 %255, label %256, label %260

256:                                              ; preds = %.thread, %254
  %257 = phi i1 [ %222, %.thread ], [ true, %254 ]
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %220, ptr noundef nonnull align 4 dereferenceable(8) %47)
          to label %261 unwind label %258

258:                                              ; preds = %260, %256
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  br label %298

260:                                              ; preds = %254
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %219, ptr noundef nonnull align 4 dereferenceable(8) %47)
          to label %.thread281 unwind label %258

.thread281:                                       ; preds = %260
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  br label %262

261:                                              ; preds = %256
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  br i1 %257, label %.critedge, label %262

262:                                              ; preds = %.thread281, %261
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #7
  %263 = load i32, ptr %46, align 4, !tbaa !9
  %264 = sitofp i32 %263 to float
  %265 = fadd float %.sroa.084.0.vec.extract, %264
  %266 = fadd float %265, 2.000000e+00
  store float %266, ptr %51, align 4, !tbaa !5
  call void @_ZNSt4pairIiiEC2IRifTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 4 dereferenceable(4) %51)
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %219, ptr noundef nonnull align 4 dereferenceable(8) %50)
          to label %267 unwind label %268

267:                                              ; preds = %262
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #7
  br label %.critedge

268:                                              ; preds = %262
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #7
  br label %298

.critedge:                                        ; preds = %240, %267, %261
  %.not178 = icmp eq i32 %242, 0
  %.not179 = icmp eq i32 %247, %181
  %or.cond197 = select i1 %.not178, i1 true, i1 %.not179
  br i1 %or.cond197, label %277, label %270

270:                                              ; preds = %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #7
  %271 = load i32, ptr %46, align 4, !tbaa !9
  %272 = sitofp i32 %271 to float
  %273 = fadd float %.sroa.084.0.vec.extract, %272
  store float %273, ptr %53, align 4, !tbaa !5
  call void @_ZNSt4pairIiiEC2IRifTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %52, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 4 dereferenceable(4) %53)
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %219, ptr noundef nonnull align 4 dereferenceable(8) %52)
          to label %274 unwind label %275

274:                                              ; preds = %270
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  br label %277

275:                                              ; preds = %270
  %276 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  br label %298

277:                                              ; preds = %274, %.critedge
  %278 = sitofp i32 %247 to float
  %279 = fcmp une float %.sroa.084.4.vec.extract131, %278
  br i1 %279, label %280, label %292

280:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %56) #7
  %281 = load i32, ptr %46, align 4, !tbaa !9
  %282 = sitofp i32 %281 to float
  %283 = fadd float %.sroa.084.0.vec.extract, %282
  %284 = fadd float %283, 1.000000e+00
  br i1 %.not178, label %.thread201, label %285

.thread201:                                       ; preds = %280
  store float %284, ptr %55, align 4, !tbaa !5
  call void @_ZNSt4pairIiiEC2IfRiTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %54, ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef nonnull align 4 dereferenceable(4) %46)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #7
  br label %287

285:                                              ; preds = %280
  store float %284, ptr %56, align 4, !tbaa !5
  call void @_ZNSt4pairIiiEC2IRifTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %54, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 4 dereferenceable(4) %56)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #7
  %286 = icmp eq i32 %242, %221
  br i1 %286, label %287, label %.invoke284

287:                                              ; preds = %.thread201, %285
  br label %.invoke284

288:                                              ; preds = %.invoke284
  %289 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #7
  br label %298

.invoke284:                                       ; preds = %285, %287
  %290 = phi ptr [ %220, %287 ], [ %219, %285 ]
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %290, ptr noundef nonnull align 4 dereferenceable(8) %54)
          to label %291 unwind label %288

291:                                              ; preds = %.invoke284
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #7
  br label %292

292:                                              ; preds = %291, %277
  %293 = load i32, ptr %46, align 4, !tbaa !9
  %294 = add nsw i32 %293, 1
  store i32 %294, ptr %46, align 4, !tbaa !9
  %295 = sext i32 %294 to i64
  %296 = call noundef i64 @_ZNKSt6vectorI7QVectorSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %297 = icmp ugt i64 %296, %295
  br i1 %297, label %240, label %._crit_edge222, !llvm.loop !17

298:                                              ; preds = %288, %275, %268, %258
  %.pn180 = phi { ptr, i32 } [ %289, %288 ], [ %276, %275 ], [ %269, %268 ], [ %259, %258 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #7
  br label %414

299:                                              ; preds = %._crit_edge222
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %57) #7
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 8 dereferenceable(24) %238)
          to label %300 unwind label %316

300:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %58) #7
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #7
  %301 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef 0) #7
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %58, ptr noundef nonnull align 4 dereferenceable(8) %301)
          to label %302 unwind label %318

302:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #7
  %303 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  store ptr %303, ptr %60, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIiiESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %60) #7
  %304 = load ptr, ptr %59, align 8
  %305 = invoke ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr %304)
          to label %306 unwind label %320

306:                                              ; preds = %302
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #7
  br label %307

307:                                              ; preds = %.loopexit, %306
  %indvars.iv272 = phi i64 [ %indvars.iv.next273, %.loopexit ], [ 0, %306 ]
  %308 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  %.not166 = icmp eq i64 %308, 0
  br i1 %.not166, label %.loopexit205, label %309

309:                                              ; preds = %307
  %310 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  %311 = icmp eq i64 %310, 1
  br i1 %311, label %313, label %.preheader204

.preheader204:                                    ; preds = %309
  %312 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  %.not259 = icmp eq i64 %312, 0
  br i1 %.not259, label %.loopexit, label %.lr.ph224

313:                                              ; preds = %309
  %314 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef 0) #7
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %58, ptr noundef nonnull align 4 dereferenceable(8) %314)
          to label %315 unwind label %322

315:                                              ; preds = %313
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  br label %.loopexit205

316:                                              ; preds = %299
  %317 = landingpad { ptr, i32 }
          cleanup
  br label %354

318:                                              ; preds = %300
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %353

320:                                              ; preds = %302
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #7
  br label %353

322:                                              ; preds = %.loopexit205, %313
  %323 = landingpad { ptr, i32 }
          cleanup
  br label %353

324:                                              ; preds = %.lr.ph224
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %325 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  %326 = icmp ugt i64 %325, %indvars.iv.next
  br i1 %326, label %.lr.ph224, label %.loopexit, !llvm.loop !18

.lr.ph224:                                        ; preds = %.preheader204, %324
  %indvars.iv = phi i64 [ %indvars.iv.next, %324 ], [ 0, %.preheader204 ]
  %327 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %58) #7
  %328 = add i64 %327, -1
  %329 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %58, i64 noundef %328) #7
  %330 = getelementptr inbounds i8, ptr %329, i64 4
  %331 = load i32, ptr %330, align 4, !tbaa !19
  %332 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %indvars.iv) #7
  %333 = load i32, ptr %332, align 4, !tbaa !21
  %334 = icmp eq i32 %331, %333
  br i1 %334, label %335, label %324

335:                                              ; preds = %.lr.ph224
  %336 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %indvars.iv) #7
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %58, ptr noundef nonnull align 4 dereferenceable(8) %336)
          to label %337 unwind label %343

337:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #7
  %338 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  store ptr %338, ptr %63, align 8
  %339 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %63, i64 noundef %indvars.iv) #7
  store ptr %339, ptr %62, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIiiESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %62) #7
  %340 = load ptr, ptr %61, align 8
  %341 = invoke ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr %340)
          to label %342 unwind label %345

342:                                              ; preds = %337
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  br label %.loopexit

343:                                              ; preds = %335
  %344 = landingpad { ptr, i32 }
          cleanup
  br label %353

345:                                              ; preds = %337
  %346 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  br label %353

.loopexit:                                        ; preds = %324, %.preheader204, %342
  %347 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %238) #7
  %348 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %238) #7
  %349 = mul i64 %348, %347
  %350 = icmp ult i64 %349, %indvars.iv272
  %indvars.iv.next273 = add nuw nsw i64 %indvars.iv272, 1
  br i1 %350, label %.loopexit205, label %307

.loopexit205:                                     ; preds = %.loopexit, %307, %315
  %351 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %238, ptr noundef nonnull align 8 dereferenceable(24) %58)
          to label %352 unwind label %322

352:                                              ; preds = %.loopexit205
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #7
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #7
  br label %355

353:                                              ; preds = %322, %345, %343, %320, %318
  %.pn168.pn = phi { ptr, i32 } [ %321, %320 ], [ %319, %318 ], [ %323, %322 ], [ %346, %345 ], [ %344, %343 ]
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #7
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  br label %354

354:                                              ; preds = %353, %316
  %.pn168.pn.pn = phi { ptr, i32 } [ %.pn168.pn, %353 ], [ %317, %316 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #7
  br label %414

355:                                              ; preds = %352, %._crit_edge222
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %64) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #7
  %356 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %238) #7
  %.not260 = icmp eq i64 %356, 0
  br i1 %.not260, label %.preheader203, label %.lr.ph227

.lr.ph227:                                        ; preds = %355
  %357 = getelementptr inbounds i8, ptr %0, i64 216
  br label %404

.preheader203:                                    ; preds = %406, %355
  %358 = icmp sgt i32 %181, 0
  br i1 %358, label %.preheader.lr.ph, label %._crit_edge232

.preheader.lr.ph:                                 ; preds = %.preheader203
  %359 = fptosi float %.sroa.084.0.vec.extract to i32
  %360 = icmp sgt i32 %359, 0
  %361 = fadd float %.sroa.084.0.vec.extract, 1.000000e+00
  %362 = getelementptr inbounds i8, ptr %0, i64 240
  br i1 %360, label %.preheader.us, label %._crit_edge232

.preheader.us:                                    ; preds = %.preheader.lr.ph, %._crit_edge230.us
  %.0139231.us = phi i32 [ %396, %._crit_edge230.us ], [ 0, %.preheader.lr.ph ]
  %363 = uitofp nneg i32 %.0139231.us to float
  br label %364

364:                                              ; preds = %.preheader.us, %394
  %.0228.us = phi i32 [ 0, %.preheader.us ], [ %395, %394 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %65) #7
  %365 = uitofp nneg i32 %.0228.us to float
  %366 = call float @llvm.fmuladd.f32(float %363, float %361, float %365)
  %367 = fptosi float %366 to i32
  store i32 %367, ptr %65, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %66) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 4 dereferenceable(4) %65)
          to label %368 unwind label %.split234.us

368:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %67) #7
  %369 = load i32, ptr %65, align 4, !tbaa !9
  %370 = add nsw i32 %369, 1
  store i32 %370, ptr %67, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 4 dereferenceable(4) %67)
          to label %371 unwind label %.split237.us

371:                                              ; preds = %368
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %68) #7
  %372 = load i32, ptr %65, align 4, !tbaa !9
  %373 = sitofp i32 %372 to float
  %374 = fadd float %.sroa.084.0.vec.extract, %373
  %375 = fadd float %374, 1.000000e+00
  %376 = fptosi float %375 to i32
  store i32 %376, ptr %68, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %377 unwind label %.split240.us

377:                                              ; preds = %371
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #7
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %362, ptr noundef nonnull align 8 dereferenceable(24) %66)
          to label %378 unwind label %.split234.us

378:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %69) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %70) #7
  %379 = load i32, ptr %65, align 4, !tbaa !9
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr %70, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 4 dereferenceable(4) %70)
          to label %381 unwind label %.split243.us

381:                                              ; preds = %378
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %71) #7
  %382 = load i32, ptr %65, align 4, !tbaa !9
  %383 = sitofp i32 %382 to float
  %384 = fadd float %.sroa.084.0.vec.extract, %383
  %385 = fadd float %384, 2.000000e+00
  %386 = fptosi float %385 to i32
  store i32 %386, ptr %71, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 4 dereferenceable(4) %71)
          to label %387 unwind label %.split246.us

387:                                              ; preds = %381
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %71) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %72) #7
  %388 = load i32, ptr %65, align 4, !tbaa !9
  %389 = add nsw i32 %388, 1
  %390 = sitofp i32 %389 to float
  %391 = fadd float %.sroa.084.0.vec.extract, %390
  %392 = fptosi float %391 to i32
  store i32 %392, ptr %72, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 4 dereferenceable(4) %72)
          to label %393 unwind label %.split249.us

393:                                              ; preds = %387
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %72) #7
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %362, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %394 unwind label %.split252.us

394:                                              ; preds = %393
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %69) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #7
  %395 = add nuw nsw i32 %.0228.us, 1
  %exitcond278.not = icmp eq i32 %395, %359
  br i1 %exitcond278.not, label %._crit_edge230.us, label %364, !llvm.loop !22

._crit_edge230.us:                                ; preds = %394
  %396 = add nuw nsw i32 %.0139231.us, 1
  %exitcond279.not = icmp eq i32 %396, %181
  br i1 %exitcond279.not, label %._crit_edge232, label %.preheader.us, !llvm.loop !23

.split234.us:                                     ; preds = %377, %364
  %397 = landingpad { ptr, i32 }
          cleanup
  br label %412

.split237.us:                                     ; preds = %368
  %398 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #7
  br label %412

.split240.us:                                     ; preds = %371
  %399 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #7
  br label %412

.split243.us:                                     ; preds = %378
  %400 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #7
  br label %411

.split246.us:                                     ; preds = %381
  %401 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %71) #7
  br label %411

.split249.us:                                     ; preds = %387
  %402 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %72) #7
  br label %411

.split252.us:                                     ; preds = %393
  %403 = landingpad { ptr, i32 }
          cleanup
  br label %411

404:                                              ; preds = %.lr.ph227, %406
  %indvars.iv275 = phi i64 [ 0, %.lr.ph227 ], [ %indvars.iv.next276, %406 ]
  %405 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %238, i64 noundef %indvars.iv275) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %357, ptr noundef nonnull align 4 dereferenceable(4) %405)
          to label %406 unwind label %409

406:                                              ; preds = %404
  %indvars.iv.next276 = add nuw nsw i64 %indvars.iv275, 1
  %407 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %238) #7
  %408 = icmp ugt i64 %407, %indvars.iv.next276
  br i1 %408, label %404, label %.preheader203, !llvm.loop !24

409:                                              ; preds = %404
  %410 = landingpad { ptr, i32 }
          cleanup
  br label %413

._crit_edge232:                                   ; preds = %._crit_edge230.us, %.preheader.lr.ph, %.preheader203
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %64) #7
  br label %415

411:                                              ; preds = %.split252.us, %.split249.us, %.split246.us, %.split243.us
  %.pn172 = phi { ptr, i32 } [ %403, %.split252.us ], [ %402, %.split249.us ], [ %401, %.split246.us ], [ %400, %.split243.us ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %69) #7
  br label %412

412:                                              ; preds = %411, %.split240.us, %.split237.us, %.split234.us
  %.pn172.pn = phi { ptr, i32 } [ %.pn172, %411 ], [ %397, %.split234.us ], [ %399, %.split240.us ], [ %398, %.split237.us ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #7
  br label %413

413:                                              ; preds = %412, %409
  %.pn175 = phi { ptr, i32 } [ %410, %409 ], [ %.pn172.pn, %412 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %64) #7
  br label %414

414:                                              ; preds = %223, %.split214, %298, %354, %413, %178, %173, %167, %165, %163, %161, %159, %157, %139, %130, %128, %126, %124, %122, %120, %118, %116, %114
  %.pn191 = phi { ptr, i32 } [ %140, %139 ], [ %.pn189, %178 ], [ %.pn187, %173 ], [ %168, %167 ], [ %166, %165 ], [ %164, %163 ], [ %162, %161 ], [ %160, %159 ], [ %158, %157 ], [ %131, %130 ], [ %129, %128 ], [ %127, %126 ], [ %125, %124 ], [ %123, %122 ], [ %121, %120 ], [ %119, %118 ], [ %117, %116 ], [ %115, %114 ], [ %.pn183, %.split214 ], [ %.pn180, %298 ], [ %.pn175, %413 ], [ %.pn168.pn.pn, %354 ], [ %224, %223 ]
  call void @_ZN5QMesh8MeshDataD2Ev(ptr noundef nonnull align 8 dereferenceable(276) %0) #7
  resume { ptr, i32 } %.pn191

415:                                              ; preds = %156, %._crit_edge232
  ret void
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5QMesh8MeshDataC2Ev(ptr noundef nonnull align 8 dereferenceable(276)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #6

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_Zdv7QVectorS_(<2 x float>, <2 x float>) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5floorf(float noundef) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"float", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12, !16}
!16 = !{!"llvm.loop.peeled.count", i32 1}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = !{!20, !10, i64 4}
!20 = !{!"_ZTSSt4pairIiiE", !10, i64 0, !10, i64 4}
!21 = !{!20, !10, i64 0}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}


; Effective O3 passes: BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass