; LLVM IR from jrouwe/JoltPhysics :: Samples/Tests/General/LoadSaveSceneTest.ll (ZN17LoadSaveSceneTest12sCreateSceneEv)

; 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.JPH::Ref" = type { ptr }
%class.anon.4 = type { ptr }
%"class.JPH::Vec3" = type { %union.anon }
%union.anon = type { <4 x float> }
%class.anon.5 = type { ptr }
%"class.JPH::BodyCreationSettings" = type { %"class.JPH::Vec3", %"class.JPH::Quat", %"class.JPH::Vec3", %"class.JPH::Vec3", i64, i16, %"class.JPH::CollisionGroup", i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, float, i32, i32, i8, float, %"class.JPH::MassProperties", %"class.JPH::RefConst.13", %"class.JPH::RefConst.14" }
%"class.JPH::Quat" = type { %"class.JPH::Vec4" }
%"class.JPH::Vec4" = type { %union.anon.12 }
%union.anon.12 = type { <4 x float> }
%"class.JPH::CollisionGroup" = type { %"class.JPH::RefConst", i32, i32 }
%"class.JPH::RefConst" = type { ptr }
%"class.JPH::MassProperties" = type { float, %"class.JPH::Mat44" }
%"class.JPH::Mat44" = type { [4 x %"class.JPH::Vec4"] }
%"class.JPH::RefConst.13" = type { ptr }
%"class.JPH::RefConst.14" = type { ptr }
%"class.std::basic_string_view" = type { i64, ptr }
%"class.JPH::Color" = type { %union.anon.38 }
%union.anon.38 = type { i32 }
%"class.JPH::Array.42" = type { i64, i64, ptr }
%"class.JPH::Ref.45" = type { ptr }
%"class.JPH::Ref.48" = type { ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.JPH::RefConst.36" = type { ptr }
%"class.JPH::SoftBodyCreationSettings" = type <{ %"class.JPH::RefConst.83", [8 x i8], %"class.JPH::Vec3", %"class.JPH::Quat", i64, i16, [6 x i8], %"class.JPH::CollisionGroup", i32, float, float, float, float, float, float, i8, i8, i8, i8 }>
%"class.JPH::RefConst.83" = type { ptr }
%"struct.JPH::SoftBodySharedSettings::VertexAttributes" = type { float, float, float, i32, float }
%"class.JPH::DistanceConstraintSettings" = type <{ %"class.JPH::TwoBodyConstraintSettings", i32, [4 x i8], %"class.JPH::Vec3", %"class.JPH::Vec3", float, float, %"class.JPH::SpringSettings", [12 x i8] }>
%"class.JPH::TwoBodyConstraintSettings" = type { %"class.JPH::ConstraintSettings" }
%"class.JPH::ConstraintSettings" = type { %"class.JPH::SerializableObject", %"class.JPH::RefTarget.46", i8, i32, i32, i32, float, i64 }
%"class.JPH::SerializableObject" = type { ptr }
%"class.JPH::RefTarget.46" = type { %"struct.std::atomic" }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i32 }
%"class.JPH::SpringSettings" = type { i8, %union.anon.47, float }
%union.anon.47 = type { float }
%"class.JPH::SoftBodySharedSettings" = type { %"class.JPH::RefTarget.49", %"class.JPH::Array.50", %"class.JPH::Array.53", %"class.JPH::Array.56", %"class.JPH::Array.59", %"class.JPH::Array.62", %"class.JPH::Array.65", %"class.JPH::Array.68", %"class.JPH::Array.71", %"class.JPH::Array.27", float, %"class.JPH::Array.74", %"class.JPH::Array.77", %"class.JPH::Array.80" }
%"class.JPH::RefTarget.49" = type { %"struct.std::atomic" }
%"class.JPH::Array.50" = type { i64, i64, ptr }
%"class.JPH::Array.53" = type { i64, i64, ptr }
%"class.JPH::Array.56" = type { i64, i64, ptr }
%"class.JPH::Array.59" = type { i64, i64, ptr }
%"class.JPH::Array.62" = type { i64, i64, ptr }
%"class.JPH::Array.65" = type { i64, i64, ptr }
%"class.JPH::Array.68" = type { i64, i64, ptr }
%"class.JPH::Array.71" = type { i64, i64, ptr }
%"class.JPH::Array.27" = type { i64, i64, ptr }
%"class.JPH::Array.74" = type { i64, i64, ptr }
%"class.JPH::Array.77" = type { i64, i64, ptr }
%"class.JPH::Array.80" = type { i64, i64, ptr }

@.str.1 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN17LoadSaveSceneTest12sCreateSceneEv(ptr dead_on_unwind noalias writable sret(%"class.JPH::Ref") align 8 %0) #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca %class.anon.4, align 8
  %5 = alloca %"class.JPH::Vec3", align 16
  %6 = alloca %class.anon.5, align 8
  %7 = alloca i1, align 1
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.JPH::BodyCreationSettings", align 16
  %11 = alloca %"class.JPH::Vec3", align 16
  %12 = alloca %"class.JPH::Vec3", align 16
  %13 = alloca %"class.JPH::Quat", align 16
  %14 = alloca %"class.JPH::BodyCreationSettings", align 16
  %15 = alloca %"class.JPH::Vec3", align 16
  %16 = alloca %"class.JPH::Quat", align 16
  %17 = alloca %"class.JPH::BodyCreationSettings", align 16
  %18 = alloca %"class.JPH::Vec3", align 16
  %19 = alloca %"class.JPH::Vec3", align 16
  %20 = alloca %"class.JPH::Vec3", align 16
  %21 = alloca %"class.std::basic_string_view", align 8
  %22 = alloca %"class.JPH::Color", align 4
  %23 = alloca i1, align 1
  %24 = alloca i1, align 1
  %25 = alloca %"class.JPH::Vec3", align 16
  %26 = alloca %"class.JPH::Quat", align 16
  %27 = alloca %"class.JPH::Vec3", align 16
  %28 = alloca %"class.JPH::BodyCreationSettings", align 16
  %29 = alloca %"class.std::basic_string_view", align 8
  %30 = alloca %"class.JPH::Color", align 4
  %31 = alloca i1, align 1
  %32 = alloca i1, align 1
  %33 = alloca %"class.JPH::Vec3", align 16
  %34 = alloca %"class.JPH::Quat", align 16
  %35 = alloca %"class.JPH::BodyCreationSettings", align 16
  %36 = alloca %"class.JPH::Vec3", align 16
  %37 = alloca %"class.std::basic_string_view", align 8
  %38 = alloca %"class.JPH::Color", align 4
  %39 = alloca i1, align 1
  %40 = alloca i1, align 1
  %41 = alloca %"class.JPH::Vec3", align 16
  %42 = alloca %"class.JPH::Quat", align 16
  %43 = alloca %"class.JPH::BodyCreationSettings", align 16
  %44 = alloca %"class.std::basic_string_view", align 8
  %45 = alloca %"class.JPH::Color", align 4
  %46 = alloca i1, align 1
  %47 = alloca i1, align 1
  %48 = alloca %"class.JPH::Vec3", align 16
  %49 = alloca %"class.JPH::Quat", align 16
  %50 = alloca %"class.JPH::Vec3", align 16
  %51 = alloca %"class.JPH::BodyCreationSettings", align 16
  %52 = alloca %"class.std::basic_string_view", align 8
  %53 = alloca %"class.JPH::Color", align 4
  %54 = alloca i1, align 1
  %55 = alloca i1, align 1
  %56 = alloca %"class.JPH::Vec3", align 16
  %57 = alloca %"class.JPH::Quat", align 16
  %58 = alloca %"class.JPH::Vec3", align 16
  %59 = alloca %"class.JPH::BodyCreationSettings", align 16
  %60 = alloca %"class.std::basic_string_view", align 8
  %61 = alloca %"class.JPH::Color", align 4
  %62 = alloca i1, align 1
  %63 = alloca i1, align 1
  %64 = alloca %"class.JPH::Vec3", align 16
  %65 = alloca %"class.JPH::Quat", align 16
  %66 = alloca %"class.JPH::Vec3", align 16
  %67 = alloca %"class.JPH::BodyCreationSettings", align 16
  %68 = alloca %"class.std::basic_string_view", align 8
  %69 = alloca %"class.JPH::Color", align 4
  %70 = alloca i1, align 1
  %71 = alloca i1, align 1
  %72 = alloca %"class.JPH::Vec3", align 16
  %73 = alloca %"class.JPH::Quat", align 16
  %74 = alloca %"class.JPH::Vec3", align 16
  %75 = alloca %"class.JPH::BodyCreationSettings", align 16
  %76 = alloca %"class.std::basic_string_view", align 8
  %77 = alloca %"class.JPH::Color", align 4
  %78 = alloca i1, align 1
  %79 = alloca i1, align 1
  %80 = alloca %"class.JPH::Vec3", align 16
  %81 = alloca %"class.JPH::Quat", align 16
  %82 = alloca %"class.JPH::Vec3", align 16
  %83 = alloca %"class.JPH::BodyCreationSettings", align 16
  %84 = alloca %"class.JPH::Vec3", align 16
  %85 = alloca %"class.JPH::Quat", align 16
  %86 = alloca ptr, align 8
  %87 = alloca %"class.JPH::Vec3", align 16
  %88 = alloca %"class.JPH::Quat", align 16
  %89 = alloca %"class.JPH::Vec3", align 16
  %90 = alloca %"class.JPH::Vec3", align 16
  %91 = alloca %"class.std::basic_string_view", align 8
  %92 = alloca %"class.JPH::Color", align 4
  %93 = alloca i1, align 1
  %94 = alloca i1, align 1
  %95 = alloca %"class.JPH::Vec3", align 16
  %96 = alloca %"class.JPH::Quat", align 16
  %97 = alloca %"class.JPH::Vec3", align 16
  %98 = alloca %"class.std::basic_string_view", align 8
  %99 = alloca %"class.JPH::Color", align 4
  %100 = alloca i1, align 1
  %101 = alloca i1, align 1
  %102 = alloca %"class.JPH::Vec3", align 16
  %103 = alloca %"class.JPH::Quat", align 16
  %104 = alloca %"class.JPH::Vec3", align 16
  %105 = alloca %"class.std::basic_string_view", align 8
  %106 = alloca %"class.JPH::Color", align 4
  %107 = alloca i1, align 1
  %108 = alloca i1, align 1
  %109 = alloca ptr, align 8
  %110 = alloca %"class.JPH::Vec3", align 16
  %111 = alloca %"class.JPH::Quat", align 16
  %112 = alloca %"class.JPH::Quat", align 16
  %113 = alloca %"class.JPH::Vec3", align 16
  %114 = alloca %"class.JPH::Quat", align 16
  %115 = alloca %"class.JPH::Vec3", align 16
  %116 = alloca %"class.JPH::Vec3", align 16
  %117 = alloca %"class.JPH::Quat", align 16
  %118 = alloca %"class.JPH::Quat", align 16
  %119 = alloca %"class.JPH::Vec3", align 16
  %120 = alloca %"class.JPH::Quat", align 16
  %121 = alloca %"class.JPH::Vec3", align 16
  %122 = alloca %"class.JPH::BodyCreationSettings", align 16
  %123 = alloca %"class.JPH::Vec3", align 16
  %124 = alloca %"class.JPH::Quat", align 16
  %125 = alloca %"class.JPH::Vec3", align 16
  %126 = alloca %"class.JPH::Array.42", align 8
  %127 = alloca %"class.JPH::Vec3", align 16
  %128 = alloca %"class.JPH::Vec3", align 16
  %129 = alloca %"class.JPH::Vec3", align 16
  %130 = alloca %"class.JPH::Vec3", align 16
  %131 = alloca %"class.JPH::Ref.45", align 8
  %132 = alloca %"class.std::basic_string_view", align 8
  %133 = alloca %"class.JPH::Color", align 4
  %134 = alloca i1, align 1
  %135 = alloca i1, align 1
  %136 = alloca %"class.JPH::BodyCreationSettings", align 16
  %137 = alloca %"class.JPH::Vec3", align 16
  %138 = alloca %"class.JPH::Quat", align 16
  %139 = alloca %"class.JPH::BodyCreationSettings", align 16
  %140 = alloca %"class.JPH::Vec3", align 16
  %141 = alloca %"class.JPH::Quat", align 16
  %142 = alloca %"class.JPH::Vec3", align 16
  %143 = alloca %"class.JPH::Vec3", align 16
  %144 = alloca %"class.JPH::Quat", align 16
  %145 = alloca ptr, align 8
  %146 = alloca %"class.JPH::Vec3", align 16
  %147 = alloca %"class.JPH::Quat", align 16
  %148 = alloca %"class.JPH::Vec3", align 16
  %149 = alloca %"class.JPH::Vec3", align 16
  %150 = alloca %"class.std::basic_string_view", align 8
  %151 = alloca %"class.JPH::Color", align 4
  %152 = alloca i1, align 1
  %153 = alloca i1, align 1
  %154 = alloca %"class.JPH::Vec3", align 16
  %155 = alloca %"class.JPH::Quat", align 16
  %156 = alloca %"class.JPH::Vec3", align 16
  %157 = alloca %"class.std::basic_string_view", align 8
  %158 = alloca %"class.JPH::Color", align 4
  %159 = alloca i1, align 1
  %160 = alloca i1, align 1
  %161 = alloca %"class.JPH::Vec3", align 16
  %162 = alloca %"class.JPH::Quat", align 16
  %163 = alloca %"class.JPH::Vec3", align 16
  %164 = alloca %"class.std::basic_string_view", align 8
  %165 = alloca %"class.JPH::Color", align 4
  %166 = alloca i1, align 1
  %167 = alloca i1, align 1
  %168 = alloca %"class.JPH::BodyCreationSettings", align 16
  %169 = alloca %"class.JPH::Vec3", align 16
  %170 = alloca %"class.JPH::Quat", align 16
  %171 = alloca %"class.JPH::Vec3", align 16
  %172 = alloca ptr, align 8
  %173 = alloca %"class.JPH::Ref.48", align 8
  %174 = alloca %"class.std::initializer_list", align 8
  %175 = alloca [1 x %"class.JPH::RefConst.36"], align 8
  %176 = alloca ptr, align 8
  %177 = alloca %"class.std::basic_string_view", align 8
  %178 = alloca %"class.JPH::Color", align 4
  %179 = alloca i1, align 1
  %180 = alloca i1, align 1
  %181 = alloca %"class.JPH::SoftBodyCreationSettings", align 16
  %182 = alloca %"class.JPH::Vec3", align 16
  %183 = alloca %"class.JPH::Quat", align 16
  %184 = alloca %"class.JPH::Vec3", align 16
  %185 = alloca %"class.JPH::Ref.48", align 8
  %186 = alloca %"struct.JPH::SoftBodySharedSettings::VertexAttributes", align 4
  %187 = alloca %"class.std::initializer_list", align 8
  %188 = alloca [1 x %"class.JPH::RefConst.36"], align 8
  %189 = alloca ptr, align 8
  %190 = alloca %"class.std::basic_string_view", align 8
  %191 = alloca %"class.JPH::Color", align 4
  %192 = alloca i1, align 1
  %193 = alloca i1, align 1
  %194 = alloca %"class.JPH::SoftBodyCreationSettings", align 16
  %195 = alloca %"class.JPH::Vec3", align 16
  %196 = alloca %"class.JPH::Quat", align 16
  store ptr %0, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #11
  store i32 0, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #11
  %197 = getelementptr inbounds %class.anon.4, ptr %4, i32 0, i32 0
  store ptr %3, ptr %197, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %5) #11
  call void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %5, float noundef 0.000000e+00, float noundef 4.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #11
  %198 = getelementptr inbounds %class.anon.5, ptr %6, i32 0, i32 0
  store ptr %5, ptr %198, align 8, !tbaa !9
  store i1 false, ptr %7, align 1
  %199 = call noundef ptr @_ZN3JPH12PhysicsScenenwEm(i64 noundef 80)
  call void @llvm.memset.p0.i64(ptr align 8 %199, i8 0, i64 80, i1 false)
  call void @_ZN3JPH12PhysicsSceneC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %199) #11
  call void @_ZN3JPH3RefINS_12PhysicsSceneEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %199)
  %200 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %201 unwind label %1493

201:                                              ; preds = %1
  call void @llvm.lifetime.start.p0(i64 256, ptr %10) #11
  %202 = invoke noundef ptr @_ZN3JPH19ScaledShapeSettingsnwEm(i64 noundef 96)
          to label %203 unwind label %1497

203:                                              ; preds = %201
  %204 = invoke noundef ptr @_ZL11sCreateMeshv()
          to label %205 unwind label %1501

205:                                              ; preds = %203
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %11, float noundef 2.500000e+00, float noundef 1.000000e+00, float noundef 1.500000e+00)
          to label %206 unwind label %1501

206:                                              ; preds = %205
  %207 = getelementptr inbounds { double, double }, ptr %11, i32 0, i32 0
  %208 = load double, ptr %207, align 16
  %209 = getelementptr inbounds { double, double }, ptr %11, i32 0, i32 1
  %210 = load double, ptr %209, align 8
  invoke void @_ZN3JPH19ScaledShapeSettingsC2EPKNS_13ShapeSettingsENS_4Vec3E(ptr noundef nonnull align 16 dereferenceable(96) %202, ptr noundef %204, double %208, double %210)
          to label %211 unwind label %1501

211:                                              ; preds = %206
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %12, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %212 unwind label %1497

212:                                              ; preds = %211
  %213 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %214 unwind label %1497

214:                                              ; preds = %212
  %215 = getelementptr inbounds %"class.JPH::Quat", ptr %13, i32 0, i32 0
  %216 = getelementptr inbounds %"class.JPH::Vec4", ptr %215, i32 0, i32 0
  %217 = getelementptr inbounds %union.anon.12, ptr %216, i32 0, i32 0
  %218 = getelementptr inbounds { double, double }, ptr %217, i32 0, i32 0
  %219 = extractvalue { double, double } %213, 0
  store double %219, ptr %218, align 16
  %220 = getelementptr inbounds { double, double }, ptr %217, i32 0, i32 1
  %221 = extractvalue { double, double } %213, 1
  store double %221, ptr %220, align 8
  %222 = getelementptr inbounds { double, double }, ptr %12, i32 0, i32 0
  %223 = load double, ptr %222, align 16
  %224 = getelementptr inbounds { double, double }, ptr %12, i32 0, i32 1
  %225 = load double, ptr %224, align 8
  %226 = getelementptr inbounds { double, double }, ptr %13, i32 0, i32 0
  %227 = load double, ptr %226, align 16
  %228 = getelementptr inbounds { double, double }, ptr %13, i32 0, i32 1
  %229 = load double, ptr %228, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %10, ptr noundef %202, double %223, double %225, double %227, double %229, i8 noundef zeroext 0, i16 noundef zeroext 0)
          to label %230 unwind label %1497

230:                                              ; preds = %214
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %200, ptr noundef nonnull align 16 dereferenceable(256) %10)
          to label %231 unwind label %1505

231:                                              ; preds = %230
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %10) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %10) #11
  %232 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %233 unwind label %1493

233:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 256, ptr %14) #11
  %234 = invoke noundef ptr @_ZL18sCreateHeightFieldv()
          to label %235 unwind label %1510

235:                                              ; preds = %233
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %15, float noundef 5.000000e+01, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %236 unwind label %1510

236:                                              ; preds = %235
  %237 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %238 unwind label %1510

238:                                              ; preds = %236
  %239 = getelementptr inbounds %"class.JPH::Quat", ptr %16, i32 0, i32 0
  %240 = getelementptr inbounds %"class.JPH::Vec4", ptr %239, i32 0, i32 0
  %241 = getelementptr inbounds %union.anon.12, ptr %240, i32 0, i32 0
  %242 = getelementptr inbounds { double, double }, ptr %241, i32 0, i32 0
  %243 = extractvalue { double, double } %237, 0
  store double %243, ptr %242, align 16
  %244 = getelementptr inbounds { double, double }, ptr %241, i32 0, i32 1
  %245 = extractvalue { double, double } %237, 1
  store double %245, ptr %244, align 8
  %246 = getelementptr inbounds { double, double }, ptr %15, i32 0, i32 0
  %247 = load double, ptr %246, align 16
  %248 = getelementptr inbounds { double, double }, ptr %15, i32 0, i32 1
  %249 = load double, ptr %248, align 8
  %250 = getelementptr inbounds { double, double }, ptr %16, i32 0, i32 0
  %251 = load double, ptr %250, align 16
  %252 = getelementptr inbounds { double, double }, ptr %16, i32 0, i32 1
  %253 = load double, ptr %252, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %14, ptr noundef %234, double %247, double %249, double %251, double %253, i8 noundef zeroext 0, i16 noundef zeroext 0)
          to label %254 unwind label %1510

254:                                              ; preds = %238
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %232, ptr noundef nonnull align 16 dereferenceable(256) %14)
          to label %255 unwind label %1514

255:                                              ; preds = %254
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %14) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %14) #11
  %256 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %257 unwind label %1493

257:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 256, ptr %17) #11
  %258 = invoke noundef ptr @_ZN3JPH21TriangleShapeSettingsnwEm(i64 noundef 144)
          to label %259 unwind label %1519

259:                                              ; preds = %257
  store i1 true, ptr %24, align 1
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %18, float noundef -2.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %260 unwind label %1523

260:                                              ; preds = %259
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %19, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 0.000000e+00)
          to label %261 unwind label %1523

261:                                              ; preds = %260
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %20, float noundef 2.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %262 unwind label %1523

262:                                              ; preds = %261
  %263 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %264 unwind label %1523

264:                                              ; preds = %262
  store i1 true, ptr %23, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef @.str.1) #11
  %265 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %266 unwind label %1527

266:                                              ; preds = %264
  %267 = getelementptr inbounds %"class.JPH::Color", ptr %22, i32 0, i32 0
  %268 = getelementptr inbounds %union.anon.38, ptr %267, i32 0, i32 0
  store i32 %265, ptr %268, align 4
  %269 = getelementptr inbounds %"class.JPH::Color", ptr %22, i32 0, i32 0
  %270 = getelementptr inbounds %union.anon.38, ptr %269, i32 0, i32 0
  %271 = load i32, ptr %270, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %263, ptr noundef nonnull align 8 dereferenceable(16) %21, i32 %271)
          to label %272 unwind label %1527

272:                                              ; preds = %266
  store i1 false, ptr %23, align 1
  %273 = getelementptr inbounds { double, double }, ptr %18, i32 0, i32 0
  %274 = load double, ptr %273, align 16
  %275 = getelementptr inbounds { double, double }, ptr %18, i32 0, i32 1
  %276 = load double, ptr %275, align 8
  %277 = getelementptr inbounds { double, double }, ptr %19, i32 0, i32 0
  %278 = load double, ptr %277, align 16
  %279 = getelementptr inbounds { double, double }, ptr %19, i32 0, i32 1
  %280 = load double, ptr %279, align 8
  %281 = getelementptr inbounds { double, double }, ptr %20, i32 0, i32 0
  %282 = load double, ptr %281, align 16
  %283 = getelementptr inbounds { double, double }, ptr %20, i32 0, i32 1
  %284 = load double, ptr %283, align 8
  invoke void @_ZN3JPH21TriangleShapeSettingsC2ENS_4Vec3ES1_S1_fPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(144) %258, double %274, double %276, double %278, double %280, double %282, double %284, float noundef 0.000000e+00, ptr noundef %263)
          to label %285 unwind label %1527

285:                                              ; preds = %272
  store i1 false, ptr %24, align 1
  %286 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %287 unwind label %1527

287:                                              ; preds = %285
  %288 = getelementptr inbounds %"class.JPH::Vec3", ptr %25, i32 0, i32 0
  %289 = getelementptr inbounds %union.anon, ptr %288, i32 0, i32 0
  %290 = getelementptr inbounds { double, double }, ptr %289, i32 0, i32 0
  %291 = extractvalue { double, double } %286, 0
  store double %291, ptr %290, align 16
  %292 = getelementptr inbounds { double, double }, ptr %289, i32 0, i32 1
  %293 = extractvalue { double, double } %286, 1
  store double %293, ptr %292, align 8
  %294 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %295 unwind label %1527

295:                                              ; preds = %287
  %296 = getelementptr inbounds %"class.JPH::Vec3", ptr %27, i32 0, i32 0
  %297 = getelementptr inbounds %union.anon, ptr %296, i32 0, i32 0
  %298 = getelementptr inbounds { double, double }, ptr %297, i32 0, i32 0
  %299 = extractvalue { double, double } %294, 0
  store double %299, ptr %298, align 16
  %300 = getelementptr inbounds { double, double }, ptr %297, i32 0, i32 1
  %301 = extractvalue { double, double } %294, 1
  store double %301, ptr %300, align 8
  %302 = getelementptr inbounds { double, double }, ptr %27, i32 0, i32 0
  %303 = load double, ptr %302, align 16
  %304 = getelementptr inbounds { double, double }, ptr %27, i32 0, i32 1
  %305 = load double, ptr %304, align 8
  %306 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %303, double %305, float noundef 0x3FF921FB60000000)
          to label %307 unwind label %1527

307:                                              ; preds = %295
  %308 = getelementptr inbounds %"class.JPH::Quat", ptr %26, i32 0, i32 0
  %309 = getelementptr inbounds %"class.JPH::Vec4", ptr %308, i32 0, i32 0
  %310 = getelementptr inbounds %union.anon.12, ptr %309, i32 0, i32 0
  %311 = getelementptr inbounds { double, double }, ptr %310, i32 0, i32 0
  %312 = extractvalue { double, double } %306, 0
  store double %312, ptr %311, align 16
  %313 = getelementptr inbounds { double, double }, ptr %310, i32 0, i32 1
  %314 = extractvalue { double, double } %306, 1
  store double %314, ptr %313, align 8
  %315 = getelementptr inbounds { double, double }, ptr %25, i32 0, i32 0
  %316 = load double, ptr %315, align 16
  %317 = getelementptr inbounds { double, double }, ptr %25, i32 0, i32 1
  %318 = load double, ptr %317, align 8
  %319 = getelementptr inbounds { double, double }, ptr %26, i32 0, i32 0
  %320 = load double, ptr %319, align 16
  %321 = getelementptr inbounds { double, double }, ptr %26, i32 0, i32 1
  %322 = load double, ptr %321, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %17, ptr noundef %258, double %316, double %318, double %320, double %322, i8 noundef zeroext 0, i16 noundef zeroext 0)
          to label %323 unwind label %1527

323:                                              ; preds = %307
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %256, ptr noundef nonnull align 16 dereferenceable(256) %17)
          to label %324 unwind label %1531

324:                                              ; preds = %323
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %17) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %17) #11
  %325 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %326 unwind label %1493

326:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 256, ptr %28) #11
  %327 = invoke noundef ptr @_ZN3JPH19SphereShapeSettingsnwEm(i64 noundef 80)
          to label %328 unwind label %1544

328:                                              ; preds = %326
  store i1 true, ptr %32, align 1
  %329 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %330 unwind label %1548

330:                                              ; preds = %328
  store i1 true, ptr %31, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef @.str.2) #11
  %331 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %332 unwind label %1552

332:                                              ; preds = %330
  %333 = getelementptr inbounds %"class.JPH::Color", ptr %30, i32 0, i32 0
  %334 = getelementptr inbounds %union.anon.38, ptr %333, i32 0, i32 0
  store i32 %331, ptr %334, align 4
  %335 = getelementptr inbounds %"class.JPH::Color", ptr %30, i32 0, i32 0
  %336 = getelementptr inbounds %union.anon.38, ptr %335, i32 0, i32 0
  %337 = load i32, ptr %336, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %329, ptr noundef nonnull align 8 dereferenceable(16) %29, i32 %337)
          to label %338 unwind label %1552

338:                                              ; preds = %332
  store i1 false, ptr %31, align 1
  invoke void @_ZN3JPH19SphereShapeSettingsC2EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(80) %327, float noundef 0x3FC99999A0000000, ptr noundef %329)
          to label %339 unwind label %1552

339:                                              ; preds = %338
  store i1 false, ptr %32, align 1
  %340 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %341 unwind label %1552

341:                                              ; preds = %339
  %342 = getelementptr inbounds %"class.JPH::Vec3", ptr %33, i32 0, i32 0
  %343 = getelementptr inbounds %union.anon, ptr %342, i32 0, i32 0
  %344 = getelementptr inbounds { double, double }, ptr %343, i32 0, i32 0
  %345 = extractvalue { double, double } %340, 0
  store double %345, ptr %344, align 16
  %346 = getelementptr inbounds { double, double }, ptr %343, i32 0, i32 1
  %347 = extractvalue { double, double } %340, 1
  store double %347, ptr %346, align 8
  %348 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %349 unwind label %1552

349:                                              ; preds = %341
  %350 = getelementptr inbounds %"class.JPH::Quat", ptr %34, i32 0, i32 0
  %351 = getelementptr inbounds %"class.JPH::Vec4", ptr %350, i32 0, i32 0
  %352 = getelementptr inbounds %union.anon.12, ptr %351, i32 0, i32 0
  %353 = getelementptr inbounds { double, double }, ptr %352, i32 0, i32 0
  %354 = extractvalue { double, double } %348, 0
  store double %354, ptr %353, align 16
  %355 = getelementptr inbounds { double, double }, ptr %352, i32 0, i32 1
  %356 = extractvalue { double, double } %348, 1
  store double %356, ptr %355, align 8
  %357 = getelementptr inbounds { double, double }, ptr %33, i32 0, i32 0
  %358 = load double, ptr %357, align 16
  %359 = getelementptr inbounds { double, double }, ptr %33, i32 0, i32 1
  %360 = load double, ptr %359, align 8
  %361 = getelementptr inbounds { double, double }, ptr %34, i32 0, i32 0
  %362 = load double, ptr %361, align 16
  %363 = getelementptr inbounds { double, double }, ptr %34, i32 0, i32 1
  %364 = load double, ptr %363, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %28, ptr noundef %327, double %358, double %360, double %362, double %364, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %365 unwind label %1552

365:                                              ; preds = %349
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %325, ptr noundef nonnull align 16 dereferenceable(256) %28)
          to label %366 unwind label %1556

366:                                              ; preds = %365
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %28) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %28) #11
  %367 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %368 unwind label %1493

368:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 256, ptr %35) #11
  %369 = invoke noundef ptr @_ZN3JPH16BoxShapeSettingsnwEm(i64 noundef 112)
          to label %370 unwind label %1569

370:                                              ; preds = %368
  store i1 true, ptr %40, align 1
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %36, float noundef 0x3FC99999A0000000, float noundef 0x3FC99999A0000000, float noundef 0x3FD99999A0000000)
          to label %371 unwind label %1573

371:                                              ; preds = %370
  %372 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %373 unwind label %1573

373:                                              ; preds = %371
  store i1 true, ptr %39, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef @.str.3) #11
  %374 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %375 unwind label %1577

375:                                              ; preds = %373
  %376 = getelementptr inbounds %"class.JPH::Color", ptr %38, i32 0, i32 0
  %377 = getelementptr inbounds %union.anon.38, ptr %376, i32 0, i32 0
  store i32 %374, ptr %377, align 4
  %378 = getelementptr inbounds %"class.JPH::Color", ptr %38, i32 0, i32 0
  %379 = getelementptr inbounds %union.anon.38, ptr %378, i32 0, i32 0
  %380 = load i32, ptr %379, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %372, ptr noundef nonnull align 8 dereferenceable(16) %37, i32 %380)
          to label %381 unwind label %1577

381:                                              ; preds = %375
  store i1 false, ptr %39, align 1
  %382 = getelementptr inbounds { double, double }, ptr %36, i32 0, i32 0
  %383 = load double, ptr %382, align 16
  %384 = getelementptr inbounds { double, double }, ptr %36, i32 0, i32 1
  %385 = load double, ptr %384, align 8
  invoke void @_ZN3JPH16BoxShapeSettingsC2ENS_4Vec3EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(112) %369, double %383, double %385, float noundef 0x3F847AE140000000, ptr noundef %372)
          to label %386 unwind label %1577

386:                                              ; preds = %381
  store i1 false, ptr %40, align 1
  %387 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %388 unwind label %1577

388:                                              ; preds = %386
  %389 = getelementptr inbounds %"class.JPH::Vec3", ptr %41, i32 0, i32 0
  %390 = getelementptr inbounds %union.anon, ptr %389, i32 0, i32 0
  %391 = getelementptr inbounds { double, double }, ptr %390, i32 0, i32 0
  %392 = extractvalue { double, double } %387, 0
  store double %392, ptr %391, align 16
  %393 = getelementptr inbounds { double, double }, ptr %390, i32 0, i32 1
  %394 = extractvalue { double, double } %387, 1
  store double %394, ptr %393, align 8
  %395 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %396 unwind label %1577

396:                                              ; preds = %388
  %397 = getelementptr inbounds %"class.JPH::Quat", ptr %42, i32 0, i32 0
  %398 = getelementptr inbounds %"class.JPH::Vec4", ptr %397, i32 0, i32 0
  %399 = getelementptr inbounds %union.anon.12, ptr %398, i32 0, i32 0
  %400 = getelementptr inbounds { double, double }, ptr %399, i32 0, i32 0
  %401 = extractvalue { double, double } %395, 0
  store double %401, ptr %400, align 16
  %402 = getelementptr inbounds { double, double }, ptr %399, i32 0, i32 1
  %403 = extractvalue { double, double } %395, 1
  store double %403, ptr %402, align 8
  %404 = getelementptr inbounds { double, double }, ptr %41, i32 0, i32 0
  %405 = load double, ptr %404, align 16
  %406 = getelementptr inbounds { double, double }, ptr %41, i32 0, i32 1
  %407 = load double, ptr %406, align 8
  %408 = getelementptr inbounds { double, double }, ptr %42, i32 0, i32 0
  %409 = load double, ptr %408, align 16
  %410 = getelementptr inbounds { double, double }, ptr %42, i32 0, i32 1
  %411 = load double, ptr %410, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %35, ptr noundef %369, double %405, double %407, double %409, double %411, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %412 unwind label %1577

412:                                              ; preds = %396
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %367, ptr noundef nonnull align 16 dereferenceable(256) %35)
          to label %413 unwind label %1581

413:                                              ; preds = %412
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %35) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %35) #11
  %414 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %415 unwind label %1493

415:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 256, ptr %43) #11
  %416 = invoke noundef ptr @_ZN3JPH20CapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %417 unwind label %1594

417:                                              ; preds = %415
  store i1 true, ptr %47, align 1
  %418 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %419 unwind label %1598

419:                                              ; preds = %417
  store i1 true, ptr %46, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef @.str.4) #11
  %420 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %421 unwind label %1602

421:                                              ; preds = %419
  %422 = getelementptr inbounds %"class.JPH::Color", ptr %45, i32 0, i32 0
  %423 = getelementptr inbounds %union.anon.38, ptr %422, i32 0, i32 0
  store i32 %420, ptr %423, align 4
  %424 = getelementptr inbounds %"class.JPH::Color", ptr %45, i32 0, i32 0
  %425 = getelementptr inbounds %union.anon.38, ptr %424, i32 0, i32 0
  %426 = load i32, ptr %425, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %418, ptr noundef nonnull align 8 dereferenceable(16) %44, i32 %426)
          to label %427 unwind label %1602

427:                                              ; preds = %421
  store i1 false, ptr %46, align 1
  invoke void @_ZN3JPH20CapsuleShapeSettingsC2EffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %416, float noundef 1.500000e+00, float noundef 0x3FC99999A0000000, ptr noundef %418)
          to label %428 unwind label %1602

428:                                              ; preds = %427
  store i1 false, ptr %47, align 1
  %429 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %430 unwind label %1602

430:                                              ; preds = %428
  %431 = getelementptr inbounds %"class.JPH::Vec3", ptr %48, i32 0, i32 0
  %432 = getelementptr inbounds %union.anon, ptr %431, i32 0, i32 0
  %433 = getelementptr inbounds { double, double }, ptr %432, i32 0, i32 0
  %434 = extractvalue { double, double } %429, 0
  store double %434, ptr %433, align 16
  %435 = getelementptr inbounds { double, double }, ptr %432, i32 0, i32 1
  %436 = extractvalue { double, double } %429, 1
  store double %436, ptr %435, align 8
  %437 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %438 unwind label %1602

438:                                              ; preds = %430
  %439 = getelementptr inbounds %"class.JPH::Vec3", ptr %50, i32 0, i32 0
  %440 = getelementptr inbounds %union.anon, ptr %439, i32 0, i32 0
  %441 = getelementptr inbounds { double, double }, ptr %440, i32 0, i32 0
  %442 = extractvalue { double, double } %437, 0
  store double %442, ptr %441, align 16
  %443 = getelementptr inbounds { double, double }, ptr %440, i32 0, i32 1
  %444 = extractvalue { double, double } %437, 1
  store double %444, ptr %443, align 8
  %445 = getelementptr inbounds { double, double }, ptr %50, i32 0, i32 0
  %446 = load double, ptr %445, align 16
  %447 = getelementptr inbounds { double, double }, ptr %50, i32 0, i32 1
  %448 = load double, ptr %447, align 8
  %449 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %446, double %448, float noundef 0x3FF921FB60000000)
          to label %450 unwind label %1602

450:                                              ; preds = %438
  %451 = getelementptr inbounds %"class.JPH::Quat", ptr %49, i32 0, i32 0
  %452 = getelementptr inbounds %"class.JPH::Vec4", ptr %451, i32 0, i32 0
  %453 = getelementptr inbounds %union.anon.12, ptr %452, i32 0, i32 0
  %454 = getelementptr inbounds { double, double }, ptr %453, i32 0, i32 0
  %455 = extractvalue { double, double } %449, 0
  store double %455, ptr %454, align 16
  %456 = getelementptr inbounds { double, double }, ptr %453, i32 0, i32 1
  %457 = extractvalue { double, double } %449, 1
  store double %457, ptr %456, align 8
  %458 = getelementptr inbounds { double, double }, ptr %48, i32 0, i32 0
  %459 = load double, ptr %458, align 16
  %460 = getelementptr inbounds { double, double }, ptr %48, i32 0, i32 1
  %461 = load double, ptr %460, align 8
  %462 = getelementptr inbounds { double, double }, ptr %49, i32 0, i32 0
  %463 = load double, ptr %462, align 16
  %464 = getelementptr inbounds { double, double }, ptr %49, i32 0, i32 1
  %465 = load double, ptr %464, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %43, ptr noundef %416, double %459, double %461, double %463, double %465, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %466 unwind label %1602

466:                                              ; preds = %450
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %414, ptr noundef nonnull align 16 dereferenceable(256) %43)
          to label %467 unwind label %1606

467:                                              ; preds = %466
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %43) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %43) #11
  %468 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %469 unwind label %1493

469:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 256, ptr %51) #11
  %470 = invoke noundef ptr @_ZN3JPH27TaperedCapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %471 unwind label %1619

471:                                              ; preds = %469
  store i1 true, ptr %55, align 1
  %472 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %473 unwind label %1623

473:                                              ; preds = %471
  store i1 true, ptr %54, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef @.str.5) #11
  %474 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %475 unwind label %1627

475:                                              ; preds = %473
  %476 = getelementptr inbounds %"class.JPH::Color", ptr %53, i32 0, i32 0
  %477 = getelementptr inbounds %union.anon.38, ptr %476, i32 0, i32 0
  store i32 %474, ptr %477, align 4
  %478 = getelementptr inbounds %"class.JPH::Color", ptr %53, i32 0, i32 0
  %479 = getelementptr inbounds %union.anon.38, ptr %478, i32 0, i32 0
  %480 = load i32, ptr %479, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %472, ptr noundef nonnull align 8 dereferenceable(16) %52, i32 %480)
          to label %481 unwind label %1627

481:                                              ; preds = %475
  store i1 false, ptr %54, align 1
  invoke void @_ZN3JPH27TaperedCapsuleShapeSettingsC1EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %470, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, float noundef 0x3FC99999A0000000, ptr noundef %472)
          to label %482 unwind label %1627

482:                                              ; preds = %481
  store i1 false, ptr %55, align 1
  %483 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %484 unwind label %1627

484:                                              ; preds = %482
  %485 = getelementptr inbounds %"class.JPH::Vec3", ptr %56, i32 0, i32 0
  %486 = getelementptr inbounds %union.anon, ptr %485, i32 0, i32 0
  %487 = getelementptr inbounds { double, double }, ptr %486, i32 0, i32 0
  %488 = extractvalue { double, double } %483, 0
  store double %488, ptr %487, align 16
  %489 = getelementptr inbounds { double, double }, ptr %486, i32 0, i32 1
  %490 = extractvalue { double, double } %483, 1
  store double %490, ptr %489, align 8
  %491 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %492 unwind label %1627

492:                                              ; preds = %484
  %493 = getelementptr inbounds %"class.JPH::Vec3", ptr %58, i32 0, i32 0
  %494 = getelementptr inbounds %union.anon, ptr %493, i32 0, i32 0
  %495 = getelementptr inbounds { double, double }, ptr %494, i32 0, i32 0
  %496 = extractvalue { double, double } %491, 0
  store double %496, ptr %495, align 16
  %497 = getelementptr inbounds { double, double }, ptr %494, i32 0, i32 1
  %498 = extractvalue { double, double } %491, 1
  store double %498, ptr %497, align 8
  %499 = getelementptr inbounds { double, double }, ptr %58, i32 0, i32 0
  %500 = load double, ptr %499, align 16
  %501 = getelementptr inbounds { double, double }, ptr %58, i32 0, i32 1
  %502 = load double, ptr %501, align 8
  %503 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %500, double %502, float noundef 0x3FF921FB60000000)
          to label %504 unwind label %1627

504:                                              ; preds = %492
  %505 = getelementptr inbounds %"class.JPH::Quat", ptr %57, i32 0, i32 0
  %506 = getelementptr inbounds %"class.JPH::Vec4", ptr %505, i32 0, i32 0
  %507 = getelementptr inbounds %union.anon.12, ptr %506, i32 0, i32 0
  %508 = getelementptr inbounds { double, double }, ptr %507, i32 0, i32 0
  %509 = extractvalue { double, double } %503, 0
  store double %509, ptr %508, align 16
  %510 = getelementptr inbounds { double, double }, ptr %507, i32 0, i32 1
  %511 = extractvalue { double, double } %503, 1
  store double %511, ptr %510, align 8
  %512 = getelementptr inbounds { double, double }, ptr %56, i32 0, i32 0
  %513 = load double, ptr %512, align 16
  %514 = getelementptr inbounds { double, double }, ptr %56, i32 0, i32 1
  %515 = load double, ptr %514, align 8
  %516 = getelementptr inbounds { double, double }, ptr %57, i32 0, i32 0
  %517 = load double, ptr %516, align 16
  %518 = getelementptr inbounds { double, double }, ptr %57, i32 0, i32 1
  %519 = load double, ptr %518, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %51, ptr noundef %470, double %513, double %515, double %517, double %519, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %520 unwind label %1627

520:                                              ; preds = %504
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %468, ptr noundef nonnull align 16 dereferenceable(256) %51)
          to label %521 unwind label %1631

521:                                              ; preds = %520
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %51) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %51) #11
  %522 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %523 unwind label %1493

523:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 256, ptr %59) #11
  %524 = invoke noundef ptr @_ZN3JPH21CylinderShapeSettingsnwEm(i64 noundef 88)
          to label %525 unwind label %1644

525:                                              ; preds = %523
  store i1 true, ptr %63, align 1
  %526 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %527 unwind label %1648

527:                                              ; preds = %525
  store i1 true, ptr %62, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef @.str.6) #11
  %528 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %529 unwind label %1652

529:                                              ; preds = %527
  %530 = getelementptr inbounds %"class.JPH::Color", ptr %61, i32 0, i32 0
  %531 = getelementptr inbounds %union.anon.38, ptr %530, i32 0, i32 0
  store i32 %528, ptr %531, align 4
  %532 = getelementptr inbounds %"class.JPH::Color", ptr %61, i32 0, i32 0
  %533 = getelementptr inbounds %union.anon.38, ptr %532, i32 0, i32 0
  %534 = load i32, ptr %533, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %526, ptr noundef nonnull align 8 dereferenceable(16) %60, i32 %534)
          to label %535 unwind label %1652

535:                                              ; preds = %529
  store i1 false, ptr %62, align 1
  invoke void @_ZN3JPH21CylinderShapeSettingsC2EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %524, float noundef 5.000000e-01, float noundef 0x3FC99999A0000000, float noundef 0x3FA99999A0000000, ptr noundef %526)
          to label %536 unwind label %1652

536:                                              ; preds = %535
  store i1 false, ptr %63, align 1
  %537 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %538 unwind label %1652

538:                                              ; preds = %536
  %539 = getelementptr inbounds %"class.JPH::Vec3", ptr %64, i32 0, i32 0
  %540 = getelementptr inbounds %union.anon, ptr %539, i32 0, i32 0
  %541 = getelementptr inbounds { double, double }, ptr %540, i32 0, i32 0
  %542 = extractvalue { double, double } %537, 0
  store double %542, ptr %541, align 16
  %543 = getelementptr inbounds { double, double }, ptr %540, i32 0, i32 1
  %544 = extractvalue { double, double } %537, 1
  store double %544, ptr %543, align 8
  %545 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %546 unwind label %1652

546:                                              ; preds = %538
  %547 = getelementptr inbounds %"class.JPH::Vec3", ptr %66, i32 0, i32 0
  %548 = getelementptr inbounds %union.anon, ptr %547, i32 0, i32 0
  %549 = getelementptr inbounds { double, double }, ptr %548, i32 0, i32 0
  %550 = extractvalue { double, double } %545, 0
  store double %550, ptr %549, align 16
  %551 = getelementptr inbounds { double, double }, ptr %548, i32 0, i32 1
  %552 = extractvalue { double, double } %545, 1
  store double %552, ptr %551, align 8
  %553 = getelementptr inbounds { double, double }, ptr %66, i32 0, i32 0
  %554 = load double, ptr %553, align 16
  %555 = getelementptr inbounds { double, double }, ptr %66, i32 0, i32 1
  %556 = load double, ptr %555, align 8
  %557 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %554, double %556, float noundef 0x3FF921FB60000000)
          to label %558 unwind label %1652

558:                                              ; preds = %546
  %559 = getelementptr inbounds %"class.JPH::Quat", ptr %65, i32 0, i32 0
  %560 = getelementptr inbounds %"class.JPH::Vec4", ptr %559, i32 0, i32 0
  %561 = getelementptr inbounds %union.anon.12, ptr %560, i32 0, i32 0
  %562 = getelementptr inbounds { double, double }, ptr %561, i32 0, i32 0
  %563 = extractvalue { double, double } %557, 0
  store double %563, ptr %562, align 16
  %564 = getelementptr inbounds { double, double }, ptr %561, i32 0, i32 1
  %565 = extractvalue { double, double } %557, 1
  store double %565, ptr %564, align 8
  %566 = getelementptr inbounds { double, double }, ptr %64, i32 0, i32 0
  %567 = load double, ptr %566, align 16
  %568 = getelementptr inbounds { double, double }, ptr %64, i32 0, i32 1
  %569 = load double, ptr %568, align 8
  %570 = getelementptr inbounds { double, double }, ptr %65, i32 0, i32 0
  %571 = load double, ptr %570, align 16
  %572 = getelementptr inbounds { double, double }, ptr %65, i32 0, i32 1
  %573 = load double, ptr %572, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %59, ptr noundef %524, double %567, double %569, double %571, double %573, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %574 unwind label %1652

574:                                              ; preds = %558
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %522, ptr noundef nonnull align 16 dereferenceable(256) %59)
          to label %575 unwind label %1656

575:                                              ; preds = %574
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %59) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %59) #11
  %576 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %577 unwind label %1493

577:                                              ; preds = %575
  call void @llvm.lifetime.start.p0(i64 256, ptr %67) #11
  %578 = invoke noundef ptr @_ZN3JPH28TaperedCylinderShapeSettingsnwEm(i64 noundef 96)
          to label %579 unwind label %1669

579:                                              ; preds = %577
  store i1 true, ptr %71, align 1
  %580 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %581 unwind label %1673

581:                                              ; preds = %579
  store i1 true, ptr %70, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef @.str.7) #11
  %582 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %583 unwind label %1677

583:                                              ; preds = %581
  %584 = getelementptr inbounds %"class.JPH::Color", ptr %69, i32 0, i32 0
  %585 = getelementptr inbounds %union.anon.38, ptr %584, i32 0, i32 0
  store i32 %582, ptr %585, align 4
  %586 = getelementptr inbounds %"class.JPH::Color", ptr %69, i32 0, i32 0
  %587 = getelementptr inbounds %union.anon.38, ptr %586, i32 0, i32 0
  %588 = load i32, ptr %587, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %580, ptr noundef nonnull align 8 dereferenceable(16) %68, i32 %588)
          to label %589 unwind label %1677

589:                                              ; preds = %583
  store i1 false, ptr %70, align 1
  invoke void @_ZN3JPH28TaperedCylinderShapeSettingsC1EffffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(96) %578, float noundef 5.000000e-01, float noundef 0x3FC99999A0000000, float noundef 0x3FD99999A0000000, float noundef 0x3FA99999A0000000, ptr noundef %580)
          to label %590 unwind label %1677

590:                                              ; preds = %589
  store i1 false, ptr %71, align 1
  %591 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %592 unwind label %1677

592:                                              ; preds = %590
  %593 = getelementptr inbounds %"class.JPH::Vec3", ptr %72, i32 0, i32 0
  %594 = getelementptr inbounds %union.anon, ptr %593, i32 0, i32 0
  %595 = getelementptr inbounds { double, double }, ptr %594, i32 0, i32 0
  %596 = extractvalue { double, double } %591, 0
  store double %596, ptr %595, align 16
  %597 = getelementptr inbounds { double, double }, ptr %594, i32 0, i32 1
  %598 = extractvalue { double, double } %591, 1
  store double %598, ptr %597, align 8
  %599 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %600 unwind label %1677

600:                                              ; preds = %592
  %601 = getelementptr inbounds %"class.JPH::Vec3", ptr %74, i32 0, i32 0
  %602 = getelementptr inbounds %union.anon, ptr %601, i32 0, i32 0
  %603 = getelementptr inbounds { double, double }, ptr %602, i32 0, i32 0
  %604 = extractvalue { double, double } %599, 0
  store double %604, ptr %603, align 16
  %605 = getelementptr inbounds { double, double }, ptr %602, i32 0, i32 1
  %606 = extractvalue { double, double } %599, 1
  store double %606, ptr %605, align 8
  %607 = getelementptr inbounds { double, double }, ptr %74, i32 0, i32 0
  %608 = load double, ptr %607, align 16
  %609 = getelementptr inbounds { double, double }, ptr %74, i32 0, i32 1
  %610 = load double, ptr %609, align 8
  %611 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %608, double %610, float noundef 0x3FF921FB60000000)
          to label %612 unwind label %1677

612:                                              ; preds = %600
  %613 = getelementptr inbounds %"class.JPH::Quat", ptr %73, i32 0, i32 0
  %614 = getelementptr inbounds %"class.JPH::Vec4", ptr %613, i32 0, i32 0
  %615 = getelementptr inbounds %union.anon.12, ptr %614, i32 0, i32 0
  %616 = getelementptr inbounds { double, double }, ptr %615, i32 0, i32 0
  %617 = extractvalue { double, double } %611, 0
  store double %617, ptr %616, align 16
  %618 = getelementptr inbounds { double, double }, ptr %615, i32 0, i32 1
  %619 = extractvalue { double, double } %611, 1
  store double %619, ptr %618, align 8
  %620 = getelementptr inbounds { double, double }, ptr %72, i32 0, i32 0
  %621 = load double, ptr %620, align 16
  %622 = getelementptr inbounds { double, double }, ptr %72, i32 0, i32 1
  %623 = load double, ptr %622, align 8
  %624 = getelementptr inbounds { double, double }, ptr %73, i32 0, i32 0
  %625 = load double, ptr %624, align 16
  %626 = getelementptr inbounds { double, double }, ptr %73, i32 0, i32 1
  %627 = load double, ptr %626, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %67, ptr noundef %578, double %621, double %623, double %625, double %627, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %628 unwind label %1677

628:                                              ; preds = %612
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %576, ptr noundef nonnull align 16 dereferenceable(256) %67)
          to label %629 unwind label %1681

629:                                              ; preds = %628
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %67) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %67) #11
  %630 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %631 unwind label %1493

631:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 256, ptr %75) #11
  %632 = invoke noundef ptr @_ZN3JPH28TaperedCylinderShapeSettingsnwEm(i64 noundef 96)
          to label %633 unwind label %1694

633:                                              ; preds = %631
  store i1 true, ptr %79, align 1
  %634 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %635 unwind label %1698

635:                                              ; preds = %633
  store i1 true, ptr %78, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %76) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %76, ptr noundef @.str.8) #11
  %636 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %637 unwind label %1702

637:                                              ; preds = %635
  %638 = getelementptr inbounds %"class.JPH::Color", ptr %77, i32 0, i32 0
  %639 = getelementptr inbounds %union.anon.38, ptr %638, i32 0, i32 0
  store i32 %636, ptr %639, align 4
  %640 = getelementptr inbounds %"class.JPH::Color", ptr %77, i32 0, i32 0
  %641 = getelementptr inbounds %union.anon.38, ptr %640, i32 0, i32 0
  %642 = load i32, ptr %641, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %634, ptr noundef nonnull align 8 dereferenceable(16) %76, i32 %642)
          to label %643 unwind label %1702

643:                                              ; preds = %637
  store i1 false, ptr %78, align 1
  invoke void @_ZN3JPH28TaperedCylinderShapeSettingsC1EffffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(96) %632, float noundef 5.000000e-01, float noundef 0x3FD99999A0000000, float noundef 0.000000e+00, float noundef 0.000000e+00, ptr noundef %634)
          to label %644 unwind label %1702

644:                                              ; preds = %643
  store i1 false, ptr %79, align 1
  %645 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %646 unwind label %1702

646:                                              ; preds = %644
  %647 = getelementptr inbounds %"class.JPH::Vec3", ptr %80, i32 0, i32 0
  %648 = getelementptr inbounds %union.anon, ptr %647, i32 0, i32 0
  %649 = getelementptr inbounds { double, double }, ptr %648, i32 0, i32 0
  %650 = extractvalue { double, double } %645, 0
  store double %650, ptr %649, align 16
  %651 = getelementptr inbounds { double, double }, ptr %648, i32 0, i32 1
  %652 = extractvalue { double, double } %645, 1
  store double %652, ptr %651, align 8
  %653 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %654 unwind label %1702

654:                                              ; preds = %646
  %655 = getelementptr inbounds %"class.JPH::Vec3", ptr %82, i32 0, i32 0
  %656 = getelementptr inbounds %union.anon, ptr %655, i32 0, i32 0
  %657 = getelementptr inbounds { double, double }, ptr %656, i32 0, i32 0
  %658 = extractvalue { double, double } %653, 0
  store double %658, ptr %657, align 16
  %659 = getelementptr inbounds { double, double }, ptr %656, i32 0, i32 1
  %660 = extractvalue { double, double } %653, 1
  store double %660, ptr %659, align 8
  %661 = getelementptr inbounds { double, double }, ptr %82, i32 0, i32 0
  %662 = load double, ptr %661, align 16
  %663 = getelementptr inbounds { double, double }, ptr %82, i32 0, i32 1
  %664 = load double, ptr %663, align 8
  %665 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %662, double %664, float noundef 0x3FF921FB60000000)
          to label %666 unwind label %1702

666:                                              ; preds = %654
  %667 = getelementptr inbounds %"class.JPH::Quat", ptr %81, i32 0, i32 0
  %668 = getelementptr inbounds %"class.JPH::Vec4", ptr %667, i32 0, i32 0
  %669 = getelementptr inbounds %union.anon.12, ptr %668, i32 0, i32 0
  %670 = getelementptr inbounds { double, double }, ptr %669, i32 0, i32 0
  %671 = extractvalue { double, double } %665, 0
  store double %671, ptr %670, align 16
  %672 = getelementptr inbounds { double, double }, ptr %669, i32 0, i32 1
  %673 = extractvalue { double, double } %665, 1
  store double %673, ptr %672, align 8
  %674 = getelementptr inbounds { double, double }, ptr %80, i32 0, i32 0
  %675 = load double, ptr %674, align 16
  %676 = getelementptr inbounds { double, double }, ptr %80, i32 0, i32 1
  %677 = load double, ptr %676, align 8
  %678 = getelementptr inbounds { double, double }, ptr %81, i32 0, i32 0
  %679 = load double, ptr %678, align 16
  %680 = getelementptr inbounds { double, double }, ptr %81, i32 0, i32 1
  %681 = load double, ptr %680, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %75, ptr noundef %632, double %675, double %677, double %679, double %681, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %682 unwind label %1702

682:                                              ; preds = %666
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %630, ptr noundef nonnull align 16 dereferenceable(256) %75)
          to label %683 unwind label %1706

683:                                              ; preds = %682
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %75) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %75) #11
  %684 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %685 unwind label %1493

685:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 256, ptr %83) #11
  %686 = invoke noundef ptr @_ZN3JPH18EmptyShapeSettingsnwEm(i64 noundef 80)
          to label %687 unwind label %1719

687:                                              ; preds = %685
  call void @llvm.memset.p0.i64(ptr align 16 %686, i8 0, i64 80, i1 false)
  invoke void @_ZN3JPH18EmptyShapeSettingsC2Ev(ptr noundef nonnull align 16 dereferenceable(80) %686)
          to label %688 unwind label %1723

688:                                              ; preds = %687
  %689 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %690 unwind label %1719

690:                                              ; preds = %688
  %691 = getelementptr inbounds %"class.JPH::Vec3", ptr %84, i32 0, i32 0
  %692 = getelementptr inbounds %union.anon, ptr %691, i32 0, i32 0
  %693 = getelementptr inbounds { double, double }, ptr %692, i32 0, i32 0
  %694 = extractvalue { double, double } %689, 0
  store double %694, ptr %693, align 16
  %695 = getelementptr inbounds { double, double }, ptr %692, i32 0, i32 1
  %696 = extractvalue { double, double } %689, 1
  store double %696, ptr %695, align 8
  %697 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %698 unwind label %1719

698:                                              ; preds = %690
  %699 = getelementptr inbounds %"class.JPH::Quat", ptr %85, i32 0, i32 0
  %700 = getelementptr inbounds %"class.JPH::Vec4", ptr %699, i32 0, i32 0
  %701 = getelementptr inbounds %union.anon.12, ptr %700, i32 0, i32 0
  %702 = getelementptr inbounds { double, double }, ptr %701, i32 0, i32 0
  %703 = extractvalue { double, double } %697, 0
  store double %703, ptr %702, align 16
  %704 = getelementptr inbounds { double, double }, ptr %701, i32 0, i32 1
  %705 = extractvalue { double, double } %697, 1
  store double %705, ptr %704, align 8
  %706 = getelementptr inbounds { double, double }, ptr %84, i32 0, i32 0
  %707 = load double, ptr %706, align 16
  %708 = getelementptr inbounds { double, double }, ptr %84, i32 0, i32 1
  %709 = load double, ptr %708, align 8
  %710 = getelementptr inbounds { double, double }, ptr %85, i32 0, i32 0
  %711 = load double, ptr %710, align 16
  %712 = getelementptr inbounds { double, double }, ptr %85, i32 0, i32 1
  %713 = load double, ptr %712, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %83, ptr noundef %686, double %707, double %709, double %711, double %713, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %714 unwind label %1719

714:                                              ; preds = %698
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %684, ptr noundef nonnull align 16 dereferenceable(256) %83)
          to label %715 unwind label %1727

715:                                              ; preds = %714
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %83) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %83) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #11
  %716 = invoke noundef ptr @_ZN3JPH27StaticCompoundShapeSettingsnwEm(i64 noundef 88)
          to label %717 unwind label %1732

717:                                              ; preds = %715
  call void @llvm.memset.p0.i64(ptr align 8 %716, i8 0, i64 88, i1 false)
  invoke void @_ZN3JPH27StaticCompoundShapeSettingsC2Ev(ptr noundef nonnull align 8 dereferenceable(88) %716)
          to label %718 unwind label %1736

718:                                              ; preds = %717
  store ptr %716, ptr %86, align 8, !tbaa !9
  %719 = load ptr, ptr %86, align 8, !tbaa !9
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %87, float noundef 0.000000e+00, float noundef 5.000000e-01, float noundef 0.000000e+00)
          to label %720 unwind label %1732

720:                                              ; preds = %718
  %721 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %722 unwind label %1732

722:                                              ; preds = %720
  %723 = getelementptr inbounds %"class.JPH::Vec3", ptr %89, i32 0, i32 0
  %724 = getelementptr inbounds %union.anon, ptr %723, i32 0, i32 0
  %725 = getelementptr inbounds { double, double }, ptr %724, i32 0, i32 0
  %726 = extractvalue { double, double } %721, 0
  store double %726, ptr %725, align 16
  %727 = getelementptr inbounds { double, double }, ptr %724, i32 0, i32 1
  %728 = extractvalue { double, double } %721, 1
  store double %728, ptr %727, align 8
  %729 = getelementptr inbounds { double, double }, ptr %89, i32 0, i32 0
  %730 = load double, ptr %729, align 16
  %731 = getelementptr inbounds { double, double }, ptr %89, i32 0, i32 1
  %732 = load double, ptr %731, align 8
  %733 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %730, double %732, float noundef 0x3FF921FB60000000)
          to label %734 unwind label %1732

734:                                              ; preds = %722
  %735 = getelementptr inbounds %"class.JPH::Quat", ptr %88, i32 0, i32 0
  %736 = getelementptr inbounds %"class.JPH::Vec4", ptr %735, i32 0, i32 0
  %737 = getelementptr inbounds %union.anon.12, ptr %736, i32 0, i32 0
  %738 = getelementptr inbounds { double, double }, ptr %737, i32 0, i32 0
  %739 = extractvalue { double, double } %733, 0
  store double %739, ptr %738, align 16
  %740 = getelementptr inbounds { double, double }, ptr %737, i32 0, i32 1
  %741 = extractvalue { double, double } %733, 1
  store double %741, ptr %740, align 8
  %742 = invoke noundef ptr @_ZN3JPH16BoxShapeSettingsnwEm(i64 noundef 112)
          to label %743 unwind label %1732

743:                                              ; preds = %734
  store i1 true, ptr %94, align 1
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %90, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, float noundef 0x3FC99999A0000000)
          to label %744 unwind label %1740

744:                                              ; preds = %743
  %745 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %746 unwind label %1740

746:                                              ; preds = %744
  store i1 true, ptr %93, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %91) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %91, ptr noundef @.str.9) #11
  %747 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %748 unwind label %1744

748:                                              ; preds = %746
  %749 = getelementptr inbounds %"class.JPH::Color", ptr %92, i32 0, i32 0
  %750 = getelementptr inbounds %union.anon.38, ptr %749, i32 0, i32 0
  store i32 %747, ptr %750, align 4
  %751 = getelementptr inbounds %"class.JPH::Color", ptr %92, i32 0, i32 0
  %752 = getelementptr inbounds %union.anon.38, ptr %751, i32 0, i32 0
  %753 = load i32, ptr %752, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %745, ptr noundef nonnull align 8 dereferenceable(16) %91, i32 %753)
          to label %754 unwind label %1744

754:                                              ; preds = %748
  store i1 false, ptr %93, align 1
  %755 = getelementptr inbounds { double, double }, ptr %90, i32 0, i32 0
  %756 = load double, ptr %755, align 16
  %757 = getelementptr inbounds { double, double }, ptr %90, i32 0, i32 1
  %758 = load double, ptr %757, align 8
  invoke void @_ZN3JPH16BoxShapeSettingsC2ENS_4Vec3EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(112) %742, double %756, double %758, float noundef 0x3FA99999A0000000, ptr noundef %745)
          to label %759 unwind label %1744

759:                                              ; preds = %754
  store i1 false, ptr %94, align 1
  %760 = getelementptr inbounds { double, double }, ptr %87, i32 0, i32 0
  %761 = load double, ptr %760, align 16
  %762 = getelementptr inbounds { double, double }, ptr %87, i32 0, i32 1
  %763 = load double, ptr %762, align 8
  %764 = getelementptr inbounds { double, double }, ptr %88, i32 0, i32 0
  %765 = load double, ptr %764, align 16
  %766 = getelementptr inbounds { double, double }, ptr %88, i32 0, i32 1
  %767 = load double, ptr %766, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %719, double %761, double %763, double %765, double %767, ptr noundef %742, i32 noundef 0)
          to label %768 unwind label %1744

768:                                              ; preds = %759
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #11
  %769 = load ptr, ptr %86, align 8, !tbaa !9
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %95, float noundef 5.000000e-01, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %770 unwind label %1732

770:                                              ; preds = %768
  %771 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %772 unwind label %1732

772:                                              ; preds = %770
  %773 = getelementptr inbounds %"class.JPH::Vec3", ptr %97, i32 0, i32 0
  %774 = getelementptr inbounds %union.anon, ptr %773, i32 0, i32 0
  %775 = getelementptr inbounds { double, double }, ptr %774, i32 0, i32 0
  %776 = extractvalue { double, double } %771, 0
  store double %776, ptr %775, align 16
  %777 = getelementptr inbounds { double, double }, ptr %774, i32 0, i32 1
  %778 = extractvalue { double, double } %771, 1
  store double %778, ptr %777, align 8
  %779 = getelementptr inbounds { double, double }, ptr %97, i32 0, i32 0
  %780 = load double, ptr %779, align 16
  %781 = getelementptr inbounds { double, double }, ptr %97, i32 0, i32 1
  %782 = load double, ptr %781, align 8
  %783 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %780, double %782, float noundef 0x3FF921FB60000000)
          to label %784 unwind label %1732

784:                                              ; preds = %772
  %785 = getelementptr inbounds %"class.JPH::Quat", ptr %96, i32 0, i32 0
  %786 = getelementptr inbounds %"class.JPH::Vec4", ptr %785, i32 0, i32 0
  %787 = getelementptr inbounds %union.anon.12, ptr %786, i32 0, i32 0
  %788 = getelementptr inbounds { double, double }, ptr %787, i32 0, i32 0
  %789 = extractvalue { double, double } %783, 0
  store double %789, ptr %788, align 16
  %790 = getelementptr inbounds { double, double }, ptr %787, i32 0, i32 1
  %791 = extractvalue { double, double } %783, 1
  store double %791, ptr %790, align 8
  %792 = invoke noundef ptr @_ZN3JPH21CylinderShapeSettingsnwEm(i64 noundef 88)
          to label %793 unwind label %1732

793:                                              ; preds = %784
  store i1 true, ptr %101, align 1
  %794 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %795 unwind label %1755

795:                                              ; preds = %793
  store i1 true, ptr %100, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %98, ptr noundef @.str.10) #11
  %796 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %797 unwind label %1759

797:                                              ; preds = %795
  %798 = getelementptr inbounds %"class.JPH::Color", ptr %99, i32 0, i32 0
  %799 = getelementptr inbounds %union.anon.38, ptr %798, i32 0, i32 0
  store i32 %796, ptr %799, align 4
  %800 = getelementptr inbounds %"class.JPH::Color", ptr %99, i32 0, i32 0
  %801 = getelementptr inbounds %union.anon.38, ptr %800, i32 0, i32 0
  %802 = load i32, ptr %801, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %794, ptr noundef nonnull align 8 dereferenceable(16) %98, i32 %802)
          to label %803 unwind label %1759

803:                                              ; preds = %797
  store i1 false, ptr %100, align 1
  invoke void @_ZN3JPH21CylinderShapeSettingsC2EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %792, float noundef 5.000000e-01, float noundef 0x3FC99999A0000000, float noundef 0x3FA99999A0000000, ptr noundef %794)
          to label %804 unwind label %1759

804:                                              ; preds = %803
  store i1 false, ptr %101, align 1
  %805 = getelementptr inbounds { double, double }, ptr %95, i32 0, i32 0
  %806 = load double, ptr %805, align 16
  %807 = getelementptr inbounds { double, double }, ptr %95, i32 0, i32 1
  %808 = load double, ptr %807, align 8
  %809 = getelementptr inbounds { double, double }, ptr %96, i32 0, i32 0
  %810 = load double, ptr %809, align 16
  %811 = getelementptr inbounds { double, double }, ptr %96, i32 0, i32 1
  %812 = load double, ptr %811, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %769, double %806, double %808, double %810, double %812, ptr noundef %792, i32 noundef 0)
          to label %813 unwind label %1759

813:                                              ; preds = %804
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #11
  %814 = load ptr, ptr %86, align 8, !tbaa !9
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %102, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 5.000000e-01)
          to label %815 unwind label %1732

815:                                              ; preds = %813
  %816 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %817 unwind label %1732

817:                                              ; preds = %815
  %818 = getelementptr inbounds %"class.JPH::Vec3", ptr %104, i32 0, i32 0
  %819 = getelementptr inbounds %union.anon, ptr %818, i32 0, i32 0
  %820 = getelementptr inbounds { double, double }, ptr %819, i32 0, i32 0
  %821 = extractvalue { double, double } %816, 0
  store double %821, ptr %820, align 16
  %822 = getelementptr inbounds { double, double }, ptr %819, i32 0, i32 1
  %823 = extractvalue { double, double } %816, 1
  store double %823, ptr %822, align 8
  %824 = getelementptr inbounds { double, double }, ptr %104, i32 0, i32 0
  %825 = load double, ptr %824, align 16
  %826 = getelementptr inbounds { double, double }, ptr %104, i32 0, i32 1
  %827 = load double, ptr %826, align 8
  %828 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %825, double %827, float noundef 0x3FF921FB60000000)
          to label %829 unwind label %1732

829:                                              ; preds = %817
  %830 = getelementptr inbounds %"class.JPH::Quat", ptr %103, i32 0, i32 0
  %831 = getelementptr inbounds %"class.JPH::Vec4", ptr %830, i32 0, i32 0
  %832 = getelementptr inbounds %union.anon.12, ptr %831, i32 0, i32 0
  %833 = getelementptr inbounds { double, double }, ptr %832, i32 0, i32 0
  %834 = extractvalue { double, double } %828, 0
  store double %834, ptr %833, align 16
  %835 = getelementptr inbounds { double, double }, ptr %832, i32 0, i32 1
  %836 = extractvalue { double, double } %828, 1
  store double %836, ptr %835, align 8
  %837 = invoke noundef ptr @_ZN3JPH27TaperedCapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %838 unwind label %1732

838:                                              ; preds = %829
  store i1 true, ptr %108, align 1
  %839 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %840 unwind label %1770

840:                                              ; preds = %838
  store i1 true, ptr %107, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %105, ptr noundef @.str.11) #11
  %841 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %842 unwind label %1774

842:                                              ; preds = %840
  %843 = getelementptr inbounds %"class.JPH::Color", ptr %106, i32 0, i32 0
  %844 = getelementptr inbounds %union.anon.38, ptr %843, i32 0, i32 0
  store i32 %841, ptr %844, align 4
  %845 = getelementptr inbounds %"class.JPH::Color", ptr %106, i32 0, i32 0
  %846 = getelementptr inbounds %union.anon.38, ptr %845, i32 0, i32 0
  %847 = load i32, ptr %846, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %839, ptr noundef nonnull align 8 dereferenceable(16) %105, i32 %847)
          to label %848 unwind label %1774

848:                                              ; preds = %842
  store i1 false, ptr %107, align 1
  invoke void @_ZN3JPH27TaperedCapsuleShapeSettingsC1EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %837, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, float noundef 0x3FC99999A0000000, ptr noundef %839)
          to label %849 unwind label %1774

849:                                              ; preds = %848
  store i1 false, ptr %108, align 1
  %850 = getelementptr inbounds { double, double }, ptr %102, i32 0, i32 0
  %851 = load double, ptr %850, align 16
  %852 = getelementptr inbounds { double, double }, ptr %102, i32 0, i32 1
  %853 = load double, ptr %852, align 8
  %854 = getelementptr inbounds { double, double }, ptr %103, i32 0, i32 0
  %855 = load double, ptr %854, align 16
  %856 = getelementptr inbounds { double, double }, ptr %103, i32 0, i32 1
  %857 = load double, ptr %856, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %814, double %851, double %853, double %855, double %857, ptr noundef %837, i32 noundef 0)
          to label %858 unwind label %1774

858:                                              ; preds = %849
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #11
  %859 = invoke noundef ptr @_ZN3JPH27StaticCompoundShapeSettingsnwEm(i64 noundef 88)
          to label %860 unwind label %1785

860:                                              ; preds = %858
  call void @llvm.memset.p0.i64(ptr align 8 %859, i8 0, i64 88, i1 false)
  invoke void @_ZN3JPH27StaticCompoundShapeSettingsC2Ev(ptr noundef nonnull align 8 dereferenceable(88) %859)
          to label %861 unwind label %1789

861:                                              ; preds = %860
  store ptr %859, ptr %109, align 8, !tbaa !9
  %862 = load ptr, ptr %109, align 8, !tbaa !9
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %110, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %863 unwind label %1785

863:                                              ; preds = %861
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #11
  %864 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %865 unwind label %1793

865:                                              ; preds = %863
  %866 = getelementptr inbounds %"class.JPH::Vec3", ptr %113, i32 0, i32 0
  %867 = getelementptr inbounds %union.anon, ptr %866, i32 0, i32 0
  %868 = getelementptr inbounds { double, double }, ptr %867, i32 0, i32 0
  %869 = extractvalue { double, double } %864, 0
  store double %869, ptr %868, align 16
  %870 = getelementptr inbounds { double, double }, ptr %867, i32 0, i32 1
  %871 = extractvalue { double, double } %864, 1
  store double %871, ptr %870, align 8
  %872 = getelementptr inbounds { double, double }, ptr %113, i32 0, i32 0
  %873 = load double, ptr %872, align 16
  %874 = getelementptr inbounds { double, double }, ptr %113, i32 0, i32 1
  %875 = load double, ptr %874, align 8
  %876 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %873, double %875, float noundef 0xBFE921FB60000000)
          to label %877 unwind label %1793

877:                                              ; preds = %865
  %878 = getelementptr inbounds %"class.JPH::Quat", ptr %112, i32 0, i32 0
  %879 = getelementptr inbounds %"class.JPH::Vec4", ptr %878, i32 0, i32 0
  %880 = getelementptr inbounds %union.anon.12, ptr %879, i32 0, i32 0
  %881 = getelementptr inbounds { double, double }, ptr %880, i32 0, i32 0
  %882 = extractvalue { double, double } %876, 0
  store double %882, ptr %881, align 16
  %883 = getelementptr inbounds { double, double }, ptr %880, i32 0, i32 1
  %884 = extractvalue { double, double } %876, 1
  store double %884, ptr %883, align 8
  %885 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %886 unwind label %1793

886:                                              ; preds = %877
  %887 = getelementptr inbounds %"class.JPH::Vec3", ptr %115, i32 0, i32 0
  %888 = getelementptr inbounds %union.anon, ptr %887, i32 0, i32 0
  %889 = getelementptr inbounds { double, double }, ptr %888, i32 0, i32 0
  %890 = extractvalue { double, double } %885, 0
  store double %890, ptr %889, align 16
  %891 = getelementptr inbounds { double, double }, ptr %888, i32 0, i32 1
  %892 = extractvalue { double, double } %885, 1
  store double %892, ptr %891, align 8
  %893 = getelementptr inbounds { double, double }, ptr %115, i32 0, i32 0
  %894 = load double, ptr %893, align 16
  %895 = getelementptr inbounds { double, double }, ptr %115, i32 0, i32 1
  %896 = load double, ptr %895, align 8
  %897 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %894, double %896, float noundef 0x3FE921FB60000000)
          to label %898 unwind label %1793

898:                                              ; preds = %886
  %899 = getelementptr inbounds %"class.JPH::Quat", ptr %114, i32 0, i32 0
  %900 = getelementptr inbounds %"class.JPH::Vec4", ptr %899, i32 0, i32 0
  %901 = getelementptr inbounds %union.anon.12, ptr %900, i32 0, i32 0
  %902 = getelementptr inbounds { double, double }, ptr %901, i32 0, i32 0
  %903 = extractvalue { double, double } %897, 0
  store double %903, ptr %902, align 16
  %904 = getelementptr inbounds { double, double }, ptr %901, i32 0, i32 1
  %905 = extractvalue { double, double } %897, 1
  store double %905, ptr %904, align 8
  %906 = getelementptr inbounds { double, double }, ptr %114, i32 0, i32 0
  %907 = load double, ptr %906, align 16
  %908 = getelementptr inbounds { double, double }, ptr %114, i32 0, i32 1
  %909 = load double, ptr %908, align 8
  %910 = invoke { double, double } @_ZNK3JPH4QuatmlES0_(ptr noundef nonnull align 16 dereferenceable(16) %112, double %907, double %909)
          to label %911 unwind label %1793

911:                                              ; preds = %898
  %912 = getelementptr inbounds %"class.JPH::Quat", ptr %111, i32 0, i32 0
  %913 = getelementptr inbounds %"class.JPH::Vec4", ptr %912, i32 0, i32 0
  %914 = getelementptr inbounds %union.anon.12, ptr %913, i32 0, i32 0
  %915 = getelementptr inbounds { double, double }, ptr %914, i32 0, i32 0
  %916 = extractvalue { double, double } %910, 0
  store double %916, ptr %915, align 16
  %917 = getelementptr inbounds { double, double }, ptr %914, i32 0, i32 1
  %918 = extractvalue { double, double } %910, 1
  store double %918, ptr %917, align 8
  %919 = load ptr, ptr %86, align 8, !tbaa !9
  %920 = getelementptr inbounds { double, double }, ptr %110, i32 0, i32 0
  %921 = load double, ptr %920, align 16
  %922 = getelementptr inbounds { double, double }, ptr %110, i32 0, i32 1
  %923 = load double, ptr %922, align 8
  %924 = getelementptr inbounds { double, double }, ptr %111, i32 0, i32 0
  %925 = load double, ptr %924, align 16
  %926 = getelementptr inbounds { double, double }, ptr %111, i32 0, i32 1
  %927 = load double, ptr %926, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %862, double %921, double %923, double %925, double %927, ptr noundef %919, i32 noundef 0)
          to label %928 unwind label %1793

928:                                              ; preds = %911
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #11
  %929 = load ptr, ptr %109, align 8, !tbaa !9
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %116, float noundef 0.000000e+00, float noundef 0xBFB99999A0000000, float noundef 0.000000e+00)
          to label %930 unwind label %1785

930:                                              ; preds = %928
  call void @llvm.lifetime.start.p0(i64 16, ptr %118) #11
  %931 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %932 unwind label %1797

932:                                              ; preds = %930
  %933 = getelementptr inbounds %"class.JPH::Vec3", ptr %119, i32 0, i32 0
  %934 = getelementptr inbounds %union.anon, ptr %933, i32 0, i32 0
  %935 = getelementptr inbounds { double, double }, ptr %934, i32 0, i32 0
  %936 = extractvalue { double, double } %931, 0
  store double %936, ptr %935, align 16
  %937 = getelementptr inbounds { double, double }, ptr %934, i32 0, i32 1
  %938 = extractvalue { double, double } %931, 1
  store double %938, ptr %937, align 8
  %939 = getelementptr inbounds { double, double }, ptr %119, i32 0, i32 0
  %940 = load double, ptr %939, align 16
  %941 = getelementptr inbounds { double, double }, ptr %119, i32 0, i32 1
  %942 = load double, ptr %941, align 8
  %943 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %940, double %942, float noundef 0x3FE921FB60000000)
          to label %944 unwind label %1797

944:                                              ; preds = %932
  %945 = getelementptr inbounds %"class.JPH::Quat", ptr %118, i32 0, i32 0
  %946 = getelementptr inbounds %"class.JPH::Vec4", ptr %945, i32 0, i32 0
  %947 = getelementptr inbounds %union.anon.12, ptr %946, i32 0, i32 0
  %948 = getelementptr inbounds { double, double }, ptr %947, i32 0, i32 0
  %949 = extractvalue { double, double } %943, 0
  store double %949, ptr %948, align 16
  %950 = getelementptr inbounds { double, double }, ptr %947, i32 0, i32 1
  %951 = extractvalue { double, double } %943, 1
  store double %951, ptr %950, align 8
  %952 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %953 unwind label %1797

953:                                              ; preds = %944
  %954 = getelementptr inbounds %"class.JPH::Vec3", ptr %121, i32 0, i32 0
  %955 = getelementptr inbounds %union.anon, ptr %954, i32 0, i32 0
  %956 = getelementptr inbounds { double, double }, ptr %955, i32 0, i32 0
  %957 = extractvalue { double, double } %952, 0
  store double %957, ptr %956, align 16
  %958 = getelementptr inbounds { double, double }, ptr %955, i32 0, i32 1
  %959 = extractvalue { double, double } %952, 1
  store double %959, ptr %958, align 8
  %960 = getelementptr inbounds { double, double }, ptr %121, i32 0, i32 0
  %961 = load double, ptr %960, align 16
  %962 = getelementptr inbounds { double, double }, ptr %121, i32 0, i32 1
  %963 = load double, ptr %962, align 8
  %964 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %961, double %963, float noundef 0xC002D97C80000000)
          to label %965 unwind label %1797

965:                                              ; preds = %953
  %966 = getelementptr inbounds %"class.JPH::Quat", ptr %120, i32 0, i32 0
  %967 = getelementptr inbounds %"class.JPH::Vec4", ptr %966, i32 0, i32 0
  %968 = getelementptr inbounds %union.anon.12, ptr %967, i32 0, i32 0
  %969 = getelementptr inbounds { double, double }, ptr %968, i32 0, i32 0
  %970 = extractvalue { double, double } %964, 0
  store double %970, ptr %969, align 16
  %971 = getelementptr inbounds { double, double }, ptr %968, i32 0, i32 1
  %972 = extractvalue { double, double } %964, 1
  store double %972, ptr %971, align 8
  %973 = getelementptr inbounds { double, double }, ptr %120, i32 0, i32 0
  %974 = load double, ptr %973, align 16
  %975 = getelementptr inbounds { double, double }, ptr %120, i32 0, i32 1
  %976 = load double, ptr %975, align 8
  %977 = invoke { double, double } @_ZNK3JPH4QuatmlES0_(ptr noundef nonnull align 16 dereferenceable(16) %118, double %974, double %976)
          to label %978 unwind label %1797

978:                                              ; preds = %965
  %979 = getelementptr inbounds %"class.JPH::Quat", ptr %117, i32 0, i32 0
  %980 = getelementptr inbounds %"class.JPH::Vec4", ptr %979, i32 0, i32 0
  %981 = getelementptr inbounds %union.anon.12, ptr %980, i32 0, i32 0
  %982 = getelementptr inbounds { double, double }, ptr %981, i32 0, i32 0
  %983 = extractvalue { double, double } %977, 0
  store double %983, ptr %982, align 16
  %984 = getelementptr inbounds { double, double }, ptr %981, i32 0, i32 1
  %985 = extractvalue { double, double } %977, 1
  store double %985, ptr %984, align 8
  %986 = load ptr, ptr %86, align 8, !tbaa !9
  %987 = getelementptr inbounds { double, double }, ptr %116, i32 0, i32 0
  %988 = load double, ptr %987, align 16
  %989 = getelementptr inbounds { double, double }, ptr %116, i32 0, i32 1
  %990 = load double, ptr %989, align 8
  %991 = getelementptr inbounds { double, double }, ptr %117, i32 0, i32 0
  %992 = load double, ptr %991, align 16
  %993 = getelementptr inbounds { double, double }, ptr %117, i32 0, i32 1
  %994 = load double, ptr %993, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %929, double %988, double %990, double %992, double %994, ptr noundef %986, i32 noundef 0)
          to label %995 unwind label %1797

995:                                              ; preds = %978
  call void @llvm.lifetime.end.p0(i64 16, ptr %118) #11
  %996 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %997 unwind label %1785

997:                                              ; preds = %995
  call void @llvm.lifetime.start.p0(i64 256, ptr %122) #11
  %998 = load ptr, ptr %109, align 8, !tbaa !9
  %999 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %1000 unwind label %1801

1000:                                             ; preds = %997
  %1001 = getelementptr inbounds %"class.JPH::Vec3", ptr %123, i32 0, i32 0
  %1002 = getelementptr inbounds %union.anon, ptr %1001, i32 0, i32 0
  %1003 = getelementptr inbounds { double, double }, ptr %1002, i32 0, i32 0
  %1004 = extractvalue { double, double } %999, 0
  store double %1004, ptr %1003, align 16
  %1005 = getelementptr inbounds { double, double }, ptr %1002, i32 0, i32 1
  %1006 = extractvalue { double, double } %999, 1
  store double %1006, ptr %1005, align 8
  %1007 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %1008 unwind label %1801

1008:                                             ; preds = %1000
  %1009 = getelementptr inbounds %"class.JPH::Vec3", ptr %125, i32 0, i32 0
  %1010 = getelementptr inbounds %union.anon, ptr %1009, i32 0, i32 0
  %1011 = getelementptr inbounds { double, double }, ptr %1010, i32 0, i32 0
  %1012 = extractvalue { double, double } %1007, 0
  store double %1012, ptr %1011, align 16
  %1013 = getelementptr inbounds { double, double }, ptr %1010, i32 0, i32 1
  %1014 = extractvalue { double, double } %1007, 1
  store double %1014, ptr %1013, align 8
  %1015 = getelementptr inbounds { double, double }, ptr %125, i32 0, i32 0
  %1016 = load double, ptr %1015, align 16
  %1017 = getelementptr inbounds { double, double }, ptr %125, i32 0, i32 1
  %1018 = load double, ptr %1017, align 8
  %1019 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %1016, double %1018, float noundef 0x3FF921FB60000000)
          to label %1020 unwind label %1801

1020:                                             ; preds = %1008
  %1021 = getelementptr inbounds %"class.JPH::Quat", ptr %124, i32 0, i32 0
  %1022 = getelementptr inbounds %"class.JPH::Vec4", ptr %1021, i32 0, i32 0
  %1023 = getelementptr inbounds %union.anon.12, ptr %1022, i32 0, i32 0
  %1024 = getelementptr inbounds { double, double }, ptr %1023, i32 0, i32 0
  %1025 = extractvalue { double, double } %1019, 0
  store double %1025, ptr %1024, align 16
  %1026 = getelementptr inbounds { double, double }, ptr %1023, i32 0, i32 1
  %1027 = extractvalue { double, double } %1019, 1
  store double %1027, ptr %1026, align 8
  %1028 = getelementptr inbounds { double, double }, ptr %123, i32 0, i32 0
  %1029 = load double, ptr %1028, align 16
  %1030 = getelementptr inbounds { double, double }, ptr %123, i32 0, i32 1
  %1031 = load double, ptr %1030, align 8
  %1032 = getelementptr inbounds { double, double }, ptr %124, i32 0, i32 0
  %1033 = load double, ptr %1032, align 16
  %1034 = getelementptr inbounds { double, double }, ptr %124, i32 0, i32 1
  %1035 = load double, ptr %1034, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %122, ptr noundef %998, double %1029, double %1031, double %1033, double %1035, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %1036 unwind label %1801

1036:                                             ; preds = %1020
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %996, ptr noundef nonnull align 16 dereferenceable(256) %122)
          to label %1037 unwind label %1805

1037:                                             ; preds = %1036
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %122) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %122) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %126) #11
  call void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %126) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %127) #11
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %127, float noundef -5.000000e-01, float noundef 0.000000e+00, float noundef -5.000000e-01)
          to label %1038 unwind label %1810

1038:                                             ; preds = %1037
  invoke void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %126, ptr noundef nonnull align 16 dereferenceable(16) %127)
          to label %1039 unwind label %1810

1039:                                             ; preds = %1038
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %128) #11
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %128, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 5.000000e-01)
          to label %1040 unwind label %1814

1040:                                             ; preds = %1039
  invoke void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %126, ptr noundef nonnull align 16 dereferenceable(16) %128)
          to label %1041 unwind label %1814

1041:                                             ; preds = %1040
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #11
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %129, float noundef 5.000000e-01, float noundef 0.000000e+00, float noundef -5.000000e-01)
          to label %1042 unwind label %1818

1042:                                             ; preds = %1041
  invoke void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %126, ptr noundef nonnull align 16 dereferenceable(16) %129)
          to label %1043 unwind label %1818

1043:                                             ; preds = %1042
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #11
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %130, float noundef 0.000000e+00, float noundef -5.000000e-01, float noundef 0.000000e+00)
          to label %1044 unwind label %1822

1044:                                             ; preds = %1043
  invoke void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %126, ptr noundef nonnull align 16 dereferenceable(16) %130)
          to label %1045 unwind label %1822

1045:                                             ; preds = %1044
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #11
  %1046 = invoke noundef ptr @_ZN3JPH23ConvexHullShapeSettingsnwEm(i64 noundef 120)
          to label %1047 unwind label %1826

1047:                                             ; preds = %1045
  store i1 true, ptr %135, align 1
  %1048 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %1049 unwind label %1830

1049:                                             ; preds = %1047
  store i1 true, ptr %134, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %132) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %132, ptr noundef @.str.12) #11
  %1050 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %1051 unwind label %1834

1051:                                             ; preds = %1049
  %1052 = getelementptr inbounds %"class.JPH::Color", ptr %133, i32 0, i32 0
  %1053 = getelementptr inbounds %union.anon.38, ptr %1052, i32 0, i32 0
  store i32 %1050, ptr %1053, align 4
  %1054 = getelementptr inbounds %"class.JPH::Color", ptr %133, i32 0, i32 0
  %1055 = getelementptr inbounds %union.anon.38, ptr %1054, i32 0, i32 0
  %1056 = load i32, ptr %1055, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %1048, ptr noundef nonnull align 8 dereferenceable(16) %132, i32 %1056)
          to label %1057 unwind label %1834

1057:                                             ; preds = %1051
  store i1 false, ptr %134, align 1
  invoke void @_ZN3JPH23ConvexHullShapeSettingsC2ERKNS_5ArrayINS_4Vec3ENS_12STLAllocatorIS2_EEEEfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(120) %1046, ptr noundef nonnull align 8 dereferenceable(24) %126, float noundef 0x3FA99999A0000000, ptr noundef %1048)
          to label %1058 unwind label %1834

1058:                                             ; preds = %1057
  store i1 false, ptr %135, align 1
  invoke void @_ZN3JPH3RefINS_23ConvexHullShapeSettingsEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %131, ptr noundef %1046)
          to label %1059 unwind label %1834

1059:                                             ; preds = %1058
  call void @llvm.lifetime.end.p0(i64 16, ptr %132) #11
  %1060 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %1061 unwind label %1845

1061:                                             ; preds = %1059
  call void @llvm.lifetime.start.p0(i64 256, ptr %136) #11
  %1062 = invoke noundef ptr @_ZNK3JPH3RefINS_23ConvexHullShapeSettingsEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %1063 unwind label %1849

1063:                                             ; preds = %1061
  %1064 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %1065 unwind label %1849

1065:                                             ; preds = %1063
  %1066 = getelementptr inbounds %"class.JPH::Vec3", ptr %137, i32 0, i32 0
  %1067 = getelementptr inbounds %union.anon, ptr %1066, i32 0, i32 0
  %1068 = getelementptr inbounds { double, double }, ptr %1067, i32 0, i32 0
  %1069 = extractvalue { double, double } %1064, 0
  store double %1069, ptr %1068, align 16
  %1070 = getelementptr inbounds { double, double }, ptr %1067, i32 0, i32 1
  %1071 = extractvalue { double, double } %1064, 1
  store double %1071, ptr %1070, align 8
  %1072 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %1073 unwind label %1849

1073:                                             ; preds = %1065
  %1074 = getelementptr inbounds %"class.JPH::Quat", ptr %138, i32 0, i32 0
  %1075 = getelementptr inbounds %"class.JPH::Vec4", ptr %1074, i32 0, i32 0
  %1076 = getelementptr inbounds %union.anon.12, ptr %1075, i32 0, i32 0
  %1077 = getelementptr inbounds { double, double }, ptr %1076, i32 0, i32 0
  %1078 = extractvalue { double, double } %1072, 0
  store double %1078, ptr %1077, align 16
  %1079 = getelementptr inbounds { double, double }, ptr %1076, i32 0, i32 1
  %1080 = extractvalue { double, double } %1072, 1
  store double %1080, ptr %1079, align 8
  %1081 = getelementptr inbounds { double, double }, ptr %137, i32 0, i32 0
  %1082 = load double, ptr %1081, align 16
  %1083 = getelementptr inbounds { double, double }, ptr %137, i32 0, i32 1
  %1084 = load double, ptr %1083, align 8
  %1085 = getelementptr inbounds { double, double }, ptr %138, i32 0, i32 0
  %1086 = load double, ptr %1085, align 16
  %1087 = getelementptr inbounds { double, double }, ptr %138, i32 0, i32 1
  %1088 = load double, ptr %1087, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %136, ptr noundef %1062, double %1082, double %1084, double %1086, double %1088, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %1089 unwind label %1849

1089:                                             ; preds = %1073
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %1060, ptr noundef nonnull align 16 dereferenceable(256) %136)
          to label %1090 unwind label %1853

1090:                                             ; preds = %1089
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %136) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %136) #11
  %1091 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %1092 unwind label %1845

1092:                                             ; preds = %1090
  call void @llvm.lifetime.start.p0(i64 256, ptr %139) #11
  %1093 = invoke noundef ptr @_ZN3JPH30RotatedTranslatedShapeSettingsnwEm(i64 noundef 112)
          to label %1094 unwind label %1858

1094:                                             ; preds = %1092
  %1095 = invoke { double, double } @_ZN3JPH4Vec310sReplicateEf(float noundef 5.000000e-01)
          to label %1096 unwind label %1862

1096:                                             ; preds = %1094
  %1097 = getelementptr inbounds %"class.JPH::Vec3", ptr %140, i32 0, i32 0
  %1098 = getelementptr inbounds %union.anon, ptr %1097, i32 0, i32 0
  %1099 = getelementptr inbounds { double, double }, ptr %1098, i32 0, i32 0
  %1100 = extractvalue { double, double } %1095, 0
  store double %1100, ptr %1099, align 16
  %1101 = getelementptr inbounds { double, double }, ptr %1098, i32 0, i32 1
  %1102 = extractvalue { double, double } %1095, 1
  store double %1102, ptr %1101, align 8
  %1103 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %1104 unwind label %1862

1104:                                             ; preds = %1096
  %1105 = getelementptr inbounds %"class.JPH::Vec3", ptr %142, i32 0, i32 0
  %1106 = getelementptr inbounds %union.anon, ptr %1105, i32 0, i32 0
  %1107 = getelementptr inbounds { double, double }, ptr %1106, i32 0, i32 0
  %1108 = extractvalue { double, double } %1103, 0
  store double %1108, ptr %1107, align 16
  %1109 = getelementptr inbounds { double, double }, ptr %1106, i32 0, i32 1
  %1110 = extractvalue { double, double } %1103, 1
  store double %1110, ptr %1109, align 8
  %1111 = getelementptr inbounds { double, double }, ptr %142, i32 0, i32 0
  %1112 = load double, ptr %1111, align 16
  %1113 = getelementptr inbounds { double, double }, ptr %142, i32 0, i32 1
  %1114 = load double, ptr %1113, align 8
  %1115 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %1112, double %1114, float noundef 0x3FE921FB60000000)
          to label %1116 unwind label %1862

1116:                                             ; preds = %1104
  %1117 = getelementptr inbounds %"class.JPH::Quat", ptr %141, i32 0, i32 0
  %1118 = getelementptr inbounds %"class.JPH::Vec4", ptr %1117, i32 0, i32 0
  %1119 = getelementptr inbounds %union.anon.12, ptr %1118, i32 0, i32 0
  %1120 = getelementptr inbounds { double, double }, ptr %1119, i32 0, i32 0
  %1121 = extractvalue { double, double } %1115, 0
  store double %1121, ptr %1120, align 16
  %1122 = getelementptr inbounds { double, double }, ptr %1119, i32 0, i32 1
  %1123 = extractvalue { double, double } %1115, 1
  store double %1123, ptr %1122, align 8
  %1124 = invoke noundef ptr @_ZNK3JPH3RefINS_23ConvexHullShapeSettingsEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %1125 unwind label %1862

1125:                                             ; preds = %1116
  %1126 = getelementptr inbounds { double, double }, ptr %140, i32 0, i32 0
  %1127 = load double, ptr %1126, align 16
  %1128 = getelementptr inbounds { double, double }, ptr %140, i32 0, i32 1
  %1129 = load double, ptr %1128, align 8
  %1130 = getelementptr inbounds { double, double }, ptr %141, i32 0, i32 0
  %1131 = load double, ptr %1130, align 16
  %1132 = getelementptr inbounds { double, double }, ptr %141, i32 0, i32 1
  %1133 = load double, ptr %1132, align 8
  invoke void @_ZN3JPH30RotatedTranslatedShapeSettingsC2ENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsE(ptr noundef nonnull align 16 dereferenceable(112) %1093, double %1127, double %1129, double %1131, double %1133, ptr noundef %1124)
          to label %1134 unwind label %1862

1134:                                             ; preds = %1125
  %1135 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %1136 unwind label %1858

1136:                                             ; preds = %1134
  %1137 = getelementptr inbounds %"class.JPH::Vec3", ptr %143, i32 0, i32 0
  %1138 = getelementptr inbounds %union.anon, ptr %1137, i32 0, i32 0
  %1139 = getelementptr inbounds { double, double }, ptr %1138, i32 0, i32 0
  %1140 = extractvalue { double, double } %1135, 0
  store double %1140, ptr %1139, align 16
  %1141 = getelementptr inbounds { double, double }, ptr %1138, i32 0, i32 1
  %1142 = extractvalue { double, double } %1135, 1
  store double %1142, ptr %1141, align 8
  %1143 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %1144 unwind label %1858

1144:                                             ; preds = %1136
  %1145 = getelementptr inbounds %"class.JPH::Quat", ptr %144, i32 0, i32 0
  %1146 = getelementptr inbounds %"class.JPH::Vec4", ptr %1145, i32 0, i32 0
  %1147 = getelementptr inbounds %union.anon.12, ptr %1146, i32 0, i32 0
  %1148 = getelementptr inbounds { double, double }, ptr %1147, i32 0, i32 0
  %1149 = extractvalue { double, double } %1143, 0
  store double %1149, ptr %1148, align 16
  %1150 = getelementptr inbounds { double, double }, ptr %1147, i32 0, i32 1
  %1151 = extractvalue { double, double } %1143, 1
  store double %1151, ptr %1150, align 8
  %1152 = getelementptr inbounds { double, double }, ptr %143, i32 0, i32 0
  %1153 = load double, ptr %1152, align 16
  %1154 = getelementptr inbounds { double, double }, ptr %143, i32 0, i32 1
  %1155 = load double, ptr %1154, align 8
  %1156 = getelementptr inbounds { double, double }, ptr %144, i32 0, i32 0
  %1157 = load double, ptr %1156, align 16
  %1158 = getelementptr inbounds { double, double }, ptr %144, i32 0, i32 1
  %1159 = load double, ptr %1158, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %139, ptr noundef %1093, double %1153, double %1155, double %1157, double %1159, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %1160 unwind label %1858

1160:                                             ; preds = %1144
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %1091, ptr noundef nonnull align 16 dereferenceable(256) %139)
          to label %1161 unwind label %1866

1161:                                             ; preds = %1160
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %139) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %139) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #11
  %1162 = invoke noundef ptr @_ZN3JPH28MutableCompoundShapeSettingsnwEm(i64 noundef 88)
          to label %1163 unwind label %1871

1163:                                             ; preds = %1161
  call void @llvm.memset.p0.i64(ptr align 8 %1162, i8 0, i64 88, i1 false)
  invoke void @_ZN3JPH28MutableCompoundShapeSettingsC2Ev(ptr noundef nonnull align 8 dereferenceable(88) %1162)
          to label %1164 unwind label %1875

1164:                                             ; preds = %1163
  store ptr %1162, ptr %145, align 8, !tbaa !9
  %1165 = load ptr, ptr %145, align 8, !tbaa !9
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %146, float noundef 0.000000e+00, float noundef 5.000000e-01, float noundef 0.000000e+00)
          to label %1166 unwind label %1871

1166:                                             ; preds = %1164
  %1167 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %1168 unwind label %1871

1168:                                             ; preds = %1166
  %1169 = getelementptr inbounds %"class.JPH::Vec3", ptr %148, i32 0, i32 0
  %1170 = getelementptr inbounds %union.anon, ptr %1169, i32 0, i32 0
  %1171 = getelementptr inbounds { double, double }, ptr %1170, i32 0, i32 0
  %1172 = extractvalue { double, double } %1167, 0
  store double %1172, ptr %1171, align 16
  %1173 = getelementptr inbounds { double, double }, ptr %1170, i32 0, i32 1
  %1174 = extractvalue { double, double } %1167, 1
  store double %1174, ptr %1173, align 8
  %1175 = getelementptr inbounds { double, double }, ptr %148, i32 0, i32 0
  %1176 = load double, ptr %1175, align 16
  %1177 = getelementptr inbounds { double, double }, ptr %148, i32 0, i32 1
  %1178 = load double, ptr %1177, align 8
  %1179 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %1176, double %1178, float noundef 0x3FF921FB60000000)
          to label %1180 unwind label %1871

1180:                                             ; preds = %1168
  %1181 = getelementptr inbounds %"class.JPH::Quat", ptr %147, i32 0, i32 0
  %1182 = getelementptr inbounds %"class.JPH::Vec4", ptr %1181, i32 0, i32 0
  %1183 = getelementptr inbounds %union.anon.12, ptr %1182, i32 0, i32 0
  %1184 = getelementptr inbounds { double, double }, ptr %1183, i32 0, i32 0
  %1185 = extractvalue { double, double } %1179, 0
  store double %1185, ptr %1184, align 16
  %1186 = getelementptr inbounds { double, double }, ptr %1183, i32 0, i32 1
  %1187 = extractvalue { double, double } %1179, 1
  store double %1187, ptr %1186, align 8
  %1188 = invoke noundef ptr @_ZN3JPH16BoxShapeSettingsnwEm(i64 noundef 112)
          to label %1189 unwind label %1871

1189:                                             ; preds = %1180
  store i1 true, ptr %153, align 1
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %149, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, float noundef 0x3FC99999A0000000)
          to label %1190 unwind label %1879

1190:                                             ; preds = %1189
  %1191 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %1192 unwind label %1879

1192:                                             ; preds = %1190
  store i1 true, ptr %152, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %150) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %150, ptr noundef @.str.13) #11
  %1193 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %1194 unwind label %1883

1194:                                             ; preds = %1192
  %1195 = getelementptr inbounds %"class.JPH::Color", ptr %151, i32 0, i32 0
  %1196 = getelementptr inbounds %union.anon.38, ptr %1195, i32 0, i32 0
  store i32 %1193, ptr %1196, align 4
  %1197 = getelementptr inbounds %"class.JPH::Color", ptr %151, i32 0, i32 0
  %1198 = getelementptr inbounds %union.anon.38, ptr %1197, i32 0, i32 0
  %1199 = load i32, ptr %1198, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %1191, ptr noundef nonnull align 8 dereferenceable(16) %150, i32 %1199)
          to label %1200 unwind label %1883

1200:                                             ; preds = %1194
  store i1 false, ptr %152, align 1
  %1201 = getelementptr inbounds { double, double }, ptr %149, i32 0, i32 0
  %1202 = load double, ptr %1201, align 16
  %1203 = getelementptr inbounds { double, double }, ptr %149, i32 0, i32 1
  %1204 = load double, ptr %1203, align 8
  invoke void @_ZN3JPH16BoxShapeSettingsC2ENS_4Vec3EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(112) %1188, double %1202, double %1204, float noundef 0x3FA99999A0000000, ptr noundef %1191)
          to label %1205 unwind label %1883

1205:                                             ; preds = %1200
  store i1 false, ptr %153, align 1
  %1206 = getelementptr inbounds { double, double }, ptr %146, i32 0, i32 0
  %1207 = load double, ptr %1206, align 16
  %1208 = getelementptr inbounds { double, double }, ptr %146, i32 0, i32 1
  %1209 = load double, ptr %1208, align 8
  %1210 = getelementptr inbounds { double, double }, ptr %147, i32 0, i32 0
  %1211 = load double, ptr %1210, align 16
  %1212 = getelementptr inbounds { double, double }, ptr %147, i32 0, i32 1
  %1213 = load double, ptr %1212, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %1165, double %1207, double %1209, double %1211, double %1213, ptr noundef %1188, i32 noundef 0)
          to label %1214 unwind label %1883

1214:                                             ; preds = %1205
  call void @llvm.lifetime.end.p0(i64 16, ptr %150) #11
  %1215 = load ptr, ptr %145, align 8, !tbaa !9
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %154, float noundef 5.000000e-01, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %1216 unwind label %1871

1216:                                             ; preds = %1214
  %1217 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %1218 unwind label %1871

1218:                                             ; preds = %1216
  %1219 = getelementptr inbounds %"class.JPH::Vec3", ptr %156, i32 0, i32 0
  %1220 = getelementptr inbounds %union.anon, ptr %1219, i32 0, i32 0
  %1221 = getelementptr inbounds { double, double }, ptr %1220, i32 0, i32 0
  %1222 = extractvalue { double, double } %1217, 0
  store double %1222, ptr %1221, align 16
  %1223 = getelementptr inbounds { double, double }, ptr %1220, i32 0, i32 1
  %1224 = extractvalue { double, double } %1217, 1
  store double %1224, ptr %1223, align 8
  %1225 = getelementptr inbounds { double, double }, ptr %156, i32 0, i32 0
  %1226 = load double, ptr %1225, align 16
  %1227 = getelementptr inbounds { double, double }, ptr %156, i32 0, i32 1
  %1228 = load double, ptr %1227, align 8
  %1229 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %1226, double %1228, float noundef 0x3FF921FB60000000)
          to label %1230 unwind label %1871

1230:                                             ; preds = %1218
  %1231 = getelementptr inbounds %"class.JPH::Quat", ptr %155, i32 0, i32 0
  %1232 = getelementptr inbounds %"class.JPH::Vec4", ptr %1231, i32 0, i32 0
  %1233 = getelementptr inbounds %union.anon.12, ptr %1232, i32 0, i32 0
  %1234 = getelementptr inbounds { double, double }, ptr %1233, i32 0, i32 0
  %1235 = extractvalue { double, double } %1229, 0
  store double %1235, ptr %1234, align 16
  %1236 = getelementptr inbounds { double, double }, ptr %1233, i32 0, i32 1
  %1237 = extractvalue { double, double } %1229, 1
  store double %1237, ptr %1236, align 8
  %1238 = invoke noundef ptr @_ZN3JPH20CapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %1239 unwind label %1871

1239:                                             ; preds = %1230
  store i1 true, ptr %160, align 1
  %1240 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %1241 unwind label %1894

1241:                                             ; preds = %1239
  store i1 true, ptr %159, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %157) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %157, ptr noundef @.str.14) #11
  %1242 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %1243 unwind label %1898

1243:                                             ; preds = %1241
  %1244 = getelementptr inbounds %"class.JPH::Color", ptr %158, i32 0, i32 0
  %1245 = getelementptr inbounds %union.anon.38, ptr %1244, i32 0, i32 0
  store i32 %1242, ptr %1245, align 4
  %1246 = getelementptr inbounds %"class.JPH::Color", ptr %158, i32 0, i32 0
  %1247 = getelementptr inbounds %union.anon.38, ptr %1246, i32 0, i32 0
  %1248 = load i32, ptr %1247, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %1240, ptr noundef nonnull align 8 dereferenceable(16) %157, i32 %1248)
          to label %1249 unwind label %1898

1249:                                             ; preds = %1243
  store i1 false, ptr %159, align 1
  invoke void @_ZN3JPH20CapsuleShapeSettingsC2EffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %1238, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, ptr noundef %1240)
          to label %1250 unwind label %1898

1250:                                             ; preds = %1249
  store i1 false, ptr %160, align 1
  %1251 = getelementptr inbounds { double, double }, ptr %154, i32 0, i32 0
  %1252 = load double, ptr %1251, align 16
  %1253 = getelementptr inbounds { double, double }, ptr %154, i32 0, i32 1
  %1254 = load double, ptr %1253, align 8
  %1255 = getelementptr inbounds { double, double }, ptr %155, i32 0, i32 0
  %1256 = load double, ptr %1255, align 16
  %1257 = getelementptr inbounds { double, double }, ptr %155, i32 0, i32 1
  %1258 = load double, ptr %1257, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %1215, double %1252, double %1254, double %1256, double %1258, ptr noundef %1238, i32 noundef 0)
          to label %1259 unwind label %1898

1259:                                             ; preds = %1250
  call void @llvm.lifetime.end.p0(i64 16, ptr %157) #11
  %1260 = load ptr, ptr %145, align 8, !tbaa !9
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %161, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 5.000000e-01)
          to label %1261 unwind label %1871

1261:                                             ; preds = %1259
  %1262 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %1263 unwind label %1871

1263:                                             ; preds = %1261
  %1264 = getelementptr inbounds %"class.JPH::Vec3", ptr %163, i32 0, i32 0
  %1265 = getelementptr inbounds %union.anon, ptr %1264, i32 0, i32 0
  %1266 = getelementptr inbounds { double, double }, ptr %1265, i32 0, i32 0
  %1267 = extractvalue { double, double } %1262, 0
  store double %1267, ptr %1266, align 16
  %1268 = getelementptr inbounds { double, double }, ptr %1265, i32 0, i32 1
  %1269 = extractvalue { double, double } %1262, 1
  store double %1269, ptr %1268, align 8
  %1270 = getelementptr inbounds { double, double }, ptr %163, i32 0, i32 0
  %1271 = load double, ptr %1270, align 16
  %1272 = getelementptr inbounds { double, double }, ptr %163, i32 0, i32 1
  %1273 = load double, ptr %1272, align 8
  %1274 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %1271, double %1273, float noundef 0x3FF921FB60000000)
          to label %1275 unwind label %1871

1275:                                             ; preds = %1263
  %1276 = getelementptr inbounds %"class.JPH::Quat", ptr %162, i32 0, i32 0
  %1277 = getelementptr inbounds %"class.JPH::Vec4", ptr %1276, i32 0, i32 0
  %1278 = getelementptr inbounds %union.anon.12, ptr %1277, i32 0, i32 0
  %1279 = getelementptr inbounds { double, double }, ptr %1278, i32 0, i32 0
  %1280 = extractvalue { double, double } %1274, 0
  store double %1280, ptr %1279, align 16
  %1281 = getelementptr inbounds { double, double }, ptr %1278, i32 0, i32 1
  %1282 = extractvalue { double, double } %1274, 1
  store double %1282, ptr %1281, align 8
  %1283 = invoke noundef ptr @_ZN3JPH27TaperedCapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %1284 unwind label %1871

1284:                                             ; preds = %1275
  store i1 true, ptr %167, align 1
  %1285 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %1286 unwind label %1909

1286:                                             ; preds = %1284
  store i1 true, ptr %166, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %164) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %164, ptr noundef @.str.15) #11
  %1287 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %1288 unwind label %1913

1288:                                             ; preds = %1286
  %1289 = getelementptr inbounds %"class.JPH::Color", ptr %165, i32 0, i32 0
  %1290 = getelementptr inbounds %union.anon.38, ptr %1289, i32 0, i32 0
  store i32 %1287, ptr %1290, align 4
  %1291 = getelementptr inbounds %"class.JPH::Color", ptr %165, i32 0, i32 0
  %1292 = getelementptr inbounds %union.anon.38, ptr %1291, i32 0, i32 0
  %1293 = load i32, ptr %1292, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %1285, ptr noundef nonnull align 8 dereferenceable(16) %164, i32 %1293)
          to label %1294 unwind label %1913

1294:                                             ; preds = %1288
  store i1 false, ptr %166, align 1
  invoke void @_ZN3JPH27TaperedCapsuleShapeSettingsC1EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %1283, float noundef 5.000000e-01, float noundef 0x3FC99999A0000000, float noundef 0x3FB99999A0000000, ptr noundef %1285)
          to label %1295 unwind label %1913

1295:                                             ; preds = %1294
  store i1 false, ptr %167, align 1
  %1296 = getelementptr inbounds { double, double }, ptr %161, i32 0, i32 0
  %1297 = load double, ptr %1296, align 16
  %1298 = getelementptr inbounds { double, double }, ptr %161, i32 0, i32 1
  %1299 = load double, ptr %1298, align 8
  %1300 = getelementptr inbounds { double, double }, ptr %162, i32 0, i32 0
  %1301 = load double, ptr %1300, align 16
  %1302 = getelementptr inbounds { double, double }, ptr %162, i32 0, i32 1
  %1303 = load double, ptr %1302, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %1260, double %1297, double %1299, double %1301, double %1303, ptr noundef %1283, i32 noundef 0)
          to label %1304 unwind label %1913

1304:                                             ; preds = %1295
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #11
  %1305 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %1306 unwind label %1871

1306:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 256, ptr %168) #11
  %1307 = load ptr, ptr %145, align 8, !tbaa !9
  %1308 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %1309 unwind label %1924

1309:                                             ; preds = %1306
  %1310 = getelementptr inbounds %"class.JPH::Vec3", ptr %169, i32 0, i32 0
  %1311 = getelementptr inbounds %union.anon, ptr %1310, i32 0, i32 0
  %1312 = getelementptr inbounds { double, double }, ptr %1311, i32 0, i32 0
  %1313 = extractvalue { double, double } %1308, 0
  store double %1313, ptr %1312, align 16
  %1314 = getelementptr inbounds { double, double }, ptr %1311, i32 0, i32 1
  %1315 = extractvalue { double, double } %1308, 1
  store double %1315, ptr %1314, align 8
  %1316 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %1317 unwind label %1924

1317:                                             ; preds = %1309
  %1318 = getelementptr inbounds %"class.JPH::Vec3", ptr %171, i32 0, i32 0
  %1319 = getelementptr inbounds %union.anon, ptr %1318, i32 0, i32 0
  %1320 = getelementptr inbounds { double, double }, ptr %1319, i32 0, i32 0
  %1321 = extractvalue { double, double } %1316, 0
  store double %1321, ptr %1320, align 16
  %1322 = getelementptr inbounds { double, double }, ptr %1319, i32 0, i32 1
  %1323 = extractvalue { double, double } %1316, 1
  store double %1323, ptr %1322, align 8
  %1324 = getelementptr inbounds { double, double }, ptr %171, i32 0, i32 0
  %1325 = load double, ptr %1324, align 16
  %1326 = getelementptr inbounds { double, double }, ptr %171, i32 0, i32 1
  %1327 = load double, ptr %1326, align 8
  %1328 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %1325, double %1327, float noundef 0x3FF921FB60000000)
          to label %1329 unwind label %1924

1329:                                             ; preds = %1317
  %1330 = getelementptr inbounds %"class.JPH::Quat", ptr %170, i32 0, i32 0
  %1331 = getelementptr inbounds %"class.JPH::Vec4", ptr %1330, i32 0, i32 0
  %1332 = getelementptr inbounds %union.anon.12, ptr %1331, i32 0, i32 0
  %1333 = getelementptr inbounds { double, double }, ptr %1332, i32 0, i32 0
  %1334 = extractvalue { double, double } %1328, 0
  store double %1334, ptr %1333, align 16
  %1335 = getelementptr inbounds { double, double }, ptr %1332, i32 0, i32 1
  %1336 = extractvalue { double, double } %1328, 1
  store double %1336, ptr %1335, align 8
  %1337 = getelementptr inbounds { double, double }, ptr %169, i32 0, i32 0
  %1338 = load double, ptr %1337, align 16
  %1339 = getelementptr inbounds { double, double }, ptr %169, i32 0, i32 1
  %1340 = load double, ptr %1339, align 8
  %1341 = getelementptr inbounds { double, double }, ptr %170, i32 0, i32 0
  %1342 = load double, ptr %1341, align 16
  %1343 = getelementptr inbounds { double, double }, ptr %170, i32 0, i32 1
  %1344 = load double, ptr %1343, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %168, ptr noundef %1307, double %1338, double %1340, double %1342, double %1344, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %1345 unwind label %1924

1345:                                             ; preds = %1329
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %1305, ptr noundef nonnull align 16 dereferenceable(256) %168)
          to label %1346 unwind label %1928

1346:                                             ; preds = %1345
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %168) #11
  call void @llvm.lifetime.end.p0(i64 256, ptr %168) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #11
  %1347 = invoke noundef ptr @_ZN3JPH26DistanceConstraintSettingsnwEm(i64 noundef 112)
          to label %1348 unwind label %1933

1348:                                             ; preds = %1346
  call void @llvm.memset.p0.i64(ptr align 16 %1347, i8 0, i64 112, i1 false)
  invoke void @_ZN3JPH26DistanceConstraintSettingsC2Ev(ptr noundef nonnull align 16 dereferenceable(112) %1347)
          to label %1349 unwind label %1937

1349:                                             ; preds = %1348
  store ptr %1347, ptr %172, align 8, !tbaa !9
  %1350 = load ptr, ptr %172, align 8, !tbaa !9
  %1351 = getelementptr inbounds %"class.JPH::DistanceConstraintSettings", ptr %1350, i32 0, i32 1
  store i32 0, ptr %1351, align 8, !tbaa !11
  %1352 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %1353 unwind label %1933

1353:                                             ; preds = %1349
  %1354 = load ptr, ptr %172, align 8, !tbaa !9
  invoke void @_ZN3JPH12PhysicsScene13AddConstraintEPKNS_25TwoBodyConstraintSettingsEjj(ptr noundef nonnull align 8 dereferenceable(80) %1352, ptr noundef %1354, i32 noundef 3, i32 noundef 4)
          to label %1355 unwind label %1933

1355:                                             ; preds = %1353
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #11
  invoke void @_ZN3JPH22SoftBodySharedSettings11sCreateCubeEjf(ptr dead_on_unwind writable sret(%"class.JPH::Ref.48") align 8 %173, i32 noundef 5, float noundef 0x3FC99999A0000000)
          to label %1356 unwind label %1941

1356:                                             ; preds = %1355
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #11
  store i1 true, ptr %180, align 1
  store ptr %175, ptr %176, align 8
  %1357 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %1358 unwind label %1945

1358:                                             ; preds = %1356
  store i1 true, ptr %179, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %177) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %177, ptr noundef @.str.16) #11
  %1359 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %1360 unwind label %1949

1360:                                             ; preds = %1358
  %1361 = getelementptr inbounds %"class.JPH::Color", ptr %178, i32 0, i32 0
  %1362 = getelementptr inbounds %union.anon.38, ptr %1361, i32 0, i32 0
  store i32 %1359, ptr %1362, align 4
  %1363 = getelementptr inbounds %"class.JPH::Color", ptr %178, i32 0, i32 0
  %1364 = getelementptr inbounds %union.anon.38, ptr %1363, i32 0, i32 0
  %1365 = load i32, ptr %1364, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %1357, ptr noundef nonnull align 8 dereferenceable(16) %177, i32 %1365)
          to label %1366 unwind label %1949

1366:                                             ; preds = %1360
  store i1 false, ptr %179, align 1
  invoke void @_ZN3JPH8RefConstINS_15PhysicsMaterialEEC2EPKS1_(ptr noundef nonnull align 8 dereferenceable(8) %175, ptr noundef %1357)
          to label %1367 unwind label %1949

1367:                                             ; preds = %1366
  store i1 false, ptr %180, align 1
  %1368 = getelementptr inbounds %"class.std::initializer_list", ptr %174, i32 0, i32 0
  store ptr %175, ptr %1368, align 8, !tbaa !26
  %1369 = getelementptr inbounds %"class.std::initializer_list", ptr %174, i32 0, i32 1
  store i64 1, ptr %1369, align 8, !tbaa !28
  %1370 = invoke noundef ptr @_ZNK3JPH3RefINS_22SoftBodySharedSettingsEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %173)
          to label %1371 unwind label %1953

1371:                                             ; preds = %1367
  %1372 = getelementptr inbounds %"class.JPH::SoftBodySharedSettings", ptr %1370, i32 0, i32 9
  %1373 = getelementptr inbounds { ptr, i64 }, ptr %174, i32 0, i32 0
  %1374 = load ptr, ptr %1373, align 8
  %1375 = getelementptr inbounds { ptr, i64 }, ptr %174, i32 0, i32 1
  %1376 = load i64, ptr %1375, align 8
  %1377 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3JPH5ArrayINS_8RefConstINS_15PhysicsMaterialEEENS_12STLAllocatorIS3_EEEaSESt16initializer_listIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %1372, ptr %1374, i64 %1376)
          to label %1378 unwind label %1953

1378:                                             ; preds = %1371
  %1379 = getelementptr inbounds [1 x %"class.JPH::RefConst.36"], ptr %175, i32 0, i32 0
  %1380 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %1379, i64 1
  br label %1381

1381:                                             ; preds = %1381, %1378
  %1382 = phi ptr [ %1380, %1378 ], [ %1383, %1381 ]
  %1383 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %1382, i64 -1
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1383) #11
  %1384 = icmp eq ptr %1383, %1379
  br i1 %1384, label %1385, label %1381

1385:                                             ; preds = %1381
  call void @llvm.lifetime.end.p0(i64 16, ptr %177) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr %181) #11
  %1386 = invoke noundef ptr @_ZNK3JPH3RefINS_22SoftBodySharedSettingsEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %173)
          to label %1387 unwind label %1979

1387:                                             ; preds = %1385
  %1388 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %1389 unwind label %1979

1389:                                             ; preds = %1387
  %1390 = getelementptr inbounds %"class.JPH::Vec3", ptr %182, i32 0, i32 0
  %1391 = getelementptr inbounds %union.anon, ptr %1390, i32 0, i32 0
  %1392 = getelementptr inbounds { double, double }, ptr %1391, i32 0, i32 0
  %1393 = extractvalue { double, double } %1388, 0
  store double %1393, ptr %1392, align 16
  %1394 = getelementptr inbounds { double, double }, ptr %1391, i32 0, i32 1
  %1395 = extractvalue { double, double } %1388, 1
  store double %1395, ptr %1394, align 8
  %1396 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %1397 unwind label %1979

1397:                                             ; preds = %1389
  %1398 = getelementptr inbounds %"class.JPH::Quat", ptr %183, i32 0, i32 0
  %1399 = getelementptr inbounds %"class.JPH::Vec4", ptr %1398, i32 0, i32 0
  %1400 = getelementptr inbounds %union.anon.12, ptr %1399, i32 0, i32 0
  %1401 = getelementptr inbounds { double, double }, ptr %1400, i32 0, i32 0
  %1402 = extractvalue { double, double } %1396, 0
  store double %1402, ptr %1401, align 16
  %1403 = getelementptr inbounds { double, double }, ptr %1400, i32 0, i32 1
  %1404 = extractvalue { double, double } %1396, 1
  store double %1404, ptr %1403, align 8
  %1405 = getelementptr inbounds { double, double }, ptr %182, i32 0, i32 0
  %1406 = load double, ptr %1405, align 16
  %1407 = getelementptr inbounds { double, double }, ptr %182, i32 0, i32 1
  %1408 = load double, ptr %1407, align 8
  %1409 = getelementptr inbounds { double, double }, ptr %183, i32 0, i32 0
  %1410 = load double, ptr %1409, align 16
  %1411 = getelementptr inbounds { double, double }, ptr %183, i32 0, i32 1
  %1412 = load double, ptr %1411, align 8
  invoke void @_ZN3JPH24SoftBodyCreationSettingsC2EPKNS_22SoftBodySharedSettingsENS_4Vec3ENS_4QuatEt(ptr noundef nonnull align 16 dereferenceable(111) %181, ptr noundef %1386, double %1406, double %1408, double %1410, double %1412, i16 noundef zeroext 1)
          to label %1413 unwind label %1979

1413:                                             ; preds = %1397
  %1414 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %1415 unwind label %1983

1415:                                             ; preds = %1413
  invoke void @_ZN3JPH12PhysicsScene11AddSoftBodyERKNS_24SoftBodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %1414, ptr noundef nonnull align 16 dereferenceable(111) %181)
          to label %1416 unwind label %1983

1416:                                             ; preds = %1415
  call void @llvm.lifetime.start.p0(i64 16, ptr %184) #11
  %1417 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %1418 unwind label %1987

1418:                                             ; preds = %1416
  %1419 = getelementptr inbounds %"class.JPH::Vec3", ptr %184, i32 0, i32 0
  %1420 = getelementptr inbounds %union.anon, ptr %1419, i32 0, i32 0
  %1421 = getelementptr inbounds { double, double }, ptr %1420, i32 0, i32 0
  %1422 = extractvalue { double, double } %1417, 0
  store double %1422, ptr %1421, align 16
  %1423 = getelementptr inbounds { double, double }, ptr %1420, i32 0, i32 1
  %1424 = extractvalue { double, double } %1417, 1
  store double %1424, ptr %1423, align 8
  %1425 = getelementptr inbounds %"class.JPH::SoftBodyCreationSettings", ptr %181, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %1425, ptr align 16 %184, i64 16, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 16, ptr %184) #11
  %1426 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %1427 unwind label %1983

1427:                                             ; preds = %1418
  invoke void @_ZN3JPH12PhysicsScene11AddSoftBodyERKNS_24SoftBodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %1426, ptr noundef nonnull align 16 dereferenceable(111) %181)
          to label %1428 unwind label %1983

1428:                                             ; preds = %1427
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #11
  call void @llvm.lifetime.start.p0(i64 20, ptr %186) #11
  invoke void @_ZN3JPH22SoftBodySharedSettings16VertexAttributesC2EfffNS0_8ELRATypeEf(ptr noundef nonnull align 4 dereferenceable(20) %186, float noundef 0x3F1A36E2E0000000, float noundef 0x3F1A36E2E0000000, float noundef 0x3F50624DE0000000, i32 noundef 0, float noundef 1.000000e+00)
          to label %1429 unwind label %1991

1429:                                             ; preds = %1428
  invoke void @_ZN15SoftBodyCreator12CreateSphereEfjjN3JPH22SoftBodySharedSettings9EBendTypeERKNS1_16VertexAttributesE(ptr dead_on_unwind writable sret(%"class.JPH::Ref.48") align 8 %185, float noundef 5.000000e-01, i32 noundef 10, i32 noundef 20, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(20) %186)
          to label %1430 unwind label %1991

1430:                                             ; preds = %1429
  call void @llvm.lifetime.end.p0(i64 20, ptr %186) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #11
  store i1 true, ptr %193, align 1
  store ptr %188, ptr %189, align 8
  %1431 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %1432 unwind label %1995

1432:                                             ; preds = %1430
  store i1 true, ptr %192, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %190) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %190, ptr noundef @.str.17) #11
  %1433 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %1434 unwind label %1999

1434:                                             ; preds = %1432
  %1435 = getelementptr inbounds %"class.JPH::Color", ptr %191, i32 0, i32 0
  %1436 = getelementptr inbounds %union.anon.38, ptr %1435, i32 0, i32 0
  store i32 %1433, ptr %1436, align 4
  %1437 = getelementptr inbounds %"class.JPH::Color", ptr %191, i32 0, i32 0
  %1438 = getelementptr inbounds %union.anon.38, ptr %1437, i32 0, i32 0
  %1439 = load i32, ptr %1438, align 4
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %1431, ptr noundef nonnull align 8 dereferenceable(16) %190, i32 %1439)
          to label %1440 unwind label %1999

1440:                                             ; preds = %1434
  store i1 false, ptr %192, align 1
  invoke void @_ZN3JPH8RefConstINS_15PhysicsMaterialEEC2EPKS1_(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef %1431)
          to label %1441 unwind label %1999

1441:                                             ; preds = %1440
  store i1 false, ptr %193, align 1
  %1442 = getelementptr inbounds %"class.std::initializer_list", ptr %187, i32 0, i32 0
  store ptr %188, ptr %1442, align 8, !tbaa !26
  %1443 = getelementptr inbounds %"class.std::initializer_list", ptr %187, i32 0, i32 1
  store i64 1, ptr %1443, align 8, !tbaa !28
  %1444 = invoke noundef ptr @_ZNK3JPH3RefINS_22SoftBodySharedSettingsEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %185)
          to label %1445 unwind label %2003

1445:                                             ; preds = %1441
  %1446 = getelementptr inbounds %"class.JPH::SoftBodySharedSettings", ptr %1444, i32 0, i32 9
  %1447 = getelementptr inbounds { ptr, i64 }, ptr %187, i32 0, i32 0
  %1448 = load ptr, ptr %1447, align 8
  %1449 = getelementptr inbounds { ptr, i64 }, ptr %187, i32 0, i32 1
  %1450 = load i64, ptr %1449, align 8
  %1451 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3JPH5ArrayINS_8RefConstINS_15PhysicsMaterialEEENS_12STLAllocatorIS3_EEEaSESt16initializer_listIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %1446, ptr %1448, i64 %1450)
          to label %1452 unwind label %2003

1452:                                             ; preds = %1445
  %1453 = getelementptr inbounds [1 x %"class.JPH::RefConst.36"], ptr %188, i32 0, i32 0
  %1454 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %1453, i64 1
  br label %1455

1455:                                             ; preds = %1455, %1452
  %1456 = phi ptr [ %1454, %1452 ], [ %1457, %1455 ]
  %1457 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %1456, i64 -1
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1457) #11
  %1458 = icmp eq ptr %1457, %1453
  br i1 %1458, label %1459, label %1455

1459:                                             ; preds = %1455
  call void @llvm.lifetime.end.p0(i64 16, ptr %190) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr %194) #11
  %1460 = invoke noundef ptr @_ZNK3JPH3RefINS_22SoftBodySharedSettingsEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %185)
          to label %1461 unwind label %2029

1461:                                             ; preds = %1459
  %1462 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %1463 unwind label %2029

1463:                                             ; preds = %1461
  %1464 = getelementptr inbounds %"class.JPH::Vec3", ptr %195, i32 0, i32 0
  %1465 = getelementptr inbounds %union.anon, ptr %1464, i32 0, i32 0
  %1466 = getelementptr inbounds { double, double }, ptr %1465, i32 0, i32 0
  %1467 = extractvalue { double, double } %1462, 0
  store double %1467, ptr %1466, align 16
  %1468 = getelementptr inbounds { double, double }, ptr %1465, i32 0, i32 1
  %1469 = extractvalue { double, double } %1462, 1
  store double %1469, ptr %1468, align 8
  %1470 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %1471 unwind label %2029

1471:                                             ; preds = %1463
  %1472 = getelementptr inbounds %"class.JPH::Quat", ptr %196, i32 0, i32 0
  %1473 = getelementptr inbounds %"class.JPH::Vec4", ptr %1472, i32 0, i32 0
  %1474 = getelementptr inbounds %union.anon.12, ptr %1473, i32 0, i32 0
  %1475 = getelementptr inbounds { double, double }, ptr %1474, i32 0, i32 0
  %1476 = extractvalue { double, double } %1470, 0
  store double %1476, ptr %1475, align 16
  %1477 = getelementptr inbounds { double, double }, ptr %1474, i32 0, i32 1
  %1478 = extractvalue { double, double } %1470, 1
  store double %1478, ptr %1477, align 8
  %1479 = getelementptr inbounds { double, double }, ptr %195, i32 0, i32 0
  %1480 = load double, ptr %1479, align 16
  %1481 = getelementptr inbounds { double, double }, ptr %195, i32 0, i32 1
  %1482 = load double, ptr %1481, align 8
  %1483 = getelementptr inbounds { double, double }, ptr %196, i32 0, i32 0
  %1484 = load double, ptr %1483, align 16
  %1485 = getelementptr inbounds { double, double }, ptr %196, i32 0, i32 1
  %1486 = load double, ptr %1485, align 8
  invoke void @_ZN3JPH24SoftBodyCreationSettingsC2EPKNS_22SoftBodySharedSettingsENS_4Vec3ENS_4QuatEt(ptr noundef nonnull align 16 dereferenceable(111) %194, ptr noundef %1460, double %1480, double %1482, double %1484, double %1486, i16 noundef zeroext 1)
          to label %1487 unwind label %2029

1487:                                             ; preds = %1471
  %1488 = getelementptr inbounds %"class.JPH::SoftBodyCreationSettings", ptr %194, i32 0, i32 13
  store float 2.000000e+03, ptr %1488, align 4, !tbaa !31
  %1489 = invoke noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %1490 unwind label %2033

1490:                                             ; preds = %1487
  invoke void @_ZN3JPH12PhysicsScene11AddSoftBodyERKNS_24SoftBodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %1489, ptr noundef nonnull align 16 dereferenceable(111) %194)
          to label %1491 unwind label %2033

1491:                                             ; preds = %1490
  store i1 true, ptr %7, align 1
  call void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111) %194) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr %194) #11
  call void @_ZN3JPH3RefINS_22SoftBodySharedSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %185) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #11
  call void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111) %181) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr %181) #11
  call void @_ZN3JPH3RefINS_22SoftBodySharedSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %173) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  call void @_ZN3JPH3RefINS_23ConvexHullShapeSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  call void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %126) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %126) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  %1492 = load i1, ptr %7, align 1
  br i1 %1492, label %2052, label %2051

1493:                                             ; preds = %683, %629, %575, %521, %467, %413, %366, %324, %255, %231, %1
  %1494 = landingpad { ptr, i32 }
          cleanup
  %1495 = extractvalue { ptr, i32 } %1494, 0
  store ptr %1495, ptr %8, align 8
  %1496 = extractvalue { ptr, i32 } %1494, 1
  store i32 %1496, ptr %9, align 4
  br label %2053

1497:                                             ; preds = %214, %212, %211, %201
  %1498 = landingpad { ptr, i32 }
          cleanup
  %1499 = extractvalue { ptr, i32 } %1498, 0
  store ptr %1499, ptr %8, align 8
  %1500 = extractvalue { ptr, i32 } %1498, 1
  store i32 %1500, ptr %9, align 4
  br label %1509

1501:                                             ; preds = %206, %205, %203
  %1502 = landingpad { ptr, i32 }
          cleanup
  %1503 = extractvalue { ptr, i32 } %1502, 0
  store ptr %1503, ptr %8, align 8
  %1504 = extractvalue { ptr, i32 } %1502, 1
  store i32 %1504, ptr %9, align 4
  call void @_ZN3JPH19ScaledShapeSettingsdlEPv(ptr noundef %202) #11
  br label %1509

1505:                                             ; preds = %230
  %1506 = landingpad { ptr, i32 }
          cleanup
  %1507 = extractvalue { ptr, i32 } %1506, 0
  store ptr %1507, ptr %8, align 8
  %1508 = extractvalue { ptr, i32 } %1506, 1
  store i32 %1508, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %10) #11
  br label %1509

1509:                                             ; preds = %1505, %1501, %1497
  call void @llvm.lifetime.end.p0(i64 256, ptr %10) #11
  br label %2053

1510:                                             ; preds = %238, %236, %235, %233
  %1511 = landingpad { ptr, i32 }
          cleanup
  %1512 = extractvalue { ptr, i32 } %1511, 0
  store ptr %1512, ptr %8, align 8
  %1513 = extractvalue { ptr, i32 } %1511, 1
  store i32 %1513, ptr %9, align 4
  br label %1518

1514:                                             ; preds = %254
  %1515 = landingpad { ptr, i32 }
          cleanup
  %1516 = extractvalue { ptr, i32 } %1515, 0
  store ptr %1516, ptr %8, align 8
  %1517 = extractvalue { ptr, i32 } %1515, 1
  store i32 %1517, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %14) #11
  br label %1518

1518:                                             ; preds = %1514, %1510
  call void @llvm.lifetime.end.p0(i64 256, ptr %14) #11
  br label %2053

1519:                                             ; preds = %257
  %1520 = landingpad { ptr, i32 }
          cleanup
  %1521 = extractvalue { ptr, i32 } %1520, 0
  store ptr %1521, ptr %8, align 8
  %1522 = extractvalue { ptr, i32 } %1520, 1
  store i32 %1522, ptr %9, align 4
  br label %1543

1523:                                             ; preds = %262, %261, %260, %259
  %1524 = landingpad { ptr, i32 }
          cleanup
  %1525 = extractvalue { ptr, i32 } %1524, 0
  store ptr %1525, ptr %8, align 8
  %1526 = extractvalue { ptr, i32 } %1524, 1
  store i32 %1526, ptr %9, align 4
  br label %1539

1527:                                             ; preds = %307, %295, %287, %285, %272, %266, %264
  %1528 = landingpad { ptr, i32 }
          cleanup
  %1529 = extractvalue { ptr, i32 } %1528, 0
  store ptr %1529, ptr %8, align 8
  %1530 = extractvalue { ptr, i32 } %1528, 1
  store i32 %1530, ptr %9, align 4
  br label %1535

1531:                                             ; preds = %323
  %1532 = landingpad { ptr, i32 }
          cleanup
  %1533 = extractvalue { ptr, i32 } %1532, 0
  store ptr %1533, ptr %8, align 8
  %1534 = extractvalue { ptr, i32 } %1532, 1
  store i32 %1534, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %17) #11
  br label %1535

1535:                                             ; preds = %1531, %1527
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #11
  %1536 = load i1, ptr %23, align 1
  br i1 %1536, label %1537, label %1538

1537:                                             ; preds = %1535
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %263) #11
  br label %1538

1538:                                             ; preds = %1537, %1535
  br label %1539

1539:                                             ; preds = %1538, %1523
  %1540 = load i1, ptr %24, align 1
  br i1 %1540, label %1541, label %1542

1541:                                             ; preds = %1539
  call void @_ZN3JPH21TriangleShapeSettingsdlEPv(ptr noundef %258) #11
  br label %1542

1542:                                             ; preds = %1541, %1539
  br label %1543

1543:                                             ; preds = %1542, %1519
  call void @llvm.lifetime.end.p0(i64 256, ptr %17) #11
  br label %2053

1544:                                             ; preds = %326
  %1545 = landingpad { ptr, i32 }
          cleanup
  %1546 = extractvalue { ptr, i32 } %1545, 0
  store ptr %1546, ptr %8, align 8
  %1547 = extractvalue { ptr, i32 } %1545, 1
  store i32 %1547, ptr %9, align 4
  br label %1568

1548:                                             ; preds = %328
  %1549 = landingpad { ptr, i32 }
          cleanup
  %1550 = extractvalue { ptr, i32 } %1549, 0
  store ptr %1550, ptr %8, align 8
  %1551 = extractvalue { ptr, i32 } %1549, 1
  store i32 %1551, ptr %9, align 4
  br label %1564

1552:                                             ; preds = %349, %341, %339, %338, %332, %330
  %1553 = landingpad { ptr, i32 }
          cleanup
  %1554 = extractvalue { ptr, i32 } %1553, 0
  store ptr %1554, ptr %8, align 8
  %1555 = extractvalue { ptr, i32 } %1553, 1
  store i32 %1555, ptr %9, align 4
  br label %1560

1556:                                             ; preds = %365
  %1557 = landingpad { ptr, i32 }
          cleanup
  %1558 = extractvalue { ptr, i32 } %1557, 0
  store ptr %1558, ptr %8, align 8
  %1559 = extractvalue { ptr, i32 } %1557, 1
  store i32 %1559, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %28) #11
  br label %1560

1560:                                             ; preds = %1556, %1552
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #11
  %1561 = load i1, ptr %31, align 1
  br i1 %1561, label %1562, label %1563

1562:                                             ; preds = %1560
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %329) #11
  br label %1563

1563:                                             ; preds = %1562, %1560
  br label %1564

1564:                                             ; preds = %1563, %1548
  %1565 = load i1, ptr %32, align 1
  br i1 %1565, label %1566, label %1567

1566:                                             ; preds = %1564
  call void @_ZN3JPH19SphereShapeSettingsdlEPv(ptr noundef %327) #11
  br label %1567

1567:                                             ; preds = %1566, %1564
  br label %1568

1568:                                             ; preds = %1567, %1544
  call void @llvm.lifetime.end.p0(i64 256, ptr %28) #11
  br label %2053

1569:                                             ; preds = %368
  %1570 = landingpad { ptr, i32 }
          cleanup
  %1571 = extractvalue { ptr, i32 } %1570, 0
  store ptr %1571, ptr %8, align 8
  %1572 = extractvalue { ptr, i32 } %1570, 1
  store i32 %1572, ptr %9, align 4
  br label %1593

1573:                                             ; preds = %371, %370
  %1574 = landingpad { ptr, i32 }
          cleanup
  %1575 = extractvalue { ptr, i32 } %1574, 0
  store ptr %1575, ptr %8, align 8
  %1576 = extractvalue { ptr, i32 } %1574, 1
  store i32 %1576, ptr %9, align 4
  br label %1589

1577:                                             ; preds = %396, %388, %386, %381, %375, %373
  %1578 = landingpad { ptr, i32 }
          cleanup
  %1579 = extractvalue { ptr, i32 } %1578, 0
  store ptr %1579, ptr %8, align 8
  %1580 = extractvalue { ptr, i32 } %1578, 1
  store i32 %1580, ptr %9, align 4
  br label %1585

1581:                                             ; preds = %412
  %1582 = landingpad { ptr, i32 }
          cleanup
  %1583 = extractvalue { ptr, i32 } %1582, 0
  store ptr %1583, ptr %8, align 8
  %1584 = extractvalue { ptr, i32 } %1582, 1
  store i32 %1584, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %35) #11
  br label %1585

1585:                                             ; preds = %1581, %1577
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #11
  %1586 = load i1, ptr %39, align 1
  br i1 %1586, label %1587, label %1588

1587:                                             ; preds = %1585
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %372) #11
  br label %1588

1588:                                             ; preds = %1587, %1585
  br label %1589

1589:                                             ; preds = %1588, %1573
  %1590 = load i1, ptr %40, align 1
  br i1 %1590, label %1591, label %1592

1591:                                             ; preds = %1589
  call void @_ZN3JPH16BoxShapeSettingsdlEPv(ptr noundef %369) #11
  br label %1592

1592:                                             ; preds = %1591, %1589
  br label %1593

1593:                                             ; preds = %1592, %1569
  call void @llvm.lifetime.end.p0(i64 256, ptr %35) #11
  br label %2053

1594:                                             ; preds = %415
  %1595 = landingpad { ptr, i32 }
          cleanup
  %1596 = extractvalue { ptr, i32 } %1595, 0
  store ptr %1596, ptr %8, align 8
  %1597 = extractvalue { ptr, i32 } %1595, 1
  store i32 %1597, ptr %9, align 4
  br label %1618

1598:                                             ; preds = %417
  %1599 = landingpad { ptr, i32 }
          cleanup
  %1600 = extractvalue { ptr, i32 } %1599, 0
  store ptr %1600, ptr %8, align 8
  %1601 = extractvalue { ptr, i32 } %1599, 1
  store i32 %1601, ptr %9, align 4
  br label %1614

1602:                                             ; preds = %450, %438, %430, %428, %427, %421, %419
  %1603 = landingpad { ptr, i32 }
          cleanup
  %1604 = extractvalue { ptr, i32 } %1603, 0
  store ptr %1604, ptr %8, align 8
  %1605 = extractvalue { ptr, i32 } %1603, 1
  store i32 %1605, ptr %9, align 4
  br label %1610

1606:                                             ; preds = %466
  %1607 = landingpad { ptr, i32 }
          cleanup
  %1608 = extractvalue { ptr, i32 } %1607, 0
  store ptr %1608, ptr %8, align 8
  %1609 = extractvalue { ptr, i32 } %1607, 1
  store i32 %1609, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %43) #11
  br label %1610

1610:                                             ; preds = %1606, %1602
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #11
  %1611 = load i1, ptr %46, align 1
  br i1 %1611, label %1612, label %1613

1612:                                             ; preds = %1610
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %418) #11
  br label %1613

1613:                                             ; preds = %1612, %1610
  br label %1614

1614:                                             ; preds = %1613, %1598
  %1615 = load i1, ptr %47, align 1
  br i1 %1615, label %1616, label %1617

1616:                                             ; preds = %1614
  call void @_ZN3JPH20CapsuleShapeSettingsdlEPv(ptr noundef %416) #11
  br label %1617

1617:                                             ; preds = %1616, %1614
  br label %1618

1618:                                             ; preds = %1617, %1594
  call void @llvm.lifetime.end.p0(i64 256, ptr %43) #11
  br label %2053

1619:                                             ; preds = %469
  %1620 = landingpad { ptr, i32 }
          cleanup
  %1621 = extractvalue { ptr, i32 } %1620, 0
  store ptr %1621, ptr %8, align 8
  %1622 = extractvalue { ptr, i32 } %1620, 1
  store i32 %1622, ptr %9, align 4
  br label %1643

1623:                                             ; preds = %471
  %1624 = landingpad { ptr, i32 }
          cleanup
  %1625 = extractvalue { ptr, i32 } %1624, 0
  store ptr %1625, ptr %8, align 8
  %1626 = extractvalue { ptr, i32 } %1624, 1
  store i32 %1626, ptr %9, align 4
  br label %1639

1627:                                             ; preds = %504, %492, %484, %482, %481, %475, %473
  %1628 = landingpad { ptr, i32 }
          cleanup
  %1629 = extractvalue { ptr, i32 } %1628, 0
  store ptr %1629, ptr %8, align 8
  %1630 = extractvalue { ptr, i32 } %1628, 1
  store i32 %1630, ptr %9, align 4
  br label %1635

1631:                                             ; preds = %520
  %1632 = landingpad { ptr, i32 }
          cleanup
  %1633 = extractvalue { ptr, i32 } %1632, 0
  store ptr %1633, ptr %8, align 8
  %1634 = extractvalue { ptr, i32 } %1632, 1
  store i32 %1634, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %51) #11
  br label %1635

1635:                                             ; preds = %1631, %1627
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #11
  %1636 = load i1, ptr %54, align 1
  br i1 %1636, label %1637, label %1638

1637:                                             ; preds = %1635
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %472) #11
  br label %1638

1638:                                             ; preds = %1637, %1635
  br label %1639

1639:                                             ; preds = %1638, %1623
  %1640 = load i1, ptr %55, align 1
  br i1 %1640, label %1641, label %1642

1641:                                             ; preds = %1639
  call void @_ZN3JPH27TaperedCapsuleShapeSettingsdlEPv(ptr noundef %470) #11
  br label %1642

1642:                                             ; preds = %1641, %1639
  br label %1643

1643:                                             ; preds = %1642, %1619
  call void @llvm.lifetime.end.p0(i64 256, ptr %51) #11
  br label %2053

1644:                                             ; preds = %523
  %1645 = landingpad { ptr, i32 }
          cleanup
  %1646 = extractvalue { ptr, i32 } %1645, 0
  store ptr %1646, ptr %8, align 8
  %1647 = extractvalue { ptr, i32 } %1645, 1
  store i32 %1647, ptr %9, align 4
  br label %1668

1648:                                             ; preds = %525
  %1649 = landingpad { ptr, i32 }
          cleanup
  %1650 = extractvalue { ptr, i32 } %1649, 0
  store ptr %1650, ptr %8, align 8
  %1651 = extractvalue { ptr, i32 } %1649, 1
  store i32 %1651, ptr %9, align 4
  br label %1664

1652:                                             ; preds = %558, %546, %538, %536, %535, %529, %527
  %1653 = landingpad { ptr, i32 }
          cleanup
  %1654 = extractvalue { ptr, i32 } %1653, 0
  store ptr %1654, ptr %8, align 8
  %1655 = extractvalue { ptr, i32 } %1653, 1
  store i32 %1655, ptr %9, align 4
  br label %1660

1656:                                             ; preds = %574
  %1657 = landingpad { ptr, i32 }
          cleanup
  %1658 = extractvalue { ptr, i32 } %1657, 0
  store ptr %1658, ptr %8, align 8
  %1659 = extractvalue { ptr, i32 } %1657, 1
  store i32 %1659, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %59) #11
  br label %1660

1660:                                             ; preds = %1656, %1652
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #11
  %1661 = load i1, ptr %62, align 1
  br i1 %1661, label %1662, label %1663

1662:                                             ; preds = %1660
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %526) #11
  br label %1663

1663:                                             ; preds = %1662, %1660
  br label %1664

1664:                                             ; preds = %1663, %1648
  %1665 = load i1, ptr %63, align 1
  br i1 %1665, label %1666, label %1667

1666:                                             ; preds = %1664
  call void @_ZN3JPH21CylinderShapeSettingsdlEPv(ptr noundef %524) #11
  br label %1667

1667:                                             ; preds = %1666, %1664
  br label %1668

1668:                                             ; preds = %1667, %1644
  call void @llvm.lifetime.end.p0(i64 256, ptr %59) #11
  br label %2053

1669:                                             ; preds = %577
  %1670 = landingpad { ptr, i32 }
          cleanup
  %1671 = extractvalue { ptr, i32 } %1670, 0
  store ptr %1671, ptr %8, align 8
  %1672 = extractvalue { ptr, i32 } %1670, 1
  store i32 %1672, ptr %9, align 4
  br label %1693

1673:                                             ; preds = %579
  %1674 = landingpad { ptr, i32 }
          cleanup
  %1675 = extractvalue { ptr, i32 } %1674, 0
  store ptr %1675, ptr %8, align 8
  %1676 = extractvalue { ptr, i32 } %1674, 1
  store i32 %1676, ptr %9, align 4
  br label %1689

1677:                                             ; preds = %612, %600, %592, %590, %589, %583, %581
  %1678 = landingpad { ptr, i32 }
          cleanup
  %1679 = extractvalue { ptr, i32 } %1678, 0
  store ptr %1679, ptr %8, align 8
  %1680 = extractvalue { ptr, i32 } %1678, 1
  store i32 %1680, ptr %9, align 4
  br label %1685

1681:                                             ; preds = %628
  %1682 = landingpad { ptr, i32 }
          cleanup
  %1683 = extractvalue { ptr, i32 } %1682, 0
  store ptr %1683, ptr %8, align 8
  %1684 = extractvalue { ptr, i32 } %1682, 1
  store i32 %1684, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %67) #11
  br label %1685

1685:                                             ; preds = %1681, %1677
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #11
  %1686 = load i1, ptr %70, align 1
  br i1 %1686, label %1687, label %1688

1687:                                             ; preds = %1685
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %580) #11
  br label %1688

1688:                                             ; preds = %1687, %1685
  br label %1689

1689:                                             ; preds = %1688, %1673
  %1690 = load i1, ptr %71, align 1
  br i1 %1690, label %1691, label %1692

1691:                                             ; preds = %1689
  call void @_ZN3JPH28TaperedCylinderShapeSettingsdlEPv(ptr noundef %578) #11
  br label %1692

1692:                                             ; preds = %1691, %1689
  br label %1693

1693:                                             ; preds = %1692, %1669
  call void @llvm.lifetime.end.p0(i64 256, ptr %67) #11
  br label %2053

1694:                                             ; preds = %631
  %1695 = landingpad { ptr, i32 }
          cleanup
  %1696 = extractvalue { ptr, i32 } %1695, 0
  store ptr %1696, ptr %8, align 8
  %1697 = extractvalue { ptr, i32 } %1695, 1
  store i32 %1697, ptr %9, align 4
  br label %1718

1698:                                             ; preds = %633
  %1699 = landingpad { ptr, i32 }
          cleanup
  %1700 = extractvalue { ptr, i32 } %1699, 0
  store ptr %1700, ptr %8, align 8
  %1701 = extractvalue { ptr, i32 } %1699, 1
  store i32 %1701, ptr %9, align 4
  br label %1714

1702:                                             ; preds = %666, %654, %646, %644, %643, %637, %635
  %1703 = landingpad { ptr, i32 }
          cleanup
  %1704 = extractvalue { ptr, i32 } %1703, 0
  store ptr %1704, ptr %8, align 8
  %1705 = extractvalue { ptr, i32 } %1703, 1
  store i32 %1705, ptr %9, align 4
  br label %1710

1706:                                             ; preds = %682
  %1707 = landingpad { ptr, i32 }
          cleanup
  %1708 = extractvalue { ptr, i32 } %1707, 0
  store ptr %1708, ptr %8, align 8
  %1709 = extractvalue { ptr, i32 } %1707, 1
  store i32 %1709, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %75) #11
  br label %1710

1710:                                             ; preds = %1706, %1702
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #11
  %1711 = load i1, ptr %78, align 1
  br i1 %1711, label %1712, label %1713

1712:                                             ; preds = %1710
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %634) #11
  br label %1713

1713:                                             ; preds = %1712, %1710
  br label %1714

1714:                                             ; preds = %1713, %1698
  %1715 = load i1, ptr %79, align 1
  br i1 %1715, label %1716, label %1717

1716:                                             ; preds = %1714
  call void @_ZN3JPH28TaperedCylinderShapeSettingsdlEPv(ptr noundef %632) #11
  br label %1717

1717:                                             ; preds = %1716, %1714
  br label %1718

1718:                                             ; preds = %1717, %1694
  call void @llvm.lifetime.end.p0(i64 256, ptr %75) #11
  br label %2053

1719:                                             ; preds = %698, %690, %688, %685
  %1720 = landingpad { ptr, i32 }
          cleanup
  %1721 = extractvalue { ptr, i32 } %1720, 0
  store ptr %1721, ptr %8, align 8
  %1722 = extractvalue { ptr, i32 } %1720, 1
  store i32 %1722, ptr %9, align 4
  br label %1731

1723:                                             ; preds = %687
  %1724 = landingpad { ptr, i32 }
          cleanup
  %1725 = extractvalue { ptr, i32 } %1724, 0
  store ptr %1725, ptr %8, align 8
  %1726 = extractvalue { ptr, i32 } %1724, 1
  store i32 %1726, ptr %9, align 4
  call void @_ZN3JPH18EmptyShapeSettingsdlEPv(ptr noundef %686) #11
  br label %1731

1727:                                             ; preds = %714
  %1728 = landingpad { ptr, i32 }
          cleanup
  %1729 = extractvalue { ptr, i32 } %1728, 0
  store ptr %1729, ptr %8, align 8
  %1730 = extractvalue { ptr, i32 } %1728, 1
  store i32 %1730, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %83) #11
  br label %1731

1731:                                             ; preds = %1727, %1723, %1719
  call void @llvm.lifetime.end.p0(i64 256, ptr %83) #11
  br label %2053

1732:                                             ; preds = %829, %817, %815, %813, %784, %772, %770, %768, %734, %722, %720, %718, %715
  %1733 = landingpad { ptr, i32 }
          cleanup
  %1734 = extractvalue { ptr, i32 } %1733, 0
  store ptr %1734, ptr %8, align 8
  %1735 = extractvalue { ptr, i32 } %1733, 1
  store i32 %1735, ptr %9, align 4
  br label %2050

1736:                                             ; preds = %717
  %1737 = landingpad { ptr, i32 }
          cleanup
  %1738 = extractvalue { ptr, i32 } %1737, 0
  store ptr %1738, ptr %8, align 8
  %1739 = extractvalue { ptr, i32 } %1737, 1
  store i32 %1739, ptr %9, align 4
  call void @_ZN3JPH27StaticCompoundShapeSettingsdlEPv(ptr noundef %716) #11
  br label %2050

1740:                                             ; preds = %744, %743
  %1741 = landingpad { ptr, i32 }
          cleanup
  %1742 = extractvalue { ptr, i32 } %1741, 0
  store ptr %1742, ptr %8, align 8
  %1743 = extractvalue { ptr, i32 } %1741, 1
  store i32 %1743, ptr %9, align 4
  br label %1751

1744:                                             ; preds = %759, %754, %748, %746
  %1745 = landingpad { ptr, i32 }
          cleanup
  %1746 = extractvalue { ptr, i32 } %1745, 0
  store ptr %1746, ptr %8, align 8
  %1747 = extractvalue { ptr, i32 } %1745, 1
  store i32 %1747, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #11
  %1748 = load i1, ptr %93, align 1
  br i1 %1748, label %1749, label %1750

1749:                                             ; preds = %1744
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %745) #11
  br label %1750

1750:                                             ; preds = %1749, %1744
  br label %1751

1751:                                             ; preds = %1750, %1740
  %1752 = load i1, ptr %94, align 1
  br i1 %1752, label %1753, label %1754

1753:                                             ; preds = %1751
  call void @_ZN3JPH16BoxShapeSettingsdlEPv(ptr noundef %742) #11
  br label %1754

1754:                                             ; preds = %1753, %1751
  br label %2050

1755:                                             ; preds = %793
  %1756 = landingpad { ptr, i32 }
          cleanup
  %1757 = extractvalue { ptr, i32 } %1756, 0
  store ptr %1757, ptr %8, align 8
  %1758 = extractvalue { ptr, i32 } %1756, 1
  store i32 %1758, ptr %9, align 4
  br label %1766

1759:                                             ; preds = %804, %803, %797, %795
  %1760 = landingpad { ptr, i32 }
          cleanup
  %1761 = extractvalue { ptr, i32 } %1760, 0
  store ptr %1761, ptr %8, align 8
  %1762 = extractvalue { ptr, i32 } %1760, 1
  store i32 %1762, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #11
  %1763 = load i1, ptr %100, align 1
  br i1 %1763, label %1764, label %1765

1764:                                             ; preds = %1759
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %794) #11
  br label %1765

1765:                                             ; preds = %1764, %1759
  br label %1766

1766:                                             ; preds = %1765, %1755
  %1767 = load i1, ptr %101, align 1
  br i1 %1767, label %1768, label %1769

1768:                                             ; preds = %1766
  call void @_ZN3JPH21CylinderShapeSettingsdlEPv(ptr noundef %792) #11
  br label %1769

1769:                                             ; preds = %1768, %1766
  br label %2050

1770:                                             ; preds = %838
  %1771 = landingpad { ptr, i32 }
          cleanup
  %1772 = extractvalue { ptr, i32 } %1771, 0
  store ptr %1772, ptr %8, align 8
  %1773 = extractvalue { ptr, i32 } %1771, 1
  store i32 %1773, ptr %9, align 4
  br label %1781

1774:                                             ; preds = %849, %848, %842, %840
  %1775 = landingpad { ptr, i32 }
          cleanup
  %1776 = extractvalue { ptr, i32 } %1775, 0
  store ptr %1776, ptr %8, align 8
  %1777 = extractvalue { ptr, i32 } %1775, 1
  store i32 %1777, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #11
  %1778 = load i1, ptr %107, align 1
  br i1 %1778, label %1779, label %1780

1779:                                             ; preds = %1774
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %839) #11
  br label %1780

1780:                                             ; preds = %1779, %1774
  br label %1781

1781:                                             ; preds = %1780, %1770
  %1782 = load i1, ptr %108, align 1
  br i1 %1782, label %1783, label %1784

1783:                                             ; preds = %1781
  call void @_ZN3JPH27TaperedCapsuleShapeSettingsdlEPv(ptr noundef %837) #11
  br label %1784

1784:                                             ; preds = %1783, %1781
  br label %2050

1785:                                             ; preds = %995, %928, %861, %858
  %1786 = landingpad { ptr, i32 }
          cleanup
  %1787 = extractvalue { ptr, i32 } %1786, 0
  store ptr %1787, ptr %8, align 8
  %1788 = extractvalue { ptr, i32 } %1786, 1
  store i32 %1788, ptr %9, align 4
  br label %2049

1789:                                             ; preds = %860
  %1790 = landingpad { ptr, i32 }
          cleanup
  %1791 = extractvalue { ptr, i32 } %1790, 0
  store ptr %1791, ptr %8, align 8
  %1792 = extractvalue { ptr, i32 } %1790, 1
  store i32 %1792, ptr %9, align 4
  call void @_ZN3JPH27StaticCompoundShapeSettingsdlEPv(ptr noundef %859) #11
  br label %2049

1793:                                             ; preds = %911, %898, %886, %877, %865, %863
  %1794 = landingpad { ptr, i32 }
          cleanup
  %1795 = extractvalue { ptr, i32 } %1794, 0
  store ptr %1795, ptr %8, align 8
  %1796 = extractvalue { ptr, i32 } %1794, 1
  store i32 %1796, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #11
  br label %2049

1797:                                             ; preds = %978, %965, %953, %944, %932, %930
  %1798 = landingpad { ptr, i32 }
          cleanup
  %1799 = extractvalue { ptr, i32 } %1798, 0
  store ptr %1799, ptr %8, align 8
  %1800 = extractvalue { ptr, i32 } %1798, 1
  store i32 %1800, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %118) #11
  br label %2049

1801:                                             ; preds = %1020, %1008, %1000, %997
  %1802 = landingpad { ptr, i32 }
          cleanup
  %1803 = extractvalue { ptr, i32 } %1802, 0
  store ptr %1803, ptr %8, align 8
  %1804 = extractvalue { ptr, i32 } %1802, 1
  store i32 %1804, ptr %9, align 4
  br label %1809

1805:                                             ; preds = %1036
  %1806 = landingpad { ptr, i32 }
          cleanup
  %1807 = extractvalue { ptr, i32 } %1806, 0
  store ptr %1807, ptr %8, align 8
  %1808 = extractvalue { ptr, i32 } %1806, 1
  store i32 %1808, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %122) #11
  br label %1809

1809:                                             ; preds = %1805, %1801
  call void @llvm.lifetime.end.p0(i64 256, ptr %122) #11
  br label %2049

1810:                                             ; preds = %1038, %1037
  %1811 = landingpad { ptr, i32 }
          cleanup
  %1812 = extractvalue { ptr, i32 } %1811, 0
  store ptr %1812, ptr %8, align 8
  %1813 = extractvalue { ptr, i32 } %1811, 1
  store i32 %1813, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #11
  br label %2048

1814:                                             ; preds = %1040, %1039
  %1815 = landingpad { ptr, i32 }
          cleanup
  %1816 = extractvalue { ptr, i32 } %1815, 0
  store ptr %1816, ptr %8, align 8
  %1817 = extractvalue { ptr, i32 } %1815, 1
  store i32 %1817, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #11
  br label %2048

1818:                                             ; preds = %1042, %1041
  %1819 = landingpad { ptr, i32 }
          cleanup
  %1820 = extractvalue { ptr, i32 } %1819, 0
  store ptr %1820, ptr %8, align 8
  %1821 = extractvalue { ptr, i32 } %1819, 1
  store i32 %1821, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #11
  br label %2048

1822:                                             ; preds = %1044, %1043
  %1823 = landingpad { ptr, i32 }
          cleanup
  %1824 = extractvalue { ptr, i32 } %1823, 0
  store ptr %1824, ptr %8, align 8
  %1825 = extractvalue { ptr, i32 } %1823, 1
  store i32 %1825, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #11
  br label %2048

1826:                                             ; preds = %1045
  %1827 = landingpad { ptr, i32 }
          cleanup
  %1828 = extractvalue { ptr, i32 } %1827, 0
  store ptr %1828, ptr %8, align 8
  %1829 = extractvalue { ptr, i32 } %1827, 1
  store i32 %1829, ptr %9, align 4
  br label %2047

1830:                                             ; preds = %1047
  %1831 = landingpad { ptr, i32 }
          cleanup
  %1832 = extractvalue { ptr, i32 } %1831, 0
  store ptr %1832, ptr %8, align 8
  %1833 = extractvalue { ptr, i32 } %1831, 1
  store i32 %1833, ptr %9, align 4
  br label %1841

1834:                                             ; preds = %1058, %1057, %1051, %1049
  %1835 = landingpad { ptr, i32 }
          cleanup
  %1836 = extractvalue { ptr, i32 } %1835, 0
  store ptr %1836, ptr %8, align 8
  %1837 = extractvalue { ptr, i32 } %1835, 1
  store i32 %1837, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %132) #11
  %1838 = load i1, ptr %134, align 1
  br i1 %1838, label %1839, label %1840

1839:                                             ; preds = %1834
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %1048) #11
  br label %1840

1840:                                             ; preds = %1839, %1834
  br label %1841

1841:                                             ; preds = %1840, %1830
  %1842 = load i1, ptr %135, align 1
  br i1 %1842, label %1843, label %1844

1843:                                             ; preds = %1841
  call void @_ZN3JPH23ConvexHullShapeSettingsdlEPv(ptr noundef %1046) #11
  br label %1844

1844:                                             ; preds = %1843, %1841
  br label %2047

1845:                                             ; preds = %1090, %1059
  %1846 = landingpad { ptr, i32 }
          cleanup
  %1847 = extractvalue { ptr, i32 } %1846, 0
  store ptr %1847, ptr %8, align 8
  %1848 = extractvalue { ptr, i32 } %1846, 1
  store i32 %1848, ptr %9, align 4
  br label %2046

1849:                                             ; preds = %1073, %1065, %1063, %1061
  %1850 = landingpad { ptr, i32 }
          cleanup
  %1851 = extractvalue { ptr, i32 } %1850, 0
  store ptr %1851, ptr %8, align 8
  %1852 = extractvalue { ptr, i32 } %1850, 1
  store i32 %1852, ptr %9, align 4
  br label %1857

1853:                                             ; preds = %1089
  %1854 = landingpad { ptr, i32 }
          cleanup
  %1855 = extractvalue { ptr, i32 } %1854, 0
  store ptr %1855, ptr %8, align 8
  %1856 = extractvalue { ptr, i32 } %1854, 1
  store i32 %1856, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %136) #11
  br label %1857

1857:                                             ; preds = %1853, %1849
  call void @llvm.lifetime.end.p0(i64 256, ptr %136) #11
  br label %2046

1858:                                             ; preds = %1144, %1136, %1134, %1092
  %1859 = landingpad { ptr, i32 }
          cleanup
  %1860 = extractvalue { ptr, i32 } %1859, 0
  store ptr %1860, ptr %8, align 8
  %1861 = extractvalue { ptr, i32 } %1859, 1
  store i32 %1861, ptr %9, align 4
  br label %1870

1862:                                             ; preds = %1125, %1116, %1104, %1096, %1094
  %1863 = landingpad { ptr, i32 }
          cleanup
  %1864 = extractvalue { ptr, i32 } %1863, 0
  store ptr %1864, ptr %8, align 8
  %1865 = extractvalue { ptr, i32 } %1863, 1
  store i32 %1865, ptr %9, align 4
  call void @_ZN3JPH30RotatedTranslatedShapeSettingsdlEPv(ptr noundef %1093) #11
  br label %1870

1866:                                             ; preds = %1160
  %1867 = landingpad { ptr, i32 }
          cleanup
  %1868 = extractvalue { ptr, i32 } %1867, 0
  store ptr %1868, ptr %8, align 8
  %1869 = extractvalue { ptr, i32 } %1867, 1
  store i32 %1869, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %139) #11
  br label %1870

1870:                                             ; preds = %1866, %1862, %1858
  call void @llvm.lifetime.end.p0(i64 256, ptr %139) #11
  br label %2046

1871:                                             ; preds = %1304, %1275, %1263, %1261, %1259, %1230, %1218, %1216, %1214, %1180, %1168, %1166, %1164, %1161
  %1872 = landingpad { ptr, i32 }
          cleanup
  %1873 = extractvalue { ptr, i32 } %1872, 0
  store ptr %1873, ptr %8, align 8
  %1874 = extractvalue { ptr, i32 } %1872, 1
  store i32 %1874, ptr %9, align 4
  br label %2045

1875:                                             ; preds = %1163
  %1876 = landingpad { ptr, i32 }
          cleanup
  %1877 = extractvalue { ptr, i32 } %1876, 0
  store ptr %1877, ptr %8, align 8
  %1878 = extractvalue { ptr, i32 } %1876, 1
  store i32 %1878, ptr %9, align 4
  call void @_ZN3JPH28MutableCompoundShapeSettingsdlEPv(ptr noundef %1162) #11
  br label %2045

1879:                                             ; preds = %1190, %1189
  %1880 = landingpad { ptr, i32 }
          cleanup
  %1881 = extractvalue { ptr, i32 } %1880, 0
  store ptr %1881, ptr %8, align 8
  %1882 = extractvalue { ptr, i32 } %1880, 1
  store i32 %1882, ptr %9, align 4
  br label %1890

1883:                                             ; preds = %1205, %1200, %1194, %1192
  %1884 = landingpad { ptr, i32 }
          cleanup
  %1885 = extractvalue { ptr, i32 } %1884, 0
  store ptr %1885, ptr %8, align 8
  %1886 = extractvalue { ptr, i32 } %1884, 1
  store i32 %1886, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %150) #11
  %1887 = load i1, ptr %152, align 1
  br i1 %1887, label %1888, label %1889

1888:                                             ; preds = %1883
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %1191) #11
  br label %1889

1889:                                             ; preds = %1888, %1883
  br label %1890

1890:                                             ; preds = %1889, %1879
  %1891 = load i1, ptr %153, align 1
  br i1 %1891, label %1892, label %1893

1892:                                             ; preds = %1890
  call void @_ZN3JPH16BoxShapeSettingsdlEPv(ptr noundef %1188) #11
  br label %1893

1893:                                             ; preds = %1892, %1890
  br label %2045

1894:                                             ; preds = %1239
  %1895 = landingpad { ptr, i32 }
          cleanup
  %1896 = extractvalue { ptr, i32 } %1895, 0
  store ptr %1896, ptr %8, align 8
  %1897 = extractvalue { ptr, i32 } %1895, 1
  store i32 %1897, ptr %9, align 4
  br label %1905

1898:                                             ; preds = %1250, %1249, %1243, %1241
  %1899 = landingpad { ptr, i32 }
          cleanup
  %1900 = extractvalue { ptr, i32 } %1899, 0
  store ptr %1900, ptr %8, align 8
  %1901 = extractvalue { ptr, i32 } %1899, 1
  store i32 %1901, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %157) #11
  %1902 = load i1, ptr %159, align 1
  br i1 %1902, label %1903, label %1904

1903:                                             ; preds = %1898
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %1240) #11
  br label %1904

1904:                                             ; preds = %1903, %1898
  br label %1905

1905:                                             ; preds = %1904, %1894
  %1906 = load i1, ptr %160, align 1
  br i1 %1906, label %1907, label %1908

1907:                                             ; preds = %1905
  call void @_ZN3JPH20CapsuleShapeSettingsdlEPv(ptr noundef %1238) #11
  br label %1908

1908:                                             ; preds = %1907, %1905
  br label %2045

1909:                                             ; preds = %1284
  %1910 = landingpad { ptr, i32 }
          cleanup
  %1911 = extractvalue { ptr, i32 } %1910, 0
  store ptr %1911, ptr %8, align 8
  %1912 = extractvalue { ptr, i32 } %1910, 1
  store i32 %1912, ptr %9, align 4
  br label %1920

1913:                                             ; preds = %1295, %1294, %1288, %1286
  %1914 = landingpad { ptr, i32 }
          cleanup
  %1915 = extractvalue { ptr, i32 } %1914, 0
  store ptr %1915, ptr %8, align 8
  %1916 = extractvalue { ptr, i32 } %1914, 1
  store i32 %1916, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #11
  %1917 = load i1, ptr %166, align 1
  br i1 %1917, label %1918, label %1919

1918:                                             ; preds = %1913
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %1285) #11
  br label %1919

1919:                                             ; preds = %1918, %1913
  br label %1920

1920:                                             ; preds = %1919, %1909
  %1921 = load i1, ptr %167, align 1
  br i1 %1921, label %1922, label %1923

1922:                                             ; preds = %1920
  call void @_ZN3JPH27TaperedCapsuleShapeSettingsdlEPv(ptr noundef %1283) #11
  br label %1923

1923:                                             ; preds = %1922, %1920
  br label %2045

1924:                                             ; preds = %1329, %1317, %1309, %1306
  %1925 = landingpad { ptr, i32 }
          cleanup
  %1926 = extractvalue { ptr, i32 } %1925, 0
  store ptr %1926, ptr %8, align 8
  %1927 = extractvalue { ptr, i32 } %1925, 1
  store i32 %1927, ptr %9, align 4
  br label %1932

1928:                                             ; preds = %1345
  %1929 = landingpad { ptr, i32 }
          cleanup
  %1930 = extractvalue { ptr, i32 } %1929, 0
  store ptr %1930, ptr %8, align 8
  %1931 = extractvalue { ptr, i32 } %1929, 1
  store i32 %1931, ptr %9, align 4
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %168) #11
  br label %1932

1932:                                             ; preds = %1928, %1924
  call void @llvm.lifetime.end.p0(i64 256, ptr %168) #11
  br label %2045

1933:                                             ; preds = %1353, %1349, %1346
  %1934 = landingpad { ptr, i32 }
          cleanup
  %1935 = extractvalue { ptr, i32 } %1934, 0
  store ptr %1935, ptr %8, align 8
  %1936 = extractvalue { ptr, i32 } %1934, 1
  store i32 %1936, ptr %9, align 4
  br label %2044

1937:                                             ; preds = %1348
  %1938 = landingpad { ptr, i32 }
          cleanup
  %1939 = extractvalue { ptr, i32 } %1938, 0
  store ptr %1939, ptr %8, align 8
  %1940 = extractvalue { ptr, i32 } %1938, 1
  store i32 %1940, ptr %9, align 4
  call void @_ZN3JPH26DistanceConstraintSettingsdlEPv(ptr noundef %1347) #11
  br label %2044

1941:                                             ; preds = %1355
  %1942 = landingpad { ptr, i32 }
          cleanup
  %1943 = extractvalue { ptr, i32 } %1942, 0
  store ptr %1943, ptr %8, align 8
  %1944 = extractvalue { ptr, i32 } %1942, 1
  store i32 %1944, ptr %9, align 4
  br label %2043

1945:                                             ; preds = %1356
  %1946 = landingpad { ptr, i32 }
          cleanup
  %1947 = extractvalue { ptr, i32 } %1946, 0
  store ptr %1947, ptr %8, align 8
  %1948 = extractvalue { ptr, i32 } %1946, 1
  store i32 %1948, ptr %9, align 4
  br label %1968

1949:                                             ; preds = %1366, %1360, %1358
  %1950 = landingpad { ptr, i32 }
          cleanup
  %1951 = extractvalue { ptr, i32 } %1950, 0
  store ptr %1951, ptr %8, align 8
  %1952 = extractvalue { ptr, i32 } %1950, 1
  store i32 %1952, ptr %9, align 4
  br label %1964

1953:                                             ; preds = %1371, %1367
  %1954 = landingpad { ptr, i32 }
          cleanup
  %1955 = extractvalue { ptr, i32 } %1954, 0
  store ptr %1955, ptr %8, align 8
  %1956 = extractvalue { ptr, i32 } %1954, 1
  store i32 %1956, ptr %9, align 4
  %1957 = getelementptr inbounds [1 x %"class.JPH::RefConst.36"], ptr %175, i32 0, i32 0
  %1958 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %1957, i64 1
  br label %1959

1959:                                             ; preds = %1959, %1953
  %1960 = phi ptr [ %1958, %1953 ], [ %1961, %1959 ]
  %1961 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %1960, i64 -1
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1961) #11
  %1962 = icmp eq ptr %1961, %1957
  br i1 %1962, label %1963, label %1959

1963:                                             ; preds = %1959
  br label %1964

1964:                                             ; preds = %1963, %1949
  call void @llvm.lifetime.end.p0(i64 16, ptr %177) #11
  %1965 = load i1, ptr %179, align 1
  br i1 %1965, label %1966, label %1967

1966:                                             ; preds = %1964
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %1357) #11
  br label %1967

1967:                                             ; preds = %1966, %1964
  br label %1968

1968:                                             ; preds = %1967, %1945
  %1969 = load i1, ptr %180, align 1
  br i1 %1969, label %1970, label %1978

1970:                                             ; preds = %1968
  %1971 = load ptr, ptr %176, align 8
  %1972 = icmp eq ptr %175, %1971
  br i1 %1972, label %1977, label %1973

1973:                                             ; preds = %1973, %1970
  %1974 = phi ptr [ %1971, %1970 ], [ %1975, %1973 ]
  %1975 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %1974, i64 -1
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1975) #11
  %1976 = icmp eq ptr %1975, %175
  br i1 %1976, label %1977, label %1973

1977:                                             ; preds = %1973, %1970
  br label %1978

1978:                                             ; preds = %1977, %1968
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #11
  br label %2042

1979:                                             ; preds = %1397, %1389, %1387, %1385
  %1980 = landingpad { ptr, i32 }
          cleanup
  %1981 = extractvalue { ptr, i32 } %1980, 0
  store ptr %1981, ptr %8, align 8
  %1982 = extractvalue { ptr, i32 } %1980, 1
  store i32 %1982, ptr %9, align 4
  br label %2041

1983:                                             ; preds = %1427, %1418, %1415, %1413
  %1984 = landingpad { ptr, i32 }
          cleanup
  %1985 = extractvalue { ptr, i32 } %1984, 0
  store ptr %1985, ptr %8, align 8
  %1986 = extractvalue { ptr, i32 } %1984, 1
  store i32 %1986, ptr %9, align 4
  br label %2040

1987:                                             ; preds = %1416
  %1988 = landingpad { ptr, i32 }
          cleanup
  %1989 = extractvalue { ptr, i32 } %1988, 0
  store ptr %1989, ptr %8, align 8
  %1990 = extractvalue { ptr, i32 } %1988, 1
  store i32 %1990, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %184) #11
  br label %2040

1991:                                             ; preds = %1429, %1428
  %1992 = landingpad { ptr, i32 }
          cleanup
  %1993 = extractvalue { ptr, i32 } %1992, 0
  store ptr %1993, ptr %8, align 8
  %1994 = extractvalue { ptr, i32 } %1992, 1
  store i32 %1994, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 20, ptr %186) #11
  br label %2039

1995:                                             ; preds = %1430
  %1996 = landingpad { ptr, i32 }
          cleanup
  %1997 = extractvalue { ptr, i32 } %1996, 0
  store ptr %1997, ptr %8, align 8
  %1998 = extractvalue { ptr, i32 } %1996, 1
  store i32 %1998, ptr %9, align 4
  br label %2018

1999:                                             ; preds = %1440, %1434, %1432
  %2000 = landingpad { ptr, i32 }
          cleanup
  %2001 = extractvalue { ptr, i32 } %2000, 0
  store ptr %2001, ptr %8, align 8
  %2002 = extractvalue { ptr, i32 } %2000, 1
  store i32 %2002, ptr %9, align 4
  br label %2014

2003:                                             ; preds = %1445, %1441
  %2004 = landingpad { ptr, i32 }
          cleanup
  %2005 = extractvalue { ptr, i32 } %2004, 0
  store ptr %2005, ptr %8, align 8
  %2006 = extractvalue { ptr, i32 } %2004, 1
  store i32 %2006, ptr %9, align 4
  %2007 = getelementptr inbounds [1 x %"class.JPH::RefConst.36"], ptr %188, i32 0, i32 0
  %2008 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %2007, i64 1
  br label %2009

2009:                                             ; preds = %2009, %2003
  %2010 = phi ptr [ %2008, %2003 ], [ %2011, %2009 ]
  %2011 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %2010, i64 -1
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %2011) #11
  %2012 = icmp eq ptr %2011, %2007
  br i1 %2012, label %2013, label %2009

2013:                                             ; preds = %2009
  br label %2014

2014:                                             ; preds = %2013, %1999
  call void @llvm.lifetime.end.p0(i64 16, ptr %190) #11
  %2015 = load i1, ptr %192, align 1
  br i1 %2015, label %2016, label %2017

2016:                                             ; preds = %2014
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %1431) #11
  br label %2017

2017:                                             ; preds = %2016, %2014
  br label %2018

2018:                                             ; preds = %2017, %1995
  %2019 = load i1, ptr %193, align 1
  br i1 %2019, label %2020, label %2028

2020:                                             ; preds = %2018
  %2021 = load ptr, ptr %189, align 8
  %2022 = icmp eq ptr %188, %2021
  br i1 %2022, label %2027, label %2023

2023:                                             ; preds = %2023, %2020
  %2024 = phi ptr [ %2021, %2020 ], [ %2025, %2023 ]
  %2025 = getelementptr inbounds %"class.JPH::RefConst.36", ptr %2024, i64 -1
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %2025) #11
  %2026 = icmp eq ptr %2025, %188
  br i1 %2026, label %2027, label %2023

2027:                                             ; preds = %2023, %2020
  br label %2028

2028:                                             ; preds = %2027, %2018
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #11
  br label %2038

2029:                                             ; preds = %1471, %1463, %1461, %1459
  %2030 = landingpad { ptr, i32 }
          cleanup
  %2031 = extractvalue { ptr, i32 } %2030, 0
  store ptr %2031, ptr %8, align 8
  %2032 = extractvalue { ptr, i32 } %2030, 1
  store i32 %2032, ptr %9, align 4
  br label %2037

2033:                                             ; preds = %1490, %1487
  %2034 = landingpad { ptr, i32 }
          cleanup
  %2035 = extractvalue { ptr, i32 } %2034, 0
  store ptr %2035, ptr %8, align 8
  %2036 = extractvalue { ptr, i32 } %2034, 1
  store i32 %2036, ptr %9, align 4
  call void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111) %194) #11
  br label %2037

2037:                                             ; preds = %2033, %2029
  call void @llvm.lifetime.end.p0(i64 112, ptr %194) #11
  br label %2038

2038:                                             ; preds = %2037, %2028
  call void @_ZN3JPH3RefINS_22SoftBodySharedSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %185) #11
  br label %2039

2039:                                             ; preds = %2038, %1991
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #11
  br label %2040

2040:                                             ; preds = %2039, %1987, %1983
  call void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111) %181) #11
  br label %2041

2041:                                             ; preds = %2040, %1979
  call void @llvm.lifetime.end.p0(i64 112, ptr %181) #11
  br label %2042

2042:                                             ; preds = %2041, %1978
  call void @_ZN3JPH3RefINS_22SoftBodySharedSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %173) #11
  br label %2043

2043:                                             ; preds = %2042, %1941
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #11
  br label %2044

2044:                                             ; preds = %2043, %1937, %1933
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #11
  br label %2045

2045:                                             ; preds = %2044, %1932, %1923, %1908, %1893, %1875, %1871
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  br label %2046

2046:                                             ; preds = %2045, %1870, %1857, %1845
  call void @_ZN3JPH3RefINS_23ConvexHullShapeSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #11
  br label %2047

2047:                                             ; preds = %2046, %1844, %1826
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  br label %2048

2048:                                             ; preds = %2047, %1822, %1818, %1814, %1810
  call void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %126) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %126) #11
  br label %2049

2049:                                             ; preds = %2048, %1809, %1797, %1793, %1789, %1785
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  br label %2050

2050:                                             ; preds = %2049, %1784, %1769, %1754, %1736, %1732
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  br label %2053

2051:                                             ; preds = %1491
  call void @_ZN3JPH3RefINS_12PhysicsSceneEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #11
  br label %2052

2052:                                             ; preds = %2051, %1491
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %5) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #11
  ret void

2053:                                             ; preds = %2050, %1731, %1718, %1693, %1668, %1643, %1618, %1593, %1568, %1543, %1518, %1509, %1493
  call void @_ZN3JPH3RefINS_12PhysicsSceneEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %5) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #11
  br label %2054

2054:                                             ; preds = %2053
  %2055 = load ptr, ptr %8, align 8
  %2056 = load i32, ptr %9, align 4
  %2057 = insertvalue { ptr, i32 } poison, ptr %2055, 0
  %2058 = insertvalue { ptr, i32 } %2057, i32 %2056, 1
  resume { ptr, i32 } %2058
}

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16), float noundef, float noundef, float noundef) unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH12PhysicsScenenwEm(i64 noundef) #3 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

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

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

declare void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 16 dereferenceable(256)) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH19ScaledShapeSettingsnwEm(i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL11sCreateMeshv() #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH19ScaledShapeSettingsC2EPKNS_13ShapeSettingsENS_4Vec3E(ptr noundef nonnull align 16 dereferenceable(96), ptr noundef, double, double) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH19ScaledShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Quat9sIdentityEv() #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256), ptr noundef, double, double, double, double, i8 noundef zeroext, i16 noundef zeroext) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL18sCreateHeightFieldv() #1

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH21TriangleShapeSettingsnwEm(i64 noundef) #3 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52), ptr noundef nonnull align 8 dereferenceable(16), i32) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH21TriangleShapeSettingsC2ENS_4Vec3ES1_S1_fPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(144), double, double, double, double, double, double, float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double, double, float noundef) #3 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Vec36sAxisXEv() #3 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH21TriangleShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH19SphereShapeSettingsnwEm(i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH19SphereShapeSettingsC2EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(80), float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH19SphereShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH16BoxShapeSettingsnwEm(i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH16BoxShapeSettingsC2ENS_4Vec3EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(112), double, double, float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH16BoxShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH20CapsuleShapeSettingsnwEm(i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH20CapsuleShapeSettingsC2EffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88), float noundef, float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH20CapsuleShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH27TaperedCapsuleShapeSettingsnwEm(i64 noundef) #3 align 2

declare void @_ZN3JPH27TaperedCapsuleShapeSettingsC1EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88), float noundef, float noundef, float noundef, ptr noundef) unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Vec36sAxisZEv() #3 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH27TaperedCapsuleShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH21CylinderShapeSettingsnwEm(i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH21CylinderShapeSettingsC2EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88), float noundef, float noundef, float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH21CylinderShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH28TaperedCylinderShapeSettingsnwEm(i64 noundef) #3 align 2

declare void @_ZN3JPH28TaperedCylinderShapeSettingsC1EffffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(96), float noundef, float noundef, float noundef, float noundef, ptr noundef) unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH28TaperedCylinderShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH18EmptyShapeSettingsnwEm(i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH18EmptyShapeSettingsC2Ev(ptr noundef nonnull align 16 dereferenceable(80)) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH18EmptyShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH27StaticCompoundShapeSettingsnwEm(i64 noundef) #3 align 2

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH27StaticCompoundShapeSettingsdlEPv(ptr noundef) #8 align 2

declare void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88), double, double, double, double, ptr noundef, i32 noundef) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZNK3JPH4QuatmlES0_(ptr noundef nonnull align 16 dereferenceable(16), double, double) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 16 dereferenceable(16)) #6 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH23ConvexHullShapeSettingsnwEm(i64 noundef) #3 align 2

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

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH23ConvexHullShapeSettingsdlEPv(ptr noundef) #8 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH30RotatedTranslatedShapeSettingsnwEm(i64 noundef) #3 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Vec310sReplicateEf(float noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH30RotatedTranslatedShapeSettingsC2ENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsE(ptr noundef nonnull align 16 dereferenceable(112), double, double, double, double, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH30RotatedTranslatedShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH28MutableCompoundShapeSettingsnwEm(i64 noundef) #3 align 2

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH28MutableCompoundShapeSettingsdlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH26DistanceConstraintSettingsnwEm(i64 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3JPH26DistanceConstraintSettingsC2Ev(ptr noundef nonnull align 16 dereferenceable(112)) unnamed_addr #6 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH26DistanceConstraintSettingsdlEPv(ptr noundef) #8 align 2

declare void @_ZN3JPH12PhysicsScene13AddConstraintEPKNS_25TwoBodyConstraintSettingsEjj(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, i32 noundef, i32 noundef) #7

declare void @_ZN3JPH22SoftBodySharedSettings11sCreateCubeEjf(ptr dead_on_unwind writable sret(%"class.JPH::Ref.48") align 8, i32 noundef, float noundef) #7

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH24SoftBodyCreationSettingsC2EPKNS_22SoftBodySharedSettingsENS_4Vec3ENS_4QuatEt(ptr noundef nonnull align 16 dereferenceable(111), ptr noundef, double, double, double, double, i16 noundef zeroext) unnamed_addr #1 align 2

declare void @_ZN3JPH12PhysicsScene11AddSoftBodyERKNS_24SoftBodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 16 dereferenceable(111)) #7

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

declare void @_ZN15SoftBodyCreator12CreateSphereEfjjN3JPH22SoftBodySharedSettings9EBendTypeERKNS1_16VertexAttributesE(ptr dead_on_unwind writable sret(%"class.JPH::Ref.48") align 8, float noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(20)) #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111)) unnamed_addr #5 align 2

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="128" "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 = { alwaysinline 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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="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 = { "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 #8 = { alwaysinline 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 #9 = { 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 #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #11 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !22, i64 40}
!12 = !{!"_ZTSN3JPH26DistanceConstraintSettingsE", !13, i64 0, !22, i64 40, !23, i64 48, !23, i64 64, !20, i64 80, !20, i64 84, !24, i64 88}
!13 = !{!"_ZTSN3JPH25TwoBodyConstraintSettingsE", !14, i64 0}
!14 = !{!"_ZTSN3JPH18ConstraintSettingsE", !15, i64 0, !16, i64 8, !19, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !20, i64 28, !21, i64 32}
!15 = !{!"_ZTSN3JPH18SerializableObjectE"}
!16 = !{!"_ZTSN3JPH9RefTargetINS_18ConstraintSettingsEEE", !17, i64 0}
!17 = !{!"_ZTSSt6atomicIjE", !18, i64 0}
!18 = !{!"_ZTSSt13__atomic_baseIjE", !6, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"float", !7, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"_ZTSN3JPH16EConstraintSpaceE", !7, i64 0}
!23 = !{!"_ZTSN3JPH4Vec3E", !7, i64 0}
!24 = !{!"_ZTSN3JPH14SpringSettingsE", !25, i64 0, !7, i64 4, !20, i64 8}
!25 = !{!"_ZTSN3JPH11ESpringModeE", !7, i64 0}
!26 = !{!27, !10, i64 0}
!27 = !{!"_ZTSSt16initializer_listIN3JPH8RefConstINS0_15PhysicsMaterialEEEE", !10, i64 0, !21, i64 8}
!28 = !{!27, !21, i64 8}
!29 = !{i64 0, i64 16, !30}
!30 = !{!7, !7, i64 0}
!31 = !{!32, !20, i64 100}
!32 = !{!"_ZTSN3JPH24SoftBodyCreationSettingsE", !33, i64 0, !23, i64 16, !34, i64 32, !21, i64 48, !36, i64 56, !37, i64 64, !6, i64 80, !20, i64 84, !20, i64 88, !20, i64 92, !20, i64 96, !20, i64 100, !20, i64 104, !19, i64 108, !19, i64 109, !19, i64 110}
!33 = !{!"_ZTSN3JPH8RefConstINS_22SoftBodySharedSettingsEEE", !10, i64 0}
!34 = !{!"_ZTSN3JPH4QuatE", !35, i64 0}
!35 = !{!"_ZTSN3JPH4Vec4E", !7, i64 0}
!36 = !{!"short", !7, i64 0}
!37 = !{!"_ZTSN3JPH14CollisionGroupE", !38, i64 0, !6, i64 8, !6, i64 12}
!38 = !{!"_ZTSN3JPH8RefConstINS_11GroupFilterEEE", !10, i64 0}


; 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.JPH::Ref" = type { ptr }
%class.anon.4 = type { ptr }
%"class.JPH::Vec3" = type { %union.anon }
%union.anon = type { <4 x float> }
%class.anon.5 = type { ptr }
%"class.JPH::BodyCreationSettings" = type { %"class.JPH::Vec3", %"class.JPH::Quat", %"class.JPH::Vec3", %"class.JPH::Vec3", i64, i16, %"class.JPH::CollisionGroup", i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, float, i32, i32, i8, float, %"class.JPH::MassProperties", %"class.JPH::RefConst.13", %"class.JPH::RefConst.14" }
%"class.JPH::Quat" = type { %"class.JPH::Vec4" }
%"class.JPH::Vec4" = type { %union.anon.12 }
%union.anon.12 = type { <4 x float> }
%"class.JPH::CollisionGroup" = type { %"class.JPH::RefConst", i32, i32 }
%"class.JPH::RefConst" = type { ptr }
%"class.JPH::MassProperties" = type { float, %"class.JPH::Mat44" }
%"class.JPH::Mat44" = type { [4 x %"class.JPH::Vec4"] }
%"class.JPH::RefConst.13" = type { ptr }
%"class.JPH::RefConst.14" = type { ptr }
%"class.std::basic_string_view" = type { i64, ptr }
%"class.JPH::Array.42" = type { i64, i64, ptr }
%"class.JPH::Ref.45" = type { ptr }
%"class.JPH::Ref.48" = type { ptr }
%"class.JPH::RefConst.36" = type { ptr }
%"class.JPH::SoftBodyCreationSettings" = type <{ %"class.JPH::RefConst.83", [8 x i8], %"class.JPH::Vec3", %"class.JPH::Quat", i64, i16, [6 x i8], %"class.JPH::CollisionGroup", i32, float, float, float, float, float, float, i8, i8, i8, i8 }>
%"class.JPH::RefConst.83" = type { ptr }
%"struct.JPH::SoftBodySharedSettings::VertexAttributes" = type { float, float, float, i32, float }

@.str.1 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN17LoadSaveSceneTest12sCreateSceneEv(ptr dead_on_unwind noalias writable sret(%"class.JPH::Ref") align 8 %0) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i32, align 4
  %3 = alloca %class.anon.4, align 8
  %4 = alloca %"class.JPH::Vec3", align 16
  %5 = alloca %class.anon.5, align 8
  %6 = alloca %"class.JPH::BodyCreationSettings", align 16
  %7 = alloca %"class.JPH::Vec3", align 16
  %8 = alloca %"class.JPH::Vec3", align 16
  %9 = alloca %"class.JPH::BodyCreationSettings", align 16
  %10 = alloca %"class.JPH::Vec3", align 16
  %11 = alloca %"class.JPH::BodyCreationSettings", align 16
  %12 = alloca %"class.JPH::Vec3", align 16
  %13 = alloca %"class.JPH::Vec3", align 16
  %14 = alloca %"class.JPH::Vec3", align 16
  %15 = alloca %"class.std::basic_string_view", align 8
  %16 = alloca %"class.JPH::BodyCreationSettings", align 16
  %17 = alloca %"class.std::basic_string_view", align 8
  %18 = alloca %"class.JPH::BodyCreationSettings", align 16
  %19 = alloca %"class.JPH::Vec3", align 16
  %20 = alloca %"class.std::basic_string_view", align 8
  %21 = alloca %"class.JPH::BodyCreationSettings", align 16
  %22 = alloca %"class.std::basic_string_view", align 8
  %23 = alloca %"class.JPH::BodyCreationSettings", align 16
  %24 = alloca %"class.std::basic_string_view", align 8
  %25 = alloca %"class.JPH::BodyCreationSettings", align 16
  %26 = alloca %"class.std::basic_string_view", align 8
  %27 = alloca %"class.JPH::BodyCreationSettings", align 16
  %28 = alloca %"class.std::basic_string_view", align 8
  %29 = alloca %"class.JPH::BodyCreationSettings", align 16
  %30 = alloca %"class.std::basic_string_view", align 8
  %31 = alloca %"class.JPH::BodyCreationSettings", align 16
  %32 = alloca %"class.JPH::Vec3", align 16
  %33 = alloca %"class.JPH::Vec3", align 16
  %34 = alloca %"class.std::basic_string_view", align 8
  %35 = alloca %"class.JPH::Vec3", align 16
  %36 = alloca %"class.std::basic_string_view", align 8
  %37 = alloca %"class.JPH::Vec3", align 16
  %38 = alloca %"class.std::basic_string_view", align 8
  %39 = alloca %"class.JPH::Vec3", align 16
  %40 = alloca %"class.JPH::Quat", align 16
  %41 = alloca %"class.JPH::Vec3", align 16
  %42 = alloca %"class.JPH::Quat", align 16
  %43 = alloca %"class.JPH::BodyCreationSettings", align 16
  %44 = alloca %"class.JPH::Array.42", align 8
  %45 = alloca %"class.JPH::Vec3", align 16
  %46 = alloca %"class.JPH::Vec3", align 16
  %47 = alloca %"class.JPH::Vec3", align 16
  %48 = alloca %"class.JPH::Vec3", align 16
  %49 = alloca %"class.JPH::Ref.45", align 8
  %50 = alloca %"class.std::basic_string_view", align 8
  %51 = alloca %"class.JPH::BodyCreationSettings", align 16
  %52 = alloca %"class.JPH::BodyCreationSettings", align 16
  %53 = alloca %"class.JPH::Vec3", align 16
  %54 = alloca %"class.JPH::Vec3", align 16
  %55 = alloca %"class.std::basic_string_view", align 8
  %56 = alloca %"class.JPH::Vec3", align 16
  %57 = alloca %"class.std::basic_string_view", align 8
  %58 = alloca %"class.JPH::Vec3", align 16
  %59 = alloca %"class.std::basic_string_view", align 8
  %60 = alloca %"class.JPH::BodyCreationSettings", align 16
  %61 = alloca %"class.JPH::Ref.48", align 8
  %62 = alloca [1 x %"class.JPH::RefConst.36"], align 8
  %63 = alloca %"class.std::basic_string_view", align 8
  %64 = alloca %"class.JPH::SoftBodyCreationSettings", align 16
  %65 = alloca %"class.JPH::Ref.48", align 8
  %66 = alloca %"struct.JPH::SoftBodySharedSettings::VertexAttributes", align 4
  %67 = alloca [1 x %"class.JPH::RefConst.36"], align 8
  %68 = alloca %"class.std::basic_string_view", align 8
  %69 = alloca %"class.JPH::SoftBodyCreationSettings", align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #10
  store i32 0, ptr %2, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #10
  store ptr %2, ptr %3, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #10
  call void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %4, float noundef 0.000000e+00, float noundef 4.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  store ptr %4, ptr %5, align 8, !tbaa !9
  %70 = call noundef ptr @_ZN3JPH12PhysicsScenenwEm(i64 noundef 80)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %70, i8 0, i64 80, i1 false)
  call void @_ZN3JPH12PhysicsSceneC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %70) #10
  call void @_ZN3JPH3RefINS_12PhysicsSceneEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %70)
  %71 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %6) #10
  %72 = invoke noundef ptr @_ZN3JPH19ScaledShapeSettingsnwEm(i64 noundef 96)
          to label %73 unwind label %651

73:                                               ; preds = %1
  %74 = invoke noundef ptr @_ZL11sCreateMeshv()
          to label %75 unwind label %653

75:                                               ; preds = %73
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %7, float noundef 2.500000e+00, float noundef 1.000000e+00, float noundef 1.500000e+00)
          to label %76 unwind label %653

76:                                               ; preds = %75
  %77 = load double, ptr %7, align 16
  %78 = getelementptr inbounds i8, ptr %7, i64 8
  %79 = load double, ptr %78, align 8
  invoke void @_ZN3JPH19ScaledShapeSettingsC2EPKNS_13ShapeSettingsENS_4Vec3E(ptr noundef nonnull align 16 dereferenceable(96) %72, ptr noundef %74, double %77, double %79)
          to label %80 unwind label %653

80:                                               ; preds = %76
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %8, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %81 unwind label %651

81:                                               ; preds = %80
  %82 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %83 unwind label %651

83:                                               ; preds = %81
  %84 = extractvalue { double, double } %82, 0
  %85 = extractvalue { double, double } %82, 1
  %86 = load double, ptr %8, align 16
  %87 = getelementptr inbounds i8, ptr %8, i64 8
  %88 = load double, ptr %87, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %6, ptr noundef nonnull %72, double %86, double %88, double %84, double %85, i8 noundef zeroext 0, i16 noundef zeroext 0)
          to label %89 unwind label %651

89:                                               ; preds = %83
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %71, ptr noundef nonnull align 16 dereferenceable(256) %6)
          to label %90 unwind label %655

90:                                               ; preds = %89
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %6) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %6) #10
  %91 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %9) #10
  %92 = invoke noundef ptr @_ZL18sCreateHeightFieldv()
          to label %93 unwind label %658

93:                                               ; preds = %90
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %10, float noundef 5.000000e+01, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %94 unwind label %658

94:                                               ; preds = %93
  %95 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %96 unwind label %658

96:                                               ; preds = %94
  %97 = extractvalue { double, double } %95, 0
  %98 = extractvalue { double, double } %95, 1
  %99 = load double, ptr %10, align 16
  %100 = getelementptr inbounds i8, ptr %10, i64 8
  %101 = load double, ptr %100, align 8
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %9, ptr noundef %92, double %99, double %101, double %97, double %98, i8 noundef zeroext 0, i16 noundef zeroext 0)
          to label %102 unwind label %658

102:                                              ; preds = %96
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %91, ptr noundef nonnull align 16 dereferenceable(256) %9)
          to label %103 unwind label %660

103:                                              ; preds = %102
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %9) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %9) #10
  %104 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %11) #10
  %105 = invoke noundef ptr @_ZN3JPH21TriangleShapeSettingsnwEm(i64 noundef 144)
          to label %106 unwind label %663

106:                                              ; preds = %103
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %12, float noundef -2.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %107 unwind label %665

107:                                              ; preds = %106
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %13, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 0.000000e+00)
          to label %108 unwind label %665

108:                                              ; preds = %107
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %14, float noundef 2.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %109 unwind label %665

109:                                              ; preds = %108
  %110 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %111 unwind label %665

111:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef @.str.1) #10
  %112 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %113 unwind label %668

113:                                              ; preds = %111
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %110, ptr noundef nonnull align 8 dereferenceable(16) %15, i32 %112)
          to label %114 unwind label %668

114:                                              ; preds = %113
  %115 = load double, ptr %12, align 16
  %116 = getelementptr inbounds i8, ptr %12, i64 8
  %117 = load double, ptr %116, align 8
  %118 = load double, ptr %13, align 16
  %119 = getelementptr inbounds i8, ptr %13, i64 8
  %120 = load double, ptr %119, align 8
  %121 = load double, ptr %14, align 16
  %122 = getelementptr inbounds i8, ptr %14, i64 8
  %123 = load double, ptr %122, align 8
  invoke void @_ZN3JPH21TriangleShapeSettingsC2ENS_4Vec3ES1_S1_fPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(144) %105, double %115, double %117, double %118, double %120, double %121, double %123, float noundef 0.000000e+00, ptr noundef nonnull %110)
          to label %124 unwind label %669

124:                                              ; preds = %114
  %125 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %126 unwind label %.thread430

126:                                              ; preds = %124
  %127 = extractvalue { double, double } %125, 0
  %128 = extractvalue { double, double } %125, 1
  %129 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %130 unwind label %.thread430

130:                                              ; preds = %126
  %131 = extractvalue { double, double } %129, 0
  %132 = extractvalue { double, double } %129, 1
  %133 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %131, double %132, float noundef 0x3FF921FB60000000)
          to label %134 unwind label %.thread430

134:                                              ; preds = %130
  %135 = extractvalue { double, double } %133, 0
  %136 = extractvalue { double, double } %133, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %11, ptr noundef nonnull %105, double %127, double %128, double %135, double %136, i8 noundef zeroext 0, i16 noundef zeroext 0)
          to label %137 unwind label %.thread430

137:                                              ; preds = %134
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %104, ptr noundef nonnull align 16 dereferenceable(256) %11)
          to label %138 unwind label %.thread423

138:                                              ; preds = %137
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %11) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %11) #10
  %139 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %16) #10
  %140 = invoke noundef ptr @_ZN3JPH19SphereShapeSettingsnwEm(i64 noundef 80)
          to label %141 unwind label %671

141:                                              ; preds = %138
  %142 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %143 unwind label %673

143:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef @.str.2) #10
  %144 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %145 unwind label %676

145:                                              ; preds = %143
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %142, ptr noundef nonnull align 8 dereferenceable(16) %17, i32 %144)
          to label %146 unwind label %676

146:                                              ; preds = %145
  invoke void @_ZN3JPH19SphereShapeSettingsC2EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(80) %140, float noundef 0x3FC99999A0000000, ptr noundef nonnull %142)
          to label %147 unwind label %677

147:                                              ; preds = %146
  %148 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %149 unwind label %.thread456

149:                                              ; preds = %147
  %150 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %151 unwind label %.thread456

151:                                              ; preds = %149
  %152 = extractvalue { double, double } %148, 1
  %153 = extractvalue { double, double } %148, 0
  %154 = extractvalue { double, double } %150, 0
  %155 = extractvalue { double, double } %150, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %16, ptr noundef nonnull %140, double %153, double %152, double %154, double %155, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %156 unwind label %.thread456

156:                                              ; preds = %151
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %139, ptr noundef nonnull align 16 dereferenceable(256) %16)
          to label %157 unwind label %.thread449

157:                                              ; preds = %156
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %16) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %16) #10
  %158 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %18) #10
  %159 = invoke noundef ptr @_ZN3JPH16BoxShapeSettingsnwEm(i64 noundef 112)
          to label %160 unwind label %679

160:                                              ; preds = %157
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %19, float noundef 0x3FC99999A0000000, float noundef 0x3FC99999A0000000, float noundef 0x3FD99999A0000000)
          to label %161 unwind label %681

161:                                              ; preds = %160
  %162 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %163 unwind label %681

163:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef @.str.3) #10
  %164 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %165 unwind label %684

165:                                              ; preds = %163
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %162, ptr noundef nonnull align 8 dereferenceable(16) %20, i32 %164)
          to label %166 unwind label %684

166:                                              ; preds = %165
  %167 = load double, ptr %19, align 16
  %168 = getelementptr inbounds i8, ptr %19, i64 8
  %169 = load double, ptr %168, align 8
  invoke void @_ZN3JPH16BoxShapeSettingsC2ENS_4Vec3EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(112) %159, double %167, double %169, float noundef 0x3F847AE140000000, ptr noundef nonnull %162)
          to label %170 unwind label %685

170:                                              ; preds = %166
  %171 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %172 unwind label %.thread482

172:                                              ; preds = %170
  %173 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %174 unwind label %.thread482

174:                                              ; preds = %172
  %175 = extractvalue { double, double } %171, 1
  %176 = extractvalue { double, double } %171, 0
  %177 = extractvalue { double, double } %173, 0
  %178 = extractvalue { double, double } %173, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %18, ptr noundef nonnull %159, double %176, double %175, double %177, double %178, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %179 unwind label %.thread482

179:                                              ; preds = %174
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %158, ptr noundef nonnull align 16 dereferenceable(256) %18)
          to label %180 unwind label %.thread475

180:                                              ; preds = %179
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %18) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %18) #10
  %181 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %21) #10
  %182 = invoke noundef ptr @_ZN3JPH20CapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %183 unwind label %687

183:                                              ; preds = %180
  %184 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %185 unwind label %689

185:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef @.str.4) #10
  %186 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %187 unwind label %692

187:                                              ; preds = %185
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %184, ptr noundef nonnull align 8 dereferenceable(16) %22, i32 %186)
          to label %188 unwind label %692

188:                                              ; preds = %187
  invoke void @_ZN3JPH20CapsuleShapeSettingsC2EffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %182, float noundef 1.500000e+00, float noundef 0x3FC99999A0000000, ptr noundef nonnull %184)
          to label %189 unwind label %693

189:                                              ; preds = %188
  %190 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %191 unwind label %.thread508

191:                                              ; preds = %189
  %192 = extractvalue { double, double } %190, 0
  %193 = extractvalue { double, double } %190, 1
  %194 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %195 unwind label %.thread508

195:                                              ; preds = %191
  %196 = extractvalue { double, double } %194, 0
  %197 = extractvalue { double, double } %194, 1
  %198 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %196, double %197, float noundef 0x3FF921FB60000000)
          to label %199 unwind label %.thread508

199:                                              ; preds = %195
  %200 = extractvalue { double, double } %198, 0
  %201 = extractvalue { double, double } %198, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %21, ptr noundef nonnull %182, double %192, double %193, double %200, double %201, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %202 unwind label %.thread508

202:                                              ; preds = %199
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %181, ptr noundef nonnull align 16 dereferenceable(256) %21)
          to label %203 unwind label %.thread501

203:                                              ; preds = %202
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %21) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %21) #10
  %204 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %23) #10
  %205 = invoke noundef ptr @_ZN3JPH27TaperedCapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %206 unwind label %695

206:                                              ; preds = %203
  %207 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %208 unwind label %697

208:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef @.str.5) #10
  %209 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %210 unwind label %700

210:                                              ; preds = %208
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %207, ptr noundef nonnull align 8 dereferenceable(16) %24, i32 %209)
          to label %211 unwind label %700

211:                                              ; preds = %210
  invoke void @_ZN3JPH27TaperedCapsuleShapeSettingsC1EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %205, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, float noundef 0x3FC99999A0000000, ptr noundef nonnull %207)
          to label %212 unwind label %701

212:                                              ; preds = %211
  %213 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %214 unwind label %.thread534

214:                                              ; preds = %212
  %215 = extractvalue { double, double } %213, 0
  %216 = extractvalue { double, double } %213, 1
  %217 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %218 unwind label %.thread534

218:                                              ; preds = %214
  %219 = extractvalue { double, double } %217, 0
  %220 = extractvalue { double, double } %217, 1
  %221 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %219, double %220, float noundef 0x3FF921FB60000000)
          to label %222 unwind label %.thread534

222:                                              ; preds = %218
  %223 = extractvalue { double, double } %221, 0
  %224 = extractvalue { double, double } %221, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %23, ptr noundef nonnull %205, double %215, double %216, double %223, double %224, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %225 unwind label %.thread534

225:                                              ; preds = %222
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %204, ptr noundef nonnull align 16 dereferenceable(256) %23)
          to label %226 unwind label %.thread527

226:                                              ; preds = %225
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %23) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %23) #10
  %227 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %25) #10
  %228 = invoke noundef ptr @_ZN3JPH21CylinderShapeSettingsnwEm(i64 noundef 88)
          to label %229 unwind label %703

229:                                              ; preds = %226
  %230 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %231 unwind label %705

231:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef @.str.6) #10
  %232 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %233 unwind label %708

233:                                              ; preds = %231
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %230, ptr noundef nonnull align 8 dereferenceable(16) %26, i32 %232)
          to label %234 unwind label %708

234:                                              ; preds = %233
  invoke void @_ZN3JPH21CylinderShapeSettingsC2EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %228, float noundef 5.000000e-01, float noundef 0x3FC99999A0000000, float noundef 0x3FA99999A0000000, ptr noundef nonnull %230)
          to label %235 unwind label %709

235:                                              ; preds = %234
  %236 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %237 unwind label %.thread560

237:                                              ; preds = %235
  %238 = extractvalue { double, double } %236, 0
  %239 = extractvalue { double, double } %236, 1
  %240 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %241 unwind label %.thread560

241:                                              ; preds = %237
  %242 = extractvalue { double, double } %240, 0
  %243 = extractvalue { double, double } %240, 1
  %244 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %242, double %243, float noundef 0x3FF921FB60000000)
          to label %245 unwind label %.thread560

245:                                              ; preds = %241
  %246 = extractvalue { double, double } %244, 0
  %247 = extractvalue { double, double } %244, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %25, ptr noundef nonnull %228, double %238, double %239, double %246, double %247, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %248 unwind label %.thread560

248:                                              ; preds = %245
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %227, ptr noundef nonnull align 16 dereferenceable(256) %25)
          to label %249 unwind label %.thread553

249:                                              ; preds = %248
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %25) #10
  %250 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %27) #10
  %251 = invoke noundef ptr @_ZN3JPH28TaperedCylinderShapeSettingsnwEm(i64 noundef 96)
          to label %252 unwind label %711

252:                                              ; preds = %249
  %253 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %254 unwind label %713

254:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef @.str.7) #10
  %255 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %256 unwind label %716

256:                                              ; preds = %254
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %253, ptr noundef nonnull align 8 dereferenceable(16) %28, i32 %255)
          to label %257 unwind label %716

257:                                              ; preds = %256
  invoke void @_ZN3JPH28TaperedCylinderShapeSettingsC1EffffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(96) %251, float noundef 5.000000e-01, float noundef 0x3FC99999A0000000, float noundef 0x3FD99999A0000000, float noundef 0x3FA99999A0000000, ptr noundef nonnull %253)
          to label %258 unwind label %717

258:                                              ; preds = %257
  %259 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %260 unwind label %.thread586

260:                                              ; preds = %258
  %261 = extractvalue { double, double } %259, 0
  %262 = extractvalue { double, double } %259, 1
  %263 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %264 unwind label %.thread586

264:                                              ; preds = %260
  %265 = extractvalue { double, double } %263, 0
  %266 = extractvalue { double, double } %263, 1
  %267 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %265, double %266, float noundef 0x3FF921FB60000000)
          to label %268 unwind label %.thread586

268:                                              ; preds = %264
  %269 = extractvalue { double, double } %267, 0
  %270 = extractvalue { double, double } %267, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %27, ptr noundef nonnull %251, double %261, double %262, double %269, double %270, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %271 unwind label %.thread586

271:                                              ; preds = %268
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %250, ptr noundef nonnull align 16 dereferenceable(256) %27)
          to label %272 unwind label %.thread579

272:                                              ; preds = %271
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %27) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %27) #10
  %273 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %29) #10
  %274 = invoke noundef ptr @_ZN3JPH28TaperedCylinderShapeSettingsnwEm(i64 noundef 96)
          to label %275 unwind label %719

275:                                              ; preds = %272
  %276 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %277 unwind label %721

277:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef @.str.8) #10
  %278 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %279 unwind label %724

279:                                              ; preds = %277
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %276, ptr noundef nonnull align 8 dereferenceable(16) %30, i32 %278)
          to label %280 unwind label %724

280:                                              ; preds = %279
  invoke void @_ZN3JPH28TaperedCylinderShapeSettingsC1EffffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(96) %274, float noundef 5.000000e-01, float noundef 0x3FD99999A0000000, float noundef 0.000000e+00, float noundef 0.000000e+00, ptr noundef nonnull %276)
          to label %281 unwind label %725

281:                                              ; preds = %280
  %282 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %283 unwind label %.thread612

283:                                              ; preds = %281
  %284 = extractvalue { double, double } %282, 0
  %285 = extractvalue { double, double } %282, 1
  %286 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %287 unwind label %.thread612

287:                                              ; preds = %283
  %288 = extractvalue { double, double } %286, 0
  %289 = extractvalue { double, double } %286, 1
  %290 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %288, double %289, float noundef 0x3FF921FB60000000)
          to label %291 unwind label %.thread612

291:                                              ; preds = %287
  %292 = extractvalue { double, double } %290, 0
  %293 = extractvalue { double, double } %290, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %29, ptr noundef nonnull %274, double %284, double %285, double %292, double %293, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %294 unwind label %.thread612

294:                                              ; preds = %291
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %273, ptr noundef nonnull align 16 dereferenceable(256) %29)
          to label %295 unwind label %.thread605

295:                                              ; preds = %294
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %29) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %29) #10
  %296 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %31) #10
  %297 = invoke noundef ptr @_ZN3JPH18EmptyShapeSettingsnwEm(i64 noundef 80)
          to label %298 unwind label %727

298:                                              ; preds = %295
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(80) %297, i8 0, i64 80, i1 false)
  invoke void @_ZN3JPH18EmptyShapeSettingsC2Ev(ptr noundef nonnull align 16 dereferenceable(80) %297)
          to label %299 unwind label %729

299:                                              ; preds = %298
  %300 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %301 unwind label %727

301:                                              ; preds = %299
  %302 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %303 unwind label %727

303:                                              ; preds = %301
  %304 = extractvalue { double, double } %300, 1
  %305 = extractvalue { double, double } %300, 0
  %306 = extractvalue { double, double } %302, 0
  %307 = extractvalue { double, double } %302, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %31, ptr noundef nonnull %297, double %305, double %304, double %306, double %307, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %308 unwind label %727

308:                                              ; preds = %303
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %296, ptr noundef nonnull align 16 dereferenceable(256) %31)
          to label %309 unwind label %731

309:                                              ; preds = %308
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %31) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %31) #10
  %310 = invoke noundef ptr @_ZN3JPH27StaticCompoundShapeSettingsnwEm(i64 noundef 88)
          to label %311 unwind label %734

311:                                              ; preds = %309
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %310, i8 0, i64 88, i1 false)
  invoke void @_ZN3JPH27StaticCompoundShapeSettingsC2Ev(ptr noundef nonnull align 8 dereferenceable(88) %310)
          to label %312 unwind label %736

312:                                              ; preds = %311
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %32, float noundef 0.000000e+00, float noundef 5.000000e-01, float noundef 0.000000e+00)
          to label %313 unwind label %734

313:                                              ; preds = %312
  %314 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %315 unwind label %734

315:                                              ; preds = %313
  %316 = extractvalue { double, double } %314, 0
  %317 = extractvalue { double, double } %314, 1
  %318 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %316, double %317, float noundef 0x3FF921FB60000000)
          to label %319 unwind label %734

319:                                              ; preds = %315
  %320 = extractvalue { double, double } %318, 0
  %321 = extractvalue { double, double } %318, 1
  %322 = invoke noundef ptr @_ZN3JPH16BoxShapeSettingsnwEm(i64 noundef 112)
          to label %323 unwind label %734

323:                                              ; preds = %319
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %33, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, float noundef 0x3FC99999A0000000)
          to label %324 unwind label %738

324:                                              ; preds = %323
  %325 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %326 unwind label %738

326:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef @.str.9) #10
  %327 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %328 unwind label %740

328:                                              ; preds = %326
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %325, ptr noundef nonnull align 8 dereferenceable(16) %34, i32 %327)
          to label %329 unwind label %740

329:                                              ; preds = %328
  %330 = load double, ptr %33, align 16
  %331 = getelementptr inbounds i8, ptr %33, i64 8
  %332 = load double, ptr %331, align 8
  invoke void @_ZN3JPH16BoxShapeSettingsC2ENS_4Vec3EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(112) %322, double %330, double %332, float noundef 0x3FA99999A0000000, ptr noundef nonnull %325)
          to label %333 unwind label %.thread629

.thread629:                                       ; preds = %329
  %lpad.thr_comm.split-lp617631 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #10
  br label %.thread625

333:                                              ; preds = %329
  %334 = load double, ptr %32, align 16
  %335 = getelementptr inbounds i8, ptr %32, i64 8
  %336 = load double, ptr %335, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %310, double %334, double %336, double %320, double %321, ptr noundef nonnull %322, i32 noundef 0)
          to label %337 unwind label %741

337:                                              ; preds = %333
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #10
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %35, float noundef 5.000000e-01, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %338 unwind label %734

338:                                              ; preds = %337
  %339 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %340 unwind label %734

340:                                              ; preds = %338
  %341 = extractvalue { double, double } %339, 0
  %342 = extractvalue { double, double } %339, 1
  %343 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %341, double %342, float noundef 0x3FF921FB60000000)
          to label %344 unwind label %734

344:                                              ; preds = %340
  %345 = extractvalue { double, double } %343, 0
  %346 = extractvalue { double, double } %343, 1
  %347 = invoke noundef ptr @_ZN3JPH21CylinderShapeSettingsnwEm(i64 noundef 88)
          to label %348 unwind label %734

348:                                              ; preds = %344
  %349 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %350 unwind label %742

350:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef @.str.10) #10
  %351 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %352 unwind label %744

352:                                              ; preds = %350
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %349, ptr noundef nonnull align 8 dereferenceable(16) %36, i32 %351)
          to label %353 unwind label %744

353:                                              ; preds = %352
  invoke void @_ZN3JPH21CylinderShapeSettingsC2EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %347, float noundef 5.000000e-01, float noundef 0x3FC99999A0000000, float noundef 0x3FA99999A0000000, ptr noundef nonnull %349)
          to label %354 unwind label %.thread647

.thread647:                                       ; preds = %353
  %lpad.thr_comm.split-lp635649 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #10
  br label %.thread643

354:                                              ; preds = %353
  %355 = load double, ptr %35, align 16
  %356 = getelementptr inbounds i8, ptr %35, i64 8
  %357 = load double, ptr %356, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %310, double %355, double %357, double %345, double %346, ptr noundef nonnull %347, i32 noundef 0)
          to label %358 unwind label %745

358:                                              ; preds = %354
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #10
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %37, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 5.000000e-01)
          to label %359 unwind label %734

359:                                              ; preds = %358
  %360 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %361 unwind label %734

361:                                              ; preds = %359
  %362 = extractvalue { double, double } %360, 0
  %363 = extractvalue { double, double } %360, 1
  %364 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %362, double %363, float noundef 0x3FF921FB60000000)
          to label %365 unwind label %734

365:                                              ; preds = %361
  %366 = extractvalue { double, double } %364, 0
  %367 = extractvalue { double, double } %364, 1
  %368 = invoke noundef ptr @_ZN3JPH27TaperedCapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %369 unwind label %734

369:                                              ; preds = %365
  %370 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %371 unwind label %746

371:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef @.str.11) #10
  %372 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %373 unwind label %748

373:                                              ; preds = %371
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %370, ptr noundef nonnull align 8 dereferenceable(16) %38, i32 %372)
          to label %374 unwind label %748

374:                                              ; preds = %373
  invoke void @_ZN3JPH27TaperedCapsuleShapeSettingsC1EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %368, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, float noundef 0x3FC99999A0000000, ptr noundef nonnull %370)
          to label %375 unwind label %.thread665

.thread665:                                       ; preds = %374
  %lpad.thr_comm.split-lp653667 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #10
  br label %.thread661

375:                                              ; preds = %374
  %376 = load double, ptr %37, align 16
  %377 = getelementptr inbounds i8, ptr %37, i64 8
  %378 = load double, ptr %377, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %310, double %376, double %378, double %366, double %367, ptr noundef nonnull %368, i32 noundef 0)
          to label %379 unwind label %749

379:                                              ; preds = %375
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #10
  %380 = invoke noundef ptr @_ZN3JPH27StaticCompoundShapeSettingsnwEm(i64 noundef 88)
          to label %381 unwind label %750

381:                                              ; preds = %379
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %380, i8 0, i64 88, i1 false)
  invoke void @_ZN3JPH27StaticCompoundShapeSettingsC2Ev(ptr noundef nonnull align 8 dereferenceable(88) %380)
          to label %382 unwind label %752

382:                                              ; preds = %381
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %39, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %383 unwind label %750

383:                                              ; preds = %382
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #10
  %384 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %385 unwind label %754

385:                                              ; preds = %383
  %386 = extractvalue { double, double } %384, 0
  %387 = extractvalue { double, double } %384, 1
  %388 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %386, double %387, float noundef 0xBFE921FB60000000)
          to label %389 unwind label %754

389:                                              ; preds = %385
  %390 = extractvalue { double, double } %388, 0
  store double %390, ptr %40, align 16
  %391 = getelementptr inbounds i8, ptr %40, i64 8
  %392 = extractvalue { double, double } %388, 1
  store double %392, ptr %391, align 8
  %393 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %394 unwind label %754

394:                                              ; preds = %389
  %395 = extractvalue { double, double } %393, 0
  %396 = extractvalue { double, double } %393, 1
  %397 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %395, double %396, float noundef 0x3FE921FB60000000)
          to label %398 unwind label %754

398:                                              ; preds = %394
  %399 = extractvalue { double, double } %397, 0
  %400 = extractvalue { double, double } %397, 1
  %401 = invoke { double, double } @_ZNK3JPH4QuatmlES0_(ptr noundef nonnull align 16 dereferenceable(16) %40, double %399, double %400)
          to label %402 unwind label %754

402:                                              ; preds = %398
  %403 = extractvalue { double, double } %401, 0
  %404 = extractvalue { double, double } %401, 1
  %405 = load double, ptr %39, align 16
  %406 = getelementptr inbounds i8, ptr %39, i64 8
  %407 = load double, ptr %406, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %380, double %405, double %407, double %403, double %404, ptr noundef nonnull %310, i32 noundef 0)
          to label %408 unwind label %754

408:                                              ; preds = %402
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #10
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %41, float noundef 0.000000e+00, float noundef 0xBFB99999A0000000, float noundef 0.000000e+00)
          to label %409 unwind label %750

409:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #10
  %410 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %411 unwind label %756

411:                                              ; preds = %409
  %412 = extractvalue { double, double } %410, 0
  %413 = extractvalue { double, double } %410, 1
  %414 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %412, double %413, float noundef 0x3FE921FB60000000)
          to label %415 unwind label %756

415:                                              ; preds = %411
  %416 = extractvalue { double, double } %414, 0
  store double %416, ptr %42, align 16
  %417 = getelementptr inbounds i8, ptr %42, i64 8
  %418 = extractvalue { double, double } %414, 1
  store double %418, ptr %417, align 8
  %419 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %420 unwind label %756

420:                                              ; preds = %415
  %421 = extractvalue { double, double } %419, 0
  %422 = extractvalue { double, double } %419, 1
  %423 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %421, double %422, float noundef 0xC002D97C80000000)
          to label %424 unwind label %756

424:                                              ; preds = %420
  %425 = extractvalue { double, double } %423, 0
  %426 = extractvalue { double, double } %423, 1
  %427 = invoke { double, double } @_ZNK3JPH4QuatmlES0_(ptr noundef nonnull align 16 dereferenceable(16) %42, double %425, double %426)
          to label %428 unwind label %756

428:                                              ; preds = %424
  %429 = extractvalue { double, double } %427, 0
  %430 = extractvalue { double, double } %427, 1
  %431 = load double, ptr %41, align 16
  %432 = getelementptr inbounds i8, ptr %41, i64 8
  %433 = load double, ptr %432, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %380, double %431, double %433, double %429, double %430, ptr noundef nonnull %310, i32 noundef 0)
          to label %434 unwind label %756

434:                                              ; preds = %428
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #10
  %435 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %43) #10
  %436 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %437 unwind label %758

437:                                              ; preds = %434
  %438 = extractvalue { double, double } %436, 0
  %439 = extractvalue { double, double } %436, 1
  %440 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %441 unwind label %758

441:                                              ; preds = %437
  %442 = extractvalue { double, double } %440, 0
  %443 = extractvalue { double, double } %440, 1
  %444 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %442, double %443, float noundef 0x3FF921FB60000000)
          to label %445 unwind label %758

445:                                              ; preds = %441
  %446 = extractvalue { double, double } %444, 0
  %447 = extractvalue { double, double } %444, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %43, ptr noundef nonnull %380, double %438, double %439, double %446, double %447, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %448 unwind label %758

448:                                              ; preds = %445
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %435, ptr noundef nonnull align 16 dereferenceable(256) %43)
          to label %449 unwind label %760

449:                                              ; preds = %448
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %43) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %43) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %44) #10
  call void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #10
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %45, float noundef -5.000000e-01, float noundef 0.000000e+00, float noundef -5.000000e-01)
          to label %450 unwind label %763

450:                                              ; preds = %449
  invoke void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 16 dereferenceable(16) %45)
          to label %451 unwind label %763

451:                                              ; preds = %450
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #10
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %46, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 5.000000e-01)
          to label %452 unwind label %765

452:                                              ; preds = %451
  invoke void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 16 dereferenceable(16) %46)
          to label %453 unwind label %765

453:                                              ; preds = %452
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #10
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %47, float noundef 5.000000e-01, float noundef 0.000000e+00, float noundef -5.000000e-01)
          to label %454 unwind label %767

454:                                              ; preds = %453
  invoke void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 16 dereferenceable(16) %47)
          to label %455 unwind label %767

455:                                              ; preds = %454
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #10
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %48, float noundef 0.000000e+00, float noundef -5.000000e-01, float noundef 0.000000e+00)
          to label %456 unwind label %769

456:                                              ; preds = %455
  invoke void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 16 dereferenceable(16) %48)
          to label %457 unwind label %769

457:                                              ; preds = %456
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #10
  %458 = invoke noundef ptr @_ZN3JPH23ConvexHullShapeSettingsnwEm(i64 noundef 120)
          to label %459 unwind label %771

459:                                              ; preds = %457
  %460 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %461 unwind label %773

461:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef @.str.12) #10
  %462 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %463 unwind label %775

463:                                              ; preds = %461
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %460, ptr noundef nonnull align 8 dereferenceable(16) %50, i32 %462)
          to label %464 unwind label %775

464:                                              ; preds = %463
  invoke void @_ZN3JPH23ConvexHullShapeSettingsC2ERKNS_5ArrayINS_4Vec3ENS_12STLAllocatorIS2_EEEEfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(120) %458, ptr noundef nonnull align 8 dereferenceable(24) %44, float noundef 0x3FA99999A0000000, ptr noundef nonnull %460)
          to label %465 unwind label %.thread683

.thread683:                                       ; preds = %464
  %lpad.thr_comm.split-lp671685 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #10
  br label %.thread679

465:                                              ; preds = %464
  invoke void @_ZN3JPH3RefINS_23ConvexHullShapeSettingsEEC2EPS1_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull %458)
          to label %466 unwind label %776

466:                                              ; preds = %465
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #10
  %467 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %51) #10
  %468 = call noundef ptr @_ZNK3JPH3RefINS_23ConvexHullShapeSettingsEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %49)
  %469 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %470 unwind label %777

470:                                              ; preds = %466
  %471 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %472 unwind label %777

472:                                              ; preds = %470
  %473 = extractvalue { double, double } %469, 1
  %474 = extractvalue { double, double } %469, 0
  %475 = extractvalue { double, double } %471, 0
  %476 = extractvalue { double, double } %471, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %51, ptr noundef %468, double %474, double %473, double %475, double %476, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %477 unwind label %777

477:                                              ; preds = %472
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %467, ptr noundef nonnull align 16 dereferenceable(256) %51)
          to label %478 unwind label %779

478:                                              ; preds = %477
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %51) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %51) #10
  %479 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %52) #10
  %480 = invoke noundef ptr @_ZN3JPH30RotatedTranslatedShapeSettingsnwEm(i64 noundef 112)
          to label %481 unwind label %782

481:                                              ; preds = %478
  %482 = invoke { double, double } @_ZN3JPH4Vec310sReplicateEf(float noundef 5.000000e-01)
          to label %483 unwind label %784

483:                                              ; preds = %481
  %484 = extractvalue { double, double } %482, 0
  %485 = extractvalue { double, double } %482, 1
  %486 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %487 unwind label %784

487:                                              ; preds = %483
  %488 = extractvalue { double, double } %486, 0
  %489 = extractvalue { double, double } %486, 1
  %490 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %488, double %489, float noundef 0x3FE921FB60000000)
          to label %491 unwind label %784

491:                                              ; preds = %487
  %492 = extractvalue { double, double } %490, 0
  %493 = extractvalue { double, double } %490, 1
  %494 = call noundef ptr @_ZNK3JPH3RefINS_23ConvexHullShapeSettingsEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %49)
  invoke void @_ZN3JPH30RotatedTranslatedShapeSettingsC2ENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsE(ptr noundef nonnull align 16 dereferenceable(112) %480, double %484, double %485, double %492, double %493, ptr noundef %494)
          to label %495 unwind label %784

495:                                              ; preds = %491
  %496 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %497 unwind label %782

497:                                              ; preds = %495
  %498 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %499 unwind label %782

499:                                              ; preds = %497
  %500 = extractvalue { double, double } %496, 1
  %501 = extractvalue { double, double } %496, 0
  %502 = extractvalue { double, double } %498, 0
  %503 = extractvalue { double, double } %498, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %52, ptr noundef nonnull %480, double %501, double %500, double %502, double %503, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %504 unwind label %782

504:                                              ; preds = %499
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %479, ptr noundef nonnull align 16 dereferenceable(256) %52)
          to label %505 unwind label %786

505:                                              ; preds = %504
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %52) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %52) #10
  %506 = invoke noundef ptr @_ZN3JPH28MutableCompoundShapeSettingsnwEm(i64 noundef 88)
          to label %507 unwind label %789

507:                                              ; preds = %505
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %506, i8 0, i64 88, i1 false)
  invoke void @_ZN3JPH28MutableCompoundShapeSettingsC2Ev(ptr noundef nonnull align 8 dereferenceable(88) %506)
          to label %508 unwind label %791

508:                                              ; preds = %507
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %53, float noundef 0.000000e+00, float noundef 5.000000e-01, float noundef 0.000000e+00)
          to label %509 unwind label %789

509:                                              ; preds = %508
  %510 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %511 unwind label %789

511:                                              ; preds = %509
  %512 = extractvalue { double, double } %510, 0
  %513 = extractvalue { double, double } %510, 1
  %514 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %512, double %513, float noundef 0x3FF921FB60000000)
          to label %515 unwind label %789

515:                                              ; preds = %511
  %516 = extractvalue { double, double } %514, 0
  %517 = extractvalue { double, double } %514, 1
  %518 = invoke noundef ptr @_ZN3JPH16BoxShapeSettingsnwEm(i64 noundef 112)
          to label %519 unwind label %789

519:                                              ; preds = %515
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %54, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, float noundef 0x3FC99999A0000000)
          to label %520 unwind label %793

520:                                              ; preds = %519
  %521 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %522 unwind label %793

522:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %55) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %55, ptr noundef @.str.13) #10
  %523 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %524 unwind label %795

524:                                              ; preds = %522
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %521, ptr noundef nonnull align 8 dereferenceable(16) %55, i32 %523)
          to label %525 unwind label %795

525:                                              ; preds = %524
  %526 = load double, ptr %54, align 16
  %527 = getelementptr inbounds i8, ptr %54, i64 8
  %528 = load double, ptr %527, align 8
  invoke void @_ZN3JPH16BoxShapeSettingsC2ENS_4Vec3EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(112) %518, double %526, double %528, float noundef 0x3FA99999A0000000, ptr noundef nonnull %521)
          to label %529 unwind label %.thread701

.thread701:                                       ; preds = %525
  %lpad.thr_comm.split-lp689703 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %55) #10
  br label %.thread697

529:                                              ; preds = %525
  %530 = load double, ptr %53, align 16
  %531 = getelementptr inbounds i8, ptr %53, i64 8
  %532 = load double, ptr %531, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %506, double %530, double %532, double %516, double %517, ptr noundef nonnull %518, i32 noundef 0)
          to label %533 unwind label %796

533:                                              ; preds = %529
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %55) #10
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %56, float noundef 5.000000e-01, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %534 unwind label %789

534:                                              ; preds = %533
  %535 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %536 unwind label %789

536:                                              ; preds = %534
  %537 = extractvalue { double, double } %535, 0
  %538 = extractvalue { double, double } %535, 1
  %539 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %537, double %538, float noundef 0x3FF921FB60000000)
          to label %540 unwind label %789

540:                                              ; preds = %536
  %541 = extractvalue { double, double } %539, 0
  %542 = extractvalue { double, double } %539, 1
  %543 = invoke noundef ptr @_ZN3JPH20CapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %544 unwind label %789

544:                                              ; preds = %540
  %545 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %546 unwind label %797

546:                                              ; preds = %544
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %57) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef @.str.14) #10
  %547 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %548 unwind label %799

548:                                              ; preds = %546
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %545, ptr noundef nonnull align 8 dereferenceable(16) %57, i32 %547)
          to label %549 unwind label %799

549:                                              ; preds = %548
  invoke void @_ZN3JPH20CapsuleShapeSettingsC2EffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %543, float noundef 5.000000e-01, float noundef 0x3FB99999A0000000, ptr noundef nonnull %545)
          to label %550 unwind label %.thread719

.thread719:                                       ; preds = %549
  %lpad.thr_comm.split-lp707721 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #10
  br label %.thread715

550:                                              ; preds = %549
  %551 = load double, ptr %56, align 16
  %552 = getelementptr inbounds i8, ptr %56, i64 8
  %553 = load double, ptr %552, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %506, double %551, double %553, double %541, double %542, ptr noundef nonnull %543, i32 noundef 0)
          to label %554 unwind label %800

554:                                              ; preds = %550
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #10
  invoke void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16) %58, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 5.000000e-01)
          to label %555 unwind label %789

555:                                              ; preds = %554
  %556 = invoke { double, double } @_ZN3JPH4Vec36sAxisXEv()
          to label %557 unwind label %789

557:                                              ; preds = %555
  %558 = extractvalue { double, double } %556, 0
  %559 = extractvalue { double, double } %556, 1
  %560 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %558, double %559, float noundef 0x3FF921FB60000000)
          to label %561 unwind label %789

561:                                              ; preds = %557
  %562 = extractvalue { double, double } %560, 0
  %563 = extractvalue { double, double } %560, 1
  %564 = invoke noundef ptr @_ZN3JPH27TaperedCapsuleShapeSettingsnwEm(i64 noundef 88)
          to label %565 unwind label %789

565:                                              ; preds = %561
  %566 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %567 unwind label %801

567:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %59) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef @.str.15) #10
  %568 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %569 unwind label %803

569:                                              ; preds = %567
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %566, ptr noundef nonnull align 8 dereferenceable(16) %59, i32 %568)
          to label %570 unwind label %803

570:                                              ; preds = %569
  invoke void @_ZN3JPH27TaperedCapsuleShapeSettingsC1EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88) %564, float noundef 5.000000e-01, float noundef 0x3FC99999A0000000, float noundef 0x3FB99999A0000000, ptr noundef nonnull %566)
          to label %571 unwind label %.thread737

.thread737:                                       ; preds = %570
  %lpad.thr_comm.split-lp725739 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #10
  br label %.thread733

571:                                              ; preds = %570
  %572 = load double, ptr %58, align 16
  %573 = getelementptr inbounds i8, ptr %58, i64 8
  %574 = load double, ptr %573, align 8
  invoke void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88) %506, double %572, double %574, double %562, double %563, ptr noundef nonnull %564, i32 noundef 0)
          to label %575 unwind label %804

575:                                              ; preds = %571
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #10
  %576 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %60) #10
  %577 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %578 unwind label %805

578:                                              ; preds = %575
  %579 = extractvalue { double, double } %577, 0
  %580 = extractvalue { double, double } %577, 1
  %581 = invoke { double, double } @_ZN3JPH4Vec36sAxisZEv()
          to label %582 unwind label %805

582:                                              ; preds = %578
  %583 = extractvalue { double, double } %581, 0
  %584 = extractvalue { double, double } %581, 1
  %585 = invoke { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double %583, double %584, float noundef 0x3FF921FB60000000)
          to label %586 unwind label %805

586:                                              ; preds = %582
  %587 = extractvalue { double, double } %585, 0
  %588 = extractvalue { double, double } %585, 1
  invoke void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256) %60, ptr noundef nonnull %506, double %579, double %580, double %587, double %588, i8 noundef zeroext 2, i16 noundef zeroext 1)
          to label %589 unwind label %805

589:                                              ; preds = %586
  invoke void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %576, ptr noundef nonnull align 16 dereferenceable(256) %60)
          to label %590 unwind label %807

590:                                              ; preds = %589
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %60) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %60) #10
  %591 = invoke noundef ptr @_ZN3JPH26DistanceConstraintSettingsnwEm(i64 noundef 112)
          to label %592 unwind label %810

592:                                              ; preds = %590
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(112) %591, i8 0, i64 112, i1 false)
  invoke void @_ZN3JPH26DistanceConstraintSettingsC2Ev(ptr noundef nonnull align 16 dereferenceable(112) %591)
          to label %593 unwind label %812

593:                                              ; preds = %592
  %594 = getelementptr inbounds i8, ptr %591, i64 40
  store i32 0, ptr %594, align 8, !tbaa !11
  %595 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  invoke void @_ZN3JPH12PhysicsScene13AddConstraintEPKNS_25TwoBodyConstraintSettingsEjj(ptr noundef nonnull align 8 dereferenceable(80) %595, ptr noundef nonnull %591, i32 noundef 3, i32 noundef 4)
          to label %596 unwind label %810

596:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #10
  invoke void @_ZN3JPH22SoftBodySharedSettings11sCreateCubeEjf(ptr dead_on_unwind nonnull writable sret(%"class.JPH::Ref.48") align 8 %61, i32 noundef 5, float noundef 0x3FC99999A0000000)
          to label %597 unwind label %814

597:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #10
  %598 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %599 unwind label %816

599:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %63) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef @.str.16) #10
  %600 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %601 unwind label %820

601:                                              ; preds = %599
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %598, ptr noundef nonnull align 8 dereferenceable(16) %63, i32 %600)
          to label %602 unwind label %820

602:                                              ; preds = %601
  invoke void @_ZN3JPH8RefConstINS_15PhysicsMaterialEEC2EPKS1_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull %598)
          to label %603 unwind label %819

603:                                              ; preds = %602
  %604 = call noundef ptr @_ZNK3JPH3RefINS_22SoftBodySharedSettingsEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
  %605 = getelementptr inbounds i8, ptr %604, i64 200
  %606 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3JPH5ArrayINS_8RefConstINS_15PhysicsMaterialEEENS_12STLAllocatorIS3_EEEaSESt16initializer_listIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %605, ptr nonnull %62, i64 1)
          to label %607 unwind label %.thread740

607:                                              ; preds = %603
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %64) #10
  %608 = call noundef ptr @_ZNK3JPH3RefINS_22SoftBodySharedSettingsEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %61)
  %609 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %610 unwind label %822

610:                                              ; preds = %607
  %611 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %612 unwind label %822

612:                                              ; preds = %610
  %613 = extractvalue { double, double } %609, 1
  %614 = extractvalue { double, double } %609, 0
  %615 = extractvalue { double, double } %611, 0
  %616 = extractvalue { double, double } %611, 1
  invoke void @_ZN3JPH24SoftBodyCreationSettingsC2EPKNS_22SoftBodySharedSettingsENS_4Vec3ENS_4QuatEt(ptr noundef nonnull align 16 dereferenceable(111) %64, ptr noundef %608, double %614, double %613, double %615, double %616, i16 noundef zeroext 1)
          to label %617 unwind label %822

617:                                              ; preds = %612
  %618 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  invoke void @_ZN3JPH12PhysicsScene11AddSoftBodyERKNS_24SoftBodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %618, ptr noundef nonnull align 16 dereferenceable(111) %64)
          to label %619 unwind label %824

619:                                              ; preds = %617
  %620 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %621 unwind label %826

621:                                              ; preds = %619
  %622 = extractvalue { double, double } %620, 0
  %623 = extractvalue { double, double } %620, 1
  %624 = getelementptr inbounds i8, ptr %64, i64 16
  store double %622, ptr %624, align 16
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %64, i64 24
  store double %623, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !26
  %625 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  invoke void @_ZN3JPH12PhysicsScene11AddSoftBodyERKNS_24SoftBodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %625, ptr noundef nonnull align 16 dereferenceable(111) %64)
          to label %626 unwind label %824

626:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #10
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %66) #10
  call void @_ZN3JPH22SoftBodySharedSettings16VertexAttributesC2EfffNS0_8ELRATypeEf(ptr noundef nonnull align 4 dereferenceable(20) %66, float noundef 0x3F1A36E2E0000000, float noundef 0x3F1A36E2E0000000, float noundef 0x3F50624DE0000000, i32 noundef 0, float noundef 1.000000e+00)
  invoke void @_ZN15SoftBodyCreator12CreateSphereEfjjN3JPH22SoftBodySharedSettings9EBendTypeERKNS1_16VertexAttributesE(ptr dead_on_unwind nonnull writable sret(%"class.JPH::Ref.48") align 8 %65, float noundef 5.000000e-01, i32 noundef 10, i32 noundef 20, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(20) %66)
          to label %627 unwind label %828

627:                                              ; preds = %626
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %66) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #10
  %628 = invoke noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef 56)
          to label %629 unwind label %830

629:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef @.str.17) #10
  %630 = invoke i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %631 unwind label %834

631:                                              ; preds = %629
  invoke void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52) %628, ptr noundef nonnull align 8 dereferenceable(16) %68, i32 %630)
          to label %632 unwind label %834

632:                                              ; preds = %631
  invoke void @_ZN3JPH8RefConstINS_15PhysicsMaterialEEC2EPKS1_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull %628)
          to label %633 unwind label %833

633:                                              ; preds = %632
  %634 = call noundef ptr @_ZNK3JPH3RefINS_22SoftBodySharedSettingsEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %65)
  %635 = getelementptr inbounds i8, ptr %634, i64 200
  %636 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3JPH5ArrayINS_8RefConstINS_15PhysicsMaterialEEENS_12STLAllocatorIS3_EEEaSESt16initializer_listIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %635, ptr nonnull %67, i64 1)
          to label %637 unwind label %.thread751

637:                                              ; preds = %633
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %69) #10
  %638 = call noundef ptr @_ZNK3JPH3RefINS_22SoftBodySharedSettingsEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %65)
  %639 = invoke { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %640 unwind label %836

640:                                              ; preds = %637
  %641 = invoke { double, double } @_ZN3JPH4Quat9sIdentityEv()
          to label %642 unwind label %836

642:                                              ; preds = %640
  %643 = extractvalue { double, double } %639, 1
  %644 = extractvalue { double, double } %639, 0
  %645 = extractvalue { double, double } %641, 0
  %646 = extractvalue { double, double } %641, 1
  invoke void @_ZN3JPH24SoftBodyCreationSettingsC2EPKNS_22SoftBodySharedSettingsENS_4Vec3ENS_4QuatEt(ptr noundef nonnull align 16 dereferenceable(111) %69, ptr noundef %638, double %644, double %643, double %645, double %646, i16 noundef zeroext 1)
          to label %647 unwind label %836

647:                                              ; preds = %642
  %648 = getelementptr inbounds i8, ptr %69, i64 100
  store float 2.000000e+03, ptr %648, align 4, !tbaa !27
  %649 = call noundef ptr @_ZNK3JPH3RefINS_12PhysicsSceneEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
  invoke void @_ZN3JPH12PhysicsScene11AddSoftBodyERKNS_24SoftBodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80) %649, ptr noundef nonnull align 16 dereferenceable(111) %69)
          to label %650 unwind label %838

650:                                              ; preds = %647
  call void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111) %69) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %69) #10
  call void @_ZN3JPH3RefINS_22SoftBodySharedSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #10
  call void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111) %64) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %64) #10
  call void @_ZN3JPH3RefINS_22SoftBodySharedSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #10
  call void @_ZN3JPH3RefINS_23ConvexHullShapeSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #10
  call void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #10
  ret void

651:                                              ; preds = %83, %81, %80, %1
  %652 = landingpad { ptr, i32 }
          cleanup
  br label %657

653:                                              ; preds = %76, %75, %73
  %654 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH19ScaledShapeSettingsdlEPv(ptr noundef %72) #10
  br label %657

655:                                              ; preds = %89
  %656 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %6) #10
  br label %657

657:                                              ; preds = %655, %653, %651
  %.pn = phi { ptr, i32 } [ %656, %655 ], [ %652, %651 ], [ %654, %653 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %6) #10
  br label %850

658:                                              ; preds = %96, %94, %93, %90
  %659 = landingpad { ptr, i32 }
          cleanup
  br label %662

660:                                              ; preds = %102
  %661 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %9) #10
  br label %662

662:                                              ; preds = %660, %658
  %.pn331 = phi { ptr, i32 } [ %661, %660 ], [ %659, %658 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %9) #10
  br label %850

663:                                              ; preds = %103
  %664 = landingpad { ptr, i32 }
          cleanup
  br label %670

665:                                              ; preds = %109, %108, %107, %106
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %.thread419

.thread423:                                       ; preds = %137
  %667 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %11) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #10
  br label %670

668:                                              ; preds = %113, %111
  %lpad.thr_comm.split-lp = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %110) #10
  br label %.thread419

.thread430:                                       ; preds = %124, %126, %130, %134
  %lpad.thr_comm428 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #10
  br label %670

669:                                              ; preds = %114
  %lpad.thr_comm.split-lp429 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #10
  br label %.thread419

.thread419:                                       ; preds = %665, %668, %669
  %.pn333.pn422 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp429, %669 ], [ %666, %665 ], [ %lpad.thr_comm.split-lp, %668 ]
  call void @_ZN3JPH21TriangleShapeSettingsdlEPv(ptr noundef %105) #10
  br label %670

670:                                              ; preds = %.thread430, %.thread423, %.thread419, %663
  %.pn333.pn.pn = phi { ptr, i32 } [ %.pn333.pn422, %.thread419 ], [ %664, %663 ], [ %667, %.thread423 ], [ %lpad.thr_comm428, %.thread430 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %11) #10
  br label %850

671:                                              ; preds = %138
  %672 = landingpad { ptr, i32 }
          cleanup
  br label %678

673:                                              ; preds = %141
  %674 = landingpad { ptr, i32 }
          cleanup
  br label %.thread445

.thread449:                                       ; preds = %156
  %675 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %16) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #10
  br label %678

676:                                              ; preds = %145, %143
  %lpad.thr_comm.split-lp439 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %142) #10
  br label %.thread445

.thread456:                                       ; preds = %147, %149, %151
  %lpad.thr_comm454 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #10
  br label %678

677:                                              ; preds = %146
  %lpad.thr_comm.split-lp455 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #10
  br label %.thread445

.thread445:                                       ; preds = %673, %676, %677
  %.pn337.pn448 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp455, %677 ], [ %674, %673 ], [ %lpad.thr_comm.split-lp439, %676 ]
  call void @_ZN3JPH19SphereShapeSettingsdlEPv(ptr noundef %140) #10
  br label %678

678:                                              ; preds = %.thread456, %.thread449, %.thread445, %671
  %.pn337.pn.pn = phi { ptr, i32 } [ %.pn337.pn448, %.thread445 ], [ %672, %671 ], [ %675, %.thread449 ], [ %lpad.thr_comm454, %.thread456 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %16) #10
  br label %850

679:                                              ; preds = %157
  %680 = landingpad { ptr, i32 }
          cleanup
  br label %686

681:                                              ; preds = %161, %160
  %682 = landingpad { ptr, i32 }
          cleanup
  br label %.thread471

.thread475:                                       ; preds = %179
  %683 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %18) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #10
  br label %686

684:                                              ; preds = %165, %163
  %lpad.thr_comm.split-lp465 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %162) #10
  br label %.thread471

.thread482:                                       ; preds = %170, %172, %174
  %lpad.thr_comm480 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #10
  br label %686

685:                                              ; preds = %166
  %lpad.thr_comm.split-lp481 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #10
  br label %.thread471

.thread471:                                       ; preds = %681, %684, %685
  %.pn341.pn474 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp481, %685 ], [ %682, %681 ], [ %lpad.thr_comm.split-lp465, %684 ]
  call void @_ZN3JPH16BoxShapeSettingsdlEPv(ptr noundef %159) #10
  br label %686

686:                                              ; preds = %.thread482, %.thread475, %.thread471, %679
  %.pn341.pn.pn = phi { ptr, i32 } [ %.pn341.pn474, %.thread471 ], [ %680, %679 ], [ %683, %.thread475 ], [ %lpad.thr_comm480, %.thread482 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %18) #10
  br label %850

687:                                              ; preds = %180
  %688 = landingpad { ptr, i32 }
          cleanup
  br label %694

689:                                              ; preds = %183
  %690 = landingpad { ptr, i32 }
          cleanup
  br label %.thread497

.thread501:                                       ; preds = %202
  %691 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %21) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #10
  br label %694

692:                                              ; preds = %187, %185
  %lpad.thr_comm.split-lp491 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %184) #10
  br label %.thread497

.thread508:                                       ; preds = %189, %191, %195, %199
  %lpad.thr_comm506 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #10
  br label %694

693:                                              ; preds = %188
  %lpad.thr_comm.split-lp507 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #10
  br label %.thread497

.thread497:                                       ; preds = %689, %692, %693
  %.pn345.pn500 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp507, %693 ], [ %690, %689 ], [ %lpad.thr_comm.split-lp491, %692 ]
  call void @_ZN3JPH20CapsuleShapeSettingsdlEPv(ptr noundef %182) #10
  br label %694

694:                                              ; preds = %.thread508, %.thread501, %.thread497, %687
  %.pn345.pn.pn = phi { ptr, i32 } [ %.pn345.pn500, %.thread497 ], [ %688, %687 ], [ %691, %.thread501 ], [ %lpad.thr_comm506, %.thread508 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %21) #10
  br label %850

695:                                              ; preds = %203
  %696 = landingpad { ptr, i32 }
          cleanup
  br label %702

697:                                              ; preds = %206
  %698 = landingpad { ptr, i32 }
          cleanup
  br label %.thread523

.thread527:                                       ; preds = %225
  %699 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %23) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #10
  br label %702

700:                                              ; preds = %210, %208
  %lpad.thr_comm.split-lp517 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %207) #10
  br label %.thread523

.thread534:                                       ; preds = %212, %214, %218, %222
  %lpad.thr_comm532 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #10
  br label %702

701:                                              ; preds = %211
  %lpad.thr_comm.split-lp533 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #10
  br label %.thread523

.thread523:                                       ; preds = %697, %700, %701
  %.pn349.pn526 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp533, %701 ], [ %698, %697 ], [ %lpad.thr_comm.split-lp517, %700 ]
  call void @_ZN3JPH27TaperedCapsuleShapeSettingsdlEPv(ptr noundef %205) #10
  br label %702

702:                                              ; preds = %.thread534, %.thread527, %.thread523, %695
  %.pn349.pn.pn = phi { ptr, i32 } [ %.pn349.pn526, %.thread523 ], [ %696, %695 ], [ %699, %.thread527 ], [ %lpad.thr_comm532, %.thread534 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %23) #10
  br label %850

703:                                              ; preds = %226
  %704 = landingpad { ptr, i32 }
          cleanup
  br label %710

705:                                              ; preds = %229
  %706 = landingpad { ptr, i32 }
          cleanup
  br label %.thread549

.thread553:                                       ; preds = %248
  %707 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  br label %710

708:                                              ; preds = %233, %231
  %lpad.thr_comm.split-lp543 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %230) #10
  br label %.thread549

.thread560:                                       ; preds = %235, %237, %241, %245
  %lpad.thr_comm558 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  br label %710

709:                                              ; preds = %234
  %lpad.thr_comm.split-lp559 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  br label %.thread549

.thread549:                                       ; preds = %705, %708, %709
  %.pn353.pn552 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp559, %709 ], [ %706, %705 ], [ %lpad.thr_comm.split-lp543, %708 ]
  call void @_ZN3JPH21CylinderShapeSettingsdlEPv(ptr noundef %228) #10
  br label %710

710:                                              ; preds = %.thread560, %.thread553, %.thread549, %703
  %.pn353.pn.pn = phi { ptr, i32 } [ %.pn353.pn552, %.thread549 ], [ %704, %703 ], [ %707, %.thread553 ], [ %lpad.thr_comm558, %.thread560 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %25) #10
  br label %850

711:                                              ; preds = %249
  %712 = landingpad { ptr, i32 }
          cleanup
  br label %718

713:                                              ; preds = %252
  %714 = landingpad { ptr, i32 }
          cleanup
  br label %.thread575

.thread579:                                       ; preds = %271
  %715 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %27) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #10
  br label %718

716:                                              ; preds = %256, %254
  %lpad.thr_comm.split-lp569 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %253) #10
  br label %.thread575

.thread586:                                       ; preds = %258, %260, %264, %268
  %lpad.thr_comm584 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #10
  br label %718

717:                                              ; preds = %257
  %lpad.thr_comm.split-lp585 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #10
  br label %.thread575

.thread575:                                       ; preds = %713, %716, %717
  %.pn357.pn578 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp585, %717 ], [ %714, %713 ], [ %lpad.thr_comm.split-lp569, %716 ]
  call void @_ZN3JPH28TaperedCylinderShapeSettingsdlEPv(ptr noundef %251) #10
  br label %718

718:                                              ; preds = %.thread586, %.thread579, %.thread575, %711
  %.pn357.pn.pn = phi { ptr, i32 } [ %.pn357.pn578, %.thread575 ], [ %712, %711 ], [ %715, %.thread579 ], [ %lpad.thr_comm584, %.thread586 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %27) #10
  br label %850

719:                                              ; preds = %272
  %720 = landingpad { ptr, i32 }
          cleanup
  br label %726

721:                                              ; preds = %275
  %722 = landingpad { ptr, i32 }
          cleanup
  br label %.thread601

.thread605:                                       ; preds = %294
  %723 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %29) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  br label %726

724:                                              ; preds = %279, %277
  %lpad.thr_comm.split-lp595 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %276) #10
  br label %.thread601

.thread612:                                       ; preds = %281, %283, %287, %291
  %lpad.thr_comm610 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  br label %726

725:                                              ; preds = %280
  %lpad.thr_comm.split-lp611 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  br label %.thread601

.thread601:                                       ; preds = %721, %724, %725
  %.pn361.pn604 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp611, %725 ], [ %722, %721 ], [ %lpad.thr_comm.split-lp595, %724 ]
  call void @_ZN3JPH28TaperedCylinderShapeSettingsdlEPv(ptr noundef %274) #10
  br label %726

726:                                              ; preds = %.thread612, %.thread605, %.thread601, %719
  %.pn361.pn.pn = phi { ptr, i32 } [ %.pn361.pn604, %.thread601 ], [ %720, %719 ], [ %723, %.thread605 ], [ %lpad.thr_comm610, %.thread612 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %29) #10
  br label %850

727:                                              ; preds = %303, %301, %299, %295
  %728 = landingpad { ptr, i32 }
          cleanup
  br label %733

729:                                              ; preds = %298
  %730 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH18EmptyShapeSettingsdlEPv(ptr noundef nonnull %297) #10
  br label %733

731:                                              ; preds = %308
  %732 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %31) #10
  br label %733

733:                                              ; preds = %731, %729, %727
  %.pn365 = phi { ptr, i32 } [ %732, %731 ], [ %728, %727 ], [ %730, %729 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %31) #10
  br label %850

734:                                              ; preds = %365, %361, %359, %358, %344, %340, %338, %337, %319, %315, %313, %312, %309
  %735 = landingpad { ptr, i32 }
          cleanup
  br label %850

736:                                              ; preds = %311
  %737 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH27StaticCompoundShapeSettingsdlEPv(ptr noundef nonnull %310) #10
  br label %850

738:                                              ; preds = %324, %323
  %739 = landingpad { ptr, i32 }
          cleanup
  br label %.thread625

740:                                              ; preds = %328, %326
  %lpad.thr_comm = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %325) #10
  br label %.thread625

741:                                              ; preds = %333
  %lpad.thr_comm.split-lp617 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #10
  br label %850

.thread625:                                       ; preds = %738, %740, %.thread629
  %.pn367628 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp617631, %.thread629 ], [ %739, %738 ], [ %lpad.thr_comm, %740 ]
  call void @_ZN3JPH16BoxShapeSettingsdlEPv(ptr noundef %322) #10
  br label %850

742:                                              ; preds = %348
  %743 = landingpad { ptr, i32 }
          cleanup
  br label %.thread643

744:                                              ; preds = %352, %350
  %lpad.thr_comm634 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %349) #10
  br label %.thread643

745:                                              ; preds = %354
  %lpad.thr_comm.split-lp635 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #10
  br label %850

.thread643:                                       ; preds = %742, %744, %.thread647
  %.pn369646 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp635649, %.thread647 ], [ %743, %742 ], [ %lpad.thr_comm634, %744 ]
  call void @_ZN3JPH21CylinderShapeSettingsdlEPv(ptr noundef %347) #10
  br label %850

746:                                              ; preds = %369
  %747 = landingpad { ptr, i32 }
          cleanup
  br label %.thread661

748:                                              ; preds = %373, %371
  %lpad.thr_comm652 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %370) #10
  br label %.thread661

749:                                              ; preds = %375
  %lpad.thr_comm.split-lp653 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #10
  br label %850

.thread661:                                       ; preds = %746, %748, %.thread665
  %.pn371664 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp653667, %.thread665 ], [ %747, %746 ], [ %lpad.thr_comm652, %748 ]
  call void @_ZN3JPH27TaperedCapsuleShapeSettingsdlEPv(ptr noundef %368) #10
  br label %850

750:                                              ; preds = %408, %382, %379
  %751 = landingpad { ptr, i32 }
          cleanup
  br label %850

752:                                              ; preds = %381
  %753 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH27StaticCompoundShapeSettingsdlEPv(ptr noundef nonnull %380) #10
  br label %850

754:                                              ; preds = %402, %398, %394, %389, %385, %383
  %755 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #10
  br label %850

756:                                              ; preds = %428, %424, %420, %415, %411, %409
  %757 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #10
  br label %850

758:                                              ; preds = %445, %441, %437, %434
  %759 = landingpad { ptr, i32 }
          cleanup
  br label %762

760:                                              ; preds = %448
  %761 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %43) #10
  br label %762

762:                                              ; preds = %760, %758
  %.pn373 = phi { ptr, i32 } [ %761, %760 ], [ %759, %758 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %43) #10
  br label %850

763:                                              ; preds = %450, %449
  %764 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #10
  br label %849

765:                                              ; preds = %452, %451
  %766 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #10
  br label %849

767:                                              ; preds = %454, %453
  %768 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #10
  br label %849

769:                                              ; preds = %456, %455
  %770 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #10
  br label %849

771:                                              ; preds = %457
  %772 = landingpad { ptr, i32 }
          cleanup
  br label %848

773:                                              ; preds = %459
  %774 = landingpad { ptr, i32 }
          cleanup
  br label %.thread679

775:                                              ; preds = %463, %461
  %lpad.thr_comm670 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %460) #10
  br label %.thread679

776:                                              ; preds = %465
  %lpad.thr_comm.split-lp671 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #10
  br label %848

.thread679:                                       ; preds = %773, %775, %.thread683
  %.pn375682 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp671685, %.thread683 ], [ %774, %773 ], [ %lpad.thr_comm670, %775 ]
  call void @_ZN3JPH23ConvexHullShapeSettingsdlEPv(ptr noundef %458) #10
  br label %848

777:                                              ; preds = %472, %470, %466
  %778 = landingpad { ptr, i32 }
          cleanup
  br label %781

779:                                              ; preds = %477
  %780 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %51) #10
  br label %781

781:                                              ; preds = %779, %777
  %.pn377 = phi { ptr, i32 } [ %780, %779 ], [ %778, %777 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %51) #10
  br label %847

782:                                              ; preds = %499, %497, %495, %478
  %783 = landingpad { ptr, i32 }
          cleanup
  br label %788

784:                                              ; preds = %491, %487, %483, %481
  %785 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH30RotatedTranslatedShapeSettingsdlEPv(ptr noundef %480) #10
  br label %788

786:                                              ; preds = %504
  %787 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %52) #10
  br label %788

788:                                              ; preds = %786, %784, %782
  %.pn379 = phi { ptr, i32 } [ %787, %786 ], [ %783, %782 ], [ %785, %784 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %52) #10
  br label %847

789:                                              ; preds = %561, %557, %555, %554, %540, %536, %534, %533, %515, %511, %509, %508, %505
  %790 = landingpad { ptr, i32 }
          cleanup
  br label %847

791:                                              ; preds = %507
  %792 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH28MutableCompoundShapeSettingsdlEPv(ptr noundef nonnull %506) #10
  br label %847

793:                                              ; preds = %520, %519
  %794 = landingpad { ptr, i32 }
          cleanup
  br label %.thread697

795:                                              ; preds = %524, %522
  %lpad.thr_comm688 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %55) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %521) #10
  br label %.thread697

796:                                              ; preds = %529
  %lpad.thr_comm.split-lp689 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %55) #10
  br label %847

.thread697:                                       ; preds = %793, %795, %.thread701
  %.pn381700 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp689703, %.thread701 ], [ %794, %793 ], [ %lpad.thr_comm688, %795 ]
  call void @_ZN3JPH16BoxShapeSettingsdlEPv(ptr noundef %518) #10
  br label %847

797:                                              ; preds = %544
  %798 = landingpad { ptr, i32 }
          cleanup
  br label %.thread715

799:                                              ; preds = %548, %546
  %lpad.thr_comm706 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %545) #10
  br label %.thread715

800:                                              ; preds = %550
  %lpad.thr_comm.split-lp707 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #10
  br label %847

.thread715:                                       ; preds = %797, %799, %.thread719
  %.pn383718 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp707721, %.thread719 ], [ %798, %797 ], [ %lpad.thr_comm706, %799 ]
  call void @_ZN3JPH20CapsuleShapeSettingsdlEPv(ptr noundef %543) #10
  br label %847

801:                                              ; preds = %565
  %802 = landingpad { ptr, i32 }
          cleanup
  br label %.thread733

803:                                              ; preds = %569, %567
  %lpad.thr_comm724 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %566) #10
  br label %.thread733

804:                                              ; preds = %571
  %lpad.thr_comm.split-lp725 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #10
  br label %847

.thread733:                                       ; preds = %801, %803, %.thread737
  %.pn385736 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp725739, %.thread737 ], [ %802, %801 ], [ %lpad.thr_comm724, %803 ]
  call void @_ZN3JPH27TaperedCapsuleShapeSettingsdlEPv(ptr noundef %564) #10
  br label %847

805:                                              ; preds = %586, %582, %578, %575
  %806 = landingpad { ptr, i32 }
          cleanup
  br label %809

807:                                              ; preds = %589
  %808 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256) %60) #10
  br label %809

809:                                              ; preds = %807, %805
  %.pn387 = phi { ptr, i32 } [ %808, %807 ], [ %806, %805 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %60) #10
  br label %847

810:                                              ; preds = %593, %590
  %811 = landingpad { ptr, i32 }
          cleanup
  br label %847

812:                                              ; preds = %592
  %813 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH26DistanceConstraintSettingsdlEPv(ptr noundef nonnull %591) #10
  br label %847

814:                                              ; preds = %596
  %815 = landingpad { ptr, i32 }
          cleanup
  br label %846

816:                                              ; preds = %597
  %817 = landingpad { ptr, i32 }
          cleanup
  br label %821

.thread740:                                       ; preds = %603
  %818 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #10
  br label %821

819:                                              ; preds = %602
  %lpad.thr_comm.split-lp746 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #10
  br label %821

820:                                              ; preds = %601, %599
  %lpad.thr_comm745 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %598) #10
  br label %821

821:                                              ; preds = %819, %.thread740, %816, %820
  %.pn389.pn = phi { ptr, i32 } [ %lpad.thr_comm745, %820 ], [ %lpad.thr_comm.split-lp746, %819 ], [ %817, %816 ], [ %818, %.thread740 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #10
  br label %845

822:                                              ; preds = %612, %610, %607
  %823 = landingpad { ptr, i32 }
          cleanup
  br label %844

824:                                              ; preds = %621, %617
  %825 = landingpad { ptr, i32 }
          cleanup
  br label %843

826:                                              ; preds = %619
  %827 = landingpad { ptr, i32 }
          cleanup
  br label %843

828:                                              ; preds = %626
  %829 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %66) #10
  br label %842

830:                                              ; preds = %627
  %831 = landingpad { ptr, i32 }
          cleanup
  br label %835

.thread751:                                       ; preds = %633
  %832 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH8RefConstINS_15PhysicsMaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #10
  br label %835

833:                                              ; preds = %632
  %lpad.thr_comm.split-lp757 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #10
  br label %835

834:                                              ; preds = %631, %629
  %lpad.thr_comm756 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #10
  call void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef %628) #10
  br label %835

835:                                              ; preds = %833, %.thread751, %830, %834
  %.pn392.pn = phi { ptr, i32 } [ %lpad.thr_comm756, %834 ], [ %lpad.thr_comm.split-lp757, %833 ], [ %831, %830 ], [ %832, %.thread751 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #10
  br label %841

836:                                              ; preds = %642, %640, %637
  %837 = landingpad { ptr, i32 }
          cleanup
  br label %840

838:                                              ; preds = %647
  %839 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111) %69) #10
  br label %840

840:                                              ; preds = %838, %836
  %.pn395 = phi { ptr, i32 } [ %839, %838 ], [ %837, %836 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %69) #10
  br label %841

841:                                              ; preds = %840, %835
  %.pn395.pn = phi { ptr, i32 } [ %.pn395, %840 ], [ %.pn392.pn, %835 ]
  call void @_ZN3JPH3RefINS_22SoftBodySharedSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  br label %842

842:                                              ; preds = %841, %828
  %.pn395.pn.pn = phi { ptr, i32 } [ %.pn395.pn, %841 ], [ %829, %828 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #10
  br label %843

843:                                              ; preds = %842, %826, %824
  %.pn395.pn.pn.pn = phi { ptr, i32 } [ %.pn395.pn.pn, %842 ], [ %825, %824 ], [ %827, %826 ]
  call void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111) %64) #10
  br label %844

844:                                              ; preds = %843, %822
  %.pn395.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn395.pn.pn.pn, %843 ], [ %823, %822 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %64) #10
  br label %845

845:                                              ; preds = %844, %821
  %.pn395.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn395.pn.pn.pn.pn, %844 ], [ %.pn389.pn, %821 ]
  call void @_ZN3JPH3RefINS_22SoftBodySharedSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  br label %846

846:                                              ; preds = %845, %814
  %.pn395.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn395.pn.pn.pn.pn.pn, %845 ], [ %815, %814 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #10
  br label %847

847:                                              ; preds = %804, %800, %796, %789, %791, %809, %.thread697, %.thread715, %.thread733, %846, %812, %810, %788, %781
  %.pn395.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn379, %788 ], [ %.pn377, %781 ], [ %.pn387, %809 ], [ %.pn385736, %.thread733 ], [ %lpad.thr_comm.split-lp725, %804 ], [ %790, %789 ], [ %.pn383718, %.thread715 ], [ %lpad.thr_comm.split-lp707, %800 ], [ %.pn381700, %.thread697 ], [ %lpad.thr_comm.split-lp689, %796 ], [ %792, %791 ], [ %.pn395.pn.pn.pn.pn.pn.pn, %846 ], [ %811, %810 ], [ %813, %812 ]
  call void @_ZN3JPH3RefINS_23ConvexHullShapeSettingsEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #10
  br label %848

848:                                              ; preds = %776, %.thread679, %847, %771
  %.pn395.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn395.pn.pn.pn.pn.pn.pn.pn.pn.pn, %847 ], [ %.pn375682, %.thread679 ], [ %lpad.thr_comm.split-lp671, %776 ], [ %772, %771 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #10
  br label %849

849:                                              ; preds = %848, %769, %767, %765, %763
  %.pn395.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn395.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %848 ], [ %770, %769 ], [ %768, %767 ], [ %766, %765 ], [ %764, %763 ]
  call void @_ZN3JPH5ArrayINS_4Vec3ENS_12STLAllocatorIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #10
  br label %850

850:                                              ; preds = %749, %745, %741, %734, %736, %.thread625, %.thread643, %.thread661, %849, %762, %756, %754, %752, %750, %733, %726, %718, %710, %702, %694, %686, %678, %670, %662, %657
  %.pn395.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn365, %733 ], [ %.pn361.pn.pn, %726 ], [ %.pn357.pn.pn, %718 ], [ %.pn353.pn.pn, %710 ], [ %.pn349.pn.pn, %702 ], [ %.pn345.pn.pn, %694 ], [ %.pn341.pn.pn, %686 ], [ %.pn337.pn.pn, %678 ], [ %.pn333.pn.pn, %670 ], [ %.pn331, %662 ], [ %.pn, %657 ], [ %.pn371664, %.thread661 ], [ %lpad.thr_comm.split-lp653, %749 ], [ %735, %734 ], [ %.pn369646, %.thread643 ], [ %lpad.thr_comm.split-lp635, %745 ], [ %.pn367628, %.thread625 ], [ %lpad.thr_comm.split-lp617, %741 ], [ %737, %736 ], [ %.pn395.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %849 ], [ %.pn373, %762 ], [ %757, %756 ], [ %751, %750 ], [ %755, %754 ], [ %753, %752 ]
  call void @_ZN3JPH3RefINS_12PhysicsSceneEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #10
  resume { ptr, i32 } %.pn395.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN3JPH4Vec3C2Efff(ptr noundef nonnull align 16 dereferenceable(16), float noundef, float noundef, float noundef) unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH12PhysicsScenenwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

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

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

declare void @_ZN3JPH12PhysicsScene7AddBodyERKNS_20BodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 16 dereferenceable(256)) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH19ScaledShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL11sCreateMeshv() local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH19ScaledShapeSettingsC2EPKNS_13ShapeSettingsENS_4Vec3E(ptr noundef nonnull align 16 dereferenceable(96), ptr noundef, double, double) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH19ScaledShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Quat9sIdentityEv() local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH20BodyCreationSettingsC2EPKNS_13ShapeSettingsENS_4Vec3ENS_4QuatENS_11EMotionTypeEt(ptr noundef nonnull align 16 dereferenceable(256), ptr noundef, double, double, double, double, i8 noundef zeroext, i16 noundef zeroext) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH20BodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(256)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL18sCreateHeightFieldv() local_unnamed_addr #1

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH21TriangleShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH21PhysicsMaterialSimplenwEm(i64 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden i32 @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_0clEv"(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH21PhysicsMaterialSimpleC2ERKSt17basic_string_viewIcSt11char_traitsIcEENS_5ColorE(ptr noundef nonnull align 8 dereferenceable(52), ptr noundef nonnull align 8 dereferenceable(16), i32) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH21TriangleShapeSettingsC2ENS_4Vec3ES1_S1_fPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(144), double, double, double, double, double, double, float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden { double, double } @"_ZZN17LoadSaveSceneTest12sCreateSceneEvENK3$_1clEv"(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Quat9sRotationENS_4Vec3Ef(double, double, float noundef) local_unnamed_addr #3 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Vec36sAxisXEv() local_unnamed_addr #3 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH21PhysicsMaterialSimpledlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH21TriangleShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH19SphereShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH19SphereShapeSettingsC2EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(80), float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH19SphereShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH16BoxShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH16BoxShapeSettingsC2ENS_4Vec3EfPKNS_15PhysicsMaterialE(ptr noundef nonnull align 16 dereferenceable(112), double, double, float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH16BoxShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH20CapsuleShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH20CapsuleShapeSettingsC2EffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88), float noundef, float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH20CapsuleShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH27TaperedCapsuleShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

declare void @_ZN3JPH27TaperedCapsuleShapeSettingsC1EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88), float noundef, float noundef, float noundef, ptr noundef) unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Vec36sAxisZEv() local_unnamed_addr #3 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH27TaperedCapsuleShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH21CylinderShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH21CylinderShapeSettingsC2EfffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(88), float noundef, float noundef, float noundef, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH21CylinderShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH28TaperedCylinderShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

declare void @_ZN3JPH28TaperedCylinderShapeSettingsC1EffffPKNS_15PhysicsMaterialE(ptr noundef nonnull align 8 dereferenceable(96), float noundef, float noundef, float noundef, float noundef, ptr noundef) unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH28TaperedCylinderShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH18EmptyShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH18EmptyShapeSettingsC2Ev(ptr noundef nonnull align 16 dereferenceable(80)) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH18EmptyShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH27StaticCompoundShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH27StaticCompoundShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

declare void @_ZN3JPH21CompoundShapeSettings8AddShapeENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsEj(ptr noundef nonnull align 8 dereferenceable(88), double, double, double, double, ptr noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZNK3JPH4QuatmlES0_(ptr noundef nonnull align 16 dereferenceable(16), double, double) local_unnamed_addr #3 align 2

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH23ConvexHullShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH23ConvexHullShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH30RotatedTranslatedShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Vec310sReplicateEf(float noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH30RotatedTranslatedShapeSettingsC2ENS_4Vec3ENS_4QuatEPKNS_13ShapeSettingsE(ptr noundef nonnull align 16 dereferenceable(112), double, double, double, double, ptr noundef) unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH30RotatedTranslatedShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH28MutableCompoundShapeSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH28MutableCompoundShapeSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH26DistanceConstraintSettingsnwEm(i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3JPH26DistanceConstraintSettingsC2Ev(ptr noundef nonnull align 16 dereferenceable(112)) unnamed_addr #6 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH26DistanceConstraintSettingsdlEPv(ptr noundef) local_unnamed_addr #8 align 2

declare void @_ZN3JPH12PhysicsScene13AddConstraintEPKNS_25TwoBodyConstraintSettingsEjj(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

declare void @_ZN3JPH22SoftBodySharedSettings11sCreateCubeEjf(ptr dead_on_unwind writable sret(%"class.JPH::Ref.48") align 8, i32 noundef, float noundef) local_unnamed_addr #7

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH24SoftBodyCreationSettingsC2EPKNS_22SoftBodySharedSettingsENS_4Vec3ENS_4QuatEt(ptr noundef nonnull align 16 dereferenceable(111), ptr noundef, double, double, double, double, i16 noundef zeroext) unnamed_addr #1 align 2

declare void @_ZN3JPH12PhysicsScene11AddSoftBodyERKNS_24SoftBodyCreationSettingsE(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 16 dereferenceable(111)) local_unnamed_addr #7

declare void @_ZN15SoftBodyCreator12CreateSphereEfjjN3JPH22SoftBodySharedSettings9EBendTypeERKNS1_16VertexAttributesE(ptr dead_on_unwind writable sret(%"class.JPH::Ref.48") align 8, float noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(20)) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH24SoftBodyCreationSettingsD2Ev(ptr noundef nonnull align 16 dereferenceable(111)) unnamed_addr #5 align 2

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="128" "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 = { alwaysinline 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 nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="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 = { "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 #8 = { alwaysinline 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 #9 = { 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 #10 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !22, i64 40}
!12 = !{!"_ZTSN3JPH26DistanceConstraintSettingsE", !13, i64 0, !22, i64 40, !23, i64 48, !23, i64 64, !20, i64 80, !20, i64 84, !24, i64 88}
!13 = !{!"_ZTSN3JPH25TwoBodyConstraintSettingsE", !14, i64 0}
!14 = !{!"_ZTSN3JPH18ConstraintSettingsE", !15, i64 0, !16, i64 8, !19, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !20, i64 28, !21, i64 32}
!15 = !{!"_ZTSN3JPH18SerializableObjectE"}
!16 = !{!"_ZTSN3JPH9RefTargetINS_18ConstraintSettingsEEE", !17, i64 0}
!17 = !{!"_ZTSSt6atomicIjE", !18, i64 0}
!18 = !{!"_ZTSSt13__atomic_baseIjE", !6, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"float", !7, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"_ZTSN3JPH16EConstraintSpaceE", !7, i64 0}
!23 = !{!"_ZTSN3JPH4Vec3E", !7, i64 0}
!24 = !{!"_ZTSN3JPH14SpringSettingsE", !25, i64 0, !7, i64 4, !20, i64 8}
!25 = !{!"_ZTSN3JPH11ESpringModeE", !7, i64 0}
!26 = !{!7, !7, i64 0}
!27 = !{!28, !20, i64 100}
!28 = !{!"_ZTSN3JPH24SoftBodyCreationSettingsE", !29, i64 0, !23, i64 16, !30, i64 32, !21, i64 48, !32, i64 56, !33, i64 64, !6, i64 80, !20, i64 84, !20, i64 88, !20, i64 92, !20, i64 96, !20, i64 100, !20, i64 104, !19, i64 108, !19, i64 109, !19, i64 110}
!29 = !{!"_ZTSN3JPH8RefConstINS_22SoftBodySharedSettingsEEE", !10, i64 0}
!30 = !{!"_ZTSN3JPH4QuatE", !31, i64 0}
!31 = !{!"_ZTSN3JPH4Vec4E", !7, i64 0}
!32 = !{!"short", !7, i64 0}
!33 = !{!"_ZTSN3JPH14CollisionGroupE", !34, i64 0, !6, i64 8, !6, i64 12}
!34 = !{!"_ZTSN3JPH8RefConstINS_11GroupFilterEEE", !10, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,SROAPass,SimplifyCFGPass