; LLVM IR from Razakhel/RaZ :: src/RaZ/Data/Mesh.ll (ZN3Raz4Mesh15createIcosphereERKNS_6SphereEj)

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

%"class.Raz::Vector" = type { %"struct.std::array" }
%"struct.std::array" = type { [3 x float] }
%"class.Raz::Vector.0" = type { %"struct.std::array.1" }
%"struct.std::array.1" = type { [2 x float] }
%"class.__gnu_cxx::__normal_iterator.14" = type { ptr }
%"class.std::initializer_list.12" = type { ptr, i64 }
%"class.Raz::Mesh" = type { %"class.Raz::Component", %"class.std::vector", %"class.Raz::AABB" }
%"class.Raz::Component" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Raz::Submesh, std::allocator<Raz::Submesh>>::_Vector_impl" }
%"struct.std::_Vector_base<Raz::Submesh, std::allocator<Raz::Submesh>>::_Vector_impl" = type { %"struct.std::_Vector_base<Raz::Submesh, std::allocator<Raz::Submesh>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Raz::Submesh, std::allocator<Raz::Submesh>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Raz::AABB" = type { %"class.Raz::Shape", %"class.Raz::Vector", %"class.Raz::Vector" }
%"class.Raz::Shape" = type { ptr }
%"struct.Raz::Vertex" = type { %"class.Raz::Vector", %"class.Raz::Vector.0", %"class.Raz::Vector", %"class.Raz::Vector" }

@constinit.3 = external hidden constant [60 x i32], align 4

; 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: 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) #1

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3Raz4Mesh15createIcosphereERKNS_6SphereEj(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef %2) #4 align 2 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca float, align 4
  %8 = alloca float, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca float, align 4
  %12 = alloca %"class.Raz::Vector", align 4
  %13 = alloca %"class.Raz::Vector", align 4
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca { <2 x float>, float }, align 8
  %17 = alloca %"class.Raz::Vector", align 4
  %18 = alloca { <2 x float>, float }, align 8
  %19 = alloca %"class.Raz::Vector.0", align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca %"class.Raz::Vector", align 4
  %23 = alloca %"class.Raz::Vector", align 4
  %24 = alloca float, align 4
  %25 = alloca { <2 x float>, float }, align 8
  %26 = alloca %"class.Raz::Vector", align 4
  %27 = alloca { <2 x float>, float }, align 8
  %28 = alloca %"class.Raz::Vector.0", align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca %"class.Raz::Vector", align 4
  %32 = alloca %"class.Raz::Vector", align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca { <2 x float>, float }, align 8
  %37 = alloca %"class.Raz::Vector", align 4
  %38 = alloca { <2 x float>, float }, align 8
  %39 = alloca %"class.Raz::Vector.0", align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca %"class.Raz::Vector", align 4
  %43 = alloca %"class.Raz::Vector", align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  %46 = alloca { <2 x float>, float }, align 8
  %47 = alloca %"class.Raz::Vector", align 4
  %48 = alloca { <2 x float>, float }, align 8
  %49 = alloca %"class.Raz::Vector.0", align 4
  %50 = alloca float, align 4
  %51 = alloca float, align 4
  %52 = alloca %"class.Raz::Vector", align 4
  %53 = alloca %"class.Raz::Vector", align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca { <2 x float>, float }, align 8
  %57 = alloca %"class.Raz::Vector", align 4
  %58 = alloca { <2 x float>, float }, align 8
  %59 = alloca %"class.Raz::Vector.0", align 4
  %60 = alloca float, align 4
  %61 = alloca float, align 4
  %62 = alloca %"class.Raz::Vector", align 4
  %63 = alloca %"class.Raz::Vector", align 4
  %64 = alloca float, align 4
  %65 = alloca { <2 x float>, float }, align 8
  %66 = alloca %"class.Raz::Vector", align 4
  %67 = alloca { <2 x float>, float }, align 8
  %68 = alloca %"class.Raz::Vector.0", align 4
  %69 = alloca float, align 4
  %70 = alloca float, align 4
  %71 = alloca %"class.Raz::Vector", align 4
  %72 = alloca %"class.Raz::Vector", align 4
  %73 = alloca float, align 4
  %74 = alloca float, align 4
  %75 = alloca float, align 4
  %76 = alloca { <2 x float>, float }, align 8
  %77 = alloca %"class.Raz::Vector", align 4
  %78 = alloca { <2 x float>, float }, align 8
  %79 = alloca %"class.Raz::Vector.0", align 4
  %80 = alloca float, align 4
  %81 = alloca float, align 4
  %82 = alloca %"class.Raz::Vector", align 4
  %83 = alloca %"class.Raz::Vector", align 4
  %84 = alloca float, align 4
  %85 = alloca float, align 4
  %86 = alloca { <2 x float>, float }, align 8
  %87 = alloca %"class.Raz::Vector", align 4
  %88 = alloca { <2 x float>, float }, align 8
  %89 = alloca %"class.Raz::Vector.0", align 4
  %90 = alloca float, align 4
  %91 = alloca float, align 4
  %92 = alloca %"class.Raz::Vector", align 4
  %93 = alloca %"class.Raz::Vector", align 4
  %94 = alloca float, align 4
  %95 = alloca float, align 4
  %96 = alloca { <2 x float>, float }, align 8
  %97 = alloca %"class.Raz::Vector", align 4
  %98 = alloca { <2 x float>, float }, align 8
  %99 = alloca %"class.Raz::Vector.0", align 4
  %100 = alloca float, align 4
  %101 = alloca float, align 4
  %102 = alloca %"class.Raz::Vector", align 4
  %103 = alloca %"class.Raz::Vector", align 4
  %104 = alloca float, align 4
  %105 = alloca { <2 x float>, float }, align 8
  %106 = alloca %"class.Raz::Vector", align 4
  %107 = alloca { <2 x float>, float }, align 8
  %108 = alloca %"class.Raz::Vector.0", align 4
  %109 = alloca float, align 4
  %110 = alloca float, align 4
  %111 = alloca %"class.Raz::Vector", align 4
  %112 = alloca %"class.Raz::Vector", align 4
  %113 = alloca float, align 4
  %114 = alloca float, align 4
  %115 = alloca float, align 4
  %116 = alloca { <2 x float>, float }, align 8
  %117 = alloca %"class.Raz::Vector", align 4
  %118 = alloca { <2 x float>, float }, align 8
  %119 = alloca %"class.Raz::Vector.0", align 4
  %120 = alloca float, align 4
  %121 = alloca float, align 4
  %122 = alloca %"class.Raz::Vector", align 4
  %123 = alloca %"class.Raz::Vector", align 4
  %124 = alloca float, align 4
  %125 = alloca float, align 4
  %126 = alloca { <2 x float>, float }, align 8
  %127 = alloca %"class.Raz::Vector", align 4
  %128 = alloca { <2 x float>, float }, align 8
  %129 = alloca %"class.Raz::Vector.0", align 4
  %130 = alloca float, align 4
  %131 = alloca float, align 4
  %132 = alloca ptr, align 8
  %133 = alloca %"class.__gnu_cxx::__normal_iterator.14", align 8
  %134 = alloca %"class.__gnu_cxx::__normal_iterator.14", align 8
  %135 = alloca ptr, align 8
  %136 = alloca %"class.std::initializer_list.12", align 8
  %137 = alloca [60 x i32], align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store i32 %2, ptr %6, align 4, !tbaa !9
  %138 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %139 = load ptr, ptr %5, align 8, !tbaa !5
  %140 = call noundef float @_ZNK3Raz6Sphere9getRadiusEv(ptr noundef nonnull align 8 dereferenceable(24) %139)
  store float %140, ptr %7, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  %141 = load float, ptr %7, align 4, !tbaa !11
  %142 = fmul float %141, 0x3FF9E377A0000000
  store float %142, ptr %8, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %143 = getelementptr inbounds %"class.Raz::Mesh", ptr %138, i32 0, i32 1
  %144 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorIN3Raz7SubmeshESaIS1_EE12emplace_backIJEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %143)
  store ptr %144, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %145 = load ptr, ptr %9, align 8, !tbaa !5
  %146 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3Raz7Submesh11getVerticesEv(ptr noundef nonnull align 8 dereferenceable(104) %145)
  store ptr %146, ptr %10, align 8, !tbaa !5
  %147 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZNSt6vectorIN3Raz6VertexESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %147, i64 noundef 12)
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  store float 0x3FC45F3060000000, ptr %11, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 12, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  %148 = load float, ptr %7, align 4, !tbaa !11
  %149 = fneg float %148
  store float %149, ptr %14, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  store float 0.000000e+00, ptr %15, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJfRKffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %15) #7
  %150 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %13) #7
  %151 = getelementptr inbounds %"class.Raz::Vector", ptr %12, i32 0, i32 0
  %152 = getelementptr inbounds %"struct.std::array", ptr %151, i32 0, i32 0
  store { <2 x float>, float } %150, ptr %16, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %152, ptr align 8 %16, i64 12, i1 false)
  %153 = load ptr, ptr %10, align 8, !tbaa !5
  %154 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef 0) #7
  %155 = getelementptr inbounds %"struct.Raz::Vertex", ptr %154, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %155, ptr align 4 %12, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %17) #7
  %156 = load ptr, ptr %10, align 8, !tbaa !5
  %157 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %156, i64 noundef 0) #7
  %158 = getelementptr inbounds %"struct.Raz::Vertex", ptr %157, i32 0, i32 2
  %159 = load float, ptr %7, align 4, !tbaa !11
  %160 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %158, float noundef %159) #7
  %161 = getelementptr inbounds %"class.Raz::Vector", ptr %17, i32 0, i32 0
  %162 = getelementptr inbounds %"struct.std::array", ptr %161, i32 0, i32 0
  store { <2 x float>, float } %160, ptr %18, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %162, ptr align 8 %18, i64 12, i1 false)
  %163 = load ptr, ptr %10, align 8, !tbaa !5
  %164 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %163, i64 noundef 0) #7
  %165 = getelementptr inbounds %"struct.Raz::Vertex", ptr %164, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %165, ptr align 4 %17, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %166 = load ptr, ptr %10, align 8, !tbaa !5
  %167 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %166, i64 noundef 0) #7
  %168 = getelementptr inbounds %"struct.Raz::Vertex", ptr %167, i32 0, i32 2
  %169 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %168, i64 noundef 0) #7
  %170 = load float, ptr %169, align 4, !tbaa !11
  %171 = load ptr, ptr %10, align 8, !tbaa !5
  %172 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef 0) #7
  %173 = getelementptr inbounds %"struct.Raz::Vertex", ptr %172, i32 0, i32 2
  %174 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %173, i64 noundef 2) #7
  %175 = load float, ptr %174, align 4, !tbaa !11
  %176 = call noundef float @_ZSt5atan2ff(float noundef %170, float noundef %175)
  %177 = call float @llvm.fmuladd.f32(float %176, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %177, ptr %20, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %178 = load ptr, ptr %10, align 8, !tbaa !5
  %179 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef 0) #7
  %180 = getelementptr inbounds %"struct.Raz::Vertex", ptr %179, i32 0, i32 2
  %181 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %180, i64 noundef 1) #7
  %182 = load float, ptr %181, align 4, !tbaa !11
  %183 = call float @llvm.fmuladd.f32(float %182, float 5.000000e-01, float 5.000000e-01)
  store float %183, ptr %21, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %21) #7
  %184 = load ptr, ptr %10, align 8, !tbaa !5
  %185 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %184, i64 noundef 0) #7
  %186 = getelementptr inbounds %"struct.Raz::Vertex", ptr %185, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %186, ptr align 4 %19, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJRKfS4_fEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %23, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %24) #7
  %187 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %23) #7
  %188 = getelementptr inbounds %"class.Raz::Vector", ptr %22, i32 0, i32 0
  %189 = getelementptr inbounds %"struct.std::array", ptr %188, i32 0, i32 0
  store { <2 x float>, float } %187, ptr %25, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %189, ptr align 8 %25, i64 12, i1 false)
  %190 = load ptr, ptr %10, align 8, !tbaa !5
  %191 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef 1) #7
  %192 = getelementptr inbounds %"struct.Raz::Vertex", ptr %191, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %192, ptr align 4 %22, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %26) #7
  %193 = load ptr, ptr %10, align 8, !tbaa !5
  %194 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %193, i64 noundef 1) #7
  %195 = getelementptr inbounds %"struct.Raz::Vertex", ptr %194, i32 0, i32 2
  %196 = load float, ptr %7, align 4, !tbaa !11
  %197 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %195, float noundef %196) #7
  %198 = getelementptr inbounds %"class.Raz::Vector", ptr %26, i32 0, i32 0
  %199 = getelementptr inbounds %"struct.std::array", ptr %198, i32 0, i32 0
  store { <2 x float>, float } %197, ptr %27, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %199, ptr align 8 %27, i64 12, i1 false)
  %200 = load ptr, ptr %10, align 8, !tbaa !5
  %201 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %200, i64 noundef 1) #7
  %202 = getelementptr inbounds %"struct.Raz::Vertex", ptr %201, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %202, ptr align 4 %26, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %203 = load ptr, ptr %10, align 8, !tbaa !5
  %204 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %203, i64 noundef 1) #7
  %205 = getelementptr inbounds %"struct.Raz::Vertex", ptr %204, i32 0, i32 2
  %206 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %205, i64 noundef 0) #7
  %207 = load float, ptr %206, align 4, !tbaa !11
  %208 = load ptr, ptr %10, align 8, !tbaa !5
  %209 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %208, i64 noundef 1) #7
  %210 = getelementptr inbounds %"struct.Raz::Vertex", ptr %209, i32 0, i32 2
  %211 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %210, i64 noundef 2) #7
  %212 = load float, ptr %211, align 4, !tbaa !11
  %213 = call noundef float @_ZSt5atan2ff(float noundef %207, float noundef %212)
  %214 = call float @llvm.fmuladd.f32(float %213, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %214, ptr %29, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %215 = load ptr, ptr %10, align 8, !tbaa !5
  %216 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %215, i64 noundef 1) #7
  %217 = getelementptr inbounds %"struct.Raz::Vertex", ptr %216, i32 0, i32 2
  %218 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %217, i64 noundef 1) #7
  %219 = load float, ptr %218, align 4, !tbaa !11
  %220 = call float @llvm.fmuladd.f32(float %219, float 5.000000e-01, float 5.000000e-01)
  store float %220, ptr %30, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %30) #7
  %221 = load ptr, ptr %10, align 8, !tbaa !5
  %222 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %221, i64 noundef 1) #7
  %223 = getelementptr inbounds %"struct.Raz::Vertex", ptr %222, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %223, ptr align 4 %28, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  %224 = load float, ptr %7, align 4, !tbaa !11
  %225 = fneg float %224
  store float %225, ptr %33, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  %226 = load float, ptr %8, align 4, !tbaa !11
  %227 = fneg float %226
  store float %227, ptr %34, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  store float 0.000000e+00, ptr %35, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %35) #7
  %228 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %32) #7
  %229 = getelementptr inbounds %"class.Raz::Vector", ptr %31, i32 0, i32 0
  %230 = getelementptr inbounds %"struct.std::array", ptr %229, i32 0, i32 0
  store { <2 x float>, float } %228, ptr %36, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %230, ptr align 8 %36, i64 12, i1 false)
  %231 = load ptr, ptr %10, align 8, !tbaa !5
  %232 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %231, i64 noundef 2) #7
  %233 = getelementptr inbounds %"struct.Raz::Vertex", ptr %232, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %233, ptr align 4 %31, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %37) #7
  %234 = load ptr, ptr %10, align 8, !tbaa !5
  %235 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %234, i64 noundef 2) #7
  %236 = getelementptr inbounds %"struct.Raz::Vertex", ptr %235, i32 0, i32 2
  %237 = load float, ptr %7, align 4, !tbaa !11
  %238 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %236, float noundef %237) #7
  %239 = getelementptr inbounds %"class.Raz::Vector", ptr %37, i32 0, i32 0
  %240 = getelementptr inbounds %"struct.std::array", ptr %239, i32 0, i32 0
  store { <2 x float>, float } %238, ptr %38, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %240, ptr align 8 %38, i64 12, i1 false)
  %241 = load ptr, ptr %10, align 8, !tbaa !5
  %242 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %241, i64 noundef 2) #7
  %243 = getelementptr inbounds %"struct.Raz::Vertex", ptr %242, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %243, ptr align 4 %37, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  %244 = load ptr, ptr %10, align 8, !tbaa !5
  %245 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %244, i64 noundef 2) #7
  %246 = getelementptr inbounds %"struct.Raz::Vertex", ptr %245, i32 0, i32 2
  %247 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %246, i64 noundef 0) #7
  %248 = load float, ptr %247, align 4, !tbaa !11
  %249 = load ptr, ptr %10, align 8, !tbaa !5
  %250 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %249, i64 noundef 2) #7
  %251 = getelementptr inbounds %"struct.Raz::Vertex", ptr %250, i32 0, i32 2
  %252 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %251, i64 noundef 2) #7
  %253 = load float, ptr %252, align 4, !tbaa !11
  %254 = call noundef float @_ZSt5atan2ff(float noundef %248, float noundef %253)
  %255 = call float @llvm.fmuladd.f32(float %254, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %255, ptr %40, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  %256 = load ptr, ptr %10, align 8, !tbaa !5
  %257 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %256, i64 noundef 2) #7
  %258 = getelementptr inbounds %"struct.Raz::Vertex", ptr %257, i32 0, i32 2
  %259 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %258, i64 noundef 1) #7
  %260 = load float, ptr %259, align 4, !tbaa !11
  %261 = call float @llvm.fmuladd.f32(float %260, float 5.000000e-01, float 5.000000e-01)
  store float %261, ptr %41, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %41) #7
  %262 = load ptr, ptr %10, align 8, !tbaa !5
  %263 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %262, i64 noundef 2) #7
  %264 = getelementptr inbounds %"struct.Raz::Vertex", ptr %263, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %264, ptr align 4 %39, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %43) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  %265 = load float, ptr %8, align 4, !tbaa !11
  %266 = fneg float %265
  store float %266, ptr %44, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJRKfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %43, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 4 dereferenceable(4) %45) #7
  %267 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %43) #7
  %268 = getelementptr inbounds %"class.Raz::Vector", ptr %42, i32 0, i32 0
  %269 = getelementptr inbounds %"struct.std::array", ptr %268, i32 0, i32 0
  store { <2 x float>, float } %267, ptr %46, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %269, ptr align 8 %46, i64 12, i1 false)
  %270 = load ptr, ptr %10, align 8, !tbaa !5
  %271 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %270, i64 noundef 3) #7
  %272 = getelementptr inbounds %"struct.Raz::Vertex", ptr %271, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %272, ptr align 4 %42, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %47) #7
  %273 = load ptr, ptr %10, align 8, !tbaa !5
  %274 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef 3) #7
  %275 = getelementptr inbounds %"struct.Raz::Vertex", ptr %274, i32 0, i32 2
  %276 = load float, ptr %7, align 4, !tbaa !11
  %277 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %275, float noundef %276) #7
  %278 = getelementptr inbounds %"class.Raz::Vector", ptr %47, i32 0, i32 0
  %279 = getelementptr inbounds %"struct.std::array", ptr %278, i32 0, i32 0
  store { <2 x float>, float } %277, ptr %48, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %279, ptr align 8 %48, i64 12, i1 false)
  %280 = load ptr, ptr %10, align 8, !tbaa !5
  %281 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %280, i64 noundef 3) #7
  %282 = getelementptr inbounds %"struct.Raz::Vertex", ptr %281, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %282, ptr align 4 %47, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  %283 = load ptr, ptr %10, align 8, !tbaa !5
  %284 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %283, i64 noundef 3) #7
  %285 = getelementptr inbounds %"struct.Raz::Vertex", ptr %284, i32 0, i32 2
  %286 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %285, i64 noundef 0) #7
  %287 = load float, ptr %286, align 4, !tbaa !11
  %288 = load ptr, ptr %10, align 8, !tbaa !5
  %289 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %288, i64 noundef 3) #7
  %290 = getelementptr inbounds %"struct.Raz::Vertex", ptr %289, i32 0, i32 2
  %291 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %290, i64 noundef 2) #7
  %292 = load float, ptr %291, align 4, !tbaa !11
  %293 = call noundef float @_ZSt5atan2ff(float noundef %287, float noundef %292)
  %294 = call float @llvm.fmuladd.f32(float %293, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %294, ptr %50, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  %295 = load ptr, ptr %10, align 8, !tbaa !5
  %296 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %295, i64 noundef 3) #7
  %297 = getelementptr inbounds %"struct.Raz::Vertex", ptr %296, i32 0, i32 2
  %298 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %297, i64 noundef 1) #7
  %299 = load float, ptr %298, align 4, !tbaa !11
  %300 = call float @llvm.fmuladd.f32(float %299, float 5.000000e-01, float 5.000000e-01)
  store float %300, ptr %51, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(4) %50, ptr noundef nonnull align 4 dereferenceable(4) %51) #7
  %301 = load ptr, ptr %10, align 8, !tbaa !5
  %302 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %301, i64 noundef 3) #7
  %303 = getelementptr inbounds %"struct.Raz::Vertex", ptr %302, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %303, ptr align 4 %49, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  %304 = load float, ptr %7, align 4, !tbaa !11
  %305 = fneg float %304
  store float %305, ptr %55, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJffRKfEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %53, ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef nonnull align 4 dereferenceable(4) %8) #7
  %306 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %53) #7
  %307 = getelementptr inbounds %"class.Raz::Vector", ptr %52, i32 0, i32 0
  %308 = getelementptr inbounds %"struct.std::array", ptr %307, i32 0, i32 0
  store { <2 x float>, float } %306, ptr %56, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %308, ptr align 8 %56, i64 12, i1 false)
  %309 = load ptr, ptr %10, align 8, !tbaa !5
  %310 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %309, i64 noundef 4) #7
  %311 = getelementptr inbounds %"struct.Raz::Vertex", ptr %310, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %311, ptr align 4 %52, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %57) #7
  %312 = load ptr, ptr %10, align 8, !tbaa !5
  %313 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %312, i64 noundef 4) #7
  %314 = getelementptr inbounds %"struct.Raz::Vertex", ptr %313, i32 0, i32 2
  %315 = load float, ptr %7, align 4, !tbaa !11
  %316 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %314, float noundef %315) #7
  %317 = getelementptr inbounds %"class.Raz::Vector", ptr %57, i32 0, i32 0
  %318 = getelementptr inbounds %"struct.std::array", ptr %317, i32 0, i32 0
  store { <2 x float>, float } %316, ptr %58, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %318, ptr align 8 %58, i64 12, i1 false)
  %319 = load ptr, ptr %10, align 8, !tbaa !5
  %320 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %319, i64 noundef 4) #7
  %321 = getelementptr inbounds %"struct.Raz::Vertex", ptr %320, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %321, ptr align 4 %57, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  %322 = load ptr, ptr %10, align 8, !tbaa !5
  %323 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %322, i64 noundef 4) #7
  %324 = getelementptr inbounds %"struct.Raz::Vertex", ptr %323, i32 0, i32 2
  %325 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %324, i64 noundef 0) #7
  %326 = load float, ptr %325, align 4, !tbaa !11
  %327 = load ptr, ptr %10, align 8, !tbaa !5
  %328 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %327, i64 noundef 4) #7
  %329 = getelementptr inbounds %"struct.Raz::Vertex", ptr %328, i32 0, i32 2
  %330 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %329, i64 noundef 2) #7
  %331 = load float, ptr %330, align 4, !tbaa !11
  %332 = call noundef float @_ZSt5atan2ff(float noundef %326, float noundef %331)
  %333 = call float @llvm.fmuladd.f32(float %332, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %333, ptr %60, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  %334 = load ptr, ptr %10, align 8, !tbaa !5
  %335 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %334, i64 noundef 4) #7
  %336 = getelementptr inbounds %"struct.Raz::Vertex", ptr %335, i32 0, i32 2
  %337 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %336, i64 noundef 1) #7
  %338 = load float, ptr %337, align 4, !tbaa !11
  %339 = call float @llvm.fmuladd.f32(float %338, float 5.000000e-01, float 5.000000e-01)
  store float %339, ptr %61, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull align 4 dereferenceable(4) %61) #7
  %340 = load ptr, ptr %10, align 8, !tbaa !5
  %341 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %340, i64 noundef 4) #7
  %342 = getelementptr inbounds %"struct.Raz::Vertex", ptr %341, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %342, ptr align 4 %59, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  store float 0.000000e+00, ptr %64, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJfRKfS4_EvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %63, ptr noundef nonnull align 4 dereferenceable(4) %64, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %8) #7
  %343 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %63) #7
  %344 = getelementptr inbounds %"class.Raz::Vector", ptr %62, i32 0, i32 0
  %345 = getelementptr inbounds %"struct.std::array", ptr %344, i32 0, i32 0
  store { <2 x float>, float } %343, ptr %65, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %345, ptr align 8 %65, i64 12, i1 false)
  %346 = load ptr, ptr %10, align 8, !tbaa !5
  %347 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %346, i64 noundef 5) #7
  %348 = getelementptr inbounds %"struct.Raz::Vertex", ptr %347, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %348, ptr align 4 %62, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %66) #7
  %349 = load ptr, ptr %10, align 8, !tbaa !5
  %350 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %349, i64 noundef 5) #7
  %351 = getelementptr inbounds %"struct.Raz::Vertex", ptr %350, i32 0, i32 2
  %352 = load float, ptr %7, align 4, !tbaa !11
  %353 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %351, float noundef %352) #7
  %354 = getelementptr inbounds %"class.Raz::Vector", ptr %66, i32 0, i32 0
  %355 = getelementptr inbounds %"struct.std::array", ptr %354, i32 0, i32 0
  store { <2 x float>, float } %353, ptr %67, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %355, ptr align 8 %67, i64 12, i1 false)
  %356 = load ptr, ptr %10, align 8, !tbaa !5
  %357 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %356, i64 noundef 5) #7
  %358 = getelementptr inbounds %"struct.Raz::Vertex", ptr %357, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %358, ptr align 4 %66, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  %359 = load ptr, ptr %10, align 8, !tbaa !5
  %360 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %359, i64 noundef 5) #7
  %361 = getelementptr inbounds %"struct.Raz::Vertex", ptr %360, i32 0, i32 2
  %362 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %361, i64 noundef 0) #7
  %363 = load float, ptr %362, align 4, !tbaa !11
  %364 = load ptr, ptr %10, align 8, !tbaa !5
  %365 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %364, i64 noundef 5) #7
  %366 = getelementptr inbounds %"struct.Raz::Vertex", ptr %365, i32 0, i32 2
  %367 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %366, i64 noundef 2) #7
  %368 = load float, ptr %367, align 4, !tbaa !11
  %369 = call noundef float @_ZSt5atan2ff(float noundef %363, float noundef %368)
  %370 = call float @llvm.fmuladd.f32(float %369, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %370, ptr %69, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #7
  %371 = load ptr, ptr %10, align 8, !tbaa !5
  %372 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %371, i64 noundef 5) #7
  %373 = getelementptr inbounds %"struct.Raz::Vertex", ptr %372, i32 0, i32 2
  %374 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %373, i64 noundef 1) #7
  %375 = load float, ptr %374, align 4, !tbaa !11
  %376 = call float @llvm.fmuladd.f32(float %375, float 5.000000e-01, float 5.000000e-01)
  store float %376, ptr %70, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %68, ptr noundef nonnull align 4 dereferenceable(4) %69, ptr noundef nonnull align 4 dereferenceable(4) %70) #7
  %377 = load ptr, ptr %10, align 8, !tbaa !5
  %378 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %377, i64 noundef 5) #7
  %379 = getelementptr inbounds %"struct.Raz::Vertex", ptr %378, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %379, ptr align 4 %68, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %72) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #7
  store float 0.000000e+00, ptr %73, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #7
  %380 = load float, ptr %7, align 4, !tbaa !11
  %381 = fneg float %380
  store float %381, ptr %74, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #7
  %382 = load float, ptr %8, align 4, !tbaa !11
  %383 = fneg float %382
  store float %383, ptr %75, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %72, ptr noundef nonnull align 4 dereferenceable(4) %73, ptr noundef nonnull align 4 dereferenceable(4) %74, ptr noundef nonnull align 4 dereferenceable(4) %75) #7
  %384 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %72) #7
  %385 = getelementptr inbounds %"class.Raz::Vector", ptr %71, i32 0, i32 0
  %386 = getelementptr inbounds %"struct.std::array", ptr %385, i32 0, i32 0
  store { <2 x float>, float } %384, ptr %76, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %386, ptr align 8 %76, i64 12, i1 false)
  %387 = load ptr, ptr %10, align 8, !tbaa !5
  %388 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %387, i64 noundef 6) #7
  %389 = getelementptr inbounds %"struct.Raz::Vertex", ptr %388, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %389, ptr align 4 %71, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %77) #7
  %390 = load ptr, ptr %10, align 8, !tbaa !5
  %391 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %390, i64 noundef 6) #7
  %392 = getelementptr inbounds %"struct.Raz::Vertex", ptr %391, i32 0, i32 2
  %393 = load float, ptr %7, align 4, !tbaa !11
  %394 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %392, float noundef %393) #7
  %395 = getelementptr inbounds %"class.Raz::Vector", ptr %77, i32 0, i32 0
  %396 = getelementptr inbounds %"struct.std::array", ptr %395, i32 0, i32 0
  store { <2 x float>, float } %394, ptr %78, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %396, ptr align 8 %78, i64 12, i1 false)
  %397 = load ptr, ptr %10, align 8, !tbaa !5
  %398 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %397, i64 noundef 6) #7
  %399 = getelementptr inbounds %"struct.Raz::Vertex", ptr %398, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %399, ptr align 4 %77, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %77) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #7
  %400 = load ptr, ptr %10, align 8, !tbaa !5
  %401 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %400, i64 noundef 6) #7
  %402 = getelementptr inbounds %"struct.Raz::Vertex", ptr %401, i32 0, i32 2
  %403 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %402, i64 noundef 0) #7
  %404 = load float, ptr %403, align 4, !tbaa !11
  %405 = load ptr, ptr %10, align 8, !tbaa !5
  %406 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %405, i64 noundef 6) #7
  %407 = getelementptr inbounds %"struct.Raz::Vertex", ptr %406, i32 0, i32 2
  %408 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %407, i64 noundef 2) #7
  %409 = load float, ptr %408, align 4, !tbaa !11
  %410 = call noundef float @_ZSt5atan2ff(float noundef %404, float noundef %409)
  %411 = call float @llvm.fmuladd.f32(float %410, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %411, ptr %80, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #7
  %412 = load ptr, ptr %10, align 8, !tbaa !5
  %413 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %412, i64 noundef 6) #7
  %414 = getelementptr inbounds %"struct.Raz::Vertex", ptr %413, i32 0, i32 2
  %415 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %414, i64 noundef 1) #7
  %416 = load float, ptr %415, align 4, !tbaa !11
  %417 = call float @llvm.fmuladd.f32(float %416, float 5.000000e-01, float 5.000000e-01)
  store float %417, ptr %81, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %79, ptr noundef nonnull align 4 dereferenceable(4) %80, ptr noundef nonnull align 4 dereferenceable(4) %81) #7
  %418 = load ptr, ptr %10, align 8, !tbaa !5
  %419 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %418, i64 noundef 6) #7
  %420 = getelementptr inbounds %"struct.Raz::Vertex", ptr %419, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %420, ptr align 4 %79, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %83) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #7
  store float 0.000000e+00, ptr %84, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #7
  %421 = load float, ptr %8, align 4, !tbaa !11
  %422 = fneg float %421
  store float %422, ptr %85, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJfRKffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %83, ptr noundef nonnull align 4 dereferenceable(4) %84, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %85) #7
  %423 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %83) #7
  %424 = getelementptr inbounds %"class.Raz::Vector", ptr %82, i32 0, i32 0
  %425 = getelementptr inbounds %"struct.std::array", ptr %424, i32 0, i32 0
  store { <2 x float>, float } %423, ptr %86, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %425, ptr align 8 %86, i64 12, i1 false)
  %426 = load ptr, ptr %10, align 8, !tbaa !5
  %427 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %426, i64 noundef 7) #7
  %428 = getelementptr inbounds %"struct.Raz::Vertex", ptr %427, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %428, ptr align 4 %82, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %87) #7
  %429 = load ptr, ptr %10, align 8, !tbaa !5
  %430 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %429, i64 noundef 7) #7
  %431 = getelementptr inbounds %"struct.Raz::Vertex", ptr %430, i32 0, i32 2
  %432 = load float, ptr %7, align 4, !tbaa !11
  %433 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %431, float noundef %432) #7
  %434 = getelementptr inbounds %"class.Raz::Vector", ptr %87, i32 0, i32 0
  %435 = getelementptr inbounds %"struct.std::array", ptr %434, i32 0, i32 0
  store { <2 x float>, float } %433, ptr %88, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %435, ptr align 8 %88, i64 12, i1 false)
  %436 = load ptr, ptr %10, align 8, !tbaa !5
  %437 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %436, i64 noundef 7) #7
  %438 = getelementptr inbounds %"struct.Raz::Vertex", ptr %437, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %438, ptr align 4 %87, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %87) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #7
  %439 = load ptr, ptr %10, align 8, !tbaa !5
  %440 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %439, i64 noundef 7) #7
  %441 = getelementptr inbounds %"struct.Raz::Vertex", ptr %440, i32 0, i32 2
  %442 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %441, i64 noundef 0) #7
  %443 = load float, ptr %442, align 4, !tbaa !11
  %444 = load ptr, ptr %10, align 8, !tbaa !5
  %445 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %444, i64 noundef 7) #7
  %446 = getelementptr inbounds %"struct.Raz::Vertex", ptr %445, i32 0, i32 2
  %447 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %446, i64 noundef 2) #7
  %448 = load float, ptr %447, align 4, !tbaa !11
  %449 = call noundef float @_ZSt5atan2ff(float noundef %443, float noundef %448)
  %450 = call float @llvm.fmuladd.f32(float %449, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %450, ptr %90, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #7
  %451 = load ptr, ptr %10, align 8, !tbaa !5
  %452 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %451, i64 noundef 7) #7
  %453 = getelementptr inbounds %"struct.Raz::Vertex", ptr %452, i32 0, i32 2
  %454 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %453, i64 noundef 1) #7
  %455 = load float, ptr %454, align 4, !tbaa !11
  %456 = call float @llvm.fmuladd.f32(float %455, float 5.000000e-01, float 5.000000e-01)
  store float %456, ptr %91, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %89, ptr noundef nonnull align 4 dereferenceable(4) %90, ptr noundef nonnull align 4 dereferenceable(4) %91) #7
  %457 = load ptr, ptr %10, align 8, !tbaa !5
  %458 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %457, i64 noundef 7) #7
  %459 = getelementptr inbounds %"struct.Raz::Vertex", ptr %458, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %459, ptr align 4 %89, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %92) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %93) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #7
  store float 0.000000e+00, ptr %94, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #7
  %460 = load float, ptr %7, align 4, !tbaa !11
  %461 = fneg float %460
  store float %461, ptr %95, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJRKfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %93, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %94, ptr noundef nonnull align 4 dereferenceable(4) %95) #7
  %462 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %93) #7
  %463 = getelementptr inbounds %"class.Raz::Vector", ptr %92, i32 0, i32 0
  %464 = getelementptr inbounds %"struct.std::array", ptr %463, i32 0, i32 0
  store { <2 x float>, float } %462, ptr %96, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %464, ptr align 8 %96, i64 12, i1 false)
  %465 = load ptr, ptr %10, align 8, !tbaa !5
  %466 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %465, i64 noundef 8) #7
  %467 = getelementptr inbounds %"struct.Raz::Vertex", ptr %466, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %467, ptr align 4 %92, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %93) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %92) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %97) #7
  %468 = load ptr, ptr %10, align 8, !tbaa !5
  %469 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef 8) #7
  %470 = getelementptr inbounds %"struct.Raz::Vertex", ptr %469, i32 0, i32 2
  %471 = load float, ptr %7, align 4, !tbaa !11
  %472 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %470, float noundef %471) #7
  %473 = getelementptr inbounds %"class.Raz::Vector", ptr %97, i32 0, i32 0
  %474 = getelementptr inbounds %"struct.std::array", ptr %473, i32 0, i32 0
  store { <2 x float>, float } %472, ptr %98, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %474, ptr align 8 %98, i64 12, i1 false)
  %475 = load ptr, ptr %10, align 8, !tbaa !5
  %476 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %475, i64 noundef 8) #7
  %477 = getelementptr inbounds %"struct.Raz::Vertex", ptr %476, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %477, ptr align 4 %97, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %97) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #7
  %478 = load ptr, ptr %10, align 8, !tbaa !5
  %479 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %478, i64 noundef 8) #7
  %480 = getelementptr inbounds %"struct.Raz::Vertex", ptr %479, i32 0, i32 2
  %481 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %480, i64 noundef 0) #7
  %482 = load float, ptr %481, align 4, !tbaa !11
  %483 = load ptr, ptr %10, align 8, !tbaa !5
  %484 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %483, i64 noundef 8) #7
  %485 = getelementptr inbounds %"struct.Raz::Vertex", ptr %484, i32 0, i32 2
  %486 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %485, i64 noundef 2) #7
  %487 = load float, ptr %486, align 4, !tbaa !11
  %488 = call noundef float @_ZSt5atan2ff(float noundef %482, float noundef %487)
  %489 = call float @llvm.fmuladd.f32(float %488, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %489, ptr %100, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #7
  %490 = load ptr, ptr %10, align 8, !tbaa !5
  %491 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %490, i64 noundef 8) #7
  %492 = getelementptr inbounds %"struct.Raz::Vertex", ptr %491, i32 0, i32 2
  %493 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %492, i64 noundef 1) #7
  %494 = load float, ptr %493, align 4, !tbaa !11
  %495 = call float @llvm.fmuladd.f32(float %494, float 5.000000e-01, float 5.000000e-01)
  store float %495, ptr %101, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %99, ptr noundef nonnull align 4 dereferenceable(4) %100, ptr noundef nonnull align 4 dereferenceable(4) %101) #7
  %496 = load ptr, ptr %10, align 8, !tbaa !5
  %497 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %496, i64 noundef 8) #7
  %498 = getelementptr inbounds %"struct.Raz::Vertex", ptr %497, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %498, ptr align 4 %99, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %102) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %103) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #7
  store float 0.000000e+00, ptr %104, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJRKffS4_EvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %103, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %104, ptr noundef nonnull align 4 dereferenceable(4) %7) #7
  %499 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %103) #7
  %500 = getelementptr inbounds %"class.Raz::Vector", ptr %102, i32 0, i32 0
  %501 = getelementptr inbounds %"struct.std::array", ptr %500, i32 0, i32 0
  store { <2 x float>, float } %499, ptr %105, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %501, ptr align 8 %105, i64 12, i1 false)
  %502 = load ptr, ptr %10, align 8, !tbaa !5
  %503 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %502, i64 noundef 9) #7
  %504 = getelementptr inbounds %"struct.Raz::Vertex", ptr %503, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %504, ptr align 4 %102, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %102) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %106) #7
  %505 = load ptr, ptr %10, align 8, !tbaa !5
  %506 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %505, i64 noundef 9) #7
  %507 = getelementptr inbounds %"struct.Raz::Vertex", ptr %506, i32 0, i32 2
  %508 = load float, ptr %7, align 4, !tbaa !11
  %509 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %507, float noundef %508) #7
  %510 = getelementptr inbounds %"class.Raz::Vector", ptr %106, i32 0, i32 0
  %511 = getelementptr inbounds %"struct.std::array", ptr %510, i32 0, i32 0
  store { <2 x float>, float } %509, ptr %107, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %511, ptr align 8 %107, i64 12, i1 false)
  %512 = load ptr, ptr %10, align 8, !tbaa !5
  %513 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %512, i64 noundef 9) #7
  %514 = getelementptr inbounds %"struct.Raz::Vertex", ptr %513, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %514, ptr align 4 %106, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %106) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #7
  %515 = load ptr, ptr %10, align 8, !tbaa !5
  %516 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %515, i64 noundef 9) #7
  %517 = getelementptr inbounds %"struct.Raz::Vertex", ptr %516, i32 0, i32 2
  %518 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %517, i64 noundef 0) #7
  %519 = load float, ptr %518, align 4, !tbaa !11
  %520 = load ptr, ptr %10, align 8, !tbaa !5
  %521 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %520, i64 noundef 9) #7
  %522 = getelementptr inbounds %"struct.Raz::Vertex", ptr %521, i32 0, i32 2
  %523 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %522, i64 noundef 2) #7
  %524 = load float, ptr %523, align 4, !tbaa !11
  %525 = call noundef float @_ZSt5atan2ff(float noundef %519, float noundef %524)
  %526 = call float @llvm.fmuladd.f32(float %525, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %526, ptr %109, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #7
  %527 = load ptr, ptr %10, align 8, !tbaa !5
  %528 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %527, i64 noundef 9) #7
  %529 = getelementptr inbounds %"struct.Raz::Vertex", ptr %528, i32 0, i32 2
  %530 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %529, i64 noundef 1) #7
  %531 = load float, ptr %530, align 4, !tbaa !11
  %532 = call float @llvm.fmuladd.f32(float %531, float 5.000000e-01, float 5.000000e-01)
  store float %532, ptr %110, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %108, ptr noundef nonnull align 4 dereferenceable(4) %109, ptr noundef nonnull align 4 dereferenceable(4) %110) #7
  %533 = load ptr, ptr %10, align 8, !tbaa !5
  %534 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %533, i64 noundef 9) #7
  %535 = getelementptr inbounds %"struct.Raz::Vertex", ptr %534, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %535, ptr align 4 %108, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %111) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %112) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #7
  %536 = load float, ptr %8, align 4, !tbaa !11
  %537 = fneg float %536
  store float %537, ptr %113, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #7
  store float 0.000000e+00, ptr %114, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #7
  %538 = load float, ptr %7, align 4, !tbaa !11
  %539 = fneg float %538
  store float %539, ptr %115, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %112, ptr noundef nonnull align 4 dereferenceable(4) %113, ptr noundef nonnull align 4 dereferenceable(4) %114, ptr noundef nonnull align 4 dereferenceable(4) %115) #7
  %540 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %112) #7
  %541 = getelementptr inbounds %"class.Raz::Vector", ptr %111, i32 0, i32 0
  %542 = getelementptr inbounds %"struct.std::array", ptr %541, i32 0, i32 0
  store { <2 x float>, float } %540, ptr %116, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %542, ptr align 8 %116, i64 12, i1 false)
  %543 = load ptr, ptr %10, align 8, !tbaa !5
  %544 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %543, i64 noundef 10) #7
  %545 = getelementptr inbounds %"struct.Raz::Vertex", ptr %544, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %545, ptr align 4 %111, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %112) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %111) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %117) #7
  %546 = load ptr, ptr %10, align 8, !tbaa !5
  %547 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %546, i64 noundef 10) #7
  %548 = getelementptr inbounds %"struct.Raz::Vertex", ptr %547, i32 0, i32 2
  %549 = load float, ptr %7, align 4, !tbaa !11
  %550 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %548, float noundef %549) #7
  %551 = getelementptr inbounds %"class.Raz::Vector", ptr %117, i32 0, i32 0
  %552 = getelementptr inbounds %"struct.std::array", ptr %551, i32 0, i32 0
  store { <2 x float>, float } %550, ptr %118, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %552, ptr align 8 %118, i64 12, i1 false)
  %553 = load ptr, ptr %10, align 8, !tbaa !5
  %554 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %553, i64 noundef 10) #7
  %555 = getelementptr inbounds %"struct.Raz::Vertex", ptr %554, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %555, ptr align 4 %117, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %117) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #7
  %556 = load ptr, ptr %10, align 8, !tbaa !5
  %557 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %556, i64 noundef 10) #7
  %558 = getelementptr inbounds %"struct.Raz::Vertex", ptr %557, i32 0, i32 2
  %559 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %558, i64 noundef 0) #7
  %560 = load float, ptr %559, align 4, !tbaa !11
  %561 = load ptr, ptr %10, align 8, !tbaa !5
  %562 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %561, i64 noundef 10) #7
  %563 = getelementptr inbounds %"struct.Raz::Vertex", ptr %562, i32 0, i32 2
  %564 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %563, i64 noundef 2) #7
  %565 = load float, ptr %564, align 4, !tbaa !11
  %566 = call noundef float @_ZSt5atan2ff(float noundef %560, float noundef %565)
  %567 = call float @llvm.fmuladd.f32(float %566, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %567, ptr %120, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #7
  %568 = load ptr, ptr %10, align 8, !tbaa !5
  %569 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %568, i64 noundef 10) #7
  %570 = getelementptr inbounds %"struct.Raz::Vertex", ptr %569, i32 0, i32 2
  %571 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %570, i64 noundef 1) #7
  %572 = load float, ptr %571, align 4, !tbaa !11
  %573 = call float @llvm.fmuladd.f32(float %572, float 5.000000e-01, float 5.000000e-01)
  store float %573, ptr %121, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %119, ptr noundef nonnull align 4 dereferenceable(4) %120, ptr noundef nonnull align 4 dereferenceable(4) %121) #7
  %574 = load ptr, ptr %10, align 8, !tbaa !5
  %575 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %574, i64 noundef 10) #7
  %576 = getelementptr inbounds %"struct.Raz::Vertex", ptr %575, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %576, ptr align 4 %119, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %122) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %123) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #7
  %577 = load float, ptr %8, align 4, !tbaa !11
  %578 = fneg float %577
  store float %578, ptr %124, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #7
  store float 0.000000e+00, ptr %125, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm3EEC2IJffRKfEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %123, ptr noundef nonnull align 4 dereferenceable(4) %124, ptr noundef nonnull align 4 dereferenceable(4) %125, ptr noundef nonnull align 4 dereferenceable(4) %7) #7
  %579 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %123) #7
  %580 = getelementptr inbounds %"class.Raz::Vector", ptr %122, i32 0, i32 0
  %581 = getelementptr inbounds %"struct.std::array", ptr %580, i32 0, i32 0
  store { <2 x float>, float } %579, ptr %126, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %581, ptr align 8 %126, i64 12, i1 false)
  %582 = load ptr, ptr %10, align 8, !tbaa !5
  %583 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %582, i64 noundef 11) #7
  %584 = getelementptr inbounds %"struct.Raz::Vertex", ptr %583, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %584, ptr align 4 %122, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %122) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr %127) #7
  %585 = load ptr, ptr %10, align 8, !tbaa !5
  %586 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %585, i64 noundef 11) #7
  %587 = getelementptr inbounds %"struct.Raz::Vertex", ptr %586, i32 0, i32 2
  %588 = load float, ptr %7, align 4, !tbaa !11
  %589 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %587, float noundef %588) #7
  %590 = getelementptr inbounds %"class.Raz::Vector", ptr %127, i32 0, i32 0
  %591 = getelementptr inbounds %"struct.std::array", ptr %590, i32 0, i32 0
  store { <2 x float>, float } %589, ptr %128, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %591, ptr align 8 %128, i64 12, i1 false)
  %592 = load ptr, ptr %10, align 8, !tbaa !5
  %593 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %592, i64 noundef 11) #7
  %594 = getelementptr inbounds %"struct.Raz::Vertex", ptr %593, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %594, ptr align 4 %127, i64 12, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 12, ptr %127) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #7
  %595 = load ptr, ptr %10, align 8, !tbaa !5
  %596 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %595, i64 noundef 11) #7
  %597 = getelementptr inbounds %"struct.Raz::Vertex", ptr %596, i32 0, i32 2
  %598 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %597, i64 noundef 0) #7
  %599 = load float, ptr %598, align 4, !tbaa !11
  %600 = load ptr, ptr %10, align 8, !tbaa !5
  %601 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %600, i64 noundef 11) #7
  %602 = getelementptr inbounds %"struct.Raz::Vertex", ptr %601, i32 0, i32 2
  %603 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %602, i64 noundef 2) #7
  %604 = load float, ptr %603, align 4, !tbaa !11
  %605 = call noundef float @_ZSt5atan2ff(float noundef %599, float noundef %604)
  %606 = call float @llvm.fmuladd.f32(float %605, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %606, ptr %130, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #7
  %607 = load ptr, ptr %10, align 8, !tbaa !5
  %608 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %607, i64 noundef 11) #7
  %609 = getelementptr inbounds %"struct.Raz::Vertex", ptr %608, i32 0, i32 2
  %610 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %609, i64 noundef 1) #7
  %611 = load float, ptr %610, align 4, !tbaa !11
  %612 = call float @llvm.fmuladd.f32(float %611, float 5.000000e-01, float 5.000000e-01)
  store float %612, ptr %131, align 4, !tbaa !11
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %129, ptr noundef nonnull align 4 dereferenceable(4) %130, ptr noundef nonnull align 4 dereferenceable(4) %131) #7
  %613 = load ptr, ptr %10, align 8, !tbaa !5
  %614 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %613, i64 noundef 11) #7
  %615 = getelementptr inbounds %"struct.Raz::Vertex", ptr %614, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %615, ptr align 4 %129, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #7
  %616 = load ptr, ptr %10, align 8, !tbaa !5
  store ptr %616, ptr %132, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #7
  %617 = load ptr, ptr %132, align 8, !tbaa !5
  %618 = call ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %617) #7
  %619 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.14", ptr %133, i32 0, i32 0
  store ptr %618, ptr %619, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #7
  %620 = load ptr, ptr %132, align 8, !tbaa !5
  %621 = call ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %620) #7
  %622 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.14", ptr %134, i32 0, i32 0
  store ptr %621, ptr %622, align 8
  br label %623

623:                                              ; preds = %633, %3
  %624 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3Raz6VertexESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef nonnull align 8 dereferenceable(8) %134) #7
  br i1 %624, label %626, label %625

625:                                              ; preds = %623
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #7
  br label %635

626:                                              ; preds = %623
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #7
  %627 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3Raz6VertexESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %133) #7
  store ptr %627, ptr %135, align 8, !tbaa !5
  %628 = load ptr, ptr %5, align 8, !tbaa !5
  %629 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNK3Raz6Sphere9getCenterEv(ptr noundef nonnull align 8 dereferenceable(24) %628)
  %630 = load ptr, ptr %135, align 8, !tbaa !5
  %631 = getelementptr inbounds %"struct.Raz::Vertex", ptr %630, i32 0, i32 0
  %632 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3Raz6VectorIfLm3EEpLERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %631, ptr noundef nonnull align 4 dereferenceable(12) %629) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #7
  br label %633

633:                                              ; preds = %626
  %634 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3Raz6VertexESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %133) #7
  br label %623

635:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 240, ptr %137) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %137, ptr align 4 @constinit.3, i64 240, i1 false), !tbaa.struct !16
  %636 = getelementptr inbounds %"class.std::initializer_list.12", ptr %136, i32 0, i32 0
  store ptr %137, ptr %636, align 8, !tbaa !17
  %637 = getelementptr inbounds %"class.std::initializer_list.12", ptr %136, i32 0, i32 1
  store i64 60, ptr %637, align 8, !tbaa !20
  %638 = load ptr, ptr %9, align 8, !tbaa !5
  %639 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3Raz7Submesh18getTriangleIndicesEv(ptr noundef nonnull align 8 dereferenceable(104) %638)
  %640 = getelementptr inbounds { ptr, i64 }, ptr %136, i32 0, i32 0
  %641 = load ptr, ptr %640, align 8
  %642 = getelementptr inbounds { ptr, i64 }, ptr %136, i32 0, i32 1
  %643 = load i64, ptr %642, align 8
  %644 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIjSaIjEEaSESt16initializer_listIjE(ptr noundef nonnull align 8 dereferenceable(24) %639, ptr %641, i64 %643)
  call void @llvm.lifetime.end.p0(i64 240, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  ret void
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12)) #2 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12), float noundef) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5atan2ff(float noundef, float noundef) #6

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{i64 0, i64 12, !14}
!14 = !{!7, !7, i64 0}
!15 = !{i64 0, i64 8, !14}
!16 = !{i64 0, i64 240, !14}
!17 = !{!18, !6, i64 0}
!18 = !{!"_ZTSSt16initializer_listIjE", !6, i64 0, !19, i64 8}
!19 = !{!"long", !7, i64 0}
!20 = !{!18, !19, i64 8}


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

%"class.Raz::Vector" = type { %"struct.std::array" }
%"struct.std::array" = type { [3 x float] }
%"class.Raz::Vector.0" = type { %"struct.std::array.1" }
%"struct.std::array.1" = type { [2 x float] }
%"class.__gnu_cxx::__normal_iterator.14" = type { ptr }

@constinit.3 = external hidden local_unnamed_addr constant [60 x i32], align 4

; 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 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) #1

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3Raz4Mesh15createIcosphereERKNS_6SphereEj(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef %2) local_unnamed_addr #4 align 2 {
  %4 = alloca float, align 4
  %5 = alloca float, align 4
  %6 = alloca %"class.Raz::Vector", align 4
  %7 = alloca float, align 4
  %8 = alloca float, align 4
  %9 = alloca %"class.Raz::Vector.0", align 8
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca %"class.Raz::Vector", align 4
  %13 = alloca float, align 4
  %14 = alloca %"class.Raz::Vector.0", align 8
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca %"class.Raz::Vector", align 4
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca float, align 4
  %21 = alloca %"class.Raz::Vector.0", align 8
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca %"class.Raz::Vector", align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca %"class.Raz::Vector.0", align 8
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca %"class.Raz::Vector", align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca %"class.Raz::Vector.0", align 8
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca %"class.Raz::Vector", align 4
  %37 = alloca float, align 4
  %38 = alloca %"class.Raz::Vector.0", align 8
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca %"class.Raz::Vector", align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca %"class.Raz::Vector.0", align 8
  %46 = alloca float, align 4
  %47 = alloca float, align 4
  %48 = alloca %"class.Raz::Vector", align 4
  %49 = alloca float, align 4
  %50 = alloca float, align 4
  %51 = alloca %"class.Raz::Vector.0", align 8
  %52 = alloca float, align 4
  %53 = alloca float, align 4
  %54 = alloca %"class.Raz::Vector", align 4
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca %"class.Raz::Vector.0", align 8
  %58 = alloca float, align 4
  %59 = alloca float, align 4
  %60 = alloca %"class.Raz::Vector", align 4
  %61 = alloca float, align 4
  %62 = alloca %"class.Raz::Vector.0", align 8
  %63 = alloca float, align 4
  %64 = alloca float, align 4
  %65 = alloca %"class.Raz::Vector", align 4
  %66 = alloca float, align 4
  %67 = alloca float, align 4
  %68 = alloca float, align 4
  %69 = alloca %"class.Raz::Vector.0", align 8
  %70 = alloca float, align 4
  %71 = alloca float, align 4
  %72 = alloca %"class.Raz::Vector", align 4
  %73 = alloca float, align 4
  %74 = alloca float, align 4
  %75 = alloca %"class.Raz::Vector.0", align 8
  %76 = alloca float, align 4
  %77 = alloca float, align 4
  %78 = alloca %"class.__gnu_cxx::__normal_iterator.14", align 8
  %79 = alloca %"class.__gnu_cxx::__normal_iterator.14", align 8
  %80 = alloca [60 x i32], align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #7
  %81 = tail call noundef float @_ZNK3Raz6Sphere9getRadiusEv(ptr noundef nonnull align 8 dereferenceable(24) %1)
  store float %81, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #7
  %82 = fmul float %81, 0x3FF9E377A0000000
  store float %82, ptr %5, align 4, !tbaa !5
  %83 = getelementptr inbounds i8, ptr %0, i64 8
  %84 = tail call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorIN3Raz7SubmeshESaIS1_EE12emplace_backIJEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %83)
  %85 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3Raz7Submesh11getVerticesEv(ptr noundef nonnull align 8 dereferenceable(104) %84)
  tail call void @_ZNSt6vectorIN3Raz6VertexESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 12)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #7
  %86 = fneg float %81
  store float %86, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #7
  store float 0.000000e+00, ptr %8, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJfRKffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %8) #7
  %87 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %6) #7
  %.fca.0.extract138 = extractvalue { <2 x float>, float } %87, 0
  %.fca.1.extract139 = extractvalue { <2 x float>, float } %87, 1
  %88 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 0) #7
  %89 = getelementptr inbounds i8, ptr %88, i64 20
  store <2 x float> %.fca.0.extract138, ptr %89, align 4
  %.sroa.4143.0..sroa_idx = getelementptr inbounds i8, ptr %88, i64 28
  store float %.fca.1.extract139, ptr %.sroa.4143.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %6) #7
  %90 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 0) #7
  %91 = getelementptr inbounds i8, ptr %90, i64 20
  %92 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %91, float noundef %81) #7
  %.fca.0.extract132 = extractvalue { <2 x float>, float } %92, 0
  %.fca.1.extract133 = extractvalue { <2 x float>, float } %92, 1
  %93 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 0) #7
  store <2 x float> %.fca.0.extract132, ptr %93, align 4
  %.sroa.4137.0..sroa_idx = getelementptr inbounds i8, ptr %93, i64 8
  store float %.fca.1.extract133, ptr %.sroa.4137.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #7
  %94 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 0) #7
  %95 = getelementptr inbounds i8, ptr %94, i64 20
  %96 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %95, i64 noundef 0) #7
  %97 = load float, ptr %96, align 4, !tbaa !5
  %98 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 0) #7
  %99 = getelementptr inbounds i8, ptr %98, i64 20
  %100 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %99, i64 noundef 2) #7
  %101 = load float, ptr %100, align 4, !tbaa !5
  %102 = call noundef float @_ZSt5atan2ff(float noundef %97, float noundef %101)
  %103 = call float @llvm.fmuladd.f32(float %102, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %103, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #7
  %104 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 0) #7
  %105 = getelementptr inbounds i8, ptr %104, i64 20
  %106 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %105, i64 noundef 1) #7
  %107 = load float, ptr %106, align 4, !tbaa !5
  %108 = call float @llvm.fmuladd.f32(float %107, float 5.000000e-01, float 5.000000e-01)
  store float %108, ptr %11, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %11) #7
  %109 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 0) #7
  %110 = getelementptr inbounds i8, ptr %109, i64 12
  %111 = load i64, ptr %9, align 8, !tbaa !9
  store i64 %111, ptr %110, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  store float 0.000000e+00, ptr %13, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJRKfS4_fEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %12, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %13) #7
  %112 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %12) #7
  %.fca.0.extract126 = extractvalue { <2 x float>, float } %112, 0
  %.fca.1.extract127 = extractvalue { <2 x float>, float } %112, 1
  %113 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 1) #7
  %114 = getelementptr inbounds i8, ptr %113, i64 20
  store <2 x float> %.fca.0.extract126, ptr %114, align 4
  %.sroa.4131.0..sroa_idx = getelementptr inbounds i8, ptr %113, i64 28
  store float %.fca.1.extract127, ptr %.sroa.4131.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #7
  %115 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 1) #7
  %116 = getelementptr inbounds i8, ptr %115, i64 20
  %117 = load float, ptr %4, align 4, !tbaa !5
  %118 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %116, float noundef %117) #7
  %.fca.0.extract120 = extractvalue { <2 x float>, float } %118, 0
  %.fca.1.extract121 = extractvalue { <2 x float>, float } %118, 1
  %119 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 1) #7
  store <2 x float> %.fca.0.extract120, ptr %119, align 4
  %.sroa.4125.0..sroa_idx = getelementptr inbounds i8, ptr %119, i64 8
  store float %.fca.1.extract121, ptr %.sroa.4125.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #7
  %120 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 1) #7
  %121 = getelementptr inbounds i8, ptr %120, i64 20
  %122 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %121, i64 noundef 0) #7
  %123 = load float, ptr %122, align 4, !tbaa !5
  %124 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 1) #7
  %125 = getelementptr inbounds i8, ptr %124, i64 20
  %126 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %125, i64 noundef 2) #7
  %127 = load float, ptr %126, align 4, !tbaa !5
  %128 = call noundef float @_ZSt5atan2ff(float noundef %123, float noundef %127)
  %129 = call float @llvm.fmuladd.f32(float %128, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %129, ptr %15, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #7
  %130 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 1) #7
  %131 = getelementptr inbounds i8, ptr %130, i64 20
  %132 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %131, i64 noundef 1) #7
  %133 = load float, ptr %132, align 4, !tbaa !5
  %134 = call float @llvm.fmuladd.f32(float %133, float 5.000000e-01, float 5.000000e-01)
  store float %134, ptr %16, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %16) #7
  %135 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 1) #7
  %136 = getelementptr inbounds i8, ptr %135, i64 12
  %137 = load i64, ptr %14, align 8, !tbaa !9
  store i64 %137, ptr %136, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  %138 = load float, ptr %4, align 4, !tbaa !5
  %139 = fneg float %138
  store float %139, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  %140 = load float, ptr %5, align 4, !tbaa !5
  %141 = fneg float %140
  store float %141, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #7
  store float 0.000000e+00, ptr %20, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %17, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %20) #7
  %142 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %17) #7
  %.fca.0.extract114 = extractvalue { <2 x float>, float } %142, 0
  %.fca.1.extract115 = extractvalue { <2 x float>, float } %142, 1
  %143 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 2) #7
  %144 = getelementptr inbounds i8, ptr %143, i64 20
  store <2 x float> %.fca.0.extract114, ptr %144, align 4
  %.sroa.4119.0..sroa_idx = getelementptr inbounds i8, ptr %143, i64 28
  store float %.fca.1.extract115, ptr %.sroa.4119.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %17) #7
  %145 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 2) #7
  %146 = getelementptr inbounds i8, ptr %145, i64 20
  %147 = load float, ptr %4, align 4, !tbaa !5
  %148 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %146, float noundef %147) #7
  %.fca.0.extract108 = extractvalue { <2 x float>, float } %148, 0
  %.fca.1.extract109 = extractvalue { <2 x float>, float } %148, 1
  %149 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 2) #7
  store <2 x float> %.fca.0.extract108, ptr %149, align 4
  %.sroa.4113.0..sroa_idx = getelementptr inbounds i8, ptr %149, i64 8
  store float %.fca.1.extract109, ptr %.sroa.4113.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #7
  %150 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 2) #7
  %151 = getelementptr inbounds i8, ptr %150, i64 20
  %152 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %151, i64 noundef 0) #7
  %153 = load float, ptr %152, align 4, !tbaa !5
  %154 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 2) #7
  %155 = getelementptr inbounds i8, ptr %154, i64 20
  %156 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %155, i64 noundef 2) #7
  %157 = load float, ptr %156, align 4, !tbaa !5
  %158 = call noundef float @_ZSt5atan2ff(float noundef %153, float noundef %157)
  %159 = call float @llvm.fmuladd.f32(float %158, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %159, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #7
  %160 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 2) #7
  %161 = getelementptr inbounds i8, ptr %160, i64 20
  %162 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %161, i64 noundef 1) #7
  %163 = load float, ptr %162, align 4, !tbaa !5
  %164 = call float @llvm.fmuladd.f32(float %163, float 5.000000e-01, float 5.000000e-01)
  store float %164, ptr %23, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23) #7
  %165 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 2) #7
  %166 = getelementptr inbounds i8, ptr %165, i64 12
  %167 = load i64, ptr %21, align 8, !tbaa !9
  store i64 %167, ptr %166, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #7
  %168 = load float, ptr %5, align 4, !tbaa !5
  %169 = fneg float %168
  store float %169, ptr %25, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #7
  store float 0.000000e+00, ptr %26, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJRKfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %24, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %26) #7
  %170 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %24) #7
  %.fca.0.extract102 = extractvalue { <2 x float>, float } %170, 0
  %.fca.1.extract103 = extractvalue { <2 x float>, float } %170, 1
  %171 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 3) #7
  %172 = getelementptr inbounds i8, ptr %171, i64 20
  store <2 x float> %.fca.0.extract102, ptr %172, align 4
  %.sroa.4107.0..sroa_idx = getelementptr inbounds i8, ptr %171, i64 28
  store float %.fca.1.extract103, ptr %.sroa.4107.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %24) #7
  %173 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 3) #7
  %174 = getelementptr inbounds i8, ptr %173, i64 20
  %175 = load float, ptr %4, align 4, !tbaa !5
  %176 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %174, float noundef %175) #7
  %.fca.0.extract96 = extractvalue { <2 x float>, float } %176, 0
  %.fca.1.extract97 = extractvalue { <2 x float>, float } %176, 1
  %177 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 3) #7
  store <2 x float> %.fca.0.extract96, ptr %177, align 4
  %.sroa.4101.0..sroa_idx = getelementptr inbounds i8, ptr %177, i64 8
  store float %.fca.1.extract97, ptr %.sroa.4101.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #7
  %178 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 3) #7
  %179 = getelementptr inbounds i8, ptr %178, i64 20
  %180 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %179, i64 noundef 0) #7
  %181 = load float, ptr %180, align 4, !tbaa !5
  %182 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 3) #7
  %183 = getelementptr inbounds i8, ptr %182, i64 20
  %184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %183, i64 noundef 2) #7
  %185 = load float, ptr %184, align 4, !tbaa !5
  %186 = call noundef float @_ZSt5atan2ff(float noundef %181, float noundef %185)
  %187 = call float @llvm.fmuladd.f32(float %186, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %187, ptr %28, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  %188 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 3) #7
  %189 = getelementptr inbounds i8, ptr %188, i64 20
  %190 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %189, i64 noundef 1) #7
  %191 = load float, ptr %190, align 4, !tbaa !5
  %192 = call float @llvm.fmuladd.f32(float %191, float 5.000000e-01, float 5.000000e-01)
  store float %192, ptr %29, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 4 dereferenceable(4) %29) #7
  %193 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 3) #7
  %194 = getelementptr inbounds i8, ptr %193, i64 12
  %195 = load i64, ptr %27, align 8, !tbaa !9
  store i64 %195, ptr %194, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  store float 0.000000e+00, ptr %31, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #7
  %196 = load float, ptr %4, align 4, !tbaa !5
  %197 = fneg float %196
  store float %197, ptr %32, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJffRKfEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %30, ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %5) #7
  %198 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %30) #7
  %.fca.0.extract90 = extractvalue { <2 x float>, float } %198, 0
  %.fca.1.extract91 = extractvalue { <2 x float>, float } %198, 1
  %199 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 4) #7
  %200 = getelementptr inbounds i8, ptr %199, i64 20
  store <2 x float> %.fca.0.extract90, ptr %200, align 4
  %.sroa.495.0..sroa_idx = getelementptr inbounds i8, ptr %199, i64 28
  store float %.fca.1.extract91, ptr %.sroa.495.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %30) #7
  %201 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 4) #7
  %202 = getelementptr inbounds i8, ptr %201, i64 20
  %203 = load float, ptr %4, align 4, !tbaa !5
  %204 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %202, float noundef %203) #7
  %.fca.0.extract84 = extractvalue { <2 x float>, float } %204, 0
  %.fca.1.extract85 = extractvalue { <2 x float>, float } %204, 1
  %205 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 4) #7
  store <2 x float> %.fca.0.extract84, ptr %205, align 4
  %.sroa.489.0..sroa_idx = getelementptr inbounds i8, ptr %205, i64 8
  store float %.fca.1.extract85, ptr %.sroa.489.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #7
  %206 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 4) #7
  %207 = getelementptr inbounds i8, ptr %206, i64 20
  %208 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %207, i64 noundef 0) #7
  %209 = load float, ptr %208, align 4, !tbaa !5
  %210 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 4) #7
  %211 = getelementptr inbounds i8, ptr %210, i64 20
  %212 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %211, i64 noundef 2) #7
  %213 = load float, ptr %212, align 4, !tbaa !5
  %214 = call noundef float @_ZSt5atan2ff(float noundef %209, float noundef %213)
  %215 = call float @llvm.fmuladd.f32(float %214, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %215, ptr %34, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  %216 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 4) #7
  %217 = getelementptr inbounds i8, ptr %216, i64 20
  %218 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %217, i64 noundef 1) #7
  %219 = load float, ptr %218, align 4, !tbaa !5
  %220 = call float @llvm.fmuladd.f32(float %219, float 5.000000e-01, float 5.000000e-01)
  store float %220, ptr %35, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %35) #7
  %221 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 4) #7
  %222 = getelementptr inbounds i8, ptr %221, i64 12
  %223 = load i64, ptr %33, align 8, !tbaa !9
  store i64 %223, ptr %222, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #7
  store float 0.000000e+00, ptr %37, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJfRKfS4_EvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %36, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5) #7
  %224 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %36) #7
  %.fca.0.extract78 = extractvalue { <2 x float>, float } %224, 0
  %.fca.1.extract79 = extractvalue { <2 x float>, float } %224, 1
  %225 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 5) #7
  %226 = getelementptr inbounds i8, ptr %225, i64 20
  store <2 x float> %.fca.0.extract78, ptr %226, align 4
  %.sroa.483.0..sroa_idx = getelementptr inbounds i8, ptr %225, i64 28
  store float %.fca.1.extract79, ptr %.sroa.483.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %36) #7
  %227 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 5) #7
  %228 = getelementptr inbounds i8, ptr %227, i64 20
  %229 = load float, ptr %4, align 4, !tbaa !5
  %230 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %228, float noundef %229) #7
  %.fca.0.extract72 = extractvalue { <2 x float>, float } %230, 0
  %.fca.1.extract73 = extractvalue { <2 x float>, float } %230, 1
  %231 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 5) #7
  store <2 x float> %.fca.0.extract72, ptr %231, align 4
  %.sroa.477.0..sroa_idx = getelementptr inbounds i8, ptr %231, i64 8
  store float %.fca.1.extract73, ptr %.sroa.477.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #7
  %232 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 5) #7
  %233 = getelementptr inbounds i8, ptr %232, i64 20
  %234 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %233, i64 noundef 0) #7
  %235 = load float, ptr %234, align 4, !tbaa !5
  %236 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 5) #7
  %237 = getelementptr inbounds i8, ptr %236, i64 20
  %238 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %237, i64 noundef 2) #7
  %239 = load float, ptr %238, align 4, !tbaa !5
  %240 = call noundef float @_ZSt5atan2ff(float noundef %235, float noundef %239)
  %241 = call float @llvm.fmuladd.f32(float %240, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %241, ptr %39, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #7
  %242 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 5) #7
  %243 = getelementptr inbounds i8, ptr %242, i64 20
  %244 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %243, i64 noundef 1) #7
  %245 = load float, ptr %244, align 4, !tbaa !5
  %246 = call float @llvm.fmuladd.f32(float %245, float 5.000000e-01, float 5.000000e-01)
  store float %246, ptr %40, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %40) #7
  %247 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 5) #7
  %248 = getelementptr inbounds i8, ptr %247, i64 12
  %249 = load i64, ptr %38, align 8, !tbaa !9
  store i64 %249, ptr %248, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #7
  store float 0.000000e+00, ptr %42, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #7
  %250 = load float, ptr %4, align 4, !tbaa !5
  %251 = fneg float %250
  store float %251, ptr %43, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #7
  %252 = load float, ptr %5, align 4, !tbaa !5
  %253 = fneg float %252
  store float %253, ptr %44, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %41, ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull align 4 dereferenceable(4) %44) #7
  %254 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %41) #7
  %.fca.0.extract66 = extractvalue { <2 x float>, float } %254, 0
  %.fca.1.extract67 = extractvalue { <2 x float>, float } %254, 1
  %255 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 6) #7
  %256 = getelementptr inbounds i8, ptr %255, i64 20
  store <2 x float> %.fca.0.extract66, ptr %256, align 4
  %.sroa.471.0..sroa_idx = getelementptr inbounds i8, ptr %255, i64 28
  store float %.fca.1.extract67, ptr %.sroa.471.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %41) #7
  %257 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 6) #7
  %258 = getelementptr inbounds i8, ptr %257, i64 20
  %259 = load float, ptr %4, align 4, !tbaa !5
  %260 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %258, float noundef %259) #7
  %.fca.0.extract60 = extractvalue { <2 x float>, float } %260, 0
  %.fca.1.extract61 = extractvalue { <2 x float>, float } %260, 1
  %261 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 6) #7
  store <2 x float> %.fca.0.extract60, ptr %261, align 4
  %.sroa.465.0..sroa_idx = getelementptr inbounds i8, ptr %261, i64 8
  store float %.fca.1.extract61, ptr %.sroa.465.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #7
  %262 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 6) #7
  %263 = getelementptr inbounds i8, ptr %262, i64 20
  %264 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %263, i64 noundef 0) #7
  %265 = load float, ptr %264, align 4, !tbaa !5
  %266 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 6) #7
  %267 = getelementptr inbounds i8, ptr %266, i64 20
  %268 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %267, i64 noundef 2) #7
  %269 = load float, ptr %268, align 4, !tbaa !5
  %270 = call noundef float @_ZSt5atan2ff(float noundef %265, float noundef %269)
  %271 = call float @llvm.fmuladd.f32(float %270, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %271, ptr %46, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #7
  %272 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 6) #7
  %273 = getelementptr inbounds i8, ptr %272, i64 20
  %274 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %273, i64 noundef 1) #7
  %275 = load float, ptr %274, align 4, !tbaa !5
  %276 = call float @llvm.fmuladd.f32(float %275, float 5.000000e-01, float 5.000000e-01)
  store float %276, ptr %47, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %45, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 4 dereferenceable(4) %47) #7
  %277 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 6) #7
  %278 = getelementptr inbounds i8, ptr %277, i64 12
  %279 = load i64, ptr %45, align 8, !tbaa !9
  store i64 %279, ptr %278, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #7
  store float 0.000000e+00, ptr %49, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #7
  %280 = load float, ptr %5, align 4, !tbaa !5
  %281 = fneg float %280
  store float %281, ptr %50, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJfRKffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %48, ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %50) #7
  %282 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %48) #7
  %.fca.0.extract54 = extractvalue { <2 x float>, float } %282, 0
  %.fca.1.extract55 = extractvalue { <2 x float>, float } %282, 1
  %283 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 7) #7
  %284 = getelementptr inbounds i8, ptr %283, i64 20
  store <2 x float> %.fca.0.extract54, ptr %284, align 4
  %.sroa.459.0..sroa_idx = getelementptr inbounds i8, ptr %283, i64 28
  store float %.fca.1.extract55, ptr %.sroa.459.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %48) #7
  %285 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 7) #7
  %286 = getelementptr inbounds i8, ptr %285, i64 20
  %287 = load float, ptr %4, align 4, !tbaa !5
  %288 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %286, float noundef %287) #7
  %.fca.0.extract48 = extractvalue { <2 x float>, float } %288, 0
  %.fca.1.extract49 = extractvalue { <2 x float>, float } %288, 1
  %289 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 7) #7
  store <2 x float> %.fca.0.extract48, ptr %289, align 4
  %.sroa.453.0..sroa_idx = getelementptr inbounds i8, ptr %289, i64 8
  store float %.fca.1.extract49, ptr %.sroa.453.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #7
  %290 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 7) #7
  %291 = getelementptr inbounds i8, ptr %290, i64 20
  %292 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %291, i64 noundef 0) #7
  %293 = load float, ptr %292, align 4, !tbaa !5
  %294 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 7) #7
  %295 = getelementptr inbounds i8, ptr %294, i64 20
  %296 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %295, i64 noundef 2) #7
  %297 = load float, ptr %296, align 4, !tbaa !5
  %298 = call noundef float @_ZSt5atan2ff(float noundef %293, float noundef %297)
  %299 = call float @llvm.fmuladd.f32(float %298, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %299, ptr %52, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #7
  %300 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 7) #7
  %301 = getelementptr inbounds i8, ptr %300, i64 20
  %302 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %301, i64 noundef 1) #7
  %303 = load float, ptr %302, align 4, !tbaa !5
  %304 = call float @llvm.fmuladd.f32(float %303, float 5.000000e-01, float 5.000000e-01)
  store float %304, ptr %53, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %51, ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef nonnull align 4 dereferenceable(4) %53) #7
  %305 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 7) #7
  %306 = getelementptr inbounds i8, ptr %305, i64 12
  %307 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %307, ptr %306, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #7
  store float 0.000000e+00, ptr %55, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %56) #7
  %308 = load float, ptr %4, align 4, !tbaa !5
  %309 = fneg float %308
  store float %309, ptr %56, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJRKfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %54, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef nonnull align 4 dereferenceable(4) %56) #7
  %310 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %54) #7
  %.fca.0.extract42 = extractvalue { <2 x float>, float } %310, 0
  %.fca.1.extract43 = extractvalue { <2 x float>, float } %310, 1
  %311 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 8) #7
  %312 = getelementptr inbounds i8, ptr %311, i64 20
  store <2 x float> %.fca.0.extract42, ptr %312, align 4
  %.sroa.447.0..sroa_idx = getelementptr inbounds i8, ptr %311, i64 28
  store float %.fca.1.extract43, ptr %.sroa.447.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %54) #7
  %313 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 8) #7
  %314 = getelementptr inbounds i8, ptr %313, i64 20
  %315 = load float, ptr %4, align 4, !tbaa !5
  %316 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %314, float noundef %315) #7
  %.fca.0.extract36 = extractvalue { <2 x float>, float } %316, 0
  %.fca.1.extract37 = extractvalue { <2 x float>, float } %316, 1
  %317 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 8) #7
  store <2 x float> %.fca.0.extract36, ptr %317, align 4
  %.sroa.441.0..sroa_idx = getelementptr inbounds i8, ptr %317, i64 8
  store float %.fca.1.extract37, ptr %.sroa.441.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %58) #7
  %318 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 8) #7
  %319 = getelementptr inbounds i8, ptr %318, i64 20
  %320 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %319, i64 noundef 0) #7
  %321 = load float, ptr %320, align 4, !tbaa !5
  %322 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 8) #7
  %323 = getelementptr inbounds i8, ptr %322, i64 20
  %324 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %323, i64 noundef 2) #7
  %325 = load float, ptr %324, align 4, !tbaa !5
  %326 = call noundef float @_ZSt5atan2ff(float noundef %321, float noundef %325)
  %327 = call float @llvm.fmuladd.f32(float %326, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %327, ptr %58, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %59) #7
  %328 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 8) #7
  %329 = getelementptr inbounds i8, ptr %328, i64 20
  %330 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %329, i64 noundef 1) #7
  %331 = load float, ptr %330, align 4, !tbaa !5
  %332 = call float @llvm.fmuladd.f32(float %331, float 5.000000e-01, float 5.000000e-01)
  store float %332, ptr %59, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %57, ptr noundef nonnull align 4 dereferenceable(4) %58, ptr noundef nonnull align 4 dereferenceable(4) %59) #7
  %333 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 8) #7
  %334 = getelementptr inbounds i8, ptr %333, i64 12
  %335 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %335, ptr %334, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %60) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %61) #7
  store float 0.000000e+00, ptr %61, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJRKffS4_EvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %60, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %61, ptr noundef nonnull align 4 dereferenceable(4) %4) #7
  %336 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %60) #7
  %.fca.0.extract30 = extractvalue { <2 x float>, float } %336, 0
  %.fca.1.extract31 = extractvalue { <2 x float>, float } %336, 1
  %337 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 9) #7
  %338 = getelementptr inbounds i8, ptr %337, i64 20
  store <2 x float> %.fca.0.extract30, ptr %338, align 4
  %.sroa.435.0..sroa_idx = getelementptr inbounds i8, ptr %337, i64 28
  store float %.fca.1.extract31, ptr %.sroa.435.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %61) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %60) #7
  %339 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 9) #7
  %340 = getelementptr inbounds i8, ptr %339, i64 20
  %341 = load float, ptr %4, align 4, !tbaa !5
  %342 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %340, float noundef %341) #7
  %.fca.0.extract24 = extractvalue { <2 x float>, float } %342, 0
  %.fca.1.extract25 = extractvalue { <2 x float>, float } %342, 1
  %343 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 9) #7
  store <2 x float> %.fca.0.extract24, ptr %343, align 4
  %.sroa.429.0..sroa_idx = getelementptr inbounds i8, ptr %343, i64 8
  store float %.fca.1.extract25, ptr %.sroa.429.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %63) #7
  %344 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 9) #7
  %345 = getelementptr inbounds i8, ptr %344, i64 20
  %346 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %345, i64 noundef 0) #7
  %347 = load float, ptr %346, align 4, !tbaa !5
  %348 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 9) #7
  %349 = getelementptr inbounds i8, ptr %348, i64 20
  %350 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %349, i64 noundef 2) #7
  %351 = load float, ptr %350, align 4, !tbaa !5
  %352 = call noundef float @_ZSt5atan2ff(float noundef %347, float noundef %351)
  %353 = call float @llvm.fmuladd.f32(float %352, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %353, ptr %63, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %64) #7
  %354 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 9) #7
  %355 = getelementptr inbounds i8, ptr %354, i64 20
  %356 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %355, i64 noundef 1) #7
  %357 = load float, ptr %356, align 4, !tbaa !5
  %358 = call float @llvm.fmuladd.f32(float %357, float 5.000000e-01, float 5.000000e-01)
  store float %358, ptr %64, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %62, ptr noundef nonnull align 4 dereferenceable(4) %63, ptr noundef nonnull align 4 dereferenceable(4) %64) #7
  %359 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 9) #7
  %360 = getelementptr inbounds i8, ptr %359, i64 12
  %361 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %361, ptr %360, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %65) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %66) #7
  %362 = load float, ptr %5, align 4, !tbaa !5
  %363 = fneg float %362
  store float %363, ptr %66, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %67) #7
  store float 0.000000e+00, ptr %67, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %68) #7
  %364 = load float, ptr %4, align 4, !tbaa !5
  %365 = fneg float %364
  store float %365, ptr %68, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJfffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %65, ptr noundef nonnull align 4 dereferenceable(4) %66, ptr noundef nonnull align 4 dereferenceable(4) %67, ptr noundef nonnull align 4 dereferenceable(4) %68) #7
  %366 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %65) #7
  %.fca.0.extract18 = extractvalue { <2 x float>, float } %366, 0
  %.fca.1.extract19 = extractvalue { <2 x float>, float } %366, 1
  %367 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 10) #7
  %368 = getelementptr inbounds i8, ptr %367, i64 20
  store <2 x float> %.fca.0.extract18, ptr %368, align 4
  %.sroa.423.0..sroa_idx = getelementptr inbounds i8, ptr %367, i64 28
  store float %.fca.1.extract19, ptr %.sroa.423.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %65) #7
  %369 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 10) #7
  %370 = getelementptr inbounds i8, ptr %369, i64 20
  %371 = load float, ptr %4, align 4, !tbaa !5
  %372 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %370, float noundef %371) #7
  %.fca.0.extract12 = extractvalue { <2 x float>, float } %372, 0
  %.fca.1.extract13 = extractvalue { <2 x float>, float } %372, 1
  %373 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 10) #7
  store <2 x float> %.fca.0.extract12, ptr %373, align 4
  %.sroa.417.0..sroa_idx = getelementptr inbounds i8, ptr %373, i64 8
  store float %.fca.1.extract13, ptr %.sroa.417.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %70) #7
  %374 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 10) #7
  %375 = getelementptr inbounds i8, ptr %374, i64 20
  %376 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %375, i64 noundef 0) #7
  %377 = load float, ptr %376, align 4, !tbaa !5
  %378 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 10) #7
  %379 = getelementptr inbounds i8, ptr %378, i64 20
  %380 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %379, i64 noundef 2) #7
  %381 = load float, ptr %380, align 4, !tbaa !5
  %382 = call noundef float @_ZSt5atan2ff(float noundef %377, float noundef %381)
  %383 = call float @llvm.fmuladd.f32(float %382, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %383, ptr %70, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %71) #7
  %384 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 10) #7
  %385 = getelementptr inbounds i8, ptr %384, i64 20
  %386 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %385, i64 noundef 1) #7
  %387 = load float, ptr %386, align 4, !tbaa !5
  %388 = call float @llvm.fmuladd.f32(float %387, float 5.000000e-01, float 5.000000e-01)
  store float %388, ptr %71, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %69, ptr noundef nonnull align 4 dereferenceable(4) %70, ptr noundef nonnull align 4 dereferenceable(4) %71) #7
  %389 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 10) #7
  %390 = getelementptr inbounds i8, ptr %389, i64 12
  %391 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %391, ptr %390, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %72) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %73) #7
  %392 = load float, ptr %5, align 4, !tbaa !5
  %393 = fneg float %392
  store float %393, ptr %73, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %74) #7
  store float 0.000000e+00, ptr %74, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm3EEC2IJffRKfEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(12) %72, ptr noundef nonnull align 4 dereferenceable(4) %73, ptr noundef nonnull align 4 dereferenceable(4) %74, ptr noundef nonnull align 4 dereferenceable(4) %4) #7
  %394 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12) %72) #7
  %.fca.0.extract6 = extractvalue { <2 x float>, float } %394, 0
  %.fca.1.extract7 = extractvalue { <2 x float>, float } %394, 1
  %395 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 11) #7
  %396 = getelementptr inbounds i8, ptr %395, i64 20
  store <2 x float> %.fca.0.extract6, ptr %396, align 4
  %.sroa.411.0..sroa_idx = getelementptr inbounds i8, ptr %395, i64 28
  store float %.fca.1.extract7, ptr %.sroa.411.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %73) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %72) #7
  %397 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 11) #7
  %398 = getelementptr inbounds i8, ptr %397, i64 20
  %399 = load float, ptr %4, align 4, !tbaa !5
  %400 = call { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12) %398, float noundef %399) #7
  %.fca.0.extract = extractvalue { <2 x float>, float } %400, 0
  %.fca.1.extract = extractvalue { <2 x float>, float } %400, 1
  %401 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 11) #7
  store <2 x float> %.fca.0.extract, ptr %401, align 4
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %401, i64 8
  store float %.fca.1.extract, ptr %.sroa.4.0..sroa_idx, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %76) #7
  %402 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 11) #7
  %403 = getelementptr inbounds i8, ptr %402, i64 20
  %404 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %403, i64 noundef 0) #7
  %405 = load float, ptr %404, align 4, !tbaa !5
  %406 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 11) #7
  %407 = getelementptr inbounds i8, ptr %406, i64 20
  %408 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %407, i64 noundef 2) #7
  %409 = load float, ptr %408, align 4, !tbaa !5
  %410 = call noundef float @_ZSt5atan2ff(float noundef %405, float noundef %409)
  %411 = call float @llvm.fmuladd.f32(float %410, float 0x3FC45F3060000000, float 5.000000e-01)
  store float %411, ptr %76, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %77) #7
  %412 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 11) #7
  %413 = getelementptr inbounds i8, ptr %412, i64 20
  %414 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3Raz6VectorIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %413, i64 noundef 1) #7
  %415 = load float, ptr %414, align 4, !tbaa !5
  %416 = call float @llvm.fmuladd.f32(float %415, float 5.000000e-01, float 5.000000e-01)
  store float %416, ptr %77, align 4, !tbaa !5
  call void @_ZN3Raz6VectorIfLm2EEC2IJffEvvEEDpOT_(ptr noundef nonnull align 4 dereferenceable(8) %75, ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 4 dereferenceable(4) %77) #7
  %417 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %85, i64 noundef 11) #7
  %418 = getelementptr inbounds i8, ptr %417, i64 12
  %419 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %419, ptr %418, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #7
  %420 = call ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %85) #7
  store ptr %420, ptr %78, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #7
  %421 = call ptr @_ZNSt6vectorIN3Raz6VertexESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %85) #7
  store ptr %421, ptr %79, align 8
  %422 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3Raz6VertexESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %79) #7
  br i1 %422, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph, %3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #7
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %80) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(240) %80, ptr noundef nonnull align 4 dereferenceable(240) @constinit.3, i64 240, i1 false), !tbaa.struct !10
  %423 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3Raz7Submesh18getTriangleIndicesEv(ptr noundef nonnull align 8 dereferenceable(104) %84)
  %424 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIjSaIjEEaSESt16initializer_listIjE(ptr noundef nonnull align 8 dereferenceable(24) %423, ptr nonnull %80, i64 60)
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  ret void

.lr.ph:                                           ; preds = %3, %.lr.ph
  %425 = call noundef nonnull align 4 dereferenceable(44) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3Raz6VertexESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78) #7
  %426 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNK3Raz6Sphere9getCenterEv(ptr noundef nonnull align 8 dereferenceable(24) %1)
  %427 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3Raz6VectorIfLm3EEpLERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %425, ptr noundef nonnull align 4 dereferenceable(12) %426) #7
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3Raz6VertexESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %78) #7
  %429 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3Raz6VertexESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %79) #7
  br i1 %429, label %.lr.ph, label %._crit_edge
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EE9normalizeIfEENS0_IT_Lm3EEEv(ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZNK3Raz6Sphere9getCenterEv(ptr noundef nonnull align 8 dereferenceable(24)) 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) #5

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { <2 x float>, float } @_ZNK3Raz6VectorIfLm3EEmlEf(ptr noundef nonnull align 4 dereferenceable(12), float noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5atan2ff(float noundef, float noundef) local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN3Raz6VectorIfLm3EEpLERKS1_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #2 align 2

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

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


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass