; LLVM IR from Rendering-FIT/CADR :: examples/VulkanInfo (main)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%struct.VkFunc = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<vk::ExtensionProperties, std::allocator<vk::ExtensionProperties>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::ExtensionProperties, std::allocator<vk::ExtensionProperties>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::ExtensionProperties, std::allocator<vk::ExtensionProperties>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::ExtensionProperties, std::allocator<vk::ExtensionProperties>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.vk::Optional" = type { ptr }
%"class.vk::DispatchLoaderStatic" = type { i8 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<vk::LayerProperties, std::allocator<vk::LayerProperties>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::LayerProperties, std::allocator<vk::LayerProperties>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::LayerProperties, std::allocator<vk::LayerProperties>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::LayerProperties, std::allocator<vk::LayerProperties>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.5" = type { ptr }
%"class.std::vector.6" = type { %"struct.std::_Vector_base.7" }
%"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon = type { i8 }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.11" = type { i8 }
%"class.vk::UniqueHandle" = type { %"class.vk::ObjectDestroy", %"class.vk::Instance" }
%"class.vk::ObjectDestroy" = type { %"class.vk::Optional.14", ptr }
%"class.vk::Optional.14" = type { ptr }
%"class.vk::Instance" = type { ptr }
%"struct.vk::InstanceCreateInfo" = type { i32, ptr, %"class.vk::Flags", ptr, i32, ptr, i32, ptr }
%"class.vk::Flags" = type { i32 }
%"struct.vk::ApplicationInfo" = type { i32, ptr, ptr, i32, ptr, i32, i32 }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<vk::PhysicalDevice, std::allocator<vk::PhysicalDevice>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::PhysicalDevice, std::allocator<vk::PhysicalDevice>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::PhysicalDevice, std::allocator<vk::PhysicalDevice>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::PhysicalDevice, std::allocator<vk::PhysicalDevice>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.20" = type { ptr }
%"class.vk::PhysicalDevice" = type { ptr }
%"struct.vk::PhysicalDeviceProperties" = type <{ i32, i32, i32, i32, i32, %"class.vk::ArrayWrapper1D", %"class.vk::ArrayWrapper1D.21", [4 x i8], %"struct.vk::PhysicalDeviceLimits", %"struct.vk::PhysicalDeviceSparseProperties", [4 x i8] }>
%"class.vk::ArrayWrapper1D" = type { %"struct.std::array" }
%"struct.std::array" = type { [256 x i8] }
%"class.vk::ArrayWrapper1D.21" = type { %"struct.std::array.22" }
%"struct.std::array.22" = type { [16 x i8] }
%"struct.vk::PhysicalDeviceLimits" = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.vk::ArrayWrapper1D.23", i32, %"class.vk::ArrayWrapper1D.23", i32, i32, i32, i32, i32, float, float, i32, %"class.vk::ArrayWrapper1D.25", %"class.vk::ArrayWrapper1D.27", i32, i64, i64, i64, i64, i32, i32, i32, i32, float, float, i32, i32, i32, i32, %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", i32, %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", i32, i32, float, i32, i32, i32, i32, %"class.vk::ArrayWrapper1D.27", %"class.vk::ArrayWrapper1D.27", float, float, i32, i32, i64, i64, i64 }
%"class.vk::ArrayWrapper1D.23" = type { %"struct.std::array.24" }
%"struct.std::array.24" = type { [3 x i32] }
%"class.vk::ArrayWrapper1D.25" = type { %"struct.std::array.26" }
%"struct.std::array.26" = type { [2 x i32] }
%"class.vk::Flags.29" = type { i32 }
%"class.vk::ArrayWrapper1D.27" = type { %"struct.std::array.28" }
%"struct.std::array.28" = type { [2 x float] }
%"struct.vk::PhysicalDeviceSparseProperties" = type { i32, i32, i32, i32, i32 }
%"struct.vk::PhysicalDeviceProperties2" = type { i32, ptr, %"struct.vk::PhysicalDeviceProperties" }
%"struct.vk::PhysicalDeviceDriverProperties" = type { i32, ptr, i32, %"class.vk::ArrayWrapper1D", %"class.vk::ArrayWrapper1D", %"struct.vk::ConformanceVersion" }
%"struct.vk::ConformanceVersion" = type { i8, i8, i8, i8 }
%"struct.vk::PhysicalDevicePCIBusInfoPropertiesEXT" = type { i32, ptr, i32, i32, i32, i32 }
%"class.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = type { %"struct.std::_Vector_base<vk::QueueFamilyProperties, std::allocator<vk::QueueFamilyProperties>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::QueueFamilyProperties, std::allocator<vk::QueueFamilyProperties>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::QueueFamilyProperties, std::allocator<vk::QueueFamilyProperties>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::QueueFamilyProperties, std::allocator<vk::QueueFamilyProperties>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.vk::Flags.35" = type { i32 }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<vk::DisplayPropertiesKHR, std::allocator<vk::DisplayPropertiesKHR>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::DisplayPropertiesKHR, std::allocator<vk::DisplayPropertiesKHR>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::DisplayPropertiesKHR, std::allocator<vk::DisplayPropertiesKHR>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::DisplayPropertiesKHR, std::allocator<vk::DisplayPropertiesKHR>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.41" = type { ptr }
%"struct.vk::ExtensionProperties" = type { %"class.vk::ArrayWrapper1D", i32 }
%"struct.vk::LayerProperties" = type { %"class.vk::ArrayWrapper1D", i32, i32, %"class.vk::ArrayWrapper1D" }
%"struct.vk::QueueFamilyProperties" = type { %"class.vk::Flags.35", i32, i32, %"struct.vk::Extent3D" }
%"struct.vk::Extent3D" = type { i32, i32, i32 }
%"struct.vk::DisplayPropertiesKHR" = type <{ %"class.vk::DisplayKHR", ptr, %"struct.vk::Extent2D", %"struct.vk::Extent2D", %"class.vk::Flags.42", i32, i32, [4 x i8] }>
%"class.vk::DisplayKHR" = type { ptr }
%"struct.vk::Extent2D" = type { i32, i32 }
%"class.vk::Flags.42" = type { i32 }

@_ZTIN2vk5ErrorE = external dso_local constant { ptr, ptr }, align 8
@_ZTISt9exception = external constant ptr
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 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
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [37 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %struct.VkFunc, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::vector", align 8
  %11 = alloca %"class.vk::Optional", align 8
  %12 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %13 = alloca ptr, align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %16 = alloca ptr, align 8
  %17 = alloca %"class.std::vector.0", align 8
  %18 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %19 = alloca ptr, align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"class.std::vector.6", align 8
  %24 = alloca %class.anon, align 1
  %25 = alloca i8, align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator.11", align 1
  %28 = alloca i8, align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.11", align 1
  %31 = alloca %"class.vk::UniqueHandle", align 8
  %32 = alloca %"struct.vk::InstanceCreateInfo", align 8
  %33 = alloca %"class.vk::Flags", align 4
  %34 = alloca %"struct.vk::ApplicationInfo", align 8
  %35 = alloca %"class.vk::Optional.14", align 8
  %36 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %37 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %38 = alloca %"class.std::vector.15", align 8
  %39 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %40 = alloca ptr, align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.20", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.20", align 8
  %43 = alloca i32, align 4
  %44 = alloca %"class.vk::PhysicalDevice", align 8
  %45 = alloca %"struct.vk::PhysicalDeviceProperties", align 8
  %46 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %47 = alloca %"class.std::vector", align 8
  %48 = alloca %"class.vk::Optional", align 8
  %49 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %50 = alloca %"struct.vk::PhysicalDeviceProperties2", align 8
  %51 = alloca %"struct.vk::PhysicalDeviceProperties", align 8
  %52 = alloca %"struct.std::array", align 1
  %53 = alloca %"struct.std::array.22", align 1
  %54 = alloca %"struct.vk::PhysicalDeviceLimits", align 8
  %55 = alloca %"struct.std::array.24", align 4
  %56 = alloca %"struct.std::array.24", align 4
  %57 = alloca %"struct.std::array.26", align 4
  %58 = alloca %"struct.std::array.28", align 4
  %59 = alloca %"class.vk::Flags.29", align 4
  %60 = alloca %"class.vk::Flags.29", align 4
  %61 = alloca %"class.vk::Flags.29", align 4
  %62 = alloca %"class.vk::Flags.29", align 4
  %63 = alloca %"class.vk::Flags.29", align 4
  %64 = alloca %"class.vk::Flags.29", align 4
  %65 = alloca %"class.vk::Flags.29", align 4
  %66 = alloca %"class.vk::Flags.29", align 4
  %67 = alloca %"class.vk::Flags.29", align 4
  %68 = alloca %"struct.std::array.28", align 4
  %69 = alloca %"struct.std::array.28", align 4
  %70 = alloca %"struct.vk::PhysicalDeviceSparseProperties", align 8
  %71 = alloca %"struct.vk::PhysicalDeviceDriverProperties", align 8
  %72 = alloca %"struct.std::array", align 1
  %73 = alloca %"struct.std::array", align 1
  %74 = alloca %"struct.vk::ConformanceVersion", align 1
  %75 = alloca i8, align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator.11", align 1
  %78 = alloca %"struct.vk::PhysicalDevicePCIBusInfoPropertiesEXT", align 8
  %79 = alloca i8, align 1
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::allocator.11", align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::vector.30", align 8
  %84 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca ptr, align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.vk::Flags.35", align 4
  %90 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %91 = alloca %"class.std::vector.36", align 8
  %92 = alloca ptr, align 8
  %93 = alloca %"class.__gnu_cxx::__normal_iterator.41", align 8
  %94 = alloca %"class.__gnu_cxx::__normal_iterator.41", align 8
  %95 = alloca ptr, align 8
  %96 = alloca ptr, align 8
  %97 = alloca ptr, align 8
  %98 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %99 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %100 = alloca ptr, align 8
  %101 = alloca ptr, align 8
  %102 = alloca ptr, align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %6) #13
  call void @_ZZ4mainEN6VkFuncC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #13
  %103 = getelementptr inbounds %struct.VkFunc, ptr %6, i32 0, i32 0
  %104 = load ptr, ptr %103, align 8, !tbaa !11
  %105 = icmp eq ptr %104, null
  br i1 %105, label %106, label %107

106:                                              ; preds = %2
  br label %110

107:                                              ; preds = %2
  %108 = invoke noundef i32 @_ZN2vk24enumerateInstanceVersionIZ4mainE6VkFuncEEjRKT_(ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %109 unwind label %159

109:                                              ; preds = %107
  br label %110

110:                                              ; preds = %109, %106
  %111 = phi i32 [ 4194304, %106 ], [ %108, %109 ]
  store i32 %111, ptr %7, align 4, !tbaa !5
  %112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str)
          to label %113 unwind label %159

113:                                              ; preds = %110
  %114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %115 unwind label %159

115:                                              ; preds = %113
  %116 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.1)
          to label %117 unwind label %159

117:                                              ; preds = %115
  %118 = load i32, ptr %7, align 4, !tbaa !5
  %119 = lshr i32 %118, 22
  %120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %116, i32 noundef %119)
          to label %121 unwind label %159

121:                                              ; preds = %117
  %122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %120, ptr noundef @.str.2)
          to label %123 unwind label %159

123:                                              ; preds = %121
  %124 = load i32, ptr %7, align 4, !tbaa !5
  %125 = lshr i32 %124, 12
  %126 = and i32 %125, 1023
  %127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %122, i32 noundef %126)
          to label %128 unwind label %159

128:                                              ; preds = %123
  %129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %127, ptr noundef @.str.2)
          to label %130 unwind label %159

130:                                              ; preds = %128
  %131 = load i32, ptr %7, align 4, !tbaa !5
  %132 = and i32 %131, 4095
  %133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %129, i32 noundef %132)
          to label %134 unwind label %159

134:                                              ; preds = %130
  %135 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef @.str.3)
          to label %136 unwind label %159

136:                                              ; preds = %134
  %137 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %135, i32 noundef 154)
          to label %138 unwind label %159

138:                                              ; preds = %136
  %139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef @.str.4)
          to label %140 unwind label %159

140:                                              ; preds = %138
  %141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %142 unwind label %159

142:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #13
  call void @_ZN2vk8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr null) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #13
  %143 = getelementptr inbounds %"class.vk::Optional", ptr %11, i32 0, i32 0
  %144 = load ptr, ptr %143, align 8
  invoke void @_ZN2vk36enumerateInstanceExtensionPropertiesISaINS_19ExtensionPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS1_T_EE4typeENS_8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT0_(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %10, ptr %144, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %145 unwind label %163

145:                                              ; preds = %142
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #13
  %146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.5)
          to label %147 unwind label %167

147:                                              ; preds = %145
  %148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %149 unwind label %167

149:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #13
  store ptr %10, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #13
  %150 = load ptr, ptr %13, align 8, !tbaa !9
  %151 = call ptr @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %150) #13
  %152 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %14, i32 0, i32 0
  store ptr %151, ptr %152, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #13
  %153 = load ptr, ptr %13, align 8, !tbaa !9
  %154 = call ptr @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #13
  %155 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %15, i32 0, i32 0
  store ptr %154, ptr %155, align 8
  br label %156

156:                                              ; preds = %191, %149
  %157 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #13
  br i1 %157, label %171, label %158

158:                                              ; preds = %156
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #13
  br label %197

159:                                              ; preds = %140, %138, %136, %134, %130, %128, %123, %121, %117, %115, %113, %110, %107
  %160 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %8, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %9, align 4
  br label %865

163:                                              ; preds = %142
  %164 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %8, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #13
  br label %864

167:                                              ; preds = %147, %145
  %168 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %8, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %9, align 4
  br label %863

171:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #13
  %172 = call noundef nonnull align 4 dereferenceable(260) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #13
  store ptr %172, ptr %16, align 8, !tbaa !9
  %173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.6)
          to label %174 unwind label %193

174:                                              ; preds = %171
  %175 = load ptr, ptr %16, align 8, !tbaa !9
  %176 = getelementptr inbounds %"struct.vk::ExtensionProperties", ptr %175, i32 0, i32 0
  %177 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %176) #13
  %178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %173, ptr noundef %177)
          to label %179 unwind label %193

179:                                              ; preds = %174
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %178, ptr noundef @.str.7)
          to label %181 unwind label %193

181:                                              ; preds = %179
  %182 = load ptr, ptr %16, align 8, !tbaa !9
  %183 = getelementptr inbounds %"struct.vk::ExtensionProperties", ptr %182, i32 0, i32 1
  %184 = load i32, ptr %183, align 4, !tbaa !13
  %185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %180, i32 noundef %184)
          to label %186 unwind label %193

186:                                              ; preds = %181
  %187 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %185, ptr noundef @.str.4)
          to label %188 unwind label %193

188:                                              ; preds = %186
  %189 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %187, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %190 unwind label %193

190:                                              ; preds = %188
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #13
  br label %191

191:                                              ; preds = %190
  %192 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #13
  br label %156

193:                                              ; preds = %188, %186, %181, %179, %174, %171
  %194 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %8, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #13
  br label %863

197:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #13
  invoke void @_ZN2vk32enumerateInstanceLayerPropertiesISaINS_15LayerPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS1_T_EE4typeERKT0_(ptr dead_on_unwind writable sret(%"class.std::vector.0") align 8 %17, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %198 unwind label %212

198:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #13
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.8)
          to label %200 unwind label %216

200:                                              ; preds = %198
  %201 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %199, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %202 unwind label %216

202:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #13
  store ptr %17, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #13
  %203 = load ptr, ptr %19, align 8, !tbaa !9
  %204 = call ptr @_ZNSt6vectorIN2vk15LayerPropertiesESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %203) #13
  %205 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.5", ptr %20, i32 0, i32 0
  store ptr %204, ptr %205, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #13
  %206 = load ptr, ptr %19, align 8, !tbaa !9
  %207 = call ptr @_ZNSt6vectorIN2vk15LayerPropertiesESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #13
  %208 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.5", ptr %21, i32 0, i32 0
  store ptr %207, ptr %208, align 8
  br label %209

209:                                              ; preds = %240, %202
  %210 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk15LayerPropertiesESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #13
  br i1 %210, label %220, label %211

211:                                              ; preds = %209
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #13
  br label %246

212:                                              ; preds = %197
  %213 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %8, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #13
  br label %862

216:                                              ; preds = %200, %198
  %217 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %8, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %9, align 4
  br label %861

220:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #13
  %221 = call noundef nonnull align 4 dereferenceable(520) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk15LayerPropertiesESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #13
  store ptr %221, ptr %22, align 8, !tbaa !9
  %222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.6)
          to label %223 unwind label %242

223:                                              ; preds = %220
  %224 = load ptr, ptr %22, align 8, !tbaa !9
  %225 = getelementptr inbounds %"struct.vk::LayerProperties", ptr %224, i32 0, i32 0
  %226 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %225) #13
  %227 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef %226)
          to label %228 unwind label %242

228:                                              ; preds = %223
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %227, ptr noundef @.str.7)
          to label %230 unwind label %242

230:                                              ; preds = %228
  %231 = load ptr, ptr %22, align 8, !tbaa !9
  %232 = getelementptr inbounds %"struct.vk::LayerProperties", ptr %231, i32 0, i32 1
  %233 = load i32, ptr %232, align 4, !tbaa !17
  %234 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %229, i32 noundef %233)
          to label %235 unwind label %242

235:                                              ; preds = %230
  %236 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %234, ptr noundef @.str.4)
          to label %237 unwind label %242

237:                                              ; preds = %235
  %238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %236, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %239 unwind label %242

239:                                              ; preds = %237
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #13
  br label %240

240:                                              ; preds = %239
  %241 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk15LayerPropertiesESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #13
  br label %209

242:                                              ; preds = %237, %235, %230, %228, %223, %220
  %243 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %8, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #13
  br label %861

246:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #13
  call void @_ZNSt6vectorIPKcSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %247 unwind label %260

247:                                              ; preds = %246
  %248 = invoke noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %249 unwind label %264

249:                                              ; preds = %247
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #13
  %250 = zext i1 %248 to i8
  store i8 %250, ptr %25, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %251 unwind label %269

251:                                              ; preds = %249
  %252 = invoke noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %253 unwind label %273

253:                                              ; preds = %251
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #13
  %254 = zext i1 %252 to i8
  store i8 %254, ptr %28, align 1, !tbaa !19
  %255 = load i8, ptr %25, align 1, !tbaa !19, !range !21, !noundef !22
  %256 = trunc i8 %255 to i1
  br i1 %256, label %257, label %282

257:                                              ; preds = %253
  %258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJRA39_S0_EEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 1 dereferenceable(39) @.str.9)
          to label %259 unwind label %278

259:                                              ; preds = %257
  br label %282

260:                                              ; preds = %246
  %261 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %8, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %9, align 4
  br label %268

264:                                              ; preds = %247
  %265 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %8, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  br label %268

268:                                              ; preds = %264, %260
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #13
  br label %860

269:                                              ; preds = %249
  %270 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %8, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %9, align 4
  br label %277

273:                                              ; preds = %251
  %274 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %8, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #13
  br label %277

277:                                              ; preds = %273, %269
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #13
  br label %859

278:                                              ; preds = %287, %285, %257
  %279 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %8, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %9, align 4
  br label %859

282:                                              ; preds = %259, %253
  %283 = load i8, ptr %28, align 1, !tbaa !19, !range !21, !noundef !22
  %284 = trunc i8 %283 to i1
  br i1 %284, label %285, label %290

285:                                              ; preds = %282
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJRA15_S0_EEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 1 dereferenceable(15) @.str.10)
          to label %287 unwind label %278

287:                                              ; preds = %285
  %288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJRA15_S0_EEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 1 dereferenceable(15) @.str.11)
          to label %289 unwind label %278

289:                                              ; preds = %287
  br label %290

290:                                              ; preds = %289, %282
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #13
  call void @llvm.lifetime.start.p0(i64 64, ptr %32) #13
  call void @_ZN2vk5FlagsINS_22InstanceCreateFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %33) #13
  call void @llvm.lifetime.start.p0(i64 48, ptr %34) #13
  call void @_ZN2vk15ApplicationInfoC2EPKcjS2_jj(ptr noundef nonnull align 8 dereferenceable(48) %34, ptr noundef @.str.12, i32 noundef 0, ptr noundef null, i32 noundef 0, i32 noundef 4194304) #13
  %291 = call noundef i64 @_ZNKSt6vectorIPKcSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #13
  %292 = trunc i64 %291 to i32
  %293 = call noundef ptr @_ZNSt6vectorIPKcSaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #13
  call void @_ZN2vk18InstanceCreateInfoC2ENS_5FlagsINS_22InstanceCreateFlagBitsEEEPKNS_15ApplicationInfoEjPKPKcjSA_(ptr noundef nonnull align 8 dereferenceable(64) %32, ptr noundef %33, ptr noundef %34, i32 noundef 0, ptr noundef null, i32 noundef %292, ptr noundef %293) #13
  call void @_ZN2vk8OptionalIKNS_19AllocationCallbacksEEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr null) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #13
  %294 = getelementptr inbounds %"class.vk::Optional.14", ptr %35, i32 0, i32 0
  %295 = load ptr, ptr %294, align 8
  invoke void @_ZN2vk20createInstanceUniqueINS_20DispatchLoaderStaticEEENS_15ResultValueTypeINS_12UniqueHandleINS_8InstanceET_EEE4typeERKNS_18InstanceCreateInfoENS_8OptionalIKNS_19AllocationCallbacksEEERKS5_(ptr dead_on_unwind writable sret(%"class.vk::UniqueHandle") align 8 %31, ptr noundef nonnull align 8 dereferenceable(64) %32, ptr %295, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %296 unwind label %315

296:                                              ; preds = %290
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #13
  call void @llvm.lifetime.end.p0(i64 64, ptr %32) #13
  %297 = call noundef ptr @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEEptEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #13
  %298 = call noundef ptr @_ZNK2vk8Instance11getProcAddrINS_20DispatchLoaderStaticEEEPFvvEPKcRKT_(ptr noundef nonnull align 8 dereferenceable(8) %297, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %37) #13
  %299 = getelementptr inbounds %struct.VkFunc, ptr %6, i32 0, i32 1
  store ptr %298, ptr %299, align 8, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #13
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #13
  %300 = call noundef ptr @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEEptEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #13
  invoke void @_ZNK2vk8Instance24enumeratePhysicalDevicesISaINS_14PhysicalDeviceEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeERKT0_(ptr dead_on_unwind writable sret(%"class.std::vector.15") align 8 %38, ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %301 unwind label %319

301:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #13
  %302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.14)
          to label %303 unwind label %323

303:                                              ; preds = %301
  %304 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %305 unwind label %323

305:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #13
  store ptr %38, ptr %40, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #13
  %306 = load ptr, ptr %40, align 8, !tbaa !9
  %307 = call ptr @_ZNSt6vectorIN2vk14PhysicalDeviceESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %306) #13
  %308 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.20", ptr %41, i32 0, i32 0
  store ptr %307, ptr %308, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #13
  %309 = load ptr, ptr %40, align 8, !tbaa !9
  %310 = call ptr @_ZNSt6vectorIN2vk14PhysicalDeviceESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %309) #13
  %311 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.20", ptr %42, i32 0, i32 0
  store ptr %310, ptr %311, align 8
  br label %312

312:                                              ; preds = %847, %305
  %313 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk14PhysicalDeviceESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #13
  br i1 %313, label %327, label %314

314:                                              ; preds = %312
  store i32 6, ptr %43, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #13
  br label %855

315:                                              ; preds = %290
  %316 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %8, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #13
  call void @llvm.lifetime.end.p0(i64 64, ptr %32) #13
  br label %858

319:                                              ; preds = %296
  %320 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %8, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #13
  br label %857

323:                                              ; preds = %303, %301
  %324 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %8, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %9, align 4
  br label %856

327:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #13
  %328 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk14PhysicalDeviceESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #13
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %44, ptr align 8 %328, i64 8, i1 false), !tbaa.struct !24
  call void @llvm.lifetime.start.p0(i64 824, ptr %45) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #13
  call void @_ZNK2vk14PhysicalDevice13getPropertiesINS_20DispatchLoaderStaticEEENS_24PhysicalDevicePropertiesERKT_(ptr dead_on_unwind writable sret(%"struct.vk::PhysicalDeviceProperties") align 8 %45, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 1 dereferenceable(1) %46) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #13
  %329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
          to label %330 unwind label %447

330:                                              ; preds = %327
  %331 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 5
  %332 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %331) #13
  %333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %329, ptr noundef %332)
          to label %334 unwind label %447

334:                                              ; preds = %330
  %335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %333, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %336 unwind label %447

336:                                              ; preds = %334
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.16)
          to label %338 unwind label %447

338:                                              ; preds = %336
  %339 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 0
  %340 = load i32, ptr %339, align 8, !tbaa !25
  %341 = lshr i32 %340, 22
  %342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %337, i32 noundef %341)
          to label %343 unwind label %447

343:                                              ; preds = %338
  %344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %342, ptr noundef @.str.2)
          to label %345 unwind label %447

345:                                              ; preds = %343
  %346 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 0
  %347 = load i32, ptr %346, align 8, !tbaa !25
  %348 = lshr i32 %347, 12
  %349 = and i32 %348, 1023
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %344, i32 noundef %349)
          to label %351 unwind label %447

351:                                              ; preds = %345
  %352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef @.str.2)
          to label %353 unwind label %447

353:                                              ; preds = %351
  %354 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 0
  %355 = load i32, ptr %354, align 8, !tbaa !25
  %356 = and i32 %355, 4095
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %352, i32 noundef %356)
          to label %358 unwind label %447

358:                                              ; preds = %353
  %359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %357, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %360 unwind label %447

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

362:                                              ; preds = %360
  %363 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %361, ptr noundef @_ZSt3hexRSt8ios_base)
          to label %364 unwind label %447

364:                                              ; preds = %362
  %365 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 1
  %366 = load i32, ptr %365, align 4, !tbaa !41
  %367 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %363, i32 noundef %366)
          to label %368 unwind label %447

368:                                              ; preds = %364
  %369 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %367, ptr noundef @_ZSt3decRSt8ios_base)
          to label %370 unwind label %447

370:                                              ; preds = %368
  %371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %369, ptr noundef @.str.18)
          to label %372 unwind label %447

372:                                              ; preds = %370
  %373 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 1
  %374 = load i32, ptr %373, align 4, !tbaa !41
  %375 = lshr i32 %374, 22
  %376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %371, i32 noundef %375)
          to label %377 unwind label %447

377:                                              ; preds = %372
  %378 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %376, ptr noundef @.str.2)
          to label %379 unwind label %447

379:                                              ; preds = %377
  %380 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 1
  %381 = load i32, ptr %380, align 4, !tbaa !41
  %382 = lshr i32 %381, 12
  %383 = and i32 %382, 1023
  %384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %378, i32 noundef %383)
          to label %385 unwind label %447

385:                                              ; preds = %379
  %386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef @.str.2)
          to label %387 unwind label %447

387:                                              ; preds = %385
  %388 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 1
  %389 = load i32, ptr %388, align 4, !tbaa !41
  %390 = and i32 %389, 4095
  %391 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %386, i32 noundef %390)
          to label %392 unwind label %447

392:                                              ; preds = %387
  %393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %391, ptr noundef @.str.4)
          to label %394 unwind label %447

394:                                              ; preds = %392
  %395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %393, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %396 unwind label %447

396:                                              ; preds = %394
  %397 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %398 unwind label %447

398:                                              ; preds = %396
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %397, ptr noundef @_ZSt3hexRSt8ios_base)
          to label %400 unwind label %447

400:                                              ; preds = %398
  %401 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 2
  %402 = load i32, ptr %401, align 8, !tbaa !42
  %403 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %399, i32 noundef %402)
          to label %404 unwind label %447

404:                                              ; preds = %400
  %405 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %403, ptr noundef @_ZSt3decRSt8ios_base)
          to label %406 unwind label %447

406:                                              ; preds = %404
  %407 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %405, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %408 unwind label %447

408:                                              ; preds = %406
  %409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.20)
          to label %410 unwind label %447

410:                                              ; preds = %408
  %411 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %409, ptr noundef @_ZSt3hexRSt8ios_base)
          to label %412 unwind label %447

412:                                              ; preds = %410
  %413 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties", ptr %45, i32 0, i32 3
  %414 = load i32, ptr %413, align 4, !tbaa !43
  %415 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %411, i32 noundef %414)
          to label %416 unwind label %447

416:                                              ; preds = %412
  %417 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %415, ptr noundef @_ZSt3decRSt8ios_base)
          to label %418 unwind label %447

418:                                              ; preds = %416
  %419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %417, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %420 unwind label %447

420:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #13
  call void @_ZN2vk8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr null) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #13
  %421 = getelementptr inbounds %"class.vk::Optional", ptr %48, i32 0, i32 0
  %422 = load ptr, ptr %421, align 8
  invoke void @_ZNK2vk14PhysicalDevice34enumerateDeviceExtensionPropertiesISaINS_19ExtensionPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeENS_8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT0_(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %47, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr %422, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %423 unwind label %451

423:                                              ; preds = %420
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #13
  call void @llvm.lifetime.start.p0(i64 840, ptr %50) #13
  call void @llvm.lifetime.start.p0(i64 256, ptr %52) #13
  call void @llvm.memset.p0.i64(ptr align 1 %52, i8 0, i64 256, i1 false)
  %424 = getelementptr inbounds %"struct.std::array", ptr %52, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %53) #13
  %425 = getelementptr inbounds %"struct.std::array.22", ptr %53, i32 0, i32 0
  call void @llvm.memset.p0.i64(ptr align 1 %425, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %55) #13
  %426 = getelementptr inbounds %"struct.std::array.24", ptr %55, i32 0, i32 0
  call void @llvm.memset.p0.i64(ptr align 4 %426, i8 0, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %56) #13
  %427 = getelementptr inbounds %"struct.std::array.24", ptr %56, i32 0, i32 0
  call void @llvm.memset.p0.i64(ptr align 4 %427, i8 0, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #13
  %428 = getelementptr inbounds %"struct.std::array.26", ptr %57, i32 0, i32 0
  call void @llvm.memset.p0.i64(ptr align 4 %428, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #13
  %429 = getelementptr inbounds %"struct.std::array.28", ptr %58, i32 0, i32 0
  call void @llvm.memset.p0.i64(ptr align 4 %429, i8 0, i64 8, i1 false)
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %59) #13
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %60) #13
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %61) #13
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %62) #13
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %63) #13
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %64) #13
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %65) #13
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %66) #13
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %67) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #13
  %430 = getelementptr inbounds %"struct.std::array.28", ptr %68, i32 0, i32 0
  call void @llvm.memset.p0.i64(ptr align 4 %430, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #13
  %431 = getelementptr inbounds %"struct.std::array.28", ptr %69, i32 0, i32 0
  call void @llvm.memset.p0.i64(ptr align 4 %431, i8 0, i64 8, i1 false)
  call void @_ZN2vk20PhysicalDeviceLimitsC2EjjjjjjjjjjjmmjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjRKSt5arrayIjLm3EEjS4_jjjjjffjRKS1_IjLm2EERKS1_IfLm2EEjmmmmijijffjjjjNS_5FlagsINS_19SampleCountFlagBitsEEESD_SD_SD_jSD_SD_SD_SD_SD_jjfjjjjSA_SA_ffjjmmm(ptr noundef nonnull align 8 dereferenceable(504) %54, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i64 noundef 0, i64 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %55, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %56, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, float noundef 0.000000e+00, float noundef 0.000000e+00, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %57, ptr noundef nonnull align 4 dereferenceable(8) %58, i32 noundef 0, i64 noundef 0, i64 noundef 0, i64 noundef 0, i64 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, float noundef 0.000000e+00, float noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef %59, ptr noundef %60, ptr noundef %61, ptr noundef %62, i32 noundef 0, ptr noundef %63, ptr noundef %64, ptr noundef %65, ptr noundef %66, ptr noundef %67, i32 noundef 0, i32 noundef 0, float noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %68, ptr noundef nonnull align 4 dereferenceable(8) %69, float noundef 0.000000e+00, float noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i64 noundef 0, i64 noundef 0, i64 noundef 0) #13
  call void @_ZN2vk30PhysicalDeviceSparsePropertiesC2Ejjjjj(ptr noundef nonnull align 4 dereferenceable(20) %70, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0) #13
  call void @_ZN2vk24PhysicalDevicePropertiesC2EjjjjNS_18PhysicalDeviceTypeERKSt5arrayIcLm256EERKS2_IhLm16EENS_20PhysicalDeviceLimitsENS_30PhysicalDeviceSparsePropertiesE(ptr noundef nonnull align 8 dereferenceable(820) %51, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 1 dereferenceable(256) %52, ptr noundef nonnull align 1 dereferenceable(16) %53, ptr noundef %54, ptr noundef byval(%"struct.vk::PhysicalDeviceSparseProperties") align 8 %70) #13
  call void @_ZN2vk25PhysicalDeviceProperties2C2ENS_24PhysicalDevicePropertiesE(ptr noundef nonnull align 8 dereferenceable(840) %50, ptr noundef %51) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #13
  call void @llvm.lifetime.end.p0(i64 12, ptr %56) #13
  call void @llvm.lifetime.end.p0(i64 12, ptr %55) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %52) #13
  call void @llvm.lifetime.start.p0(i64 536, ptr %71) #13
  call void @llvm.lifetime.start.p0(i64 256, ptr %72) #13
  call void @llvm.memset.p0.i64(ptr align 1 %72, i8 0, i64 256, i1 false)
  %432 = getelementptr inbounds %"struct.std::array", ptr %72, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 256, ptr %73) #13
  call void @llvm.memset.p0.i64(ptr align 1 %73, i8 0, i64 256, i1 false)
  %433 = getelementptr inbounds %"struct.std::array", ptr %73, i32 0, i32 0
  call void @_ZN2vk18ConformanceVersionC2Ehhhh(ptr noundef nonnull align 1 dereferenceable(4) %74, i8 noundef zeroext 0, i8 noundef zeroext 0, i8 noundef zeroext 0, i8 noundef zeroext 0) #13
  %434 = load i32, ptr %74, align 1
  call void @_ZN2vk30PhysicalDeviceDriverPropertiesC2ENS_8DriverIdERKSt5arrayIcLm256EES5_NS_18ConformanceVersionE(ptr noundef nonnull align 8 dereferenceable(536) %71, i32 noundef 1, ptr noundef nonnull align 1 dereferenceable(256) %72, ptr noundef nonnull align 1 dereferenceable(256) %73, i32 %434) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %73) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %72) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %435 unwind label %455

435:                                              ; preds = %423
  %436 = invoke noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %437 unwind label %459

437:                                              ; preds = %435
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #13
  %438 = zext i1 %436 to i8
  store i8 %438, ptr %75, align 1, !tbaa !19
  %439 = load i8, ptr %75, align 1, !tbaa !19, !range !21, !noundef !22
  %440 = trunc i8 %439 to i1
  br i1 %440, label %441, label %464

441:                                              ; preds = %437
  %442 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties2", ptr %50, i32 0, i32 1
  store ptr %71, ptr %442, align 8, !tbaa !44
  %443 = getelementptr inbounds %"struct.vk::PhysicalDeviceDriverProperties", ptr %71, i32 0, i32 3
  %444 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %443) #13
  call void @llvm.memset.p0.i64(ptr align 1 %444, i8 0, i64 256, i1 false)
  %445 = getelementptr inbounds %"struct.vk::PhysicalDeviceDriverProperties", ptr %71, i32 0, i32 4
  %446 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %445) #13
  call void @llvm.memset.p0.i64(ptr align 1 %446, i8 0, i64 256, i1 false)
  br label %464

447:                                              ; preds = %418, %416, %412, %410, %408, %406, %404, %400, %398, %396, %394, %392, %387, %385, %379, %377, %372, %370, %368, %364, %362, %360, %358, %353, %351, %345, %343, %338, %336, %334, %330, %327
  %448 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %8, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %9, align 4
  br label %854

451:                                              ; preds = %420
  %452 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %8, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #13
  br label %853

455:                                              ; preds = %423
  %456 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %8, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %9, align 4
  br label %463

459:                                              ; preds = %435
  %460 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %8, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #13
  br label %463

463:                                              ; preds = %459, %455
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #13
  br label %852

464:                                              ; preds = %441, %437
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #13
  call void @_ZN2vk37PhysicalDevicePCIBusInfoPropertiesEXTC2Ejjjj(ptr noundef nonnull align 8 dereferenceable(32) %78, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %465 unwind label %476

465:                                              ; preds = %464
  %466 = invoke noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %467 unwind label %480

467:                                              ; preds = %465
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #13
  %468 = zext i1 %466 to i8
  store i8 %468, ptr %79, align 1, !tbaa !19
  %469 = load i8, ptr %79, align 1, !tbaa !19, !range !21, !noundef !22
  %470 = trunc i8 %469 to i1
  br i1 %470, label %471, label %485

471:                                              ; preds = %467
  %472 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties2", ptr %50, i32 0, i32 1
  %473 = load ptr, ptr %472, align 8, !tbaa !44
  %474 = getelementptr inbounds %"struct.vk::PhysicalDevicePCIBusInfoPropertiesEXT", ptr %78, i32 0, i32 1
  store ptr %473, ptr %474, align 8, !tbaa !47
  %475 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties2", ptr %50, i32 0, i32 1
  store ptr %78, ptr %475, align 8, !tbaa !44
  br label %485

476:                                              ; preds = %464
  %477 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %8, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %9, align 4
  br label %484

480:                                              ; preds = %465
  %481 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %8, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #13
  br label %484

484:                                              ; preds = %480, %476
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #13
  br label %851

485:                                              ; preds = %471, %467
  %486 = getelementptr inbounds %"struct.vk::PhysicalDeviceProperties2", ptr %50, i32 0, i32 1
  %487 = load ptr, ptr %486, align 8, !tbaa !44
  %488 = icmp ne ptr %487, null
  br i1 %488, label %489, label %490

489:                                              ; preds = %485
  call void @_ZNK2vk14PhysicalDevice17getProperties2KHRIZ4mainE6VkFuncEEvPNS_25PhysicalDeviceProperties2ERKT_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef %50, ptr noundef nonnull align 8 dereferenceable(24) %6) #13
  br label %490

490:                                              ; preds = %489, %485
  %491 = load i8, ptr %75, align 1, !tbaa !19, !range !21, !noundef !22
  %492 = trunc i8 %491 to i1
  br i1 %492, label %493, label %566

493:                                              ; preds = %490
  %494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.23)
          to label %495 unwind label %553

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %494, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %497 unwind label %553

497:                                              ; preds = %495
  %498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.24)
          to label %499 unwind label %553

499:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #13
  %500 = getelementptr inbounds %"struct.vk::PhysicalDeviceDriverProperties", ptr %71, i32 0, i32 2
  %501 = load i32, ptr %500, align 8, !tbaa !49
  invoke void @_ZN2vk9to_stringB5cxx11ENS_8DriverIdE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, i32 noundef %501)
          to label %502 unwind label %557

502:                                              ; preds = %499
  %503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %498, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %504 unwind label %561

504:                                              ; preds = %502
  %505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %503, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %506 unwind label %561

506:                                              ; preds = %504
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #13
  %507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.25)
          to label %508 unwind label %553

508:                                              ; preds = %506
  %509 = getelementptr inbounds %"struct.vk::PhysicalDeviceDriverProperties", ptr %71, i32 0, i32 3
  %510 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %509) #13
  %511 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %507, ptr noundef %510)
          to label %512 unwind label %553

512:                                              ; preds = %508
  %513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %511, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %514 unwind label %553

514:                                              ; preds = %512
  %515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.26)
          to label %516 unwind label %553

516:                                              ; preds = %514
  %517 = getelementptr inbounds %"struct.vk::PhysicalDeviceDriverProperties", ptr %71, i32 0, i32 4
  %518 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %517) #13
  %519 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %515, ptr noundef %518)
          to label %520 unwind label %553

520:                                              ; preds = %516
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %519, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %522 unwind label %553

522:                                              ; preds = %520
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.27)
          to label %524 unwind label %553

524:                                              ; preds = %522
  %525 = getelementptr inbounds %"struct.vk::PhysicalDeviceDriverProperties", ptr %71, i32 0, i32 5
  %526 = getelementptr inbounds %"struct.vk::ConformanceVersion", ptr %525, i32 0, i32 0
  %527 = load i8, ptr %526, align 4, !tbaa !53
  %528 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8) %523, i8 noundef zeroext %527)
          to label %529 unwind label %553

529:                                              ; preds = %524
  %530 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %528, ptr noundef @.str.2)
          to label %531 unwind label %553

531:                                              ; preds = %529
  %532 = getelementptr inbounds %"struct.vk::PhysicalDeviceDriverProperties", ptr %71, i32 0, i32 5
  %533 = getelementptr inbounds %"struct.vk::ConformanceVersion", ptr %532, i32 0, i32 1
  %534 = load i8, ptr %533, align 1, !tbaa !54
  %535 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8) %530, i8 noundef zeroext %534)
          to label %536 unwind label %553

536:                                              ; preds = %531
  %537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %535, ptr noundef @.str.2)
          to label %538 unwind label %553

538:                                              ; preds = %536
  %539 = getelementptr inbounds %"struct.vk::PhysicalDeviceDriverProperties", ptr %71, i32 0, i32 5
  %540 = getelementptr inbounds %"struct.vk::ConformanceVersion", ptr %539, i32 0, i32 2
  %541 = load i8, ptr %540, align 2, !tbaa !55
  %542 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8) %537, i8 noundef zeroext %541)
          to label %543 unwind label %553

543:                                              ; preds = %538
  %544 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %542, ptr noundef @.str.2)
          to label %545 unwind label %553

545:                                              ; preds = %543
  %546 = getelementptr inbounds %"struct.vk::PhysicalDeviceDriverProperties", ptr %71, i32 0, i32 5
  %547 = getelementptr inbounds %"struct.vk::ConformanceVersion", ptr %546, i32 0, i32 3
  %548 = load i8, ptr %547, align 1, !tbaa !56
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8) %544, i8 noundef zeroext %548)
          to label %550 unwind label %553

550:                                              ; preds = %545
  %551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %549, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %552 unwind label %553

552:                                              ; preds = %550
  br label %575

553:                                              ; preds = %626, %624, %621, %619, %617, %615, %612, %608, %606, %604, %600, %598, %596, %592, %590, %588, %584, %582, %580, %578, %572, %570, %568, %566, %550, %545, %543, %538, %536, %531, %529, %524, %522, %520, %516, %514, %512, %508, %506, %497, %495, %493
  %554 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %555 = extractvalue { ptr, i32 } %554, 0
  store ptr %555, ptr %8, align 8
  %556 = extractvalue { ptr, i32 } %554, 1
  store i32 %556, ptr %9, align 4
  br label %851

557:                                              ; preds = %499
  %558 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %8, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %9, align 4
  br label %565

561:                                              ; preds = %504, %502
  %562 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %8, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #13
  br label %565

565:                                              ; preds = %561, %557
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #13
  br label %851

566:                                              ; preds = %490
  %567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.23)
          to label %568 unwind label %553

568:                                              ; preds = %566
  %569 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %567, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %570 unwind label %553

570:                                              ; preds = %568
  %571 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %569, ptr noundef @.str.28)
          to label %572 unwind label %553

572:                                              ; preds = %570
  %573 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %571, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %574 unwind label %553

574:                                              ; preds = %572
  br label %575

575:                                              ; preds = %574, %552
  %576 = load i8, ptr %79, align 1, !tbaa !19, !range !21, !noundef !22
  %577 = trunc i8 %576 to i1
  br i1 %577, label %578, label %615

578:                                              ; preds = %575
  %579 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.29)
          to label %580 unwind label %553

580:                                              ; preds = %578
  %581 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %582 unwind label %553

582:                                              ; preds = %580
  %583 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.30)
          to label %584 unwind label %553

584:                                              ; preds = %582
  %585 = getelementptr inbounds %"struct.vk::PhysicalDevicePCIBusInfoPropertiesEXT", ptr %78, i32 0, i32 2
  %586 = load i32, ptr %585, align 8, !tbaa !57
  %587 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %583, i32 noundef %586)
          to label %588 unwind label %553

588:                                              ; preds = %584
  %589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %587, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %590 unwind label %553

590:                                              ; preds = %588
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.31)
          to label %592 unwind label %553

592:                                              ; preds = %590
  %593 = getelementptr inbounds %"struct.vk::PhysicalDevicePCIBusInfoPropertiesEXT", ptr %78, i32 0, i32 3
  %594 = load i32, ptr %593, align 4, !tbaa !58
  %595 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %591, i32 noundef %594)
          to label %596 unwind label %553

596:                                              ; preds = %592
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %595, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %598 unwind label %553

598:                                              ; preds = %596
  %599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.32)
          to label %600 unwind label %553

600:                                              ; preds = %598
  %601 = getelementptr inbounds %"struct.vk::PhysicalDevicePCIBusInfoPropertiesEXT", ptr %78, i32 0, i32 4
  %602 = load i32, ptr %601, align 8, !tbaa !59
  %603 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %599, i32 noundef %602)
          to label %604 unwind label %553

604:                                              ; preds = %600
  %605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %603, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %606 unwind label %553

606:                                              ; preds = %604
  %607 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.33)
          to label %608 unwind label %553

608:                                              ; preds = %606
  %609 = getelementptr inbounds %"struct.vk::PhysicalDevicePCIBusInfoPropertiesEXT", ptr %78, i32 0, i32 5
  %610 = load i32, ptr %609, align 4, !tbaa !60
  %611 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %607, i32 noundef %610)
          to label %612 unwind label %553

612:                                              ; preds = %608
  %613 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %611, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %614 unwind label %553

614:                                              ; preds = %612
  br label %624

615:                                              ; preds = %575
  %616 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.29)
          to label %617 unwind label %553

617:                                              ; preds = %615
  %618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %616, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %619 unwind label %553

619:                                              ; preds = %617
  %620 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %618, ptr noundef @.str.28)
          to label %621 unwind label %553

621:                                              ; preds = %619
  %622 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %623 unwind label %553

623:                                              ; preds = %621
  br label %624

624:                                              ; preds = %623, %614
  %625 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.34)
          to label %626 unwind label %553

626:                                              ; preds = %624
  %627 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %625, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %628 unwind label %553

628:                                              ; preds = %626
  call void @llvm.lifetime.start.p0(i64 24, ptr %83) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #13
  invoke void @_ZNK2vk14PhysicalDevice24getQueueFamilyPropertiesISaINS_21QueueFamilyPropertiesEENS_20DispatchLoaderStaticEEESt6vectorIS2_T_ERKT0_(ptr dead_on_unwind writable sret(%"class.std::vector.30") align 8 %83, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %629 unwind label %636

629:                                              ; preds = %628
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #13
  store i64 0, ptr %85, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #13
  %630 = call noundef i64 @_ZNKSt6vectorIN2vk21QueueFamilyPropertiesESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %83) #13
  store i64 %630, ptr %86, align 8, !tbaa !61
  br label %631

631:                                              ; preds = %670, %629
  %632 = load i64, ptr %85, align 8, !tbaa !61
  %633 = load i64, ptr %86, align 8, !tbaa !61
  %634 = icmp ult i64 %632, %633
  br i1 %634, label %640, label %635

635:                                              ; preds = %631
  store i32 8, ptr %43, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #13
  br label %687

636:                                              ; preds = %628
  %637 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %8, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #13
  br label %850

640:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #13
  %641 = load i64, ptr %85, align 8, !tbaa !61
  %642 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZNSt6vectorIN2vk21QueueFamilyPropertiesESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %83, i64 noundef %641) #13
  store ptr %642, ptr %87, align 8, !tbaa !9
  %643 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.35)
          to label %644 unwind label %673

644:                                              ; preds = %640
  %645 = load i64, ptr %85, align 8, !tbaa !61
  %646 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %643, i64 noundef %645)
          to label %647 unwind label %673

647:                                              ; preds = %644
  %648 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef @.str.36)
          to label %649 unwind label %673

649:                                              ; preds = %647
  %650 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %648, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %651 unwind label %673

651:                                              ; preds = %649
  %652 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
          to label %653 unwind label %673

653:                                              ; preds = %651
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #13
  %654 = load ptr, ptr %87, align 8, !tbaa !9
  %655 = getelementptr inbounds %"struct.vk::QueueFamilyProperties", ptr %654, i32 0, i32 0
  call void @_ZN2vk5FlagsINS_13QueueFlagBitsEEC2ERKS2_(ptr noundef nonnull align 4 dereferenceable(4) %89, ptr noundef nonnull align 4 dereferenceable(4) %655) #13
  invoke void @_ZN2vk9to_stringB5cxx11ENS_5FlagsINS_13QueueFlagBitsEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef %89)
          to label %656 unwind label %677

656:                                              ; preds = %653
  %657 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %652, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %658 unwind label %681

658:                                              ; preds = %656
  %659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %657, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %660 unwind label %681

660:                                              ; preds = %658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #13
  %661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.38)
          to label %662 unwind label %673

662:                                              ; preds = %660
  %663 = load ptr, ptr %87, align 8, !tbaa !9
  %664 = getelementptr inbounds %"struct.vk::QueueFamilyProperties", ptr %663, i32 0, i32 1
  %665 = load i32, ptr %664, align 4, !tbaa !62
  %666 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %661, i32 noundef %665)
          to label %667 unwind label %673

667:                                              ; preds = %662
  %668 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %666, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %669 unwind label %673

669:                                              ; preds = %667
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #13
  br label %670

670:                                              ; preds = %669
  %671 = load i64, ptr %85, align 8, !tbaa !61
  %672 = add i64 %671, 1
  store i64 %672, ptr %85, align 8, !tbaa !61
  br label %631, !llvm.loop !66

673:                                              ; preds = %667, %662, %660, %651, %649, %647, %644, %640
  %674 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %8, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %9, align 4
  br label %686

677:                                              ; preds = %653
  %678 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %8, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %9, align 4
  br label %685

681:                                              ; preds = %658, %656
  %682 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %8, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #13
  br label %685

685:                                              ; preds = %681, %677
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #13
  br label %686

686:                                              ; preds = %685, %673
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #13
  br label %849

687:                                              ; preds = %635
  %688 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.39)
          to label %689 unwind label %708

689:                                              ; preds = %687
  %690 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %688, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %691 unwind label %708

691:                                              ; preds = %689
  %692 = load i8, ptr %28, align 1, !tbaa !19, !range !21, !noundef !22
  %693 = trunc i8 %692 to i1
  br i1 %693, label %694, label %801

694:                                              ; preds = %691
  %695 = call noundef ptr @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEEptEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #13
  %696 = call noundef ptr @_ZNK2vk8Instance11getProcAddrINS_20DispatchLoaderStaticEEEPFvvEPKcRKT_(ptr noundef nonnull align 8 dereferenceable(8) %695, ptr noundef @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %90) #13
  %697 = getelementptr inbounds %struct.VkFunc, ptr %6, i32 0, i32 2
  store ptr %696, ptr %697, align 8, !tbaa !68
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #13
  call void @llvm.lifetime.start.p0(i64 24, ptr %91) #13
  invoke void @_ZNK2vk14PhysicalDevice23getDisplayPropertiesKHRISaINS_20DisplayPropertiesKHREEZ4mainE6VkFuncEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeERKT0_(ptr dead_on_unwind writable sret(%"class.std::vector.36") align 8 %91, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %698 unwind label %712

698:                                              ; preds = %694
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #13
  store ptr %91, ptr %92, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #13
  %699 = load ptr, ptr %92, align 8, !tbaa !9
  %700 = call ptr @_ZNSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %699) #13
  %701 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.41", ptr %93, i32 0, i32 0
  store ptr %700, ptr %701, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #13
  %702 = load ptr, ptr %92, align 8, !tbaa !9
  %703 = call ptr @_ZNSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %702) #13
  %704 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.41", ptr %94, i32 0, i32 0
  store ptr %703, ptr %704, align 8
  br label %705

705:                                              ; preds = %751, %698
  %706 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk20DisplayPropertiesKHRESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %94) #13
  br i1 %706, label %716, label %707

707:                                              ; preds = %705
  store i32 11, ptr %43, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #13
  br label %757

708:                                              ; preds = %808, %806, %803, %801, %689, %687
  %709 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %8, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %9, align 4
  br label %849

712:                                              ; preds = %694
  %713 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %714 = extractvalue { ptr, i32 } %713, 0
  store ptr %714, ptr %8, align 8
  %715 = extractvalue { ptr, i32 } %713, 1
  store i32 %715, ptr %9, align 4
  br label %770

716:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #13
  %717 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk20DisplayPropertiesKHRESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %93) #13
  store ptr %717, ptr %95, align 8, !tbaa !9
  %718 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.41)
          to label %719 unwind label %753

719:                                              ; preds = %716
  %720 = load ptr, ptr %95, align 8, !tbaa !9
  %721 = getelementptr inbounds %"struct.vk::DisplayPropertiesKHR", ptr %720, i32 0, i32 1
  %722 = load ptr, ptr %721, align 8, !tbaa !69
  %723 = icmp ne ptr %722, null
  br i1 %723, label %724, label %728

724:                                              ; preds = %719
  %725 = load ptr, ptr %95, align 8, !tbaa !9
  %726 = getelementptr inbounds %"struct.vk::DisplayPropertiesKHR", ptr %725, i32 0, i32 1
  %727 = load ptr, ptr %726, align 8, !tbaa !69
  br label %729

728:                                              ; preds = %719
  br label %729

729:                                              ; preds = %728, %724
  %730 = phi ptr [ %727, %724 ], [ @.str.42, %728 ]
  %731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %718, ptr noundef %730)
          to label %732 unwind label %753

732:                                              ; preds = %729
  %733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %731, ptr noundef @.str.43)
          to label %734 unwind label %753

734:                                              ; preds = %732
  %735 = load ptr, ptr %95, align 8, !tbaa !9
  %736 = getelementptr inbounds %"struct.vk::DisplayPropertiesKHR", ptr %735, i32 0, i32 3
  %737 = getelementptr inbounds %"struct.vk::Extent2D", ptr %736, i32 0, i32 0
  %738 = load i32, ptr %737, align 8, !tbaa !74
  %739 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %733, i32 noundef %738)
          to label %740 unwind label %753

740:                                              ; preds = %734
  %741 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %739, ptr noundef @.str.44)
          to label %742 unwind label %753

742:                                              ; preds = %740
  %743 = load ptr, ptr %95, align 8, !tbaa !9
  %744 = getelementptr inbounds %"struct.vk::DisplayPropertiesKHR", ptr %743, i32 0, i32 3
  %745 = getelementptr inbounds %"struct.vk::Extent2D", ptr %744, i32 0, i32 1
  %746 = load i32, ptr %745, align 4, !tbaa !75
  %747 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %741, i32 noundef %746)
          to label %748 unwind label %753

748:                                              ; preds = %742
  %749 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %747, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %750 unwind label %753

750:                                              ; preds = %748
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #13
  br label %751

751:                                              ; preds = %750
  %752 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk20DisplayPropertiesKHRESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %93) #13
  br label %705

753:                                              ; preds = %748, %742, %740, %734, %732, %729, %716
  %754 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %8, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #13
  br label %769

757:                                              ; preds = %707
  %758 = call noundef zeroext i1 @_ZNKSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %91) #13
  br i1 %758, label %759, label %768

759:                                              ; preds = %757
  %760 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.45)
          to label %761 unwind label %764

761:                                              ; preds = %759
  %762 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %760, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %763 unwind label %764

763:                                              ; preds = %761
  br label %768

764:                                              ; preds = %761, %759
  %765 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %8, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %9, align 4
  br label %769

768:                                              ; preds = %763, %757
  call void @_ZNSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #13
  br label %790

769:                                              ; preds = %764, %753
  call void @_ZNSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #13
  br label %770

770:                                              ; preds = %769, %712
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #13
  br label %771

771:                                              ; preds = %770
  %772 = load i32, ptr %9, align 4
  %773 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN2vk5ErrorE) #13
  %774 = icmp eq i32 %772, %773
  br i1 %774, label %775, label %849

775:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #13
  %776 = load ptr, ptr %8, align 8
  %777 = call ptr @__cxa_begin_catch(ptr %776) #13
  store ptr %777, ptr %96, align 8
  %778 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.46)
          to label %779 unwind label %791

779:                                              ; preds = %775
  %780 = load ptr, ptr %96, align 8, !tbaa !9
  %781 = load ptr, ptr %780, align 8, !tbaa !76
  %782 = getelementptr inbounds ptr, ptr %781, i64 2
  %783 = load ptr, ptr %782, align 8
  %784 = call noundef ptr %783(ptr noundef nonnull align 8 dereferenceable(8) %780) #13
  %785 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %778, ptr noundef %784)
          to label %786 unwind label %791

786:                                              ; preds = %779
  %787 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %785, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %788 unwind label %791

788:                                              ; preds = %786
  invoke void @__cxa_end_catch()
          to label %789 unwind label %795

789:                                              ; preds = %788
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #13
  br label %790

790:                                              ; preds = %789, %768
  br label %806

791:                                              ; preds = %786, %779, %775
  %792 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %793 = extractvalue { ptr, i32 } %792, 0
  store ptr %793, ptr %8, align 8
  %794 = extractvalue { ptr, i32 } %792, 1
  store i32 %794, ptr %9, align 4
  invoke void @__cxa_end_catch()
          to label %799 unwind label %929

795:                                              ; preds = %788
  %796 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %797 = extractvalue { ptr, i32 } %796, 0
  store ptr %797, ptr %8, align 8
  %798 = extractvalue { ptr, i32 } %796, 1
  store i32 %798, ptr %9, align 4
  br label %800

799:                                              ; preds = %791
  br label %800

800:                                              ; preds = %799, %795
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #13
  br label %849

801:                                              ; preds = %691
  %802 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.47)
          to label %803 unwind label %708

803:                                              ; preds = %801
  %804 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %802, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %805 unwind label %708

805:                                              ; preds = %803
  br label %806

806:                                              ; preds = %805, %790
  %807 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.48)
          to label %808 unwind label %708

808:                                              ; preds = %806
  %809 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %807, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %810 unwind label %708

810:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #13
  store ptr %47, ptr %97, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #13
  %811 = load ptr, ptr %97, align 8, !tbaa !9
  %812 = call ptr @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %811) #13
  %813 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %98, i32 0, i32 0
  store ptr %812, ptr %813, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #13
  %814 = load ptr, ptr %97, align 8, !tbaa !9
  %815 = call ptr @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %814) #13
  %816 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %99, i32 0, i32 0
  store ptr %815, ptr %816, align 8
  br label %817

817:                                              ; preds = %840, %810
  %818 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(8) %99) #13
  br i1 %818, label %820, label %819

819:                                              ; preds = %817
  store i32 13, ptr %43, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #13
  br label %846

820:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #13
  %821 = call noundef nonnull align 4 dereferenceable(260) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %98) #13
  store ptr %821, ptr %100, align 8, !tbaa !9
  %822 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.41)
          to label %823 unwind label %842

823:                                              ; preds = %820
  %824 = load ptr, ptr %100, align 8, !tbaa !9
  %825 = getelementptr inbounds %"struct.vk::ExtensionProperties", ptr %824, i32 0, i32 0
  %826 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %825) #13
  %827 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %822, ptr noundef %826)
          to label %828 unwind label %842

828:                                              ; preds = %823
  %829 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %827, ptr noundef @.str.7)
          to label %830 unwind label %842

830:                                              ; preds = %828
  %831 = load ptr, ptr %100, align 8, !tbaa !9
  %832 = getelementptr inbounds %"struct.vk::ExtensionProperties", ptr %831, i32 0, i32 1
  %833 = load i32, ptr %832, align 4, !tbaa !13
  %834 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %829, i32 noundef %833)
          to label %835 unwind label %842

835:                                              ; preds = %830
  %836 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %834, ptr noundef @.str.4)
          to label %837 unwind label %842

837:                                              ; preds = %835
  %838 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %836, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %839 unwind label %842

839:                                              ; preds = %837
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #13
  br label %840

840:                                              ; preds = %839
  %841 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %98) #13
  br label %817

842:                                              ; preds = %837, %835, %830, %828, %823, %820
  %843 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %8, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #13
  br label %849

846:                                              ; preds = %819
  call void @_ZNSt6vectorIN2vk21QueueFamilyPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #13
  call void @llvm.lifetime.end.p0(i64 536, ptr %71) #13
  call void @llvm.lifetime.end.p0(i64 840, ptr %50) #13
  call void @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #13
  call void @llvm.lifetime.end.p0(i64 824, ptr %45) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #13
  br label %847

847:                                              ; preds = %846
  %848 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk14PhysicalDeviceESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #13
  br label %312

849:                                              ; preds = %842, %800, %771, %708, %686
  call void @_ZNSt6vectorIN2vk21QueueFamilyPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #13
  br label %850

850:                                              ; preds = %849, %636
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #13
  br label %851

851:                                              ; preds = %850, %565, %553, %484
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #13
  br label %852

852:                                              ; preds = %851, %463
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #13
  call void @llvm.lifetime.end.p0(i64 536, ptr %71) #13
  call void @llvm.lifetime.end.p0(i64 840, ptr %50) #13
  call void @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #13
  br label %853

853:                                              ; preds = %852, %451
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #13
  br label %854

854:                                              ; preds = %853, %447
  call void @llvm.lifetime.end.p0(i64 824, ptr %45) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #13
  br label %856

855:                                              ; preds = %314
  call void @_ZNSt6vectorIN2vk14PhysicalDeviceESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #13
  call void @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #13
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #13
  call void @_ZNSt6vectorIN2vk15LayerPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #13
  call void @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #13
  br label %884

856:                                              ; preds = %854, %323
  call void @_ZNSt6vectorIN2vk14PhysicalDeviceESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #13
  br label %857

857:                                              ; preds = %856, %319
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #13
  call void @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #13
  br label %858

858:                                              ; preds = %857, %315
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #13
  br label %859

859:                                              ; preds = %858, %278, %277
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #13
  br label %860

860:                                              ; preds = %859, %268
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #13
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #13
  br label %861

861:                                              ; preds = %860, %242, %216
  call void @_ZNSt6vectorIN2vk15LayerPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #13
  br label %862

862:                                              ; preds = %861, %212
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #13
  br label %863

863:                                              ; preds = %862, %193, %167
  call void @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #13
  br label %864

864:                                              ; preds = %863, %163
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #13
  br label %865

865:                                              ; preds = %864, %159
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #13
  br label %866

866:                                              ; preds = %865
  %867 = load i32, ptr %9, align 4
  %868 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN2vk5ErrorE) #13
  %869 = icmp eq i32 %867, %868
  br i1 %869, label %870, label %885

870:                                              ; preds = %866
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #13
  %871 = load ptr, ptr %8, align 8
  %872 = call ptr @__cxa_begin_catch(ptr %871) #13
  store ptr %872, ptr %102, align 8
  %873 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.51)
          to label %874 unwind label %919

874:                                              ; preds = %870
  %875 = load ptr, ptr %102, align 8, !tbaa !9
  %876 = load ptr, ptr %875, align 8, !tbaa !76
  %877 = getelementptr inbounds ptr, ptr %876, i64 2
  %878 = load ptr, ptr %877, align 8
  %879 = call noundef ptr %878(ptr noundef nonnull align 8 dereferenceable(8) %875) #13
  %880 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %873, ptr noundef %879)
          to label %881 unwind label %919

881:                                              ; preds = %874
  %882 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %880, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %883 unwind label %919

883:                                              ; preds = %881
  call void @__cxa_end_catch()
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #13
  br label %884

884:                                              ; preds = %908, %901, %883, %855
  ret i32 0

885:                                              ; preds = %866
  %886 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %887 = icmp eq i32 %867, %886
  br i1 %887, label %888, label %902

888:                                              ; preds = %885
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #13
  %889 = load ptr, ptr %8, align 8
  %890 = call ptr @__cxa_begin_catch(ptr %889) #13
  store ptr %890, ptr %101, align 8
  %891 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.50)
          to label %892 unwind label %914

892:                                              ; preds = %888
  %893 = load ptr, ptr %101, align 8, !tbaa !9
  %894 = load ptr, ptr %893, align 8, !tbaa !76
  %895 = getelementptr inbounds ptr, ptr %894, i64 2
  %896 = load ptr, ptr %895, align 8
  %897 = call noundef ptr %896(ptr noundef nonnull align 8 dereferenceable(8) %893) #13
  %898 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %891, ptr noundef %897)
          to label %899 unwind label %914

899:                                              ; preds = %892
  %900 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %898, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %901 unwind label %914

901:                                              ; preds = %899
  call void @__cxa_end_catch()
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #13
  br label %884

902:                                              ; preds = %885
  %903 = load ptr, ptr %8, align 8
  %904 = call ptr @__cxa_begin_catch(ptr %903) #13
  %905 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.49)
          to label %906 unwind label %909

906:                                              ; preds = %902
  %907 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %905, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %908 unwind label %909

908:                                              ; preds = %906
  call void @__cxa_end_catch()
  br label %884

909:                                              ; preds = %906, %902
  %910 = landingpad { ptr, i32 }
          cleanup
  %911 = extractvalue { ptr, i32 } %910, 0
  store ptr %911, ptr %8, align 8
  %912 = extractvalue { ptr, i32 } %910, 1
  store i32 %912, ptr %9, align 4
  invoke void @__cxa_end_catch()
          to label %913 unwind label %929

913:                                              ; preds = %909
  br label %924

914:                                              ; preds = %899, %892, %888
  %915 = landingpad { ptr, i32 }
          cleanup
  %916 = extractvalue { ptr, i32 } %915, 0
  store ptr %916, ptr %8, align 8
  %917 = extractvalue { ptr, i32 } %915, 1
  store i32 %917, ptr %9, align 4
  invoke void @__cxa_end_catch()
          to label %918 unwind label %929

918:                                              ; preds = %914
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #13
  br label %924

919:                                              ; preds = %881, %874, %870
  %920 = landingpad { ptr, i32 }
          cleanup
  %921 = extractvalue { ptr, i32 } %920, 0
  store ptr %921, ptr %8, align 8
  %922 = extractvalue { ptr, i32 } %920, 1
  store i32 %922, ptr %9, align 4
  invoke void @__cxa_end_catch()
          to label %923 unwind label %929

923:                                              ; preds = %919
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #13
  br label %924

924:                                              ; preds = %923, %918, %913
  %925 = load ptr, ptr %8, align 8
  %926 = load i32, ptr %9, align 4
  %927 = insertvalue { ptr, i32 } poison, ptr %925, 0
  %928 = insertvalue { ptr, i32 } %927, i32 %926, 1
  resume { ptr, i32 } %928

929:                                              ; preds = %919, %914, %909, %791
  %930 = landingpad { ptr, i32 }
          catch ptr null
  %931 = extractvalue { ptr, i32 } %930, 0
  call void @__clang_call_terminate(ptr %931) #14
  unreachable
}

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare hidden noundef i32 @_ZN2vk24enumerateInstanceVersionIZ4mainE6VkFuncEEjRKT_(ptr noundef nonnull align 8 dereferenceable(24)) #3

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #5 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #6

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk36enumerateInstanceExtensionPropertiesISaINS_19ExtensionPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS1_T_EE4typeENS_8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr, ptr noundef nonnull align 1 dereferenceable(1)) #3

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256)) #7 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk32enumerateInstanceLayerPropertiesISaINS_15LayerPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS1_T_EE4typeERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.0") align 8, ptr noundef nonnull align 1 dereferenceable(1)) #3

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #7 align 2

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk20createInstanceUniqueINS_20DispatchLoaderStaticEEENS_15ResultValueTypeINS_12UniqueHandleINS_8InstanceET_EEE4typeERKNS_18InstanceCreateInfoENS_8OptionalIKNS_19AllocationCallbacksEEERKS5_(ptr dead_on_unwind noalias writable sret(%"class.vk::UniqueHandle") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr, ptr noundef nonnull align 1 dereferenceable(1)) #3

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk18InstanceCreateInfoC2ENS_5FlagsINS_22InstanceCreateFlagBitsEEEPKNS_15ApplicationInfoEjPKPKcjSA_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #7 align 2

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZNK2vk8Instance24enumeratePhysicalDevicesISaINS_14PhysicalDeviceEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.15") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

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

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

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

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

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZNK2vk14PhysicalDevice13getPropertiesINS_20DispatchLoaderStaticEEENS_24PhysicalDevicePropertiesERKT_(ptr dead_on_unwind noalias writable sret(%"struct.vk::PhysicalDeviceProperties") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) #8 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #4

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZNK2vk14PhysicalDevice34enumerateDeviceExtensionPropertiesISaINS_19ExtensionPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeENS_8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr, ptr noundef nonnull align 1 dereferenceable(1)) #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) #10

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk20PhysicalDeviceLimitsC2EjjjjjjjjjjjmmjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjRKSt5arrayIjLm3EEjS4_jjjjjffjRKS1_IjLm2EERKS1_IfLm2EEjmmmmijijffjjjjNS_5FlagsINS_19SampleCountFlagBitsEEESD_SD_SD_jSD_SD_SD_SD_SD_jjfjjjjSA_SA_ffjjmmm(ptr noundef nonnull align 8 dereferenceable(504), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i64 noundef, i64 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(12), i32 noundef, ptr noundef nonnull align 4 dereferenceable(12), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef, i32 noundef, i32 noundef, i64 noundef, i64 noundef, i64 noundef) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk24PhysicalDevicePropertiesC2EjjjjNS_18PhysicalDeviceTypeERKSt5arrayIcLm256EERKS2_IhLm16EENS_20PhysicalDeviceLimitsENS_30PhysicalDeviceSparsePropertiesE(ptr noundef nonnull align 8 dereferenceable(820), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 1 dereferenceable(256), ptr noundef nonnull align 1 dereferenceable(16), ptr noundef, ptr noundef byval(%"struct.vk::PhysicalDeviceSparseProperties") align 8) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk18ConformanceVersionC2Ehhhh(ptr noundef nonnull align 1 dereferenceable(4), i8 noundef zeroext, i8 noundef zeroext, i8 noundef zeroext, i8 noundef zeroext) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk30PhysicalDeviceDriverPropertiesC2ENS_8DriverIdERKSt5arrayIcLm256EES5_NS_18ConformanceVersionE(ptr noundef nonnull align 8 dereferenceable(536), i32 noundef, ptr noundef nonnull align 1 dereferenceable(256), ptr noundef nonnull align 1 dereferenceable(256), i32) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk37PhysicalDevicePCIBusInfoPropertiesEXTC2Ejjjj(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i32 noundef, i32 noundef) unnamed_addr #7 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden void @_ZNK2vk14PhysicalDevice17getProperties2KHRIZ4mainE6VkFuncEEvPNS_25PhysicalDeviceProperties2ERKT_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk9to_stringB5cxx11ENS_8DriverIdE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef zeroext) #4

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZNK2vk14PhysicalDevice24getQueueFamilyPropertiesISaINS_21QueueFamilyPropertiesEENS_20DispatchLoaderStaticEEESt6vectorIS2_T_ERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.30") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #5 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk9to_stringB5cxx11ENS_5FlagsINS_13QueueFlagBitsEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) #3

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

; Function Attrs: alwaysinline mustprogress uwtable
declare hidden void @_ZNK2vk14PhysicalDevice23getDisplayPropertiesKHRISaINS_20DisplayPropertiesKHREEZ4mainE6VkFuncEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.36") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

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

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

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

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

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

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

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

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #11

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #12

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

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

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

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

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

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

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

attributes #0 = { mustprogress norecurse 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #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 = { 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 #5 = { 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 #6 = { "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 = { 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 #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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { nounwind memory(none) }
attributes #12 = { noinline noreturn nounwind uwtable "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 #13 = { nounwind }
attributes #14 = { noreturn 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, !10, i64 0}
!12 = !{!"_ZTSZ4mainE6VkFunc", !10, i64 0, !10, i64 8, !10, i64 16}
!13 = !{!14, !6, i64 256}
!14 = !{!"_ZTSN2vk19ExtensionPropertiesE", !15, i64 0, !6, i64 256}
!15 = !{!"_ZTSN2vk14ArrayWrapper1DIcLm256EEE", !16, i64 0}
!16 = !{!"_ZTSSt5arrayIcLm256EE", !7, i64 0}
!17 = !{!18, !6, i64 256}
!18 = !{!"_ZTSN2vk15LayerPropertiesE", !15, i64 0, !6, i64 256, !6, i64 260, !15, i64 264}
!19 = !{!20, !20, i64 0}
!20 = !{!"bool", !7, i64 0}
!21 = !{i8 0, i8 2}
!22 = !{}
!23 = !{!12, !10, i64 8}
!24 = !{i64 0, i64 8, !9}
!25 = !{!26, !6, i64 0}
!26 = !{!"_ZTSN2vk24PhysicalDevicePropertiesE", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !27, i64 16, !15, i64 20, !28, i64 276, !30, i64 296, !40, i64 800}
!27 = !{!"_ZTSN2vk18PhysicalDeviceTypeE", !7, i64 0}
!28 = !{!"_ZTSN2vk14ArrayWrapper1DIhLm16EEE", !29, i64 0}
!29 = !{!"_ZTSSt5arrayIhLm16EE", !7, i64 0}
!30 = !{!"_ZTSN2vk20PhysicalDeviceLimitsE", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !31, i64 48, !31, i64 56, !6, i64 64, !6, i64 68, !6, i64 72, !6, i64 76, !6, i64 80, !6, i64 84, !6, i64 88, !6, i64 92, !6, i64 96, !6, i64 100, !6, i64 104, !6, i64 108, !6, i64 112, !6, i64 116, !6, i64 120, !6, i64 124, !6, i64 128, !6, i64 132, !6, i64 136, !6, i64 140, !6, i64 144, !6, i64 148, !6, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !6, i64 172, !6, i64 176, !6, i64 180, !6, i64 184, !6, i64 188, !6, i64 192, !6, i64 196, !6, i64 200, !6, i64 204, !6, i64 208, !6, i64 212, !6, i64 216, !32, i64 220, !6, i64 232, !32, i64 236, !6, i64 248, !6, i64 252, !6, i64 256, !6, i64 260, !6, i64 264, !34, i64 268, !34, i64 272, !6, i64 276, !35, i64 280, !37, i64 288, !6, i64 296, !31, i64 304, !31, i64 312, !31, i64 320, !31, i64 328, !6, i64 336, !6, i64 340, !6, i64 344, !6, i64 348, !34, i64 352, !34, i64 356, !6, i64 360, !6, i64 364, !6, i64 368, !6, i64 372, !39, i64 376, !39, i64 380, !39, i64 384, !39, i64 388, !6, i64 392, !39, i64 396, !39, i64 400, !39, i64 404, !39, i64 408, !39, i64 412, !6, i64 416, !6, i64 420, !34, i64 424, !6, i64 428, !6, i64 432, !6, i64 436, !6, i64 440, !37, i64 444, !37, i64 452, !34, i64 460, !34, i64 464, !6, i64 468, !6, i64 472, !31, i64 480, !31, i64 488, !31, i64 496}
!31 = !{!"long", !7, i64 0}
!32 = !{!"_ZTSN2vk14ArrayWrapper1DIjLm3EEE", !33, i64 0}
!33 = !{!"_ZTSSt5arrayIjLm3EE", !7, i64 0}
!34 = !{!"float", !7, i64 0}
!35 = !{!"_ZTSN2vk14ArrayWrapper1DIjLm2EEE", !36, i64 0}
!36 = !{!"_ZTSSt5arrayIjLm2EE", !7, i64 0}
!37 = !{!"_ZTSN2vk14ArrayWrapper1DIfLm2EEE", !38, i64 0}
!38 = !{!"_ZTSSt5arrayIfLm2EE", !7, i64 0}
!39 = !{!"_ZTSN2vk5FlagsINS_19SampleCountFlagBitsEEE", !6, i64 0}
!40 = !{!"_ZTSN2vk30PhysicalDeviceSparsePropertiesE", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16}
!41 = !{!26, !6, i64 4}
!42 = !{!26, !6, i64 8}
!43 = !{!26, !6, i64 12}
!44 = !{!45, !10, i64 8}
!45 = !{!"_ZTSN2vk25PhysicalDeviceProperties2E", !46, i64 0, !10, i64 8, !26, i64 16}
!46 = !{!"_ZTSN2vk13StructureTypeE", !7, i64 0}
!47 = !{!48, !10, i64 8}
!48 = !{!"_ZTSN2vk37PhysicalDevicePCIBusInfoPropertiesEXTE", !46, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28}
!49 = !{!50, !51, i64 16}
!50 = !{!"_ZTSN2vk30PhysicalDeviceDriverPropertiesE", !46, i64 0, !10, i64 8, !51, i64 16, !15, i64 20, !15, i64 276, !52, i64 532}
!51 = !{!"_ZTSN2vk8DriverIdE", !7, i64 0}
!52 = !{!"_ZTSN2vk18ConformanceVersionE", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3}
!53 = !{!50, !7, i64 532}
!54 = !{!50, !7, i64 533}
!55 = !{!50, !7, i64 534}
!56 = !{!50, !7, i64 535}
!57 = !{!48, !6, i64 16}
!58 = !{!48, !6, i64 20}
!59 = !{!48, !6, i64 24}
!60 = !{!48, !6, i64 28}
!61 = !{!31, !31, i64 0}
!62 = !{!63, !6, i64 4}
!63 = !{!"_ZTSN2vk21QueueFamilyPropertiesE", !64, i64 0, !6, i64 4, !6, i64 8, !65, i64 12}
!64 = !{!"_ZTSN2vk5FlagsINS_13QueueFlagBitsEEE", !6, i64 0}
!65 = !{!"_ZTSN2vk8Extent3DE", !6, i64 0, !6, i64 4, !6, i64 8}
!66 = distinct !{!66, !67}
!67 = !{!"llvm.loop.mustprogress"}
!68 = !{!12, !10, i64 16}
!69 = !{!70, !10, i64 8}
!70 = !{!"_ZTSN2vk20DisplayPropertiesKHRE", !71, i64 0, !10, i64 8, !72, i64 16, !72, i64 24, !73, i64 32, !6, i64 36, !6, i64 40}
!71 = !{!"_ZTSN2vk10DisplayKHRE", !10, i64 0}
!72 = !{!"_ZTSN2vk8Extent2DE", !6, i64 0, !6, i64 4}
!73 = !{!"_ZTSN2vk5FlagsINS_27SurfaceTransformFlagBitsKHREEE", !6, i64 0}
!74 = !{!70, !6, i64 24}
!75 = !{!70, !6, i64 28}
!76 = !{!77, !77, i64 0}
!77 = !{!"vtable pointer", !8, 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.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%struct.VkFunc = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<vk::ExtensionProperties, std::allocator<vk::ExtensionProperties>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::ExtensionProperties, std::allocator<vk::ExtensionProperties>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::ExtensionProperties, std::allocator<vk::ExtensionProperties>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::ExtensionProperties, std::allocator<vk::ExtensionProperties>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.vk::Optional" = type { ptr }
%"class.vk::DispatchLoaderStatic" = type { i8 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<vk::LayerProperties, std::allocator<vk::LayerProperties>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::LayerProperties, std::allocator<vk::LayerProperties>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::LayerProperties, std::allocator<vk::LayerProperties>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::LayerProperties, std::allocator<vk::LayerProperties>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.5" = type { ptr }
%"class.std::vector.6" = type { %"struct.std::_Vector_base.7" }
%"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon = type { i8 }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.11" = type { i8 }
%"class.vk::UniqueHandle" = type { %"class.vk::ObjectDestroy", %"class.vk::Instance" }
%"class.vk::ObjectDestroy" = type { %"class.vk::Optional.14", ptr }
%"class.vk::Optional.14" = type { ptr }
%"class.vk::Instance" = type { ptr }
%"struct.vk::InstanceCreateInfo" = type { i32, ptr, %"class.vk::Flags", ptr, i32, ptr, i32, ptr }
%"class.vk::Flags" = type { i32 }
%"struct.vk::ApplicationInfo" = type { i32, ptr, ptr, i32, ptr, i32, i32 }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<vk::PhysicalDevice, std::allocator<vk::PhysicalDevice>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::PhysicalDevice, std::allocator<vk::PhysicalDevice>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::PhysicalDevice, std::allocator<vk::PhysicalDevice>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::PhysicalDevice, std::allocator<vk::PhysicalDevice>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.20" = type { ptr }
%"class.vk::PhysicalDevice" = type { ptr }
%"struct.vk::PhysicalDeviceProperties" = type <{ i32, i32, i32, i32, i32, %"class.vk::ArrayWrapper1D", %"class.vk::ArrayWrapper1D.21", [4 x i8], %"struct.vk::PhysicalDeviceLimits", %"struct.vk::PhysicalDeviceSparseProperties", [4 x i8] }>
%"class.vk::ArrayWrapper1D" = type { %"struct.std::array" }
%"struct.std::array" = type { [256 x i8] }
%"class.vk::ArrayWrapper1D.21" = type { %"struct.std::array.22" }
%"struct.std::array.22" = type { [16 x i8] }
%"struct.vk::PhysicalDeviceLimits" = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.vk::ArrayWrapper1D.23", i32, %"class.vk::ArrayWrapper1D.23", i32, i32, i32, i32, i32, float, float, i32, %"class.vk::ArrayWrapper1D.25", %"class.vk::ArrayWrapper1D.27", i32, i64, i64, i64, i64, i32, i32, i32, i32, float, float, i32, i32, i32, i32, %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", i32, %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", %"class.vk::Flags.29", i32, i32, float, i32, i32, i32, i32, %"class.vk::ArrayWrapper1D.27", %"class.vk::ArrayWrapper1D.27", float, float, i32, i32, i64, i64, i64 }
%"class.vk::ArrayWrapper1D.23" = type { %"struct.std::array.24" }
%"struct.std::array.24" = type { [3 x i32] }
%"class.vk::ArrayWrapper1D.25" = type { %"struct.std::array.26" }
%"struct.std::array.26" = type { [2 x i32] }
%"class.vk::Flags.29" = type { i32 }
%"class.vk::ArrayWrapper1D.27" = type { %"struct.std::array.28" }
%"struct.std::array.28" = type { [2 x float] }
%"struct.vk::PhysicalDeviceSparseProperties" = type { i32, i32, i32, i32, i32 }
%"struct.vk::PhysicalDeviceProperties2" = type { i32, ptr, %"struct.vk::PhysicalDeviceProperties" }
%"struct.vk::PhysicalDeviceDriverProperties" = type { i32, ptr, i32, %"class.vk::ArrayWrapper1D", %"class.vk::ArrayWrapper1D", %"struct.vk::ConformanceVersion" }
%"struct.vk::ConformanceVersion" = type { i8, i8, i8, i8 }
%"struct.vk::PhysicalDevicePCIBusInfoPropertiesEXT" = type { i32, ptr, i32, i32, i32, i32 }
%"class.std::vector.30" = type { %"struct.std::_Vector_base.31" }
%"struct.std::_Vector_base.31" = type { %"struct.std::_Vector_base<vk::QueueFamilyProperties, std::allocator<vk::QueueFamilyProperties>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::QueueFamilyProperties, std::allocator<vk::QueueFamilyProperties>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::QueueFamilyProperties, std::allocator<vk::QueueFamilyProperties>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::QueueFamilyProperties, std::allocator<vk::QueueFamilyProperties>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.vk::Flags.35" = type { i32 }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<vk::DisplayPropertiesKHR, std::allocator<vk::DisplayPropertiesKHR>>::_Vector_impl" }
%"struct.std::_Vector_base<vk::DisplayPropertiesKHR, std::allocator<vk::DisplayPropertiesKHR>>::_Vector_impl" = type { %"struct.std::_Vector_base<vk::DisplayPropertiesKHR, std::allocator<vk::DisplayPropertiesKHR>>::_Vector_impl_data" }
%"struct.std::_Vector_base<vk::DisplayPropertiesKHR, std::allocator<vk::DisplayPropertiesKHR>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.41" = type { ptr }

@_ZTIN2vk5ErrorE = external dso_local constant { ptr, ptr }, align 8
@_ZTISt9exception = external constant ptr
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 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
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [37 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca %struct.VkFunc, align 8
  %4 = alloca %"class.std::vector", align 8
  %5 = alloca %"class.vk::Optional", align 8
  %6 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %7 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %9 = alloca %"class.std::vector.0", align 8
  %10 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %13 = alloca %"class.std::vector.6", align 8
  %14 = alloca %class.anon, align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.11", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.11", align 1
  %19 = alloca %"class.vk::UniqueHandle", align 8
  %20 = alloca %"struct.vk::InstanceCreateInfo", align 8
  %21 = alloca %"class.vk::Flags", align 4
  %22 = alloca %"struct.vk::ApplicationInfo", align 8
  %23 = alloca %"class.vk::Optional.14", align 8
  %24 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %25 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %26 = alloca %"class.std::vector.15", align 8
  %27 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.20", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.20", align 8
  %30 = alloca %"class.vk::PhysicalDevice", align 8
  %31 = alloca %"struct.vk::PhysicalDeviceProperties", align 8
  %32 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %33 = alloca %"class.std::vector", align 8
  %34 = alloca %"class.vk::Optional", align 8
  %35 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %36 = alloca %"struct.vk::PhysicalDeviceProperties2", align 8
  %37 = alloca %"struct.vk::PhysicalDeviceProperties", align 8
  %38 = alloca %"struct.std::array", align 1
  %39 = alloca %"struct.std::array.22", align 1
  %40 = alloca %"struct.vk::PhysicalDeviceLimits", align 8
  %41 = alloca %"struct.std::array.24", align 4
  %42 = alloca %"struct.std::array.24", align 4
  %43 = alloca %"struct.std::array.26", align 8
  %44 = alloca %"struct.std::array.28", align 8
  %45 = alloca %"class.vk::Flags.29", align 4
  %46 = alloca %"class.vk::Flags.29", align 4
  %47 = alloca %"class.vk::Flags.29", align 4
  %48 = alloca %"class.vk::Flags.29", align 4
  %49 = alloca %"class.vk::Flags.29", align 4
  %50 = alloca %"class.vk::Flags.29", align 4
  %51 = alloca %"class.vk::Flags.29", align 4
  %52 = alloca %"class.vk::Flags.29", align 4
  %53 = alloca %"class.vk::Flags.29", align 4
  %54 = alloca %"struct.std::array.28", align 8
  %55 = alloca %"struct.std::array.28", align 8
  %56 = alloca %"struct.vk::PhysicalDeviceSparseProperties", align 8
  %57 = alloca %"struct.vk::PhysicalDeviceDriverProperties", align 8
  %58 = alloca %"struct.std::array", align 1
  %59 = alloca %"struct.std::array", align 1
  %60 = alloca %"struct.vk::ConformanceVersion", align 4
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator.11", align 1
  %63 = alloca %"struct.vk::PhysicalDevicePCIBusInfoPropertiesEXT", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator.11", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::vector.30", align 8
  %68 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.vk::Flags.35", align 4
  %71 = alloca %"class.vk::DispatchLoaderStatic", align 1
  %72 = alloca %"class.std::vector.36", align 8
  %73 = alloca %"class.__gnu_cxx::__normal_iterator.41", align 8
  %74 = alloca %"class.__gnu_cxx::__normal_iterator.41", align 8
  %75 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %76 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #12
  call void @_ZZ4mainEN6VkFuncC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #12
  %77 = load ptr, ptr %3, align 8, !tbaa !5
  %78 = icmp eq ptr %77, null
  br i1 %78, label %81, label %79

79:                                               ; preds = %2
  %80 = invoke noundef i32 @_ZN2vk24enumerateInstanceVersionIZ4mainE6VkFuncEEjRKT_(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %81 unwind label %120

81:                                               ; preds = %79, %2
  %82 = phi i32 [ 4194304, %2 ], [ %80, %79 ]
  %83 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str)
          to label %84 unwind label %120

84:                                               ; preds = %81
  %85 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %86 unwind label %120

86:                                               ; preds = %84
  %87 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %88 unwind label %120

88:                                               ; preds = %86
  %89 = lshr i32 %82, 22
  %90 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %87, i32 noundef %89)
          to label %91 unwind label %120

91:                                               ; preds = %88
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull @.str.2)
          to label %93 unwind label %120

93:                                               ; preds = %91
  %94 = lshr i32 %82, 12
  %95 = and i32 %94, 1023
  %96 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %92, i32 noundef %95)
          to label %97 unwind label %120

97:                                               ; preds = %93
  %98 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull @.str.2)
          to label %99 unwind label %120

99:                                               ; preds = %97
  %100 = and i32 %82, 4095
  %101 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %98, i32 noundef %100)
          to label %102 unwind label %120

102:                                              ; preds = %99
  %103 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull @.str.3)
          to label %104 unwind label %120

104:                                              ; preds = %102
  %105 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %103, i32 noundef 154)
          to label %106 unwind label %120

106:                                              ; preds = %104
  %107 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull @.str.4)
          to label %108 unwind label %120

108:                                              ; preds = %106
  %109 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %110 unwind label %120

110:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #12
  call void @_ZN2vk8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr null) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #12
  %111 = load ptr, ptr %5, align 8
  invoke void @_ZN2vk36enumerateInstanceExtensionPropertiesISaINS_19ExtensionPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS1_T_EE4typeENS_8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %4, ptr %111, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %112 unwind label %124

112:                                              ; preds = %110
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #12
  %113 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.5)
          to label %114 unwind label %128

114:                                              ; preds = %112
  %115 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %116 unwind label %128

116:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #12
  %117 = call ptr @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #12
  store ptr %117, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  %118 = call ptr @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #12
  store ptr %118, ptr %8, align 8
  %119 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #12
  br i1 %119, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %147, %116
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #12
  invoke void @_ZN2vk32enumerateInstanceLayerPropertiesISaINS_15LayerPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS1_T_EE4typeERKT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.0") align 8 %9, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %154 unwind label %162

120:                                              ; preds = %108, %106, %104, %102, %99, %97, %93, %91, %88, %86, %84, %81, %79
  %121 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %122 = extractvalue { ptr, i32 } %121, 0
  %123 = extractvalue { ptr, i32 } %121, 1
  br label %652

124:                                              ; preds = %110
  %125 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %126 = extractvalue { ptr, i32 } %125, 0
  %127 = extractvalue { ptr, i32 } %125, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #12
  br label %651

128:                                              ; preds = %114, %112
  %129 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %130 = extractvalue { ptr, i32 } %129, 0
  %131 = extractvalue { ptr, i32 } %129, 1
  br label %650

.lr.ph:                                           ; preds = %116, %147
  %132 = call noundef nonnull align 4 dereferenceable(260) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #12
  %133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.6)
          to label %134 unwind label %150

134:                                              ; preds = %.lr.ph
  %135 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %132) #12
  %136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef %135)
          to label %137 unwind label %150

137:                                              ; preds = %134
  %138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %136, ptr noundef nonnull @.str.7)
          to label %139 unwind label %150

139:                                              ; preds = %137
  %140 = getelementptr inbounds i8, ptr %132, i64 256
  %141 = load i32, ptr %140, align 4, !tbaa !10
  %142 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %138, i32 noundef %141)
          to label %143 unwind label %150

143:                                              ; preds = %139
  %144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef nonnull @.str.4)
          to label %145 unwind label %150

145:                                              ; preds = %143
  %146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %147 unwind label %150

147:                                              ; preds = %145
  %148 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #12
  %149 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #12
  br i1 %149, label %.lr.ph, label %._crit_edge

150:                                              ; preds = %145, %143, %139, %137, %134, %.lr.ph
  %151 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %152 = extractvalue { ptr, i32 } %151, 0
  %153 = extractvalue { ptr, i32 } %151, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  br label %650

154:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #12
  %155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.8)
          to label %156 unwind label %166

156:                                              ; preds = %154
  %157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %158 unwind label %166

158:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %159 = call ptr @_ZNSt6vectorIN2vk15LayerPropertiesESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #12
  store ptr %159, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  %160 = call ptr @_ZNSt6vectorIN2vk15LayerPropertiesESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #12
  store ptr %160, ptr %12, align 8
  %161 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk15LayerPropertiesESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #12
  br i1 %161, label %.lr.ph102, label %._crit_edge103

._crit_edge103:                                   ; preds = %185, %158
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #12
  call void @_ZNSt6vectorIPKcSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %192 unwind label %200

162:                                              ; preds = %._crit_edge
  %163 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %164 = extractvalue { ptr, i32 } %163, 0
  %165 = extractvalue { ptr, i32 } %163, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #12
  br label %649

166:                                              ; preds = %156, %154
  %167 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %168 = extractvalue { ptr, i32 } %167, 0
  %169 = extractvalue { ptr, i32 } %167, 1
  br label %648

.lr.ph102:                                        ; preds = %158, %185
  %170 = call noundef nonnull align 4 dereferenceable(520) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk15LayerPropertiesESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #12
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.6)
          to label %172 unwind label %188

172:                                              ; preds = %.lr.ph102
  %173 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %170) #12
  %174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %171, ptr noundef %173)
          to label %175 unwind label %188

175:                                              ; preds = %172
  %176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %174, ptr noundef nonnull @.str.7)
          to label %177 unwind label %188

177:                                              ; preds = %175
  %178 = getelementptr inbounds i8, ptr %170, i64 256
  %179 = load i32, ptr %178, align 4, !tbaa !15
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %176, i32 noundef %179)
          to label %181 unwind label %188

181:                                              ; preds = %177
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef nonnull @.str.4)
          to label %183 unwind label %188

183:                                              ; preds = %181
  %184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %185 unwind label %188

185:                                              ; preds = %183
  %186 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk15LayerPropertiesESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #12
  %187 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk15LayerPropertiesESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #12
  br i1 %187, label %.lr.ph102, label %._crit_edge103

188:                                              ; preds = %183, %181, %177, %175, %172, %.lr.ph102
  %189 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %190 = extractvalue { ptr, i32 } %189, 0
  %191 = extractvalue { ptr, i32 } %189, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  br label %648

192:                                              ; preds = %._crit_edge103
  %193 = invoke noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %194 unwind label %202

194:                                              ; preds = %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %195 unwind label %205

195:                                              ; preds = %194
  %196 = invoke noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %197 unwind label %207

197:                                              ; preds = %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #12
  br i1 %193, label %198, label %214

198:                                              ; preds = %197
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJRA39_S0_EEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 1 dereferenceable(39) @.str.9)
          to label %214 unwind label %210

200:                                              ; preds = %._crit_edge103
  %201 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %204

202:                                              ; preds = %192
  %203 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #12
  br label %204

204:                                              ; preds = %202, %200
  %.pn = phi { ptr, i32 } [ %203, %202 ], [ %201, %200 ]
  %.0 = extractvalue { ptr, i32 } %.pn, 0
  %.047 = extractvalue { ptr, i32 } %.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #12
  br label %647

205:                                              ; preds = %194
  %206 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %209

207:                                              ; preds = %195
  %208 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #12
  br label %209

209:                                              ; preds = %207, %205
  %.pn77 = phi { ptr, i32 } [ %208, %207 ], [ %206, %205 ]
  %.1 = extractvalue { ptr, i32 } %.pn77, 0
  %.148 = extractvalue { ptr, i32 } %.pn77, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #12
  br label %647

210:                                              ; preds = %217, %215, %198
  %211 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %212 = extractvalue { ptr, i32 } %211, 0
  %213 = extractvalue { ptr, i32 } %211, 1
  br label %647

214:                                              ; preds = %198, %197
  br i1 %196, label %215, label %219

215:                                              ; preds = %214
  %216 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJRA15_S0_EEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 1 dereferenceable(15) @.str.10)
          to label %217 unwind label %210

217:                                              ; preds = %215
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJRA15_S0_EEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 1 dereferenceable(15) @.str.11)
          to label %219 unwind label %210

219:                                              ; preds = %217, %214
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %20) #12
  call void @_ZN2vk5FlagsINS_22InstanceCreateFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %21) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %22) #12
  call void @_ZN2vk15ApplicationInfoC2EPKcjS2_jj(ptr noundef nonnull align 8 dereferenceable(48) %22, ptr noundef nonnull @.str.12, i32 noundef 0, ptr noundef null, i32 noundef 0, i32 noundef 4194304) #12
  %220 = call noundef i64 @_ZNKSt6vectorIPKcSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #12
  %221 = trunc i64 %220 to i32
  %222 = call noundef ptr @_ZNSt6vectorIPKcSaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #12
  call void @_ZN2vk18InstanceCreateInfoC2ENS_5FlagsINS_22InstanceCreateFlagBitsEEEPKNS_15ApplicationInfoEjPKPKcjSA_(ptr noundef nonnull align 8 dereferenceable(64) %20, ptr noundef nonnull %21, ptr noundef nonnull %22, i32 noundef 0, ptr noundef null, i32 noundef %221, ptr noundef %222) #12
  call void @_ZN2vk8OptionalIKNS_19AllocationCallbacksEEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr null) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #12
  %223 = load ptr, ptr %23, align 8
  invoke void @_ZN2vk20createInstanceUniqueINS_20DispatchLoaderStaticEEENS_15ResultValueTypeINS_12UniqueHandleINS_8InstanceET_EEE4typeERKNS_18InstanceCreateInfoENS_8OptionalIKNS_19AllocationCallbacksEEERKS5_(ptr dead_on_unwind nonnull writable sret(%"class.vk::UniqueHandle") align 8 %19, ptr noundef nonnull align 8 dereferenceable(64) %20, ptr %223, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %224 unwind label %255

224:                                              ; preds = %219
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #12
  %225 = call noundef ptr @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEEptEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #12
  %226 = call noundef ptr @_ZNK2vk8Instance11getProcAddrINS_20DispatchLoaderStaticEEEPFvvEPKcRKT_(ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %25) #12
  %227 = getelementptr inbounds i8, ptr %3, i64 8
  store ptr %226, ptr %227, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #12
  %228 = call noundef ptr @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEEptEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #12
  invoke void @_ZNK2vk8Instance24enumeratePhysicalDevicesISaINS_14PhysicalDeviceEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeERKT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.15") align 8 %26, ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %229 unwind label %259

229:                                              ; preds = %224
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #12
  %230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.14)
          to label %231 unwind label %263

231:                                              ; preds = %229
  %232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %233 unwind label %263

233:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #12
  %234 = call ptr @_ZNSt6vectorIN2vk14PhysicalDeviceESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #12
  store ptr %234, ptr %28, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  %235 = call ptr @_ZNSt6vectorIN2vk14PhysicalDeviceESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #12
  store ptr %235, ptr %29, align 8
  %236 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk14PhysicalDeviceESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #12
  br i1 %236, label %.lr.ph115, label %._crit_edge116

.lr.ph115:                                        ; preds = %233
  %237 = getelementptr inbounds i8, ptr %31, i64 20
  %238 = getelementptr inbounds i8, ptr %31, i64 4
  %239 = getelementptr inbounds i8, ptr %31, i64 8
  %240 = getelementptr inbounds i8, ptr %31, i64 12
  %241 = getelementptr inbounds i8, ptr %36, i64 8
  %242 = getelementptr inbounds i8, ptr %57, i64 20
  %243 = getelementptr inbounds i8, ptr %57, i64 276
  %244 = getelementptr inbounds i8, ptr %63, i64 8
  %245 = getelementptr inbounds i8, ptr %57, i64 16
  %246 = getelementptr inbounds i8, ptr %57, i64 532
  %247 = getelementptr inbounds i8, ptr %57, i64 533
  %248 = getelementptr inbounds i8, ptr %57, i64 534
  %249 = getelementptr inbounds i8, ptr %57, i64 535
  %250 = getelementptr inbounds i8, ptr %63, i64 16
  %251 = getelementptr inbounds i8, ptr %63, i64 20
  %252 = getelementptr inbounds i8, ptr %63, i64 24
  %253 = getelementptr inbounds i8, ptr %63, i64 28
  %254 = getelementptr inbounds i8, ptr %3, i64 16
  br label %267

._crit_edge116:                                   ; preds = %._crit_edge113, %233
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  call void @_ZNSt6vectorIN2vk14PhysicalDeviceESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #12
  call void @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #12
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #12
  call void @_ZNSt6vectorIN2vk15LayerPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #12
  call void @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #12
  br label %667

255:                                              ; preds = %219
  %256 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %257 = extractvalue { ptr, i32 } %256, 0
  %258 = extractvalue { ptr, i32 } %256, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #12
  br label %646

259:                                              ; preds = %224
  %260 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %261 = extractvalue { ptr, i32 } %260, 0
  %262 = extractvalue { ptr, i32 } %260, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #12
  br label %645

263:                                              ; preds = %231, %229
  %264 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %265 = extractvalue { ptr, i32 } %264, 0
  %266 = extractvalue { ptr, i32 } %264, 1
  br label %644

267:                                              ; preds = %.lr.ph115, %._crit_edge113
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %268 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk14PhysicalDeviceESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #12
  %269 = load i64, ptr %268, align 8, !tbaa !18
  store i64 %269, ptr %30, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 824, ptr nonnull %31) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #12
  call void @_ZNK2vk14PhysicalDevice13getPropertiesINS_20DispatchLoaderStaticEEENS_24PhysicalDevicePropertiesERKT_(ptr dead_on_unwind nonnull writable sret(%"struct.vk::PhysicalDeviceProperties") align 8 %31, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 1 dereferenceable(1) %32) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #12
  %270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.15)
          to label %271 unwind label %361

271:                                              ; preds = %267
  %272 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %237) #12
  %273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %270, ptr noundef %272)
          to label %274 unwind label %361

274:                                              ; preds = %271
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %276 unwind label %361

276:                                              ; preds = %274
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.16)
          to label %278 unwind label %361

278:                                              ; preds = %276
  %279 = load i32, ptr %31, align 8, !tbaa !19
  %280 = lshr i32 %279, 22
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %277, i32 noundef %280)
          to label %282 unwind label %361

282:                                              ; preds = %278
  %283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef nonnull @.str.2)
          to label %284 unwind label %361

284:                                              ; preds = %282
  %285 = load i32, ptr %31, align 8, !tbaa !19
  %286 = lshr i32 %285, 12
  %287 = and i32 %286, 1023
  %288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %283, i32 noundef %287)
          to label %289 unwind label %361

289:                                              ; preds = %284
  %290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %288, ptr noundef nonnull @.str.2)
          to label %291 unwind label %361

291:                                              ; preds = %289
  %292 = load i32, ptr %31, align 8, !tbaa !19
  %293 = and i32 %292, 4095
  %294 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %290, i32 noundef %293)
          to label %295 unwind label %361

295:                                              ; preds = %291
  %296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %297 unwind label %361

297:                                              ; preds = %295
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.17)
          to label %299 unwind label %361

299:                                              ; preds = %297
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef nonnull @_ZSt3hexRSt8ios_base)
          to label %301 unwind label %361

301:                                              ; preds = %299
  %302 = load i32, ptr %238, align 4, !tbaa !35
  %303 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %300, i32 noundef %302)
          to label %304 unwind label %361

304:                                              ; preds = %301
  %305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %306 unwind label %361

306:                                              ; preds = %304
  %307 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef nonnull @.str.18)
          to label %308 unwind label %361

308:                                              ; preds = %306
  %309 = load i32, ptr %238, align 4, !tbaa !35
  %310 = lshr i32 %309, 22
  %311 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %307, i32 noundef %310)
          to label %312 unwind label %361

312:                                              ; preds = %308
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %311, ptr noundef nonnull @.str.2)
          to label %314 unwind label %361

314:                                              ; preds = %312
  %315 = load i32, ptr %238, align 4, !tbaa !35
  %316 = lshr i32 %315, 12
  %317 = and i32 %316, 1023
  %318 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %313, i32 noundef %317)
          to label %319 unwind label %361

319:                                              ; preds = %314
  %320 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %318, ptr noundef nonnull @.str.2)
          to label %321 unwind label %361

321:                                              ; preds = %319
  %322 = load i32, ptr %238, align 4, !tbaa !35
  %323 = and i32 %322, 4095
  %324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %320, i32 noundef %323)
          to label %325 unwind label %361

325:                                              ; preds = %321
  %326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %324, ptr noundef nonnull @.str.4)
          to label %327 unwind label %361

327:                                              ; preds = %325
  %328 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %326, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %329 unwind label %361

329:                                              ; preds = %327
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %331 unwind label %361

331:                                              ; preds = %329
  %332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %330, ptr noundef nonnull @_ZSt3hexRSt8ios_base)
          to label %333 unwind label %361

333:                                              ; preds = %331
  %334 = load i32, ptr %239, align 8, !tbaa !36
  %335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %332, i32 noundef %334)
          to label %336 unwind label %361

336:                                              ; preds = %333
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %335, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %338 unwind label %361

338:                                              ; preds = %336
  %339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %337, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %340 unwind label %361

340:                                              ; preds = %338
  %341 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.20)
          to label %342 unwind label %361

342:                                              ; preds = %340
  %343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %341, ptr noundef nonnull @_ZSt3hexRSt8ios_base)
          to label %344 unwind label %361

344:                                              ; preds = %342
  %345 = load i32, ptr %240, align 4, !tbaa !37
  %346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %343, i32 noundef %345)
          to label %347 unwind label %361

347:                                              ; preds = %344
  %348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %346, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %349 unwind label %361

349:                                              ; preds = %347
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %348, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %351 unwind label %361

351:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #12
  call void @_ZN2vk8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr null) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #12
  %352 = load ptr, ptr %34, align 8
  invoke void @_ZNK2vk14PhysicalDevice34enumerateDeviceExtensionPropertiesISaINS_19ExtensionPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeENS_8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %33, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr %352, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %353 unwind label %365

353:                                              ; preds = %351
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #12
  call void @llvm.lifetime.start.p0(i64 840, ptr nonnull %36) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %38) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(256) %38, i8 0, i64 256, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %39, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %41) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %41, i8 0, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %42) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %42, i8 0, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #12
  store i64 0, ptr %43, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #12
  store i64 0, ptr %44, align 8
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %45) #12
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %46) #12
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %47) #12
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %48) #12
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %49) #12
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %50) #12
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %51) #12
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %52) #12
  call void @_ZN2vk5FlagsINS_19SampleCountFlagBitsEEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %53) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  store i64 0, ptr %54, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #12
  store i64 0, ptr %55, align 8
  call void @_ZN2vk20PhysicalDeviceLimitsC2EjjjjjjjjjjjmmjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjRKSt5arrayIjLm3EEjS4_jjjjjffjRKS1_IjLm2EERKS1_IfLm2EEjmmmmijijffjjjjNS_5FlagsINS_19SampleCountFlagBitsEEESD_SD_SD_jSD_SD_SD_SD_SD_jjfjjjjSA_SA_ffjjmmm(ptr noundef nonnull align 8 dereferenceable(504) %40, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i64 noundef 0, i64 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %41, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %42, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, float noundef 0.000000e+00, float noundef 0.000000e+00, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(8) %44, i32 noundef 0, i64 noundef 0, i64 noundef 0, i64 noundef 0, i64 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, float noundef 0.000000e+00, float noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef nonnull %45, ptr noundef nonnull %46, ptr noundef nonnull %47, ptr noundef nonnull %48, i32 noundef 0, ptr noundef nonnull %49, ptr noundef nonnull %50, ptr noundef nonnull %51, ptr noundef nonnull %52, ptr noundef nonnull %53, i32 noundef 0, i32 noundef 0, float noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %54, ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef 0.000000e+00, float noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i64 noundef 0, i64 noundef 0, i64 noundef 0) #12
  call void @_ZN2vk30PhysicalDeviceSparsePropertiesC2Ejjjjj(ptr noundef nonnull align 4 dereferenceable(20) %56, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0) #12
  call void @_ZN2vk24PhysicalDevicePropertiesC2EjjjjNS_18PhysicalDeviceTypeERKSt5arrayIcLm256EERKS2_IhLm16EENS_20PhysicalDeviceLimitsENS_30PhysicalDeviceSparsePropertiesE(ptr noundef nonnull align 8 dereferenceable(820) %37, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 1 dereferenceable(256) %38, ptr noundef nonnull align 1 dereferenceable(16) %39, ptr noundef nonnull %40, ptr noundef nonnull byval(%"struct.vk::PhysicalDeviceSparseProperties") align 8 %56) #12
  call void @_ZN2vk25PhysicalDeviceProperties2C2ENS_24PhysicalDevicePropertiesE(ptr noundef nonnull align 8 dereferenceable(840) %36, ptr noundef nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %41) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %38) #12
  call void @llvm.lifetime.start.p0(i64 536, ptr nonnull %57) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %58) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(256) %58, i8 0, i64 256, i1 false)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %59) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(256) %59, i8 0, i64 256, i1 false)
  call void @_ZN2vk18ConformanceVersionC2Ehhhh(ptr noundef nonnull align 1 dereferenceable(4) %60, i8 noundef zeroext 0, i8 noundef zeroext 0, i8 noundef zeroext 0, i8 noundef zeroext 0) #12
  %354 = load i32, ptr %60, align 4
  call void @_ZN2vk30PhysicalDeviceDriverPropertiesC2ENS_8DriverIdERKSt5arrayIcLm256EES5_NS_18ConformanceVersionE(ptr noundef nonnull align 8 dereferenceable(536) %57, i32 noundef 1, ptr noundef nonnull align 1 dereferenceable(256) %58, ptr noundef nonnull align 1 dereferenceable(256) %59, i32 %354) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %59) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %58) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %62) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %355 unwind label %369

355:                                              ; preds = %353
  %356 = invoke noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %357 unwind label %371

357:                                              ; preds = %355
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #12
  br i1 %356, label %358, label %374

358:                                              ; preds = %357
  store ptr %57, ptr %241, align 8, !tbaa !38
  %359 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %242) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(256) %359, i8 0, i64 256, i1 false)
  %360 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %243) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(256) %360, i8 0, i64 256, i1 false)
  br label %374

361:                                              ; preds = %349, %347, %344, %342, %340, %338, %336, %333, %331, %329, %327, %325, %321, %319, %314, %312, %308, %306, %304, %301, %299, %297, %295, %291, %289, %284, %282, %278, %276, %274, %271, %267
  %362 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %363 = extractvalue { ptr, i32 } %362, 0
  %364 = extractvalue { ptr, i32 } %362, 1
  br label %643

365:                                              ; preds = %351
  %366 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %367 = extractvalue { ptr, i32 } %366, 0
  %368 = extractvalue { ptr, i32 } %366, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #12
  br label %642

369:                                              ; preds = %353
  %370 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %373

371:                                              ; preds = %355
  %372 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #12
  br label %373

373:                                              ; preds = %371, %369
  %.pn79 = phi { ptr, i32 } [ %372, %371 ], [ %370, %369 ]
  %.2 = extractvalue { ptr, i32 } %.pn79, 0
  %.249 = extractvalue { ptr, i32 } %.pn79, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #12
  br label %641

374:                                              ; preds = %358, %357
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #12
  call void @_ZN2vk37PhysicalDevicePCIBusInfoPropertiesEXTC2Ejjjj(ptr noundef nonnull align 8 dereferenceable(32) %63, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %375 unwind label %378

375:                                              ; preds = %374
  %376 = invoke noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %377 unwind label %380

377:                                              ; preds = %375
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #12
  %.pre = load ptr, ptr %241, align 8, !tbaa !38
  br i1 %376, label %.thread, label %383

.thread:                                          ; preds = %377
  store ptr %.pre, ptr %244, align 8, !tbaa !41
  store ptr %63, ptr %241, align 8, !tbaa !38
  br label %384

378:                                              ; preds = %374
  %379 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %382

380:                                              ; preds = %375
  %381 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #12
  br label %382

382:                                              ; preds = %380, %378
  %.pn81 = phi { ptr, i32 } [ %381, %380 ], [ %379, %378 ]
  %.3 = extractvalue { ptr, i32 } %.pn81, 0
  %.350 = extractvalue { ptr, i32 } %.pn81, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #12
  br label %640

383:                                              ; preds = %377
  %.not = icmp eq ptr %.pre, null
  br i1 %.not, label %385, label %384

384:                                              ; preds = %.thread, %383
  call void @_ZNK2vk14PhysicalDevice17getProperties2KHRIZ4mainE6VkFuncEEvPNS_25PhysicalDeviceProperties2ERKT_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull %36, ptr noundef nonnull align 8 dereferenceable(24) %3) #12
  br label %385

385:                                              ; preds = %384, %383
  br i1 %356, label %386, label %441

386:                                              ; preds = %385
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.23)
          to label %388 unwind label %432

388:                                              ; preds = %386
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %390 unwind label %432

390:                                              ; preds = %388
  %391 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.24)
          to label %392 unwind label %432

392:                                              ; preds = %390
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #12
  %393 = load i32, ptr %245, align 8, !tbaa !43
  invoke void @_ZN2vk9to_stringB5cxx11ENS_8DriverIdE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, i32 noundef %393)
          to label %394 unwind label %436

394:                                              ; preds = %392
  %395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %391, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %396 unwind label %438

396:                                              ; preds = %394
  %397 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %395, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %398 unwind label %438

398:                                              ; preds = %396
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #12
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.25)
          to label %400 unwind label %432

400:                                              ; preds = %398
  %401 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %242) #12
  %402 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %399, ptr noundef %401)
          to label %403 unwind label %432

403:                                              ; preds = %400
  %404 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %402, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %405 unwind label %432

405:                                              ; preds = %403
  %406 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.26)
          to label %407 unwind label %432

407:                                              ; preds = %405
  %408 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %243) #12
  %409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %406, ptr noundef %408)
          to label %410 unwind label %432

410:                                              ; preds = %407
  %411 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %409, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %412 unwind label %432

412:                                              ; preds = %410
  %413 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.27)
          to label %414 unwind label %432

414:                                              ; preds = %412
  %415 = load i8, ptr %246, align 4, !tbaa !47
  %416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8) %413, i8 noundef zeroext %415)
          to label %417 unwind label %432

417:                                              ; preds = %414
  %418 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef nonnull @.str.2)
          to label %419 unwind label %432

419:                                              ; preds = %417
  %420 = load i8, ptr %247, align 1, !tbaa !48
  %421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8) %418, i8 noundef zeroext %420)
          to label %422 unwind label %432

422:                                              ; preds = %419
  %423 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %421, ptr noundef nonnull @.str.2)
          to label %424 unwind label %432

424:                                              ; preds = %422
  %425 = load i8, ptr %248, align 2, !tbaa !49
  %426 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8) %423, i8 noundef zeroext %425)
          to label %427 unwind label %432

427:                                              ; preds = %424
  %428 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %426, ptr noundef nonnull @.str.2)
          to label %429 unwind label %432

429:                                              ; preds = %427
  %430 = load i8, ptr %249, align 1, !tbaa !50
  %431 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8) %428, i8 noundef zeroext %430)
          to label %.invoke127 unwind label %432

432:                                              ; preds = %.invoke127, %.invoke, %490, %488, %484, %482, %480, %477, %475, %473, %470, %468, %466, %463, %461, %459, %456, %454, %452, %450, %445, %443, %441, %429, %427, %424, %422, %419, %417, %414, %412, %410, %407, %405, %403, %400, %398, %390, %388, %386
  %433 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %434 = extractvalue { ptr, i32 } %433, 0
  %435 = extractvalue { ptr, i32 } %433, 1
  br label %640

436:                                              ; preds = %392
  %437 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %440

438:                                              ; preds = %396, %394
  %439 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #12
  br label %440

440:                                              ; preds = %438, %436
  %.pn83 = phi { ptr, i32 } [ %439, %438 ], [ %437, %436 ]
  %.4 = extractvalue { ptr, i32 } %.pn83, 0
  %.451 = extractvalue { ptr, i32 } %.pn83, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #12
  br label %640

441:                                              ; preds = %385
  %442 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.23)
          to label %443 unwind label %432

443:                                              ; preds = %441
  %444 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %445 unwind label %432

445:                                              ; preds = %443
  %446 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %444, ptr noundef nonnull @.str.28)
          to label %.invoke127 unwind label %432

.invoke127:                                       ; preds = %429, %445
  %447 = phi ptr [ %446, %445 ], [ %431, %429 ]
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %447, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %449 unwind label %432

449:                                              ; preds = %.invoke127
  br i1 %376, label %450, label %480

450:                                              ; preds = %449
  %451 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.29)
          to label %452 unwind label %432

452:                                              ; preds = %450
  %453 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %451, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %454 unwind label %432

454:                                              ; preds = %452
  %455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.30)
          to label %456 unwind label %432

456:                                              ; preds = %454
  %457 = load i32, ptr %250, align 8, !tbaa !51
  %458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %455, i32 noundef %457)
          to label %459 unwind label %432

459:                                              ; preds = %456
  %460 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %458, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %461 unwind label %432

461:                                              ; preds = %459
  %462 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.31)
          to label %463 unwind label %432

463:                                              ; preds = %461
  %464 = load i32, ptr %251, align 4, !tbaa !52
  %465 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %462, i32 noundef %464)
          to label %466 unwind label %432

466:                                              ; preds = %463
  %467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %468 unwind label %432

468:                                              ; preds = %466
  %469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.32)
          to label %470 unwind label %432

470:                                              ; preds = %468
  %471 = load i32, ptr %252, align 8, !tbaa !53
  %472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %469, i32 noundef %471)
          to label %473 unwind label %432

473:                                              ; preds = %470
  %474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %472, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %475 unwind label %432

475:                                              ; preds = %473
  %476 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.33)
          to label %477 unwind label %432

477:                                              ; preds = %475
  %478 = load i32, ptr %253, align 4, !tbaa !54
  %479 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %476, i32 noundef %478)
          to label %.invoke unwind label %432

480:                                              ; preds = %449
  %481 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.29)
          to label %482 unwind label %432

482:                                              ; preds = %480
  %483 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %481, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %484 unwind label %432

484:                                              ; preds = %482
  %485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %483, ptr noundef nonnull @.str.28)
          to label %.invoke unwind label %432

.invoke:                                          ; preds = %484, %477
  %486 = phi ptr [ %479, %477 ], [ %485, %484 ]
  %487 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %488 unwind label %432

488:                                              ; preds = %.invoke
  %489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.34)
          to label %490 unwind label %432

490:                                              ; preds = %488
  %491 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %489, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %492 unwind label %432

492:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %67) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #12
  invoke void @_ZNK2vk14PhysicalDevice24getQueueFamilyPropertiesISaINS_21QueueFamilyPropertiesEENS_20DispatchLoaderStaticEEESt6vectorIS2_T_ERKT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.30") align 8 %67, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %493 unwind label %496

493:                                              ; preds = %492
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #12
  %494 = call noundef i64 @_ZNKSt6vectorIN2vk21QueueFamilyPropertiesESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %67) #12
  %.not117 = icmp eq i64 %494, 0
  br i1 %.not117, label %._crit_edge107, label %.lr.ph106

._crit_edge107:                                   ; preds = %523, %493
  %495 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.39)
          to label %533 unwind label %544

496:                                              ; preds = %492
  %497 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %498 = extractvalue { ptr, i32 } %497, 0
  %499 = extractvalue { ptr, i32 } %497, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #12
  br label %639

.lr.ph106:                                        ; preds = %493, %523
  %.074104 = phi i64 [ %524, %523 ], [ 0, %493 ]
  %500 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZNSt6vectorIN2vk21QueueFamilyPropertiesESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %67, i64 noundef %.074104) #12
  %501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.35)
          to label %502 unwind label %525

502:                                              ; preds = %.lr.ph106
  %503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %501, i64 noundef %.074104)
          to label %504 unwind label %525

504:                                              ; preds = %502
  %505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %503, ptr noundef nonnull @.str.36)
          to label %506 unwind label %525

506:                                              ; preds = %504
  %507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %505, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %508 unwind label %525

508:                                              ; preds = %506
  %509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.37)
          to label %510 unwind label %525

510:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #12
  call void @_ZN2vk5FlagsINS_13QueueFlagBitsEEC2ERKS2_(ptr noundef nonnull align 4 dereferenceable(4) %70, ptr noundef nonnull align 4 dereferenceable(4) %500) #12
  invoke void @_ZN2vk9to_stringB5cxx11ENS_5FlagsINS_13QueueFlagBitsEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull %70)
          to label %511 unwind label %527

511:                                              ; preds = %510
  %512 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %509, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %513 unwind label %529

513:                                              ; preds = %511
  %514 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %512, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %515 unwind label %529

515:                                              ; preds = %513
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #12
  %516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.38)
          to label %517 unwind label %525

517:                                              ; preds = %515
  %518 = getelementptr inbounds i8, ptr %500, i64 4
  %519 = load i32, ptr %518, align 4, !tbaa !55
  %520 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %516, i32 noundef %519)
          to label %521 unwind label %525

521:                                              ; preds = %517
  %522 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %520, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %523 unwind label %525

523:                                              ; preds = %521
  %524 = add nuw i64 %.074104, 1
  %exitcond.not = icmp eq i64 %524, %494
  br i1 %exitcond.not, label %._crit_edge107, label %.lr.ph106, !llvm.loop !59

525:                                              ; preds = %521, %517, %515, %508, %506, %504, %502, %.lr.ph106
  %526 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %532

527:                                              ; preds = %510
  %528 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %531

529:                                              ; preds = %513, %511
  %530 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #12
  br label %531

531:                                              ; preds = %529, %527
  %.pn91 = phi { ptr, i32 } [ %530, %529 ], [ %528, %527 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #12
  br label %532

532:                                              ; preds = %531, %525
  %.pn93 = phi { ptr, i32 } [ %526, %525 ], [ %.pn91, %531 ]
  %.6 = extractvalue { ptr, i32 } %.pn93, 0
  %.653 = extractvalue { ptr, i32 } %.pn93, 1
  br label %.loopexit

533:                                              ; preds = %._crit_edge107
  %534 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %495, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %535 unwind label %544

535:                                              ; preds = %533
  br i1 %196, label %536, label %603

536:                                              ; preds = %535
  %537 = call noundef ptr @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEEptEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #12
  %538 = call noundef ptr @_ZNK2vk8Instance11getProcAddrINS_20DispatchLoaderStaticEEEPFvvEPKcRKT_(ptr noundef nonnull align 8 dereferenceable(8) %537, ptr noundef nonnull @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %71) #12
  store ptr %538, ptr %254, align 8, !tbaa !61
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %72) #12
  invoke void @_ZNK2vk14PhysicalDevice23getDisplayPropertiesKHRISaINS_20DisplayPropertiesKHREEZ4mainE6VkFuncEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeERKT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.36") align 8 %72, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %539 unwind label %548

539:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #12
  %540 = call ptr @_ZNSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %72) #12
  store ptr %540, ptr %73, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #12
  %541 = call ptr @_ZNSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %72) #12
  store ptr %541, ptr %74, align 8
  %542 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk20DisplayPropertiesKHRESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %74) #12
  br i1 %542, label %.lr.ph109, label %._crit_edge110

._crit_edge110:                                   ; preds = %570, %539
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #12
  %543 = call noundef zeroext i1 @_ZNKSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %72) #12
  br i1 %543, label %575, label %581

544:                                              ; preds = %609, %607, %605, %603, %533, %._crit_edge107
  %545 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %546 = extractvalue { ptr, i32 } %545, 0
  %547 = extractvalue { ptr, i32 } %545, 1
  br label %.loopexit

548:                                              ; preds = %536
  %549 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %583

.lr.ph109:                                        ; preds = %539, %570
  %550 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk20DisplayPropertiesKHRESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %73) #12
  %551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.41)
          to label %552 unwind label %573

552:                                              ; preds = %.lr.ph109
  %553 = getelementptr inbounds i8, ptr %550, i64 8
  %554 = load ptr, ptr %553, align 8, !tbaa !62
  %.not85 = icmp eq ptr %554, null
  %spec.select = select i1 %.not85, ptr @.str.42, ptr %554
  %555 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %551, ptr noundef nonnull %spec.select)
          to label %556 unwind label %573

556:                                              ; preds = %552
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %555, ptr noundef nonnull @.str.43)
          to label %558 unwind label %573

558:                                              ; preds = %556
  %559 = getelementptr inbounds i8, ptr %550, i64 24
  %560 = load i32, ptr %559, align 8, !tbaa !67
  %561 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %557, i32 noundef %560)
          to label %562 unwind label %573

562:                                              ; preds = %558
  %563 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %561, ptr noundef nonnull @.str.44)
          to label %564 unwind label %573

564:                                              ; preds = %562
  %565 = getelementptr inbounds i8, ptr %550, i64 28
  %566 = load i32, ptr %565, align 4, !tbaa !68
  %567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %563, i32 noundef %566)
          to label %568 unwind label %573

568:                                              ; preds = %564
  %569 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %567, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %570 unwind label %573

570:                                              ; preds = %568
  %571 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk20DisplayPropertiesKHRESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %73) #12
  %572 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk20DisplayPropertiesKHRESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %74) #12
  br i1 %572, label %.lr.ph109, label %._crit_edge110

573:                                              ; preds = %568, %564, %562, %558, %556, %552, %.lr.ph109
  %574 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #12
  br label %582

575:                                              ; preds = %._crit_edge110
  %576 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.45)
          to label %577 unwind label %579

577:                                              ; preds = %575
  %578 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %576, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %581 unwind label %579

579:                                              ; preds = %577, %575
  %580 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %582

581:                                              ; preds = %577, %._crit_edge110
  call void @_ZNSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %72) #12
  br label %607

582:                                              ; preds = %579, %573
  %.pn86 = phi { ptr, i32 } [ %574, %573 ], [ %580, %579 ]
  call void @_ZNSt6vectorIN2vk20DisplayPropertiesKHRESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #12
  br label %583

583:                                              ; preds = %582, %548
  %.pn86.pn = phi { ptr, i32 } [ %.pn86, %582 ], [ %549, %548 ]
  %.8 = extractvalue { ptr, i32 } %.pn86.pn, 0
  %.855 = extractvalue { ptr, i32 } %.pn86.pn, 1
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %72) #12
  %584 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN2vk5ErrorE) #12
  %585 = icmp eq i32 %.855, %584
  br i1 %585, label %586, label %.loopexit

586:                                              ; preds = %583
  %587 = call ptr @__cxa_begin_catch(ptr %.8) #12
  %588 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.46)
          to label %589 unwind label %598

589:                                              ; preds = %586
  %590 = load ptr, ptr %587, align 8, !tbaa !69
  %591 = getelementptr inbounds i8, ptr %590, i64 16
  %592 = load ptr, ptr %591, align 8
  %593 = call noundef ptr %592(ptr noundef nonnull align 8 dereferenceable(8) %587) #12
  %594 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %588, ptr noundef %593)
          to label %595 unwind label %598

595:                                              ; preds = %589
  %596 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %594, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %597 unwind label %598

597:                                              ; preds = %595
  invoke void @__cxa_end_catch()
          to label %607 unwind label %600

598:                                              ; preds = %595, %589, %586
  %599 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  invoke void @__cxa_end_catch()
          to label %602 unwind label %695

600:                                              ; preds = %597
  %601 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %602

602:                                              ; preds = %598, %600
  %.pn89 = phi { ptr, i32 } [ %601, %600 ], [ %599, %598 ]
  %.9 = extractvalue { ptr, i32 } %.pn89, 0
  %.956 = extractvalue { ptr, i32 } %.pn89, 1
  br label %.loopexit

603:                                              ; preds = %535
  %604 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.47)
          to label %605 unwind label %544

605:                                              ; preds = %603
  %606 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %604, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %607 unwind label %544

607:                                              ; preds = %597, %605, %581
  %608 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.48)
          to label %609 unwind label %544

609:                                              ; preds = %607
  %610 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %608, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %611 unwind label %544

611:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #12
  %612 = call ptr @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %33) #12
  store ptr %612, ptr %75, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #12
  %613 = call ptr @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %33) #12
  store ptr %613, ptr %76, align 8
  %614 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %76) #12
  br i1 %614, label %.lr.ph112, label %._crit_edge113

._crit_edge113:                                   ; preds = %632, %611
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #12
  call void @_ZNSt6vectorIN2vk21QueueFamilyPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %67) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #12
  call void @llvm.lifetime.end.p0(i64 536, ptr nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 840, ptr nonnull %36) #12
  call void @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 824, ptr nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %615 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk14PhysicalDeviceESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #12
  %616 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk14PhysicalDeviceESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #12
  br i1 %616, label %267, label %._crit_edge116

.lr.ph112:                                        ; preds = %611, %632
  %617 = call noundef nonnull align 4 dereferenceable(260) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %75) #12
  %618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.41)
          to label %619 unwind label %635

619:                                              ; preds = %.lr.ph112
  %620 = call noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256) %617) #12
  %621 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %618, ptr noundef %620)
          to label %622 unwind label %635

622:                                              ; preds = %619
  %623 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %621, ptr noundef nonnull @.str.7)
          to label %624 unwind label %635

624:                                              ; preds = %622
  %625 = getelementptr inbounds i8, ptr %617, i64 256
  %626 = load i32, ptr %625, align 4, !tbaa !10
  %627 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %623, i32 noundef %626)
          to label %628 unwind label %635

628:                                              ; preds = %624
  %629 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %627, ptr noundef nonnull @.str.4)
          to label %630 unwind label %635

630:                                              ; preds = %628
  %631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %629, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %632 unwind label %635

632:                                              ; preds = %630
  %633 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %75) #12
  %634 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN2vk19ExtensionPropertiesESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %76) #12
  br i1 %634, label %.lr.ph112, label %._crit_edge113

635:                                              ; preds = %630, %628, %624, %622, %619, %.lr.ph112
  %636 = landingpad { ptr, i32 }
          catch ptr @_ZTIN2vk5ErrorE
          catch ptr @_ZTISt9exception
          catch ptr null
  %637 = extractvalue { ptr, i32 } %636, 0
  %638 = extractvalue { ptr, i32 } %636, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #12
  br label %.loopexit

.loopexit:                                        ; preds = %583, %635, %602, %544, %532
  %.1057 = phi i32 [ %.653, %532 ], [ %638, %635 ], [ %547, %544 ], [ %.956, %602 ], [ %.855, %583 ]
  %.10 = phi ptr [ %.6, %532 ], [ %637, %635 ], [ %546, %544 ], [ %.9, %602 ], [ %.8, %583 ]
  call void @_ZNSt6vectorIN2vk21QueueFamilyPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #12
  br label %639

639:                                              ; preds = %.loopexit, %496
  %.1158 = phi i32 [ %.1057, %.loopexit ], [ %499, %496 ]
  %.11 = phi ptr [ %.10, %.loopexit ], [ %498, %496 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %67) #12
  br label %640

640:                                              ; preds = %639, %440, %432, %382
  %.1259 = phi i32 [ %.1158, %639 ], [ %435, %432 ], [ %.451, %440 ], [ %.350, %382 ]
  %.12 = phi ptr [ %.11, %639 ], [ %434, %432 ], [ %.4, %440 ], [ %.3, %382 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #12
  br label %641

641:                                              ; preds = %640, %373
  %.1360 = phi i32 [ %.1259, %640 ], [ %.249, %373 ]
  %.13 = phi ptr [ %.12, %640 ], [ %.2, %373 ]
  call void @llvm.lifetime.end.p0(i64 536, ptr nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 840, ptr nonnull %36) #12
  call void @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #12
  br label %642

642:                                              ; preds = %641, %365
  %.1461 = phi i32 [ %.1360, %641 ], [ %368, %365 ]
  %.14 = phi ptr [ %.13, %641 ], [ %367, %365 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #12
  br label %643

643:                                              ; preds = %642, %361
  %.1562 = phi i32 [ %.1461, %642 ], [ %364, %361 ]
  %.15 = phi ptr [ %.14, %642 ], [ %363, %361 ]
  call void @llvm.lifetime.end.p0(i64 824, ptr nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  br label %644

644:                                              ; preds = %643, %263
  %.1663 = phi i32 [ %.1562, %643 ], [ %266, %263 ]
  %.16 = phi ptr [ %.15, %643 ], [ %265, %263 ]
  call void @_ZNSt6vectorIN2vk14PhysicalDeviceESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #12
  br label %645

645:                                              ; preds = %644, %259
  %.1764 = phi i32 [ %.1663, %644 ], [ %262, %259 ]
  %.17 = phi ptr [ %.16, %644 ], [ %261, %259 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #12
  call void @_ZN2vk12UniqueHandleINS_8InstanceENS_20DispatchLoaderStaticEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #12
  br label %646

646:                                              ; preds = %645, %255
  %.1865 = phi i32 [ %.1764, %645 ], [ %258, %255 ]
  %.18 = phi ptr [ %.17, %645 ], [ %257, %255 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #12
  br label %647

647:                                              ; preds = %209, %210, %646, %204
  %.2067 = phi i32 [ %.047, %204 ], [ %.1865, %646 ], [ %213, %210 ], [ %.148, %209 ]
  %.20 = phi ptr [ %.0, %204 ], [ %.18, %646 ], [ %212, %210 ], [ %.1, %209 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #12
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #12
  br label %648

648:                                              ; preds = %647, %188, %166
  %.2168 = phi i32 [ %191, %188 ], [ %.2067, %647 ], [ %169, %166 ]
  %.21 = phi ptr [ %190, %188 ], [ %.20, %647 ], [ %168, %166 ]
  call void @_ZNSt6vectorIN2vk15LayerPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #12
  br label %649

649:                                              ; preds = %648, %162
  %.2269 = phi i32 [ %.2168, %648 ], [ %165, %162 ]
  %.22 = phi ptr [ %.21, %648 ], [ %164, %162 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #12
  br label %650

650:                                              ; preds = %649, %150, %128
  %.2370 = phi i32 [ %153, %150 ], [ %.2269, %649 ], [ %131, %128 ]
  %.23 = phi ptr [ %152, %150 ], [ %.22, %649 ], [ %130, %128 ]
  call void @_ZNSt6vectorIN2vk19ExtensionPropertiesESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #12
  br label %651

651:                                              ; preds = %650, %124
  %.2471 = phi i32 [ %.2370, %650 ], [ %127, %124 ]
  %.24 = phi ptr [ %.23, %650 ], [ %126, %124 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  br label %652

652:                                              ; preds = %651, %120
  %.2572 = phi i32 [ %.2471, %651 ], [ %123, %120 ]
  %.25 = phi ptr [ %.24, %651 ], [ %122, %120 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #12
  %653 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN2vk5ErrorE) #12
  %654 = icmp eq i32 %.2572, %653
  br i1 %654, label %655, label %668

655:                                              ; preds = %652
  %656 = call ptr @__cxa_begin_catch(ptr %.25) #12
  %657 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.51)
          to label %658 unwind label %692

658:                                              ; preds = %655
  %659 = load ptr, ptr %656, align 8, !tbaa !69
  %660 = getelementptr inbounds i8, ptr %659, i64 16
  %661 = load ptr, ptr %660, align 8
  %662 = call noundef ptr %661(ptr noundef nonnull align 8 dereferenceable(8) %656) #12
  %663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %657, ptr noundef %662)
          to label %664 unwind label %692

664:                                              ; preds = %658
  %665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %663, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %666 unwind label %692

666:                                              ; preds = %664
  call void @__cxa_end_catch()
  br label %667

667:                                              ; preds = %687, %682, %666, %._crit_edge116
  ret i32 0

668:                                              ; preds = %652
  %669 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %670 = icmp eq i32 %.2572, %669
  %671 = call ptr @__cxa_begin_catch(ptr %.25) #12
  br i1 %670, label %672, label %683

672:                                              ; preds = %668
  %673 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.50)
          to label %674 unwind label %690

674:                                              ; preds = %672
  %675 = load ptr, ptr %671, align 8, !tbaa !69
  %676 = getelementptr inbounds i8, ptr %675, i64 16
  %677 = load ptr, ptr %676, align 8
  %678 = call noundef ptr %677(ptr noundef nonnull align 8 dereferenceable(8) %671) #12
  %679 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %673, ptr noundef %678)
          to label %680 unwind label %690

680:                                              ; preds = %674
  %681 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %679, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %682 unwind label %690

682:                                              ; preds = %680
  call void @__cxa_end_catch()
  br label %667

683:                                              ; preds = %668
  %684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.49)
          to label %685 unwind label %688

685:                                              ; preds = %683
  %686 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %684, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %687 unwind label %688

687:                                              ; preds = %685
  call void @__cxa_end_catch()
  br label %667

688:                                              ; preds = %685, %683
  %689 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %694 unwind label %695

690:                                              ; preds = %680, %674, %672
  %691 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %694 unwind label %695

692:                                              ; preds = %664, %658, %655
  %693 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %694 unwind label %695

694:                                              ; preds = %692, %690, %688
  %.pn95 = phi { ptr, i32 } [ %689, %688 ], [ %691, %690 ], [ %693, %692 ]
  resume { ptr, i32 } %.pn95

695:                                              ; preds = %692, %690, %688, %598
  %696 = landingpad { ptr, i32 }
          catch ptr null
  %697 = extractvalue { ptr, i32 } %696, 0
  call void @__clang_call_terminate(ptr %697) #13
  unreachable
}

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare hidden noundef i32 @_ZN2vk24enumerateInstanceVersionIZ4mainE6VkFuncEEjRKT_(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #5 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #6

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk36enumerateInstanceExtensionPropertiesISaINS_19ExtensionPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS1_T_EE4typeENS_8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN2vk14ArrayWrapper1DIcLm256EEcvPcEv(ptr noundef nonnull align 1 dereferenceable(256)) local_unnamed_addr #7 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk32enumerateInstanceLayerPropertiesISaINS_15LayerPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS1_T_EE4typeERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.0") align 8, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZ4mainENK3$_0clERSt6vectorIN2vk19ExtensionPropertiesESaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #7 align 2

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk20createInstanceUniqueINS_20DispatchLoaderStaticEEENS_15ResultValueTypeINS_12UniqueHandleINS_8InstanceET_EEE4typeERKNS_18InstanceCreateInfoENS_8OptionalIKNS_19AllocationCallbacksEEERKS5_(ptr dead_on_unwind noalias writable sret(%"class.vk::UniqueHandle") align 8, ptr noundef nonnull align 8 dereferenceable(64), ptr, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk18InstanceCreateInfoC2ENS_5FlagsINS_22InstanceCreateFlagBitsEEEPKNS_15ApplicationInfoEjPKPKcjSA_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #7 align 2

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZNK2vk8Instance24enumeratePhysicalDevicesISaINS_14PhysicalDeviceEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.15") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

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

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

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

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZNK2vk14PhysicalDevice13getPropertiesINS_20DispatchLoaderStaticEEENS_24PhysicalDevicePropertiesERKT_(ptr dead_on_unwind noalias writable sret(%"struct.vk::PhysicalDeviceProperties") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #8 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #4

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZNK2vk14PhysicalDevice34enumerateDeviceExtensionPropertiesISaINS_19ExtensionPropertiesEENS_20DispatchLoaderStaticEEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeENS_8OptionalIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr, ptr noundef nonnull align 1 dereferenceable(1)) 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) #9

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk20PhysicalDeviceLimitsC2EjjjjjjjjjjjmmjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjRKSt5arrayIjLm3EEjS4_jjjjjffjRKS1_IjLm2EERKS1_IfLm2EEjmmmmijijffjjjjNS_5FlagsINS_19SampleCountFlagBitsEEESD_SD_SD_jSD_SD_SD_SD_SD_jjfjjjjSA_SA_ffjjmmm(ptr noundef nonnull align 8 dereferenceable(504), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i64 noundef, i64 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(12), i32 noundef, ptr noundef nonnull align 4 dereferenceable(12), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef, i32 noundef, i32 noundef, i64 noundef, i64 noundef, i64 noundef) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk24PhysicalDevicePropertiesC2EjjjjNS_18PhysicalDeviceTypeERKSt5arrayIcLm256EERKS2_IhLm16EENS_20PhysicalDeviceLimitsENS_30PhysicalDeviceSparsePropertiesE(ptr noundef nonnull align 8 dereferenceable(820), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 1 dereferenceable(256), ptr noundef nonnull align 1 dereferenceable(16), ptr noundef, ptr noundef byval(%"struct.vk::PhysicalDeviceSparseProperties") align 8) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk18ConformanceVersionC2Ehhhh(ptr noundef nonnull align 1 dereferenceable(4), i8 noundef zeroext, i8 noundef zeroext, i8 noundef zeroext, i8 noundef zeroext) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk30PhysicalDeviceDriverPropertiesC2ENS_8DriverIdERKSt5arrayIcLm256EES5_NS_18ConformanceVersionE(ptr noundef nonnull align 8 dereferenceable(536), i32 noundef, ptr noundef nonnull align 1 dereferenceable(256), ptr noundef nonnull align 1 dereferenceable(256), i32) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vk37PhysicalDevicePCIBusInfoPropertiesEXTC2Ejjjj(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i32 noundef, i32 noundef) unnamed_addr #7 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden void @_ZNK2vk14PhysicalDevice17getProperties2KHRIZ4mainE6VkFuncEEvPNS_25PhysicalDeviceProperties2ERKT_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk9to_stringB5cxx11ENS_8DriverIdE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef zeroext) local_unnamed_addr #4

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZNK2vk14PhysicalDevice24getQueueFamilyPropertiesISaINS_21QueueFamilyPropertiesEENS_20DispatchLoaderStaticEEESt6vectorIS2_T_ERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.30") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN2vk9to_stringB5cxx11ENS_5FlagsINS_13QueueFlagBitsEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) local_unnamed_addr #3

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

; Function Attrs: alwaysinline mustprogress uwtable
declare hidden void @_ZNK2vk14PhysicalDevice23getDisplayPropertiesKHRISaINS_20DisplayPropertiesKHREEZ4mainE6VkFuncEENS_15ResultValueTypeISt6vectorIS2_T_EE4typeERKT0_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.36") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #10

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #11

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

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

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

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

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

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

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

attributes #0 = { mustprogress norecurse 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #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 = { 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 #5 = { 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 #6 = { "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 = { 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 #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 nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nofree nosync nounwind memory(none) }
attributes #11 = { noinline noreturn nounwind uwtable "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 #12 = { nounwind }
attributes #13 = { noreturn 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, !7, i64 0}
!6 = !{!"_ZTSZ4mainE6VkFunc", !7, i64 0, !7, i64 8, !7, i64 16}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !14, i64 256}
!11 = !{!"_ZTSN2vk19ExtensionPropertiesE", !12, i64 0, !14, i64 256}
!12 = !{!"_ZTSN2vk14ArrayWrapper1DIcLm256EEE", !13, i64 0}
!13 = !{!"_ZTSSt5arrayIcLm256EE", !8, i64 0}
!14 = !{!"int", !8, i64 0}
!15 = !{!16, !14, i64 256}
!16 = !{!"_ZTSN2vk15LayerPropertiesE", !12, i64 0, !14, i64 256, !14, i64 260, !12, i64 264}
!17 = !{!6, !7, i64 8}
!18 = !{!7, !7, i64 0}
!19 = !{!20, !14, i64 0}
!20 = !{!"_ZTSN2vk24PhysicalDevicePropertiesE", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !21, i64 16, !12, i64 20, !22, i64 276, !24, i64 296, !34, i64 800}
!21 = !{!"_ZTSN2vk18PhysicalDeviceTypeE", !8, i64 0}
!22 = !{!"_ZTSN2vk14ArrayWrapper1DIhLm16EEE", !23, i64 0}
!23 = !{!"_ZTSSt5arrayIhLm16EE", !8, i64 0}
!24 = !{!"_ZTSN2vk20PhysicalDeviceLimitsE", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !14, i64 36, !14, i64 40, !25, i64 48, !25, i64 56, !14, i64 64, !14, i64 68, !14, i64 72, !14, i64 76, !14, i64 80, !14, i64 84, !14, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !14, i64 136, !14, i64 140, !14, i64 144, !14, i64 148, !14, i64 152, !14, i64 156, !14, i64 160, !14, i64 164, !14, i64 168, !14, i64 172, !14, i64 176, !14, i64 180, !14, i64 184, !14, i64 188, !14, i64 192, !14, i64 196, !14, i64 200, !14, i64 204, !14, i64 208, !14, i64 212, !14, i64 216, !26, i64 220, !14, i64 232, !26, i64 236, !14, i64 248, !14, i64 252, !14, i64 256, !14, i64 260, !14, i64 264, !28, i64 268, !28, i64 272, !14, i64 276, !29, i64 280, !31, i64 288, !14, i64 296, !25, i64 304, !25, i64 312, !25, i64 320, !25, i64 328, !14, i64 336, !14, i64 340, !14, i64 344, !14, i64 348, !28, i64 352, !28, i64 356, !14, i64 360, !14, i64 364, !14, i64 368, !14, i64 372, !33, i64 376, !33, i64 380, !33, i64 384, !33, i64 388, !14, i64 392, !33, i64 396, !33, i64 400, !33, i64 404, !33, i64 408, !33, i64 412, !14, i64 416, !14, i64 420, !28, i64 424, !14, i64 428, !14, i64 432, !14, i64 436, !14, i64 440, !31, i64 444, !31, i64 452, !28, i64 460, !28, i64 464, !14, i64 468, !14, i64 472, !25, i64 480, !25, i64 488, !25, i64 496}
!25 = !{!"long", !8, i64 0}
!26 = !{!"_ZTSN2vk14ArrayWrapper1DIjLm3EEE", !27, i64 0}
!27 = !{!"_ZTSSt5arrayIjLm3EE", !8, i64 0}
!28 = !{!"float", !8, i64 0}
!29 = !{!"_ZTSN2vk14ArrayWrapper1DIjLm2EEE", !30, i64 0}
!30 = !{!"_ZTSSt5arrayIjLm2EE", !8, i64 0}
!31 = !{!"_ZTSN2vk14ArrayWrapper1DIfLm2EEE", !32, i64 0}
!32 = !{!"_ZTSSt5arrayIfLm2EE", !8, i64 0}
!33 = !{!"_ZTSN2vk5FlagsINS_19SampleCountFlagBitsEEE", !14, i64 0}
!34 = !{!"_ZTSN2vk30PhysicalDeviceSparsePropertiesE", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16}
!35 = !{!20, !14, i64 4}
!36 = !{!20, !14, i64 8}
!37 = !{!20, !14, i64 12}
!38 = !{!39, !7, i64 8}
!39 = !{!"_ZTSN2vk25PhysicalDeviceProperties2E", !40, i64 0, !7, i64 8, !20, i64 16}
!40 = !{!"_ZTSN2vk13StructureTypeE", !8, i64 0}
!41 = !{!42, !7, i64 8}
!42 = !{!"_ZTSN2vk37PhysicalDevicePCIBusInfoPropertiesEXTE", !40, i64 0, !7, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28}
!43 = !{!44, !45, i64 16}
!44 = !{!"_ZTSN2vk30PhysicalDeviceDriverPropertiesE", !40, i64 0, !7, i64 8, !45, i64 16, !12, i64 20, !12, i64 276, !46, i64 532}
!45 = !{!"_ZTSN2vk8DriverIdE", !8, i64 0}
!46 = !{!"_ZTSN2vk18ConformanceVersionE", !8, i64 0, !8, i64 1, !8, i64 2, !8, i64 3}
!47 = !{!44, !8, i64 532}
!48 = !{!44, !8, i64 533}
!49 = !{!44, !8, i64 534}
!50 = !{!44, !8, i64 535}
!51 = !{!42, !14, i64 16}
!52 = !{!42, !14, i64 20}
!53 = !{!42, !14, i64 24}
!54 = !{!42, !14, i64 28}
!55 = !{!56, !14, i64 4}
!56 = !{!"_ZTSN2vk21QueueFamilyPropertiesE", !57, i64 0, !14, i64 4, !14, i64 8, !58, i64 12}
!57 = !{!"_ZTSN2vk5FlagsINS_13QueueFlagBitsEEE", !14, i64 0}
!58 = !{!"_ZTSN2vk8Extent3DE", !14, i64 0, !14, i64 4, !14, i64 8}
!59 = distinct !{!59, !60}
!60 = !{!"llvm.loop.mustprogress"}
!61 = !{!6, !7, i64 16}
!62 = !{!63, !7, i64 8}
!63 = !{!"_ZTSN2vk20DisplayPropertiesKHRE", !64, i64 0, !7, i64 8, !65, i64 16, !65, i64 24, !66, i64 32, !14, i64 36, !14, i64 40}
!64 = !{!"_ZTSN2vk10DisplayKHRE", !7, i64 0}
!65 = !{!"_ZTSN2vk8Extent2DE", !14, i64 0, !14, i64 4}
!66 = !{!"_ZTSN2vk5FlagsINS_27SurfaceTransformFlagBitsKHREEE", !14, i64 0}
!67 = !{!63, !14, i64 24}
!68 = !{!63, !14, i64 28}
!69 = !{!70, !70, i64 0}
!70 = !{!"vtable pointer", !9, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass