; LLVM IR from Try/Tempest :: Engine/thirdparty/spirv_cross (spirv_hlsl)

; 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::__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.anon.384 = type { ptr, ptr }
%class.anon.385 = type { ptr, ptr }
%class.anon.386 = type { ptr, ptr, ptr }
%class.anon.387 = type { ptr, ptr }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.74" }
%"class.std::_Hashtable.74" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.spirv_cross::SmallVector.388" = type { %"class.spirv_cross::VectorView.389", i64, %"class.spirv_cross::AlignedBuffer.390" }
%"class.spirv_cross::VectorView.389" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.390" = type { [192 x i8] }
%class.anon.391 = type { ptr, ptr, ptr }
%class.anon.392 = type { ptr }
%"class.spirv_cross::Bitset" = type { i64, %"class.std::unordered_set" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.spirv_cross::TypedID.328" = type { i32 }
%"struct.spirv_cross::SPIREntryPoint" = type <{ %"class.spirv_cross::TypedID", [4 x i8], %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.spirv_cross::SmallVector.334", %"class.spirv_cross::Bitset", %"struct.spirv_cross::SPIREntryPoint::WorkgroupSize", i32, i32, i32, i32, i8, [3 x i8] }>
%"class.spirv_cross::TypedID" = type { i32 }
%"class.spirv_cross::SmallVector.334" = type { %"class.spirv_cross::VectorView.335", i64, %"class.spirv_cross::AlignedBuffer.336" }
%"class.spirv_cross::VectorView.335" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.336" = type { [32 x i8] }
%"struct.spirv_cross::SPIREntryPoint::WorkgroupSize" = type { i32, i32, i32, i32, i32, i32, i32 }
%"class.spirv_cross::Compiler" = type { ptr, %"class.spirv_cross::ParsedIR", %"class.spirv_cross::SmallVector.92", %"class.spirv_cross::SmallVector.92", ptr, ptr, i32, %"class.std::unordered_set.95", i8, %"class.std::unordered_set", i8, i8, %"class.spirv_cross::SmallVector.114", %"class.spirv_cross::SmallVector.92", %"class.std::function", %"class.std::unordered_set", %"class.std::unordered_set", %"class.std::unordered_set", %"class.std::unordered_set", %"class.std::unordered_set", %"class.spirv_cross::Bitset", %"class.spirv_cross::Bitset", i32, i32, i8, %"class.std::unordered_set", i8, i8, i32, %"class.std::unordered_map.117", %"class.spirv_cross::SmallVector.92", %"class.std::unordered_map.131", %"class.std::unordered_set", i8, %"class.std::unordered_map.145" }
%"class.spirv_cross::ParsedIR" = type { %"class.std::unique_ptr", %"class.std::vector", %"class.spirv_cross::SmallVector", %"class.std::unordered_map", [14 x %"class.spirv_cross::SmallVector.10"], %"class.spirv_cross::SmallVector.10", %"class.spirv_cross::SmallVector.10", %"class.std::unordered_map.13", %"class.spirv_cross::SmallVector.27", %"class.spirv_cross::SmallVector.30", %"class.spirv_cross::SmallVector.33", %"class.std::unordered_map.36", %"class.std::unordered_map.55", %"class.spirv_cross::TypedID", %"struct.spirv_cross::ParsedIR::Source", i32, i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.spirv_cross::Bitset", %"class.std::unordered_set" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.spirv_cross::SmallVector" = type { %"class.spirv_cross::VectorView", i64, %"class.spirv_cross::AlignedBuffer" }
%"class.spirv_cross::VectorView" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer" = type { [192 x i8] }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.spirv_cross::SmallVector.10" = type { %"class.spirv_cross::VectorView.11", i64, %"class.spirv_cross::AlignedBuffer.12" }
%"class.spirv_cross::VectorView.11" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.12" = type { [32 x i8] }
%"class.std::unordered_map.13" = type { %"class.std::_Hashtable.14" }
%"class.std::_Hashtable.14" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.spirv_cross::SmallVector.27" = type { %"class.spirv_cross::VectorView.28", i64, %"class.spirv_cross::AlignedBuffer.29" }
%"class.spirv_cross::VectorView.28" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.29" = type { [32 x i8] }
%"class.spirv_cross::SmallVector.30" = type { %"class.spirv_cross::VectorView.31", i64, %"class.spirv_cross::AlignedBuffer.32" }
%"class.spirv_cross::VectorView.31" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.32" = type { [256 x i8] }
%"class.spirv_cross::SmallVector.33" = type { %"class.spirv_cross::VectorView.34", i64, %"class.spirv_cross::AlignedBuffer.35" }
%"class.spirv_cross::VectorView.34" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.35" = type { [8 x i8] }
%"class.std::unordered_map.36" = type { %"class.std::_Hashtable.37" }
%"class.std::_Hashtable.37" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.55" = type { %"class.std::_Hashtable.56" }
%"class.std::_Hashtable.56" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.spirv_cross::ParsedIR::Source" = type <{ i32, i8, i8, i8, i8 }>
%"class.std::unordered_set.95" = type { %"class.std::_Hashtable.96" }
%"class.std::_Hashtable.96" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.spirv_cross::SmallVector.114" = type { %"class.spirv_cross::VectorView.115", i64, %"class.spirv_cross::AlignedBuffer.116" }
%"class.spirv_cross::VectorView.115" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.116" = type { [96 x i8] }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::unordered_map.117" = type { %"class.std::_Hashtable.118" }
%"class.std::_Hashtable.118" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.spirv_cross::SmallVector.92" = type { %"class.spirv_cross::VectorView.93", i64, %"class.spirv_cross::AlignedBuffer.94" }
%"class.spirv_cross::VectorView.93" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.94" = type { [32 x i8] }
%"class.std::unordered_map.131" = type { %"class.std::_Hashtable.132" }
%"class.std::_Hashtable.132" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.145" = type { %"class.std::_Hashtable.146" }
%"class.std::_Hashtable.146" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.spirv_cross::CompilerHLSL" = type { %"class.spirv_cross::CompilerGLSL", %"struct.spirv_cross::CompilerHLSL::Options", i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %"struct.spirv_cross::CompilerHLSL::TextureSizeVariants", i8, i8, %"class.spirv_cross::SmallVector.277", i32, i32, %"class.std::vector.280", i32, %"class.std::unordered_map.285", %"class.std::unordered_set.302", %struct.anon, %"class.std::vector.319" }
%"class.spirv_cross::CompilerGLSL" = type { %"class.spirv_cross::Compiler", ptr, %"class.spirv_cross::SmallVector.159", i8, %"class.spirv_cross::StringStream", ptr, ptr, i8, i8, %"struct.spirv_cross::CompilerGLSL::Options", %"class.std::unordered_set.165", %"class.std::unordered_set.165", %"class.std::unordered_set.165", %"class.std::unordered_set.165", %"class.std::unordered_set.165", %"class.std::unordered_set.165", %"class.std::unordered_set.165", %"class.std::unordered_map.185", %"class.std::unordered_map.145", i8, [7 x i8], %"struct.spirv_cross::CompilerGLSL::BackendVariations", i32, %"class.std::unordered_set", %"class.std::unordered_set", %"class.std::unordered_set", %"class.std::unordered_map.199", %"struct.spirv_cross::CompilerGLSL::ShaderSubgroupSupportHelper", %"class.std::unordered_map.213", %"class.spirv_cross::SmallVector.30", %"class.spirv_cross::SmallVector.30", %"class.std::unordered_map.213", %"class.spirv_cross::SmallVector.227", i32, i32, i32, i8, i8, %"class.std::vector.230", %"class.std::vector.230", %"class.std::vector.235", %"class.std::vector.240", %"class.std::unordered_map.213", %"class.std::unordered_set", %"class.std::unordered_set", i8, %"class.std::unordered_set.245", %"class.std::unordered_set", ptr, %"class.std::unordered_map.263" }
%"class.spirv_cross::SmallVector.159" = type { %"class.spirv_cross::VectorView.160", i64, %"class.spirv_cross::AlignedBuffer.161" }
%"class.spirv_cross::VectorView.160" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.161" = type { [64 x i8] }
%"class.spirv_cross::StringStream" = type { %"struct.spirv_cross::StringStream<>::Buffer", [4096 x i8], %"class.spirv_cross::SmallVector.162" }
%"struct.spirv_cross::StringStream<>::Buffer" = type { ptr, i64, i64 }
%"class.spirv_cross::SmallVector.162" = type { %"class.spirv_cross::VectorView.163", i64, %"class.spirv_cross::AlignedBuffer.164" }
%"class.spirv_cross::VectorView.163" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.164" = type { [192 x i8] }
%"struct.spirv_cross::CompilerGLSL::Options" = type { i32, i8, i8, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, %"struct.spirv_cross::CompilerGLSL::Options::VertexOptions", %"struct.spirv_cross::CompilerGLSL::Options::FragmentOptions" }
%"struct.spirv_cross::CompilerGLSL::Options::VertexOptions" = type { i8, i8, i8 }
%"struct.spirv_cross::CompilerGLSL::Options::FragmentOptions" = type { i32, i32 }
%"class.std::unordered_set.165" = type { %"class.std::_Hashtable.166" }
%"class.std::_Hashtable.166" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.185" = type { %"class.std::_Hashtable.186" }
%"class.std::_Hashtable.186" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.spirv_cross::CompilerGLSL::BackendVariations" = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, [4 x i8], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [4 x i8] }>
%"class.std::unordered_map.199" = type { %"class.std::_Hashtable.200" }
%"class.std::_Hashtable.200" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.spirv_cross::CompilerGLSL::ShaderSubgroupSupportHelper" = type { i32 }
%"class.spirv_cross::SmallVector.227" = type { %"class.spirv_cross::VectorView.228", i64, %"class.spirv_cross::AlignedBuffer.229" }
%"class.spirv_cross::VectorView.228" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.229" = type { [32 x i8] }
%"class.std::vector.230" = type { %"struct.std::_Vector_base.231" }
%"struct.std::_Vector_base.231" = type { %"struct.std::_Vector_base<spirv_cross::PlsRemap, std::allocator<spirv_cross::PlsRemap>>::_Vector_impl" }
%"struct.std::_Vector_base<spirv_cross::PlsRemap, std::allocator<spirv_cross::PlsRemap>>::_Vector_impl" = type { %"struct.std::_Vector_base<spirv_cross::PlsRemap, std::allocator<spirv_cross::PlsRemap>>::_Vector_impl_data" }
%"struct.std::_Vector_base<spirv_cross::PlsRemap, std::allocator<spirv_cross::PlsRemap>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.235" = type { %"struct.std::_Vector_base.236" }
%"struct.std::_Vector_base.236" = type { %"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.240" = type { %"struct.std::_Vector_base.241" }
%"struct.std::_Vector_base.241" = type { %"struct.std::_Vector_base<std::pair<unsigned int, bool>, std::allocator<std::pair<unsigned int, bool>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<unsigned int, bool>, std::allocator<std::pair<unsigned int, bool>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<unsigned int, bool>, std::allocator<std::pair<unsigned int, bool>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<unsigned int, bool>, std::allocator<std::pair<unsigned int, bool>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.213" = type { %"class.std::_Hashtable.214" }
%"class.std::_Hashtable.214" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_set.245" = type { %"class.std::_Hashtable.246" }
%"class.std::_Hashtable.246" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.263" = type { %"class.std::_Hashtable.264" }
%"class.std::_Hashtable.264" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.spirv_cross::CompilerHLSL::Options" = type <{ i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] }>
%"struct.spirv_cross::CompilerHLSL::TextureSizeVariants" = type { i64, [3 x [4 x i64]] }
%"class.spirv_cross::SmallVector.277" = type { %"class.spirv_cross::VectorView.278", i64, %"class.spirv_cross::AlignedBuffer.279" }
%"class.spirv_cross::VectorView.278" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.279" = type { [320 x i8] }
%"class.std::vector.280" = type { %"struct.std::_Vector_base.281" }
%"struct.std::_Vector_base.281" = type { %"struct.std::_Vector_base<spirv_cross::RootConstants, std::allocator<spirv_cross::RootConstants>>::_Vector_impl" }
%"struct.std::_Vector_base<spirv_cross::RootConstants, std::allocator<spirv_cross::RootConstants>>::_Vector_impl" = type { %"struct.std::_Vector_base<spirv_cross::RootConstants, std::allocator<spirv_cross::RootConstants>>::_Vector_impl_data" }
%"struct.std::_Vector_base<spirv_cross::RootConstants, std::allocator<spirv_cross::RootConstants>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.285" = type { %"class.std::_Hashtable.286" }
%"class.std::_Hashtable.286" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_set.302" = type { %"class.std::_Hashtable.303" }
%"class.std::_Hashtable.303" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%struct.anon = type <{ i32, i32, i8, i8, [2 x i8] }>
%"class.std::vector.319" = type { %"struct.std::_Vector_base.320" }
%"struct.std::_Vector_base.320" = type { %"struct.std::_Vector_base<spirv_cross::TypedID<spirv_cross::TypeType>, std::allocator<spirv_cross::TypedID<spirv_cross::TypeType>>>::_Vector_impl" }
%"struct.std::_Vector_base<spirv_cross::TypedID<spirv_cross::TypeType>, std::allocator<spirv_cross::TypedID<spirv_cross::TypeType>>>::_Vector_impl" = type { %"struct.std::_Vector_base<spirv_cross::TypedID<spirv_cross::TypeType>, std::allocator<spirv_cross::TypedID<spirv_cross::TypeType>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<spirv_cross::TypedID<spirv_cross::TypeType>, std::allocator<spirv_cross::TypedID<spirv_cross::TypeType>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.IOVariable = type { ptr, i32, i32, i8 }
%"struct.spirv_cross::SPIRVariable" = type { %"struct.spirv_cross::IVariant.base", %"class.spirv_cross::TypedID.328", i32, i32, %"class.spirv_cross::TypedID.324", %"class.spirv_cross::TypedID.330", %"class.spirv_cross::SmallVector.92", i8, i8, %"class.spirv_cross::TypedID.324", %"class.spirv_cross::SmallVector.10", i8, i8, i8, i8, i32, %"class.spirv_cross::TypedID.331", i8, i8, i8, ptr }
%"struct.spirv_cross::IVariant.base" = type <{ ptr, %"class.spirv_cross::TypedID.324" }>
%"class.spirv_cross::TypedID.330" = type { i32 }
%"class.spirv_cross::TypedID.324" = type { i32 }
%"class.spirv_cross::TypedID.331" = type { i32 }
%"struct.spirv_cross::IVariant" = type <{ ptr, %"class.spirv_cross::TypedID.324", [4 x i8] }>

@.str.9 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [30 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types = external hidden global [4 x ptr], align 16
@.str.206 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers = external hidden global [3 x ptr], align 16
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes = external hidden global [4 x ptr], align 16
@.str.215 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [51 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0 = external hidden global [4 x ptr], align 16
@.str.257 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [53 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types = external hidden global [4 x ptr], align 16
@.str.262 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [32 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types = external hidden global [4 x ptr], align 16
@.str.269 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [11 x i8], align 1

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(336) ptr @_ZN11spirv_cross8Compiler3getINS_8SPIRTypeEEERT_j(ptr noundef nonnull align 8 dereferenceable(3176), i32 noundef) #1 align 2

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

declare void @_ZN11spirv_cross12CompilerGLSL17add_resource_nameEj(ptr noundef nonnull align 8 dereferenceable(9848), i32 noundef) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL30emit_builtin_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528)) #1 align 2

declare noundef nonnull align 8 dereferenceable(237) ptr @_ZN11spirv_cross8Compiler15get_entry_pointEv(ptr noundef nonnull align 8 dereferenceable(3176)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL40emit_builtin_primitive_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL29emit_builtin_inputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528)) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK11spirv_cross6Bitset3getEj(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef) #3 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) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL37emit_interface_block_member_in_structERKNS_12SPIRVariableEjjRSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528), ptr noundef nonnull align 8 dereferenceable(176), i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(56)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL30emit_interface_block_in_structERKNS_12SPIRVariableERSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(56)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(176) ptr @_ZN11spirv_cross8Compiler3getINS_12SPIRVariableEEERT_j(ptr noundef nonnull align 8 dereferenceable(3176), i32 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL22emit_builtin_variablesEv(ptr noundef nonnull align 8 dereferenceable(10528)) #1 align 2

declare void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA28_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(28)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(30)) #3 align 2

declare void @_ZN11spirv_cross12CompilerGLSL14end_scope_declEv(ptr noundef nonnull align 8 dereferenceable(9848)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL24emit_composite_constantsEv(ptr noundef nonnull align 8 dereferenceable(10528)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL41emit_specialization_constants_and_structsEv(ptr noundef nonnull align 8 dereferenceable(10528)) #1 align 2

declare noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL24type_can_zero_initializeERKNS_8SPIRTypeE(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(336)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross4joinIJRA4_KcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES9_DpOT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11spirv_cross12CompilerHLSL14emit_resourcesEv(ptr noundef nonnull align 8 dereferenceable(10528) %0) #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca i8, align 1
  %5 = alloca %class.anon.384, align 8
  %6 = alloca %class.anon.385, align 8
  %7 = alloca i8, align 1
  %8 = alloca %class.anon.386, align 8
  %9 = alloca %class.anon.387, align 8
  %10 = alloca %"class.std::unordered_set", align 8
  %11 = alloca %"class.std::unordered_set", align 8
  %12 = alloca %"class.spirv_cross::SmallVector.388", align 8
  %13 = alloca %"class.spirv_cross::SmallVector.388", align 8
  %14 = alloca %class.anon.391, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca %class.anon.392, align 8
  %18 = alloca %"class.spirv_cross::Bitset", align 8
  %19 = alloca %class.anon.392, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca i8, align 1
  %25 = alloca %class.anon.392, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %67 = alloca %"class.spirv_cross::TypedID.328", align 4
  %68 = alloca ptr, align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %71 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #7
  %72 = call noundef nonnull align 8 dereferenceable(237) ptr @_ZN11spirv_cross8Compiler15get_entry_pointEv(ptr noundef nonnull align 8 dereferenceable(3176) %71)
  store ptr %72, ptr %3, align 8, !tbaa !5
  %73 = load ptr, ptr %71, align 8, !tbaa !9
  %74 = getelementptr inbounds ptr, ptr %73, i64 60
  %75 = load ptr, ptr %74, align 8
  call void %75(ptr noundef nonnull align 8 dereferenceable(10528) %71)
  %76 = load ptr, ptr %3, align 8, !tbaa !5
  %77 = getelementptr inbounds %"struct.spirv_cross::SPIREntryPoint", ptr %76, i32 0, i32 10
  %78 = load i32, ptr %77, align 8, !tbaa !11
  switch i32 %78, label %83 [
    i32 3, label %79
    i32 1, label %79
    i32 2, label %79
    i32 5365, label %79
  ]

79:                                               ; preds = %1, %1, %1, %1
  %80 = load ptr, ptr %3, align 8, !tbaa !5
  %81 = getelementptr inbounds %"struct.spirv_cross::SPIREntryPoint", ptr %80, i32 0, i32 10
  %82 = load i32, ptr %81, align 8, !tbaa !11
  call void @_ZN11spirv_cross12CompilerGLSL34fixup_implicit_builtin_block_namesEN3spv14ExecutionModelE(ptr noundef nonnull align 8 dereferenceable(9848) %71, i32 noundef %82)
  br label %84

83:                                               ; preds = %1
  br label %84

84:                                               ; preds = %83, %79
  call void @_ZN11spirv_cross12CompilerHLSL41emit_specialization_constants_and_structsEv(ptr noundef nonnull align 8 dereferenceable(10528) %71)
  call void @_ZN11spirv_cross12CompilerHLSL24emit_composite_constantsEv(ptr noundef nonnull align 8 dereferenceable(10528) %71)
  call void @llvm.lifetime.start.p0(i64 1, ptr %4) #7
  store i8 0, ptr %4, align 1, !tbaa !30
  %85 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %5) #7
  %86 = getelementptr inbounds %class.anon.384, ptr %5, i32 0, i32 0
  store ptr %71, ptr %86, align 8, !tbaa !31
  %87 = getelementptr inbounds %class.anon.384, ptr %5, i32 0, i32 1
  store ptr %4, ptr %87, align 8, !tbaa !5
  call void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_0EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %85, ptr noundef nonnull align 8 dereferenceable(16) %5)
  call void @llvm.lifetime.end.p0(i64 16, ptr %5) #7
  %88 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #7
  %89 = getelementptr inbounds %class.anon.385, ptr %6, i32 0, i32 0
  store ptr %71, ptr %89, align 8, !tbaa !33
  %90 = getelementptr inbounds %class.anon.385, ptr %6, i32 0, i32 1
  store ptr %4, ptr %90, align 8, !tbaa !5
  call void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_1EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %88, ptr noundef nonnull align 8 dereferenceable(16) %6)
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #7
  %91 = load ptr, ptr %3, align 8, !tbaa !5
  %92 = getelementptr inbounds %"struct.spirv_cross::SPIREntryPoint", ptr %91, i32 0, i32 10
  %93 = load i32, ptr %92, align 8, !tbaa !11
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %95, label %104

95:                                               ; preds = %84
  %96 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 1
  %97 = getelementptr inbounds %"struct.spirv_cross::CompilerHLSL::Options", ptr %96, i32 0, i32 0
  %98 = load i32, ptr %97, align 8, !tbaa !35
  %99 = icmp ule i32 %98, 30
  br i1 %99, label %100, label %104

100:                                              ; preds = %95
  %101 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 21
  %102 = call noundef zeroext i1 @_ZNK11spirv_cross6Bitset3getEj(ptr noundef nonnull align 8 dereferenceable(64) %101, i32 noundef 0)
  br i1 %102, label %103, label %104

103:                                              ; preds = %100
  call void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(29) @.str.198)
  store i8 1, ptr %4, align 1, !tbaa !30
  br label %104

104:                                              ; preds = %103, %100, %95, %84
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #7
  %105 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 12
  %106 = call noundef zeroext i1 @_ZNK11spirv_cross10VectorViewINS_20CombinedImageSamplerEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %105) #7
  br i1 %106, label %107, label %112

107:                                              ; preds = %104
  %108 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 1
  %109 = getelementptr inbounds %"struct.spirv_cross::CompilerHLSL::Options", ptr %108, i32 0, i32 0
  %110 = load i32, ptr %109, align 8, !tbaa !35
  %111 = icmp ule i32 %110, 30
  br label %112

112:                                              ; preds = %107, %104
  %113 = phi i1 [ true, %104 ], [ %111, %107 ]
  %114 = zext i1 %113 to i8
  store i8 %114, ptr %7, align 1, !tbaa !30
  %115 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #7
  %116 = getelementptr inbounds %class.anon.386, ptr %8, i32 0, i32 0
  store ptr %71, ptr %116, align 8, !tbaa !152
  %117 = getelementptr inbounds %class.anon.386, ptr %8, i32 0, i32 1
  store ptr %7, ptr %117, align 8, !tbaa !5
  %118 = getelementptr inbounds %class.anon.386, ptr %8, i32 0, i32 2
  store ptr %4, ptr %118, align 8, !tbaa !5
  call void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_2EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %115, ptr noundef nonnull align 8 dereferenceable(24) %8)
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  %119 = load i8, ptr %4, align 1, !tbaa !30, !range !154, !noundef !155
  %120 = trunc i8 %119 to i1
  br i1 %120, label %121, label %122

121:                                              ; preds = %112
  call void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
  br label %122

122:                                              ; preds = %121, %112
  store i8 0, ptr %4, align 1, !tbaa !30
  call void @_ZN11spirv_cross12CompilerHLSL22emit_builtin_variablesEv(ptr noundef nonnull align 8 dereferenceable(10528) %71)
  %123 = load ptr, ptr %3, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.spirv_cross::SPIREntryPoint", ptr %123, i32 0, i32 10
  %125 = load i32, ptr %124, align 8, !tbaa !11
  %126 = icmp ne i32 %125, 5365
  br i1 %126, label %127, label %131

127:                                              ; preds = %122
  %128 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #7
  %129 = getelementptr inbounds %class.anon.387, ptr %9, i32 0, i32 0
  store ptr %71, ptr %129, align 8, !tbaa !156
  %130 = getelementptr inbounds %class.anon.387, ptr %9, i32 0, i32 1
  store ptr %4, ptr %130, align 8, !tbaa !5
  call void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_3EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %128, ptr noundef nonnull align 8 dereferenceable(16) %9)
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #7
  br label %131

131:                                              ; preds = %127, %122
  %132 = load i8, ptr %4, align 1, !tbaa !30, !range !154, !noundef !155
  %133 = trunc i8 %132 to i1
  br i1 %133, label %134, label %135

134:                                              ; preds = %131
  call void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
  br label %135

135:                                              ; preds = %134, %131
  store i8 0, ptr %4, align 1, !tbaa !30
  %136 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 20
  store i8 0, ptr %136, align 1, !tbaa !158
  %137 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 19
  store i8 0, ptr %137, align 8, !tbaa !159
  call void @llvm.lifetime.start.p0(i64 56, ptr %10) #7
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %10) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %11) #7
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %11) #7
  call void @llvm.lifetime.start.p0(i64 216, ptr %12) #7
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(216) %12) #7
  call void @llvm.lifetime.start.p0(i64 216, ptr %13) #7
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(216) %13) #7
  %138 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #7
  %139 = getelementptr inbounds %class.anon.391, ptr %14, i32 0, i32 0
  store ptr %71, ptr %139, align 8, !tbaa !160
  %140 = getelementptr inbounds %class.anon.391, ptr %14, i32 0, i32 1
  store ptr %12, ptr %140, align 8, !tbaa !5
  %141 = getelementptr inbounds %class.anon.391, ptr %14, i32 0, i32 2
  store ptr %13, ptr %141, align 8, !tbaa !5
  invoke void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_4EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %138, ptr noundef nonnull align 8 dereferenceable(24) %14)
          to label %142 unwind label %177

142:                                              ; preds = %135
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %143 = getelementptr inbounds %class.anon.392, ptr %17, i32 0, i32 0
  store ptr %71, ptr %143, align 8, !tbaa !162
  call void @llvm.lifetime.start.p0(i64 64, ptr %18) #7
  %144 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 20
  invoke void @_ZN11spirv_cross6BitsetC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %18, ptr noundef nonnull align 8 dereferenceable(64) %144)
          to label %145 unwind label %181

145:                                              ; preds = %142
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %18, i32 noundef 24)
          to label %146 unwind label %185

146:                                              ; preds = %145
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %18, i32 noundef 16)
          to label %147 unwind label %185

147:                                              ; preds = %146
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %18, i32 noundef 36)
          to label %148 unwind label %185

148:                                              ; preds = %147
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %18, i32 noundef 41)
          to label %149 unwind label %185

149:                                              ; preds = %148
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %18, i32 noundef 4416)
          to label %150 unwind label %185

150:                                              ; preds = %149
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %18, i32 noundef 4420)
          to label %151 unwind label %185

151:                                              ; preds = %150
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %18, i32 noundef 4419)
          to label %152 unwind label %185

152:                                              ; preds = %151
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %18, i32 noundef 4418)
          to label %153 unwind label %185

153:                                              ; preds = %152
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %18, i32 noundef 4417)
          to label %154 unwind label %185

154:                                              ; preds = %153
  %155 = call noundef zeroext i1 @_ZNK11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #7
  br i1 %155, label %156, label %159

156:                                              ; preds = %154
  %157 = invoke noundef zeroext i1 @_ZNK11spirv_cross6Bitset5emptyEv(ptr noundef nonnull align 8 dereferenceable(64) %18)
          to label %158 unwind label %185

158:                                              ; preds = %156
  br i1 %157, label %223, label %159

159:                                              ; preds = %158, %154
  %160 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 20
  store i8 1, ptr %160, align 1, !tbaa !158
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA25_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(25) @.str.199)
          to label %161 unwind label %185

161:                                              ; preds = %159
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %162 unwind label %185

162:                                              ; preds = %161
  %163 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #7
  %164 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %17, i64 8, i1 false), !tbaa.struct !164
  %165 = getelementptr inbounds %class.anon.392, ptr %19, i32 0, i32 0
  %166 = load ptr, ptr %165, align 8
  invoke void @"_ZSt4sortIPZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10IOVariableZNS1_14emit_resourcesEvE3$_5EvT_S5_T0_"(ptr noundef %163, ptr noundef %164, ptr %166)
          to label %167 unwind label %185

167:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  store ptr %12, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %168 = load ptr, ptr %20, align 8, !tbaa !5
  %169 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %168) #7
  store ptr %169, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %170 = load ptr, ptr %20, align 8, !tbaa !5
  %171 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %170) #7
  store ptr %171, ptr %22, align 8, !tbaa !5
  br label %172

172:                                              ; preds = %216, %167
  %173 = load ptr, ptr %21, align 8, !tbaa !5
  %174 = load ptr, ptr %22, align 8, !tbaa !5
  %175 = icmp ne ptr %173, %174
  br i1 %175, label %189, label %176

176:                                              ; preds = %172
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %219

177:                                              ; preds = %135
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %15, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #7
  br label %1046

181:                                              ; preds = %142
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %15, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %16, align 4
  br label %1045

185:                                              ; preds = %221, %220, %219, %162, %161, %159, %156, %153, %152, %151, %150, %149, %148, %147, %146, %145
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %15, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %16, align 4
  br label %1044

189:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %190 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %190, ptr %23, align 8, !tbaa !5
  %191 = load ptr, ptr %23, align 8, !tbaa !5
  %192 = getelementptr inbounds %struct.IOVariable, ptr %191, i32 0, i32 3
  %193 = load i8, ptr %192, align 8, !tbaa !165, !range !154, !noundef !155
  %194 = trunc i8 %193 to i1
  br i1 %194, label %195, label %210

195:                                              ; preds = %189
  %196 = load ptr, ptr %23, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.IOVariable, ptr %196, i32 0, i32 0
  %198 = load ptr, ptr %197, align 8, !tbaa !167
  %199 = load ptr, ptr %23, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.IOVariable, ptr %199, i32 0, i32 2
  %201 = load i32, ptr %200, align 4, !tbaa !168
  %202 = load ptr, ptr %23, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.IOVariable, ptr %202, i32 0, i32 1
  %204 = load i32, ptr %203, align 8, !tbaa !169
  invoke void @_ZN11spirv_cross12CompilerHLSL37emit_interface_block_member_in_structERKNS_12SPIRVariableEjjRSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %71, ptr noundef nonnull align 8 dereferenceable(176) %198, i32 noundef %201, i32 noundef %204, ptr noundef nonnull align 8 dereferenceable(56) %10)
          to label %205 unwind label %206

205:                                              ; preds = %195
  br label %215

206:                                              ; preds = %210, %195
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %15, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %1044

210:                                              ; preds = %189
  %211 = load ptr, ptr %23, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.IOVariable, ptr %211, i32 0, i32 0
  %213 = load ptr, ptr %212, align 8, !tbaa !167
  invoke void @_ZN11spirv_cross12CompilerHLSL30emit_interface_block_in_structERKNS_12SPIRVariableERSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %71, ptr noundef nonnull align 8 dereferenceable(176) %213, ptr noundef nonnull align 8 dereferenceable(56) %10)
          to label %214 unwind label %206

214:                                              ; preds = %210
  br label %215

215:                                              ; preds = %214, %205
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %216

216:                                              ; preds = %215
  %217 = load ptr, ptr %21, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.IOVariable, ptr %217, i32 1
  store ptr %218, ptr %21, align 8, !tbaa !5
  br label %172

219:                                              ; preds = %176
  invoke void @_ZN11spirv_cross12CompilerHLSL29emit_builtin_inputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528) %71)
          to label %220 unwind label %185

220:                                              ; preds = %219
  invoke void @_ZN11spirv_cross12CompilerGLSL14end_scope_declEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %221 unwind label %185

221:                                              ; preds = %220
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %222 unwind label %185

222:                                              ; preds = %221
  br label %223

223:                                              ; preds = %222, %158
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #7
  %224 = load ptr, ptr %3, align 8, !tbaa !5
  %225 = getelementptr inbounds %"struct.spirv_cross::SPIREntryPoint", ptr %224, i32 0, i32 10
  %226 = load i32, ptr %225, align 8, !tbaa !11
  %227 = icmp eq i32 %226, 5365
  %228 = zext i1 %227 to i8
  store i8 %228, ptr %24, align 1, !tbaa !30
  %229 = call noundef zeroext i1 @_ZNK11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %13) #7
  br i1 %229, label %230, label %234

230:                                              ; preds = %223
  %231 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 21
  %232 = invoke noundef zeroext i1 @_ZNK11spirv_cross6Bitset5emptyEv(ptr noundef nonnull align 8 dereferenceable(64) %231)
          to label %233 unwind label %260

233:                                              ; preds = %230
  br i1 %232, label %387, label %234

234:                                              ; preds = %233, %223
  %235 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %13) #7
  %236 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %13) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %17, i64 8, i1 false), !tbaa.struct !164
  %237 = getelementptr inbounds %class.anon.392, ptr %25, i32 0, i32 0
  %238 = load ptr, ptr %237, align 8
  invoke void @"_ZSt4sortIPZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10IOVariableZNS1_14emit_resourcesEvE3$_5EvT_S5_T0_"(ptr noundef %235, ptr noundef %236, ptr %238)
          to label %239 unwind label %260

239:                                              ; preds = %234
  %240 = load i8, ptr %24, align 1, !tbaa !30, !range !154, !noundef !155
  %241 = trunc i8 %240 to i1
  %242 = xor i1 %241, true
  %243 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 19
  %244 = zext i1 %242 to i8
  store i8 %244, ptr %243, align 8, !tbaa !159
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %245 = load i8, ptr %24, align 1, !tbaa !30, !range !154, !noundef !155
  %246 = trunc i8 %245 to i1
  %247 = zext i1 %246 to i64
  %248 = select i1 %246, ptr @.str.200, ptr @.str.201
  store ptr %248, ptr %26, align 8, !tbaa !5
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJPKcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %249 unwind label %264

249:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %250 unwind label %260

250:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  store ptr %13, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %251 = load ptr, ptr %27, align 8, !tbaa !5
  %252 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %251) #7
  store ptr %252, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %253 = load ptr, ptr %27, align 8, !tbaa !5
  %254 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %253) #7
  store ptr %254, ptr %29, align 8, !tbaa !5
  br label %255

255:                                              ; preds = %322, %250
  %256 = load ptr, ptr %28, align 8, !tbaa !5
  %257 = load ptr, ptr %29, align 8, !tbaa !5
  %258 = icmp ne ptr %256, %257
  br i1 %258, label %268, label %259

259:                                              ; preds = %255
  store i32 5, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %325

260:                                              ; preds = %1040, %1039, %1038, %1037, %1036, %1035, %1034, %1033, %1032, %1031, %960, %959, %958, %957, %956, %950, %949, %948, %947, %946, %945, %944, %943, %942, %941, %940, %939, %938, %937, %936, %930, %929, %928, %927, %926, %920, %919, %918, %917, %916, %915, %914, %913, %912, %911, %910, %909, %908, %907, %906, %905, %904, %903, %902, %901, %900, %899, %898, %897, %896, %895, %894, %893, %892, %891, %890, %889, %888, %887, %886, %885, %884, %883, %882, %881, %880, %878, %877, %876, %875, %874, %873, %863, %862, %861, %860, %859, %858, %857, %856, %855, %854, %853, %852, %851, %850, %849, %848, %847, %846, %845, %844, %843, %842, %841, %840, %839, %838, %837, %836, %835, %834, %833, %832, %831, %825, %824, %823, %822, %821, %820, %819, %818, %817, %816, %815, %814, %813, %812, %811, %810, %809, %808, %807, %806, %805, %716, %715, %714, %713, %712, %711, %710, %709, %708, %707, %706, %705, %704, %698, %697, %696, %695, %694, %693, %692, %691, %690, %689, %688, %687, %681, %680, %679, %678, %677, %676, %675, %674, %673, %672, %671, %670, %669, %663, %662, %661, %660, %659, %658, %657, %656, %655, %654, %653, %652, %646, %645, %644, %643, %642, %641, %640, %639, %638, %637, %636, %630, %629, %628, %627, %626, %625, %624, %623, %622, %621, %620, %619, %618, %612, %611, %610, %609, %608, %607, %606, %605, %604, %603, %602, %554, %524, %384, %383, %382, %337, %336, %332, %331, %329, %325, %249, %234, %230
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %15, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %16, align 4
  br label %1043

264:                                              ; preds = %239
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %15, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %1043

268:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %269 = load ptr, ptr %28, align 8, !tbaa !5
  store ptr %269, ptr %31, align 8, !tbaa !5
  %270 = load ptr, ptr %31, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.IOVariable, ptr %270, i32 0, i32 0
  %272 = load ptr, ptr %271, align 8, !tbaa !167
  %273 = invoke noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL25is_per_primitive_variableERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(176) %272)
          to label %274 unwind label %276

274:                                              ; preds = %268
  br i1 %273, label %275, label %280

275:                                              ; preds = %274
  store i32 6, ptr %30, align 4
  br label %319

276:                                              ; preds = %313, %302, %268
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %15, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %1043

280:                                              ; preds = %274
  %281 = load ptr, ptr %31, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.IOVariable, ptr %281, i32 0, i32 3
  %283 = load i8, ptr %282, align 8, !tbaa !165, !range !154, !noundef !155
  %284 = trunc i8 %283 to i1
  br i1 %284, label %285, label %294

285:                                              ; preds = %280
  %286 = load i8, ptr %24, align 1, !tbaa !30, !range !154, !noundef !155
  %287 = trunc i8 %286 to i1
  br i1 %287, label %288, label %294

288:                                              ; preds = %285
  %289 = load ptr, ptr %31, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.IOVariable, ptr %289, i32 0, i32 2
  %291 = load i32, ptr %290, align 4, !tbaa !168
  %292 = icmp ne i32 %291, 0
  br i1 %292, label %293, label %294

293:                                              ; preds = %288
  store i32 6, ptr %30, align 4
  br label %319

294:                                              ; preds = %288, %285, %280
  %295 = load ptr, ptr %31, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.IOVariable, ptr %295, i32 0, i32 3
  %297 = load i8, ptr %296, align 8, !tbaa !165, !range !154, !noundef !155
  %298 = trunc i8 %297 to i1
  br i1 %298, label %299, label %313

299:                                              ; preds = %294
  %300 = load i8, ptr %24, align 1, !tbaa !30, !range !154, !noundef !155
  %301 = trunc i8 %300 to i1
  br i1 %301, label %313, label %302

302:                                              ; preds = %299
  %303 = load ptr, ptr %31, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.IOVariable, ptr %303, i32 0, i32 0
  %305 = load ptr, ptr %304, align 8, !tbaa !167
  %306 = load ptr, ptr %31, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.IOVariable, ptr %306, i32 0, i32 2
  %308 = load i32, ptr %307, align 4, !tbaa !168
  %309 = load ptr, ptr %31, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.IOVariable, ptr %309, i32 0, i32 1
  %311 = load i32, ptr %310, align 8, !tbaa !169
  invoke void @_ZN11spirv_cross12CompilerHLSL37emit_interface_block_member_in_structERKNS_12SPIRVariableEjjRSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %71, ptr noundef nonnull align 8 dereferenceable(176) %305, i32 noundef %308, i32 noundef %311, ptr noundef nonnull align 8 dereferenceable(56) %11)
          to label %312 unwind label %276

312:                                              ; preds = %302
  br label %318

313:                                              ; preds = %299, %294
  %314 = load ptr, ptr %31, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.IOVariable, ptr %314, i32 0, i32 0
  %316 = load ptr, ptr %315, align 8, !tbaa !167
  invoke void @_ZN11spirv_cross12CompilerHLSL30emit_interface_block_in_structERKNS_12SPIRVariableERSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %71, ptr noundef nonnull align 8 dereferenceable(176) %316, ptr noundef nonnull align 8 dereferenceable(56) %11)
          to label %317 unwind label %276

317:                                              ; preds = %313
  br label %318

318:                                              ; preds = %317, %312
  store i32 0, ptr %30, align 4
  br label %319

319:                                              ; preds = %318, %293, %275
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  %320 = load i32, ptr %30, align 4
  switch i32 %320, label %1052 [
    i32 0, label %321
    i32 6, label %322
  ]

321:                                              ; preds = %319
  br label %322

322:                                              ; preds = %321, %319
  %323 = load ptr, ptr %28, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.IOVariable, ptr %323, i32 1
  store ptr %324, ptr %28, align 8, !tbaa !5
  br label %255

325:                                              ; preds = %259
  invoke void @_ZN11spirv_cross12CompilerHLSL30emit_builtin_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528) %71)
          to label %326 unwind label %260

326:                                              ; preds = %325
  %327 = load i8, ptr %24, align 1, !tbaa !30, !range !154, !noundef !155
  %328 = trunc i8 %327 to i1
  br i1 %328, label %331, label %329

329:                                              ; preds = %326
  invoke void @_ZN11spirv_cross12CompilerHLSL40emit_builtin_primitive_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528) %71)
          to label %330 unwind label %260

330:                                              ; preds = %329
  br label %331

331:                                              ; preds = %330, %326
  invoke void @_ZN11spirv_cross12CompilerGLSL14end_scope_declEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %332 unwind label %260

332:                                              ; preds = %331
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %333 unwind label %260

333:                                              ; preds = %332
  %334 = load i8, ptr %24, align 1, !tbaa !30, !range !154, !noundef !155
  %335 = trunc i8 %334 to i1
  br i1 %335, label %336, label %386

336:                                              ; preds = %333
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(30) @.str.202)
          to label %337 unwind label %260

337:                                              ; preds = %336
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %338 unwind label %260

338:                                              ; preds = %337
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  store ptr %13, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %339 = load ptr, ptr %32, align 8, !tbaa !5
  %340 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %339) #7
  store ptr %340, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %341 = load ptr, ptr %32, align 8, !tbaa !5
  %342 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %341) #7
  store ptr %342, ptr %34, align 8, !tbaa !5
  br label %343

343:                                              ; preds = %379, %338
  %344 = load ptr, ptr %33, align 8, !tbaa !5
  %345 = load ptr, ptr %34, align 8, !tbaa !5
  %346 = icmp ne ptr %344, %345
  br i1 %346, label %348, label %347

347:                                              ; preds = %343
  store i32 7, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %382

348:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %349 = load ptr, ptr %33, align 8, !tbaa !5
  store ptr %349, ptr %35, align 8, !tbaa !5
  %350 = load ptr, ptr %35, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.IOVariable, ptr %350, i32 0, i32 0
  %352 = load ptr, ptr %351, align 8, !tbaa !167
  %353 = invoke noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL25is_per_primitive_variableERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(176) %352)
          to label %354 unwind label %356

354:                                              ; preds = %348
  br i1 %353, label %360, label %355

355:                                              ; preds = %354
  store i32 8, ptr %30, align 4
  br label %376

356:                                              ; preds = %371, %348
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %15, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %1043

360:                                              ; preds = %354
  %361 = load ptr, ptr %35, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.IOVariable, ptr %361, i32 0, i32 3
  %363 = load i8, ptr %362, align 8, !tbaa !165, !range !154, !noundef !155
  %364 = trunc i8 %363 to i1
  br i1 %364, label %365, label %371

365:                                              ; preds = %360
  %366 = load ptr, ptr %35, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.IOVariable, ptr %366, i32 0, i32 2
  %368 = load i32, ptr %367, align 4, !tbaa !168
  %369 = icmp ne i32 %368, 0
  br i1 %369, label %370, label %371

370:                                              ; preds = %365
  store i32 8, ptr %30, align 4
  br label %376

371:                                              ; preds = %365, %360
  %372 = load ptr, ptr %35, align 8, !tbaa !5
  %373 = getelementptr inbounds %struct.IOVariable, ptr %372, i32 0, i32 0
  %374 = load ptr, ptr %373, align 8, !tbaa !167
  invoke void @_ZN11spirv_cross12CompilerHLSL30emit_interface_block_in_structERKNS_12SPIRVariableERSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %71, ptr noundef nonnull align 8 dereferenceable(176) %374, ptr noundef nonnull align 8 dereferenceable(56) %11)
          to label %375 unwind label %356

375:                                              ; preds = %371
  store i32 0, ptr %30, align 4
  br label %376

376:                                              ; preds = %375, %370, %355
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  %377 = load i32, ptr %30, align 4
  switch i32 %377, label %1052 [
    i32 0, label %378
    i32 8, label %379
  ]

378:                                              ; preds = %376
  br label %379

379:                                              ; preds = %378, %376
  %380 = load ptr, ptr %33, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.IOVariable, ptr %380, i32 1
  store ptr %381, ptr %33, align 8, !tbaa !5
  br label %343

382:                                              ; preds = %347
  invoke void @_ZN11spirv_cross12CompilerHLSL40emit_builtin_primitive_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528) %71)
          to label %383 unwind label %260

383:                                              ; preds = %382
  invoke void @_ZN11spirv_cross12CompilerGLSL14end_scope_declEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %384 unwind label %260

384:                                              ; preds = %383
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %385 unwind label %260

385:                                              ; preds = %384
  br label %386

386:                                              ; preds = %385, %333
  br label %387

387:                                              ; preds = %386, %233
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %388 = getelementptr inbounds %"class.spirv_cross::Compiler", ptr %71, i32 0, i32 2
  store ptr %388, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  %389 = load ptr, ptr %36, align 8, !tbaa !5
  %390 = call noundef ptr @_ZN11spirv_cross10VectorViewIjE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %389) #7
  store ptr %390, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %391 = load ptr, ptr %36, align 8, !tbaa !5
  %392 = call noundef ptr @_ZN11spirv_cross10VectorViewIjE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %391) #7
  store ptr %392, ptr %38, align 8, !tbaa !5
  br label %393

393:                                              ; preds = %517, %387
  %394 = load ptr, ptr %37, align 8, !tbaa !5
  %395 = load ptr, ptr %38, align 8, !tbaa !5
  %396 = icmp ne ptr %394, %395
  br i1 %396, label %398, label %397

397:                                              ; preds = %393
  store i32 9, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %521

398:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %399 = load ptr, ptr %37, align 8, !tbaa !5
  %400 = load i32, ptr %399, align 4, !tbaa !170
  store i32 %400, ptr %39, align 4, !tbaa !170
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %401 = load i32, ptr %39, align 4, !tbaa !170
  %402 = invoke noundef nonnull align 8 dereferenceable(176) ptr @_ZN11spirv_cross8Compiler3getINS_12SPIRVariableEEERT_j(ptr noundef nonnull align 8 dereferenceable(3176) %71, i32 noundef %401)
          to label %403 unwind label %408

403:                                              ; preds = %398
  store ptr %402, ptr %40, align 8, !tbaa !5
  %404 = load ptr, ptr %40, align 8, !tbaa !5
  %405 = invoke noundef zeroext i1 @_ZNK11spirv_cross8Compiler18is_hidden_variableERKNS_12SPIRVariableEb(ptr noundef nonnull align 8 dereferenceable(3176) %71, ptr noundef nonnull align 8 dereferenceable(176) %404, i1 noundef zeroext true)
          to label %406 unwind label %408

406:                                              ; preds = %403
  br i1 %405, label %407, label %412

407:                                              ; preds = %406
  store i32 10, ptr %30, align 4
  br label %511

408:                                              ; preds = %434, %430, %426, %403, %398
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %15, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %16, align 4
  br label %520

412:                                              ; preds = %406
  %413 = load ptr, ptr %40, align 8, !tbaa !5
  %414 = getelementptr inbounds %"struct.spirv_cross::SPIRVariable", ptr %413, i32 0, i32 2
  %415 = load i32, ptr %414, align 8, !tbaa !171
  %416 = icmp eq i32 %415, 5402
  br i1 %416, label %417, label %421

417:                                              ; preds = %412
  %418 = load i8, ptr %24, align 1, !tbaa !30, !range !154, !noundef !155
  %419 = trunc i8 %418 to i1
  br i1 %419, label %420, label %421

420:                                              ; preds = %417
  store i32 10, ptr %30, align 4
  br label %511

421:                                              ; preds = %417, %412
  %422 = load ptr, ptr %40, align 8, !tbaa !5
  %423 = getelementptr inbounds %"struct.spirv_cross::SPIRVariable", ptr %422, i32 0, i32 2
  %424 = load i32, ptr %423, align 8, !tbaa !171
  %425 = icmp ne i32 %424, 3
  br i1 %425, label %426, label %510

426:                                              ; preds = %421
  %427 = load ptr, ptr %40, align 8, !tbaa !5
  %428 = invoke noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL15variable_is_lutERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(176) %427)
          to label %429 unwind label %408

429:                                              ; preds = %426
  br i1 %428, label %509, label %430

430:                                              ; preds = %429
  %431 = load ptr, ptr %40, align 8, !tbaa !5
  %432 = getelementptr inbounds %"struct.spirv_cross::IVariant", ptr %431, i32 0, i32 1
  %433 = invoke noundef i32 @_ZNK11spirv_cross7TypedIDILNS_5TypesE0EEcvjEv(ptr noundef nonnull align 4 dereferenceable(4) %432)
          to label %434 unwind label %408

434:                                              ; preds = %430
  invoke void @_ZN11spirv_cross12CompilerGLSL17add_resource_nameEj(ptr noundef nonnull align 8 dereferenceable(9848) %71, i32 noundef %433)
          to label %435 unwind label %408

435:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  store ptr null, ptr %41, align 8, !tbaa !5
  %436 = load ptr, ptr %40, align 8, !tbaa !5
  %437 = getelementptr inbounds %"struct.spirv_cross::SPIRVariable", ptr %436, i32 0, i32 2
  %438 = load i32, ptr %437, align 8, !tbaa !171
  switch i32 %438, label %440 [
    i32 4, label %439
    i32 5402, label %439
  ]

439:                                              ; preds = %435, %435
  store ptr @.str.119, ptr %41, align 8, !tbaa !5
  br label %441

440:                                              ; preds = %435
  store ptr @.str.166, ptr %41, align 8, !tbaa !5
  br label %441

441:                                              ; preds = %440, %439
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  %442 = getelementptr inbounds %"class.spirv_cross::CompilerGLSL", ptr %71, i32 0, i32 9
  %443 = getelementptr inbounds %"struct.spirv_cross::CompilerGLSL::Options", ptr %442, i32 0, i32 12
  %444 = load i8, ptr %443, align 4, !tbaa !179, !range !154, !noundef !155
  %445 = trunc i8 %444 to i1
  br i1 %445, label %446, label %492

446:                                              ; preds = %441
  %447 = load ptr, ptr %40, align 8, !tbaa !5
  %448 = getelementptr inbounds %"struct.spirv_cross::SPIRVariable", ptr %447, i32 0, i32 2
  %449 = load i32, ptr %448, align 8, !tbaa !171
  %450 = icmp eq i32 %449, 6
  br i1 %450, label %451, label %492

451:                                              ; preds = %446
  %452 = load ptr, ptr %40, align 8, !tbaa !5
  %453 = getelementptr inbounds %"struct.spirv_cross::SPIRVariable", ptr %452, i32 0, i32 4
  %454 = invoke noundef i32 @_ZNK11spirv_cross7TypedIDILNS_5TypesE0EEcvjEv(ptr noundef nonnull align 4 dereferenceable(4) %453)
          to label %455 unwind label %479

455:                                              ; preds = %451
  %456 = icmp ne i32 %454, 0
  br i1 %456, label %492, label %457

457:                                              ; preds = %455
  %458 = load ptr, ptr %40, align 8, !tbaa !5
  %459 = getelementptr inbounds %"struct.spirv_cross::SPIRVariable", ptr %458, i32 0, i32 9
  %460 = invoke noundef i32 @_ZNK11spirv_cross7TypedIDILNS_5TypesE0EEcvjEv(ptr noundef nonnull align 4 dereferenceable(4) %459)
          to label %461 unwind label %479

461:                                              ; preds = %457
  %462 = icmp ne i32 %460, 0
  br i1 %462, label %492, label %463

463:                                              ; preds = %461
  %464 = load ptr, ptr %40, align 8, !tbaa !5
  %465 = invoke noundef nonnull align 8 dereferenceable(336) ptr @_ZN11spirv_cross8Compiler22get_variable_data_typeERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(3176) %71, ptr noundef nonnull align 8 dereferenceable(176) %464)
          to label %466 unwind label %479

466:                                              ; preds = %463
  %467 = invoke noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL24type_can_zero_initializeERKNS_8SPIRTypeE(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(336) %465)
          to label %468 unwind label %479

468:                                              ; preds = %466
  br i1 %467, label %469, label %492

469:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #7
  %470 = load ptr, ptr %40, align 8, !tbaa !5
  %471 = invoke noundef i32 @_ZNK11spirv_cross8Compiler25get_variable_data_type_idERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(3176) %71, ptr noundef nonnull align 8 dereferenceable(176) %470)
          to label %472 unwind label %483

472:                                              ; preds = %469
  %473 = load ptr, ptr %71, align 8, !tbaa !9
  %474 = getelementptr inbounds ptr, ptr %473, i64 58
  %475 = load ptr, ptr %474, align 8
  invoke void %475(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(9848) %71, i32 noundef %471)
          to label %476 unwind label %483

476:                                              ; preds = %472
  invoke void @_ZN11spirv_cross4joinIJRA4_KcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES9_DpOT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 1 dereferenceable(4) @.str.87, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %477 unwind label %487

477:                                              ; preds = %476
  %478 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #7
  br label %492

479:                                              ; preds = %466, %463, %457, %451
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %15, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %16, align 4
  br label %508

483:                                              ; preds = %472, %469
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %15, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %16, align 4
  br label %491

487:                                              ; preds = %476
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %15, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %491

491:                                              ; preds = %487, %483
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #7
  br label %508

492:                                              ; preds = %477, %468, %461, %455, %446, %441
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #7
  %493 = load ptr, ptr %40, align 8, !tbaa !5
  %494 = load ptr, ptr %71, align 8, !tbaa !9
  %495 = getelementptr inbounds ptr, ptr %494, i64 39
  %496 = load ptr, ptr %495, align 8
  invoke void %496(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(176) %493)
          to label %497 unwind label %499

497:                                              ; preds = %492
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA2_S2_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSC_S6_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 1 dereferenceable(2) @.str.63, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 1 dereferenceable(2) @.str.53)
          to label %498 unwind label %503

498:                                              ; preds = %497
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  store i8 1, ptr %4, align 1, !tbaa !30
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %509

499:                                              ; preds = %492
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %15, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %16, align 4
  br label %507

503:                                              ; preds = %497
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %15, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %507

507:                                              ; preds = %503, %499
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  br label %508

508:                                              ; preds = %507, %491, %479
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %520

509:                                              ; preds = %498, %429
  br label %510

510:                                              ; preds = %509, %421
  store i32 0, ptr %30, align 4
  br label %511

511:                                              ; preds = %510, %420, %407
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  %512 = load i32, ptr %30, align 4
  switch i32 %512, label %514 [
    i32 0, label %513
  ]

513:                                              ; preds = %511
  store i32 0, ptr %30, align 4
  br label %514

514:                                              ; preds = %513, %511
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  %515 = load i32, ptr %30, align 4
  switch i32 %515, label %1052 [
    i32 0, label %516
    i32 10, label %517
  ]

516:                                              ; preds = %514
  br label %517

517:                                              ; preds = %516, %514
  %518 = load ptr, ptr %37, align 8, !tbaa !5
  %519 = getelementptr inbounds i32, ptr %518, i32 1
  store ptr %519, ptr %37, align 8, !tbaa !5
  br label %393

520:                                              ; preds = %508, %408
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %1043

521:                                              ; preds = %397
  %522 = load i8, ptr %4, align 1, !tbaa !30, !range !154, !noundef !155
  %523 = trunc i8 %522 to i1
  br i1 %523, label %524, label %526

524:                                              ; preds = %521
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %525 unwind label %260

525:                                              ; preds = %524
  br label %526

526:                                              ; preds = %525, %521
  %527 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 2
  %528 = load i8, ptr %527, align 8, !tbaa !180, !range !154, !noundef !155
  %529 = trunc i8 %528 to i1
  br i1 %529, label %530, label %554

530:                                              ; preds = %526
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  store ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  store ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  store ptr getelementptr inbounds (ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 4), ptr %48, align 8, !tbaa !5
  br label %531

531:                                              ; preds = %546, %530
  %532 = load ptr, ptr %47, align 8, !tbaa !5
  %533 = load ptr, ptr %48, align 8, !tbaa !5
  %534 = icmp ne ptr %532, %533
  br i1 %534, label %536, label %535

535:                                              ; preds = %531
  store i32 12, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %553

536:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %537 = load ptr, ptr %47, align 8, !tbaa !5
  store ptr %537, ptr %49, align 8, !tbaa !5
  %538 = load ptr, ptr %49, align 8, !tbaa !5
  %539 = load ptr, ptr %49, align 8, !tbaa !5
  %540 = load ptr, ptr %49, align 8, !tbaa !5
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA6_S2_S4_RA5_S2_S4_RA4_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(8) %538, ptr noundef nonnull align 1 dereferenceable(6) @.str.206, ptr noundef nonnull align 8 dereferenceable(8) %539, ptr noundef nonnull align 1 dereferenceable(5) @.str.207, ptr noundef nonnull align 8 dereferenceable(8) %540, ptr noundef nonnull align 1 dereferenceable(4) @.str.208)
          to label %541 unwind label %549

541:                                              ; preds = %536
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %542 unwind label %549

542:                                              ; preds = %541
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(29) @.str.209)
          to label %543 unwind label %549

543:                                              ; preds = %542
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %544 unwind label %549

544:                                              ; preds = %543
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %545 unwind label %549

545:                                              ; preds = %544
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br label %546

546:                                              ; preds = %545
  %547 = load ptr, ptr %47, align 8, !tbaa !5
  %548 = getelementptr inbounds ptr, ptr %547, i32 1
  store ptr %548, ptr %47, align 8, !tbaa !5
  br label %531

549:                                              ; preds = %544, %543, %542, %541, %536
  %550 = landingpad { ptr, i32 }
          cleanup
  %551 = extractvalue { ptr, i32 } %550, 0
  store ptr %551, ptr %15, align 8
  %552 = extractvalue { ptr, i32 } %550, 1
  store i32 %552, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %1043

553:                                              ; preds = %535
  br label %554

554:                                              ; preds = %553, %526
  %555 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 18
  %556 = getelementptr inbounds %"struct.spirv_cross::CompilerHLSL::TextureSizeVariants", ptr %555, i32 0, i32 0
  %557 = load i64, ptr %556, align 8, !tbaa !181
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %71, i64 noundef %557, ptr noundef @.str.210, i1 noundef zeroext false, ptr noundef @.str.9)
          to label %558 unwind label %260

558:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  store i32 0, ptr %50, align 4, !tbaa !170
  br label %559

559:                                              ; preds = %595, %558
  %560 = load i32, ptr %50, align 4, !tbaa !170
  %561 = icmp ult i32 %560, 3
  br i1 %561, label %563, label %562

562:                                              ; preds = %559
  store i32 14, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %598

563:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  store i32 0, ptr %51, align 4, !tbaa !170
  br label %564

564:                                              ; preds = %587, %563
  %565 = load i32, ptr %51, align 4, !tbaa !170
  %566 = icmp ult i32 %565, 4
  br i1 %566, label %568, label %567

567:                                              ; preds = %564
  store i32 17, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %594

568:                                              ; preds = %564
  %569 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 18
  %570 = getelementptr inbounds %"struct.spirv_cross::CompilerHLSL::TextureSizeVariants", ptr %569, i32 0, i32 1
  %571 = load i32, ptr %50, align 4, !tbaa !170
  %572 = zext i32 %571 to i64
  %573 = getelementptr inbounds [3 x [4 x i64]], ptr %570, i64 0, i64 %572
  %574 = load i32, ptr %51, align 4, !tbaa !170
  %575 = zext i32 %574 to i64
  %576 = getelementptr inbounds [4 x i64], ptr %573, i64 0, i64 %575
  %577 = load i64, ptr %576, align 8, !tbaa !182
  %578 = load i32, ptr %51, align 4, !tbaa !170
  %579 = zext i32 %578 to i64
  %580 = getelementptr inbounds [4 x ptr], ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 0, i64 %579
  %581 = load ptr, ptr %580, align 8, !tbaa !5
  %582 = load i32, ptr %50, align 4, !tbaa !170
  %583 = zext i32 %582 to i64
  %584 = getelementptr inbounds [3 x ptr], ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, i64 0, i64 %583
  %585 = load ptr, ptr %584, align 8, !tbaa !5
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %71, i64 noundef %577, ptr noundef %581, i1 noundef zeroext true, ptr noundef %585)
          to label %586 unwind label %590

586:                                              ; preds = %568
  br label %587

587:                                              ; preds = %586
  %588 = load i32, ptr %51, align 4, !tbaa !170
  %589 = add i32 %588, 1
  store i32 %589, ptr %51, align 4, !tbaa !170
  br label %564, !llvm.loop !183

590:                                              ; preds = %568
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %15, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %1043

594:                                              ; preds = %567
  br label %595

595:                                              ; preds = %594
  %596 = load i32, ptr %50, align 4, !tbaa !170
  %597 = add i32 %596, 1
  store i32 %597, ptr %50, align 4, !tbaa !170
  br label %559, !llvm.loop !185

598:                                              ; preds = %562
  %599 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 3
  %600 = load i8, ptr %599, align 1, !tbaa !186, !range !154, !noundef !155
  %601 = trunc i8 %600 to i1
  br i1 %601, label %602, label %614

602:                                              ; preds = %598
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(35) @.str.215)
          to label %603 unwind label %260

603:                                              ; preds = %602
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %604 unwind label %260

604:                                              ; preds = %603
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(32) @.str.216)
          to label %605 unwind label %260

605:                                              ; preds = %604
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(36) @.str.217)
          to label %606 unwind label %260

606:                                              ; preds = %605
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %607 unwind label %260

607:                                              ; preds = %606
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %608 unwind label %260

608:                                              ; preds = %607
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(37) @.str.218)
          to label %609 unwind label %260

609:                                              ; preds = %608
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %610 unwind label %260

610:                                              ; preds = %609
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA53_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(53) @.str.219)
          to label %611 unwind label %260

611:                                              ; preds = %610
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %612 unwind label %260

612:                                              ; preds = %611
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %613 unwind label %260

613:                                              ; preds = %612
  br label %614

614:                                              ; preds = %613, %598
  %615 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 4
  %616 = load i8, ptr %615, align 2, !tbaa !187, !range !154, !noundef !155
  %617 = trunc i8 %616 to i1
  br i1 %617, label %618, label %632

618:                                              ; preds = %614
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA38_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(38) @.str.220)
          to label %619 unwind label %260

619:                                              ; preds = %618
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %620 unwind label %260

620:                                              ; preds = %619
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA54_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(54) @.str.221)
          to label %621 unwind label %260

621:                                              ; preds = %620
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %622 unwind label %260

622:                                              ; preds = %621
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %623 unwind label %260

623:                                              ; preds = %622
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA40_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(40) @.str.222)
          to label %624 unwind label %260

624:                                              ; preds = %623
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %625 unwind label %260

625:                                              ; preds = %624
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA16_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(16) @.str.223)
          to label %626 unwind label %260

626:                                              ; preds = %625
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA39_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(39) @.str.224)
          to label %627 unwind label %260

627:                                              ; preds = %626
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(32) @.str.225)
          to label %628 unwind label %260

628:                                              ; preds = %627
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA17_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(17) @.str.226)
          to label %629 unwind label %260

629:                                              ; preds = %628
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %630 unwind label %260

630:                                              ; preds = %629
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %631 unwind label %260

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631, %614
  %633 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 5
  %634 = load i8, ptr %633, align 1, !tbaa !188, !range !154, !noundef !155
  %635 = trunc i8 %634 to i1
  br i1 %635, label %636, label %648

636:                                              ; preds = %632
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA41_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(41) @.str.227)
          to label %637 unwind label %260

637:                                              ; preds = %636
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %638 unwind label %260

638:                                              ; preds = %637
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(32) @.str.216)
          to label %639 unwind label %260

639:                                              ; preds = %638
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(36) @.str.217)
          to label %640 unwind label %260

640:                                              ; preds = %639
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %641 unwind label %260

641:                                              ; preds = %640
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %642 unwind label %260

642:                                              ; preds = %641
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA43_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(43) @.str.228)
          to label %643 unwind label %260

643:                                              ; preds = %642
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %644 unwind label %260

644:                                              ; preds = %643
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA66_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(66) @.str.229)
          to label %645 unwind label %260

645:                                              ; preds = %644
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %646 unwind label %260

646:                                              ; preds = %645
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %647 unwind label %260

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647, %632
  %649 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 6
  %650 = load i8, ptr %649, align 4, !tbaa !189, !range !154, !noundef !155
  %651 = trunc i8 %650 to i1
  br i1 %651, label %652, label %665

652:                                              ; preds = %648
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(35) @.str.230)
          to label %653 unwind label %260

653:                                              ; preds = %652
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %654 unwind label %260

654:                                              ; preds = %653
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA54_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(54) @.str.231)
          to label %655 unwind label %260

655:                                              ; preds = %654
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA73_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(73) @.str.232)
          to label %656 unwind label %260

656:                                              ; preds = %655
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %657 unwind label %260

657:                                              ; preds = %656
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %658 unwind label %260

658:                                              ; preds = %657
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(37) @.str.233)
          to label %659 unwind label %260

659:                                              ; preds = %658
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %660 unwind label %260

660:                                              ; preds = %659
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA92_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(92) @.str.234)
          to label %661 unwind label %260

661:                                              ; preds = %660
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA31_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(31) @.str.235)
          to label %662 unwind label %260

662:                                              ; preds = %661
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %663 unwind label %260

663:                                              ; preds = %662
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %664 unwind label %260

664:                                              ; preds = %663
  br label %665

665:                                              ; preds = %664, %648
  %666 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 7
  %667 = load i8, ptr %666, align 1, !tbaa !190, !range !154, !noundef !155
  %668 = trunc i8 %667 to i1
  br i1 %668, label %669, label %683

669:                                              ; preds = %665
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(35) @.str.236)
          to label %670 unwind label %260

670:                                              ; preds = %669
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %671 unwind label %260

671:                                              ; preds = %670
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA67_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(67) @.str.237)
          to label %672 unwind label %260

672:                                              ; preds = %671
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA79_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(79) @.str.238)
          to label %673 unwind label %260

673:                                              ; preds = %672
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %674 unwind label %260

674:                                              ; preds = %673
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %675 unwind label %260

675:                                              ; preds = %674
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(37) @.str.239)
          to label %676 unwind label %260

676:                                              ; preds = %675
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %677 unwind label %260

677:                                              ; preds = %676
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(30) @.str.240)
          to label %678 unwind label %260

678:                                              ; preds = %677
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA95_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(95) @.str.241)
          to label %679 unwind label %260

679:                                              ; preds = %678
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(49) @.str.242)
          to label %680 unwind label %260

680:                                              ; preds = %679
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %681 unwind label %260

681:                                              ; preds = %680
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %682 unwind label %260

682:                                              ; preds = %681
  br label %683

683:                                              ; preds = %682, %665
  %684 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 8
  %685 = load i8, ptr %684, align 2, !tbaa !191, !range !154, !noundef !155
  %686 = trunc i8 %685 to i1
  br i1 %686, label %687, label %700

687:                                              ; preds = %683
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(36) @.str.243)
          to label %688 unwind label %260

688:                                              ; preds = %687
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %689 unwind label %260

689:                                              ; preds = %688
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA56_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(56) @.str.244)
          to label %690 unwind label %260

690:                                              ; preds = %689
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(36) @.str.217)
          to label %691 unwind label %260

691:                                              ; preds = %690
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %692 unwind label %260

692:                                              ; preds = %691
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %693 unwind label %260

693:                                              ; preds = %692
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA38_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(38) @.str.245)
          to label %694 unwind label %260

694:                                              ; preds = %693
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %695 unwind label %260

695:                                              ; preds = %694
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA51_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(51) @.str.246)
          to label %696 unwind label %260

696:                                              ; preds = %695
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA33_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(33) @.str.247)
          to label %697 unwind label %260

697:                                              ; preds = %696
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %698 unwind label %260

698:                                              ; preds = %697
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %699 unwind label %260

699:                                              ; preds = %698
  br label %700

700:                                              ; preds = %699, %683
  %701 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 9
  %702 = load i8, ptr %701, align 1, !tbaa !192, !range !154, !noundef !155
  %703 = trunc i8 %702 to i1
  br i1 %703, label %704, label %718

704:                                              ; preds = %700
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(36) @.str.248)
          to label %705 unwind label %260

705:                                              ; preds = %704
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %706 unwind label %260

706:                                              ; preds = %705
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA71_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(71) @.str.249)
          to label %707 unwind label %260

707:                                              ; preds = %706
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA42_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(42) @.str.250)
          to label %708 unwind label %260

708:                                              ; preds = %707
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %709 unwind label %260

709:                                              ; preds = %708
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %710 unwind label %260

710:                                              ; preds = %709
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA38_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(38) @.str.251)
          to label %711 unwind label %260

711:                                              ; preds = %710
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %712 unwind label %260

712:                                              ; preds = %711
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(30) @.str.240)
          to label %713 unwind label %260

713:                                              ; preds = %712
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA58_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(58) @.str.252)
          to label %714 unwind label %260

714:                                              ; preds = %713
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA51_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(51) @.str.253)
          to label %715 unwind label %260

715:                                              ; preds = %714
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %716 unwind label %260

716:                                              ; preds = %715
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %717 unwind label %260

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717, %700
  %719 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 10
  %720 = load i8, ptr %719, align 8, !tbaa !193, !range !154, !noundef !155
  %721 = trunc i8 %720 to i1
  br i1 %721, label %722, label %747

722:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  store ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  store ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  store ptr getelementptr inbounds (ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 4), ptr %54, align 8, !tbaa !5
  br label %723

723:                                              ; preds = %739, %722
  %724 = load ptr, ptr %53, align 8, !tbaa !5
  %725 = load ptr, ptr %54, align 8, !tbaa !5
  %726 = icmp ne ptr %724, %725
  br i1 %726, label %728, label %727

727:                                              ; preds = %723
  store i32 20, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  br label %746

728:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %729 = load ptr, ptr %53, align 8, !tbaa !5
  store ptr %729, ptr %55, align 8, !tbaa !5
  %730 = load ptr, ptr %55, align 8, !tbaa !5
  %731 = load ptr, ptr %55, align 8, !tbaa !5
  %732 = load ptr, ptr %55, align 8, !tbaa !5
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA20_S2_S4_RA8_S2_S4_RA34_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(8) %730, ptr noundef nonnull align 1 dereferenceable(20) @.str.257, ptr noundef nonnull align 8 dereferenceable(8) %731, ptr noundef nonnull align 1 dereferenceable(8) @.str.258, ptr noundef nonnull align 8 dereferenceable(8) %732, ptr noundef nonnull align 1 dereferenceable(34) @.str.259)
          to label %733 unwind label %742

733:                                              ; preds = %728
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %734 unwind label %742

734:                                              ; preds = %733
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA79_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(79) @.str.260)
          to label %735 unwind label %742

735:                                              ; preds = %734
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA53_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(53) @.str.261)
          to label %736 unwind label %742

736:                                              ; preds = %735
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %737 unwind label %742

737:                                              ; preds = %736
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %738 unwind label %742

738:                                              ; preds = %737
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %739

739:                                              ; preds = %738
  %740 = load ptr, ptr %53, align 8, !tbaa !5
  %741 = getelementptr inbounds ptr, ptr %740, i32 1
  store ptr %741, ptr %53, align 8, !tbaa !5
  br label %723

742:                                              ; preds = %737, %736, %735, %734, %733, %728
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %15, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  br label %1043

746:                                              ; preds = %727
  br label %747

747:                                              ; preds = %746, %718
  %748 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 11
  %749 = load i8, ptr %748, align 1, !tbaa !194, !range !154, !noundef !155
  %750 = trunc i8 %749 to i1
  br i1 %750, label %751, label %801

751:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  store ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  store ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  store ptr getelementptr inbounds (ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, i64 4), ptr %58, align 8, !tbaa !5
  br label %752

752:                                              ; preds = %767, %751
  %753 = load ptr, ptr %57, align 8, !tbaa !5
  %754 = load ptr, ptr %58, align 8, !tbaa !5
  %755 = icmp ne ptr %753, %754
  br i1 %755, label %757, label %756

756:                                              ; preds = %752
  store i32 22, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %774

757:                                              ; preds = %752
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  %758 = load ptr, ptr %57, align 8, !tbaa !5
  store ptr %758, ptr %59, align 8, !tbaa !5
  %759 = load ptr, ptr %59, align 8, !tbaa !5
  %760 = load ptr, ptr %59, align 8, !tbaa !5
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA32_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(8) %759, ptr noundef nonnull align 1 dereferenceable(22) @.str.262, ptr noundef nonnull align 8 dereferenceable(8) %760, ptr noundef nonnull align 1 dereferenceable(32) @.str.263)
          to label %761 unwind label %770

761:                                              ; preds = %757
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %762 unwind label %770

762:                                              ; preds = %761
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(59) @.str.264)
          to label %763 unwind label %770

763:                                              ; preds = %762
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(32) @.str.265)
          to label %764 unwind label %770

764:                                              ; preds = %763
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %765 unwind label %770

765:                                              ; preds = %764
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %766 unwind label %770

766:                                              ; preds = %765
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  br label %767

767:                                              ; preds = %766
  %768 = load ptr, ptr %57, align 8, !tbaa !5
  %769 = getelementptr inbounds ptr, ptr %768, i32 1
  store ptr %769, ptr %57, align 8, !tbaa !5
  br label %752

770:                                              ; preds = %765, %764, %763, %762, %761, %757
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %15, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %1043

774:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  store ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  store ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #7
  store ptr getelementptr inbounds (ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 4), ptr %62, align 8, !tbaa !5
  br label %775

775:                                              ; preds = %793, %774
  %776 = load ptr, ptr %61, align 8, !tbaa !5
  %777 = load ptr, ptr %62, align 8, !tbaa !5
  %778 = icmp ne ptr %776, %777
  br i1 %778, label %780, label %779

779:                                              ; preds = %775
  store i32 24, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %800

780:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  %781 = load ptr, ptr %61, align 8, !tbaa !5
  store ptr %781, ptr %63, align 8, !tbaa !5
  %782 = load ptr, ptr %63, align 8, !tbaa !5
  %783 = load ptr, ptr %63, align 8, !tbaa !5
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA30_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(8) %782, ptr noundef nonnull align 1 dereferenceable(22) @.str.269, ptr noundef nonnull align 8 dereferenceable(8) %783, ptr noundef nonnull align 1 dereferenceable(30) @.str.270)
          to label %784 unwind label %796

784:                                              ; preds = %780
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %785 unwind label %796

785:                                              ; preds = %784
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA50_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(50) @.str.271)
          to label %786 unwind label %796

786:                                              ; preds = %785
  %787 = load ptr, ptr %63, align 8, !tbaa !5
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA35_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(8) %787, ptr noundef nonnull align 1 dereferenceable(35) @.str.272)
          to label %788 unwind label %796

788:                                              ; preds = %786
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(37) @.str.273)
          to label %789 unwind label %796

789:                                              ; preds = %788
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA47_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(47) @.str.274)
          to label %790 unwind label %796

790:                                              ; preds = %789
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %791 unwind label %796

791:                                              ; preds = %790
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %792 unwind label %796

792:                                              ; preds = %791
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  br label %793

793:                                              ; preds = %792
  %794 = load ptr, ptr %61, align 8, !tbaa !5
  %795 = getelementptr inbounds ptr, ptr %794, i32 1
  store ptr %795, ptr %61, align 8, !tbaa !5
  br label %775

796:                                              ; preds = %791, %790, %789, %788, %786, %785, %784, %780
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %15, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %1043

800:                                              ; preds = %779
  br label %801

801:                                              ; preds = %800, %747
  %802 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 12
  %803 = load i8, ptr %802, align 2, !tbaa !195, !range !154, !noundef !155
  %804 = trunc i8 %803 to i1
  br i1 %804, label %805, label %827

805:                                              ; preds = %801
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA88_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(88) @.str.275)
          to label %806 unwind label %260

806:                                              ; preds = %805
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA84_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(84) @.str.276)
          to label %807 unwind label %260

807:                                              ; preds = %806
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(32) @.str.277)
          to label %808 unwind label %260

808:                                              ; preds = %807
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %809 unwind label %260

809:                                              ; preds = %808
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(76) @.str.278)
          to label %810 unwind label %260

810:                                              ; preds = %809
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %811 unwind label %260

811:                                              ; preds = %810
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA82_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(82) @.str.279)
          to label %812 unwind label %260

812:                                              ; preds = %811
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(22) @.str.280)
          to label %813 unwind label %260

813:                                              ; preds = %812
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(22) @.str.281)
          to label %814 unwind label %260

814:                                              ; preds = %813
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %815 unwind label %260

815:                                              ; preds = %814
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(22) @.str.282)
          to label %816 unwind label %260

816:                                              ; preds = %815
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(22) @.str.283)
          to label %817 unwind label %260

817:                                              ; preds = %816
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %818 unwind label %260

818:                                              ; preds = %817
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA81_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(81) @.str.284)
          to label %819 unwind label %260

819:                                              ; preds = %818
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(59) @.str.285)
          to label %820 unwind label %260

820:                                              ; preds = %819
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %821 unwind label %260

821:                                              ; preds = %820
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(59) @.str.286)
          to label %822 unwind label %260

822:                                              ; preds = %821
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(76) @.str.287)
          to label %823 unwind label %260

823:                                              ; preds = %822
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(49) @.str.288)
          to label %824 unwind label %260

824:                                              ; preds = %823
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %825 unwind label %260

825:                                              ; preds = %824
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %826 unwind label %260

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826, %801
  %828 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 13
  %829 = load i8, ptr %828, align 1, !tbaa !196, !range !154, !noundef !155
  %830 = trunc i8 %829 to i1
  br i1 %830, label %831, label %865

831:                                              ; preds = %827
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(44) @.str.289)
          to label %832 unwind label %260

832:                                              ; preds = %831
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA56_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(56) @.str.290)
          to label %833 unwind label %260

833:                                              ; preds = %832
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %834 unwind label %260

834:                                              ; preds = %833
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA26_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(26) @.str.291)
          to label %835 unwind label %260

835:                                              ; preds = %834
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %836 unwind label %260

836:                                              ; preds = %835
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %837 unwind label %260

837:                                              ; preds = %836
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA88_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(88) @.str.275)
          to label %838 unwind label %260

838:                                              ; preds = %837
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA84_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(84) @.str.276)
          to label %839 unwind label %260

839:                                              ; preds = %838
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(32) @.str.292)
          to label %840 unwind label %260

840:                                              ; preds = %839
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %841 unwind label %260

841:                                              ; preds = %840
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(76) @.str.293)
          to label %842 unwind label %260

842:                                              ; preds = %841
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %843 unwind label %260

843:                                              ; preds = %842
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA82_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(82) @.str.279)
          to label %844 unwind label %260

844:                                              ; preds = %843
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(60) @.str.294)
          to label %845 unwind label %260

845:                                              ; preds = %844
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(60) @.str.295)
          to label %846 unwind label %260

846:                                              ; preds = %845
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(60) @.str.296)
          to label %847 unwind label %260

847:                                              ; preds = %846
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %848 unwind label %260

848:                                              ; preds = %847
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(60) @.str.297)
          to label %849 unwind label %260

849:                                              ; preds = %848
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(60) @.str.298)
          to label %850 unwind label %260

850:                                              ; preds = %849
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(60) @.str.299)
          to label %851 unwind label %260

851:                                              ; preds = %850
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %852 unwind label %260

852:                                              ; preds = %851
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(60) @.str.300)
          to label %853 unwind label %260

853:                                              ; preds = %852
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(60) @.str.301)
          to label %854 unwind label %260

854:                                              ; preds = %853
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(60) @.str.302)
          to label %855 unwind label %260

855:                                              ; preds = %854
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %856 unwind label %260

856:                                              ; preds = %855
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA81_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(81) @.str.284)
          to label %857 unwind label %260

857:                                              ; preds = %856
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA83_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(83) @.str.303)
          to label %858 unwind label %260

858:                                              ; preds = %857
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %859 unwind label %260

859:                                              ; preds = %858
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(59) @.str.286)
          to label %860 unwind label %260

860:                                              ; preds = %859
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(76) @.str.287)
          to label %861 unwind label %260

861:                                              ; preds = %860
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(49) @.str.288)
          to label %862 unwind label %260

862:                                              ; preds = %861
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %863 unwind label %260

863:                                              ; preds = %862
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %864 unwind label %260

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864, %827
  %866 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 14
  %867 = load i8, ptr %866, align 4, !tbaa !197, !range !154, !noundef !155
  %868 = trunc i8 %867 to i1
  br i1 %868, label %869, label %922

869:                                              ; preds = %865
  %870 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 13
  %871 = load i8, ptr %870, align 1, !tbaa !196, !range !154, !noundef !155
  %872 = trunc i8 %871 to i1
  br i1 %872, label %880, label %873

873:                                              ; preds = %869
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(44) @.str.289)
          to label %874 unwind label %260

874:                                              ; preds = %873
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA56_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(56) @.str.290)
          to label %875 unwind label %260

875:                                              ; preds = %874
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %876 unwind label %260

876:                                              ; preds = %875
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA26_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(26) @.str.291)
          to label %877 unwind label %260

877:                                              ; preds = %876
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %878 unwind label %260

878:                                              ; preds = %877
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %879 unwind label %260

879:                                              ; preds = %878
  br label %880

880:                                              ; preds = %879, %869
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(44) @.str.304)
          to label %881 unwind label %260

881:                                              ; preds = %880
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA106_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(106) @.str.305)
          to label %882 unwind label %260

882:                                              ; preds = %881
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %883 unwind label %260

883:                                              ; preds = %882
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.306)
          to label %884 unwind label %260

884:                                              ; preds = %883
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %885 unwind label %260

885:                                              ; preds = %884
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %886 unwind label %260

886:                                              ; preds = %885
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA88_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(88) @.str.275)
          to label %887 unwind label %260

887:                                              ; preds = %886
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA84_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(84) @.str.276)
          to label %888 unwind label %260

888:                                              ; preds = %887
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(32) @.str.307)
          to label %889 unwind label %260

889:                                              ; preds = %888
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %890 unwind label %260

890:                                              ; preds = %889
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(76) @.str.308)
          to label %891 unwind label %260

891:                                              ; preds = %890
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %892 unwind label %260

892:                                              ; preds = %891
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA82_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(82) @.str.279)
          to label %893 unwind label %260

893:                                              ; preds = %892
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.309)
          to label %894 unwind label %260

894:                                              ; preds = %893
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.310)
          to label %895 unwind label %260

895:                                              ; preds = %894
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.311)
          to label %896 unwind label %260

896:                                              ; preds = %895
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.312)
          to label %897 unwind label %260

897:                                              ; preds = %896
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %898 unwind label %260

898:                                              ; preds = %897
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.313)
          to label %899 unwind label %260

899:                                              ; preds = %898
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.314)
          to label %900 unwind label %260

900:                                              ; preds = %899
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.315)
          to label %901 unwind label %260

901:                                              ; preds = %900
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.316)
          to label %902 unwind label %260

902:                                              ; preds = %901
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %903 unwind label %260

903:                                              ; preds = %902
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.317)
          to label %904 unwind label %260

904:                                              ; preds = %903
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.318)
          to label %905 unwind label %260

905:                                              ; preds = %904
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.319)
          to label %906 unwind label %260

906:                                              ; preds = %905
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.320)
          to label %907 unwind label %260

907:                                              ; preds = %906
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %908 unwind label %260

908:                                              ; preds = %907
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.321)
          to label %909 unwind label %260

909:                                              ; preds = %908
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.322)
          to label %910 unwind label %260

910:                                              ; preds = %909
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.323)
          to label %911 unwind label %260

911:                                              ; preds = %910
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(105) @.str.324)
          to label %912 unwind label %260

912:                                              ; preds = %911
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %913 unwind label %260

913:                                              ; preds = %912
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA81_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(81) @.str.284)
          to label %914 unwind label %260

914:                                              ; preds = %913
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA107_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(107) @.str.325)
          to label %915 unwind label %260

915:                                              ; preds = %914
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %916 unwind label %260

916:                                              ; preds = %915
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(59) @.str.286)
          to label %917 unwind label %260

917:                                              ; preds = %916
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(76) @.str.287)
          to label %918 unwind label %260

918:                                              ; preds = %917
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(49) @.str.288)
          to label %919 unwind label %260

919:                                              ; preds = %918
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %920 unwind label %260

920:                                              ; preds = %919
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %921 unwind label %260

921:                                              ; preds = %920
  br label %922

922:                                              ; preds = %921, %865
  %923 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 15
  %924 = load i8, ptr %923, align 1, !tbaa !198, !range !154, !noundef !155
  %925 = trunc i8 %924 to i1
  br i1 %925, label %926, label %932

926:                                              ; preds = %922
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(35) @.str.326)
          to label %927 unwind label %260

927:                                              ; preds = %926
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %928 unwind label %260

928:                                              ; preds = %927
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(32) @.str.327)
          to label %929 unwind label %260

929:                                              ; preds = %928
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %930 unwind label %260

930:                                              ; preds = %929
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %931 unwind label %260

931:                                              ; preds = %930
  br label %932

932:                                              ; preds = %931, %922
  %933 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 16
  %934 = load i8, ptr %933, align 2, !tbaa !199, !range !154, !noundef !155
  %935 = trunc i8 %934 to i1
  br i1 %935, label %936, label %952

936:                                              ; preds = %932
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA46_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(46) @.str.328)
          to label %937 unwind label %260

937:                                              ; preds = %936
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %938 unwind label %260

938:                                              ; preds = %937
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA19_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(19) @.str.329)
          to label %939 unwind label %260

939:                                              ; preds = %938
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA24_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(24) @.str.330)
          to label %940 unwind label %260

940:                                              ; preds = %939
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA42_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(42) @.str.331)
          to label %941 unwind label %260

941:                                              ; preds = %940
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA13_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(13) @.str.332)
          to label %942 unwind label %260

942:                                              ; preds = %941
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %943 unwind label %260

943:                                              ; preds = %942
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA12_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(12) @.str.333)
          to label %944 unwind label %260

944:                                              ; preds = %943
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %945 unwind label %260

945:                                              ; preds = %944
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA5_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(5) @.str.113)
          to label %946 unwind label %260

946:                                              ; preds = %945
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %947 unwind label %260

947:                                              ; preds = %946
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(44) @.str.334)
          to label %948 unwind label %260

948:                                              ; preds = %947
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %949 unwind label %260

949:                                              ; preds = %948
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %950 unwind label %260

950:                                              ; preds = %949
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %951 unwind label %260

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951, %932
  %953 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 17
  %954 = load i8, ptr %953, align 1, !tbaa !200, !range !154, !noundef !155
  %955 = trunc i8 %954 to i1
  br i1 %955, label %956, label %962

956:                                              ; preds = %952
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA51_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(51) @.str.335)
          to label %957 unwind label %260

957:                                              ; preds = %956
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %958 unwind label %260

958:                                              ; preds = %957
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(32) @.str.336)
          to label %959 unwind label %260

959:                                              ; preds = %958
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %960 unwind label %260

960:                                              ; preds = %959
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %961 unwind label %260

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961, %952
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  %963 = getelementptr inbounds %"class.spirv_cross::CompilerHLSL", ptr %71, i32 0, i32 29
  store ptr %963, ptr %64, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  %964 = load ptr, ptr %64, align 8, !tbaa !5
  %965 = call ptr @_ZNSt6vectorIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %964) #7
  %966 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %65, i32 0, i32 0
  store ptr %965, ptr %966, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  %967 = load ptr, ptr %64, align 8, !tbaa !5
  %968 = call ptr @_ZNSt6vectorIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %967) #7
  %969 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %66, i32 0, i32 0
  store ptr %968, ptr %969, align 8
  br label %970

970:                                              ; preds = %1001, %962
  %971 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN11spirv_cross7TypedIDILNS1_5TypesE1EEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66) #7
  br i1 %971, label %973, label %972

972:                                              ; preds = %970
  store i32 26, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  br label %1022

973:                                              ; preds = %970
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #7
  %974 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN11spirv_cross7TypedIDILNS1_5TypesE1EEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %67, ptr align 4 %974, i64 4, i1 false), !tbaa.struct !201
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #7
  %975 = invoke noundef i32 @_ZNK11spirv_cross7TypedIDILNS_5TypesE1EEcvjEv(ptr noundef nonnull align 4 dereferenceable(4) %67)
          to label %976 unwind label %1003

976:                                              ; preds = %973
  %977 = invoke noundef nonnull align 8 dereferenceable(336) ptr @_ZN11spirv_cross8Compiler3getINS_8SPIRTypeEEERT_j(ptr noundef nonnull align 8 dereferenceable(3176) %71, i32 noundef %975)
          to label %978 unwind label %1003

978:                                              ; preds = %976
  store ptr %977, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #7
  %979 = load ptr, ptr %68, align 8, !tbaa !5
  %980 = load ptr, ptr %71, align 8, !tbaa !9
  %981 = getelementptr inbounds ptr, ptr %980, i64 19
  %982 = load ptr, ptr %981, align 8
  invoke void %982(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(10528) %71, ptr noundef nonnull align 8 dereferenceable(336) %979, i32 noundef 0)
          to label %983 unwind label %1007

983:                                              ; preds = %978
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #7
  %984 = load ptr, ptr %68, align 8, !tbaa !5
  %985 = load ptr, ptr %71, align 8, !tbaa !9
  %986 = getelementptr inbounds ptr, ptr %985, i64 38
  %987 = load ptr, ptr %986, align 8
  invoke void %987(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 8 dereferenceable(336) %984, i32 noundef 0)
          to label %988 unwind label %1011

988:                                              ; preds = %983
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA11_S2_SB_RA14_S2_SB_RA10_S2_SB_RA3_S2_SB_SD_SB_RA2_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(29) @.str.337, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 1 dereferenceable(11) @.str.338, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 1 dereferenceable(14) @.str.339, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 1 dereferenceable(10) @.str.340, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 1 dereferenceable(3) @.str.341, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 1 dereferenceable(11) @.str.342, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %989 unwind label %1015

989:                                              ; preds = %988
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %990 unwind label %1015

990:                                              ; preds = %989
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA10_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(10) @.str.343)
          to label %991 unwind label %1015

991:                                              ; preds = %990
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %992 unwind label %1015

992:                                              ; preds = %991
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(22) @.str.344)
          to label %993 unwind label %1015

993:                                              ; preds = %992
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %994 unwind label %1015

994:                                              ; preds = %993
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA5_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(5) @.str.113)
          to label %995 unwind label %1015

995:                                              ; preds = %994
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %996 unwind label %1015

996:                                              ; preds = %995
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA23_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(23) @.str.345)
          to label %997 unwind label %1015

997:                                              ; preds = %996
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %998 unwind label %1015

998:                                              ; preds = %997
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %999 unwind label %1015

999:                                              ; preds = %998
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %1000 unwind label %1015

1000:                                             ; preds = %999
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  br label %1001

1001:                                             ; preds = %1000
  %1002 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN11spirv_cross7TypedIDILNS1_5TypesE1EEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #7
  br label %970

1003:                                             ; preds = %976, %973
  %1004 = landingpad { ptr, i32 }
          cleanup
  %1005 = extractvalue { ptr, i32 } %1004, 0
  store ptr %1005, ptr %15, align 8
  %1006 = extractvalue { ptr, i32 } %1004, 1
  store i32 %1006, ptr %16, align 4
  br label %1021

1007:                                             ; preds = %978
  %1008 = landingpad { ptr, i32 }
          cleanup
  %1009 = extractvalue { ptr, i32 } %1008, 0
  store ptr %1009, ptr %15, align 8
  %1010 = extractvalue { ptr, i32 } %1008, 1
  store i32 %1010, ptr %16, align 4
  br label %1020

1011:                                             ; preds = %983
  %1012 = landingpad { ptr, i32 }
          cleanup
  %1013 = extractvalue { ptr, i32 } %1012, 0
  store ptr %1013, ptr %15, align 8
  %1014 = extractvalue { ptr, i32 } %1012, 1
  store i32 %1014, ptr %16, align 4
  br label %1019

1015:                                             ; preds = %999, %998, %997, %996, %995, %994, %993, %992, %991, %990, %989, %988
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %15, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %1019

1019:                                             ; preds = %1015, %1011
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %1020

1020:                                             ; preds = %1019, %1007
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #7
  br label %1021

1021:                                             ; preds = %1020, %1003
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  br label %1043

1022:                                             ; preds = %972
  %1023 = load i8, ptr %24, align 1, !tbaa !30, !range !154, !noundef !155
  %1024 = trunc i8 %1023 to i1
  br i1 %1024, label %1025, label %1042

1025:                                             ; preds = %1022
  %1026 = getelementptr inbounds %"class.spirv_cross::CompilerGLSL", ptr %71, i32 0, i32 9
  %1027 = getelementptr inbounds %"struct.spirv_cross::CompilerGLSL::Options", ptr %1026, i32 0, i32 17
  %1028 = getelementptr inbounds %"struct.spirv_cross::CompilerGLSL::Options::VertexOptions", ptr %1027, i32 0, i32 1
  %1029 = load i8, ptr %1028, align 1, !tbaa !202, !range !154, !noundef !155
  %1030 = trunc i8 %1029 to i1
  br i1 %1030, label %1031, label %1042

1031:                                             ; preds = %1025
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(30) @.str.346)
          to label %1032 unwind label %260

1032:                                             ; preds = %1031
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %1033 unwind label %260

1033:                                             ; preds = %1032
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(36) @.str.347)
          to label %1034 unwind label %260

1034:                                             ; preds = %1033
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %1035 unwind label %260

1035:                                             ; preds = %1034
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %1036 unwind label %260

1036:                                             ; preds = %1035
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA28_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(28) @.str.348)
          to label %1037 unwind label %260

1037:                                             ; preds = %1036
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %1038 unwind label %260

1038:                                             ; preds = %1037
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA11_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(11) @.str.349)
          to label %1039 unwind label %260

1039:                                             ; preds = %1038
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %71)
          to label %1040 unwind label %260

1040:                                             ; preds = %1039
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %71, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %1041 unwind label %260

1041:                                             ; preds = %1040
  br label %1042

1042:                                             ; preds = %1041, %1025, %1022
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @_ZN11spirv_cross6BitsetD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %18) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EED2Ev(ptr noundef nonnull align 8 dereferenceable(216) %13) #7
  call void @llvm.lifetime.end.p0(i64 216, ptr %13) #7
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EED2Ev(ptr noundef nonnull align 8 dereferenceable(216) %12) #7
  call void @llvm.lifetime.end.p0(i64 216, ptr %12) #7
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %11) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %11) #7
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %10) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #7
  ret void

1043:                                             ; preds = %1021, %796, %770, %742, %590, %549, %520, %356, %276, %264, %260
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  br label %1044

1044:                                             ; preds = %1043, %206, %185
  call void @_ZN11spirv_cross6BitsetD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %18) #7
  br label %1045

1045:                                             ; preds = %1044, %181
  call void @llvm.lifetime.end.p0(i64 64, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %1046

1046:                                             ; preds = %1045, %177
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EED2Ev(ptr noundef nonnull align 8 dereferenceable(216) %13) #7
  call void @llvm.lifetime.end.p0(i64 216, ptr %13) #7
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EED2Ev(ptr noundef nonnull align 8 dereferenceable(216) %12) #7
  call void @llvm.lifetime.end.p0(i64 216, ptr %12) #7
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %11) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %11) #7
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %10) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #7
  br label %1047

1047:                                             ; preds = %1046
  %1048 = load ptr, ptr %15, align 8
  %1049 = load i32, ptr %16, align 4
  %1050 = insertvalue { ptr, i32 } poison, ptr %1048, 0
  %1051 = insertvalue { ptr, i32 } %1050, i32 %1049, 1
  resume { ptr, i32 } %1051

1052:                                             ; preds = %514, %376, %319
  unreachable
}

declare void @_ZN11spirv_cross12CompilerGLSL34fixup_implicit_builtin_block_namesEN3spv14ExecutionModelE(ptr noundef nonnull align 8 dereferenceable(9848), i32 noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_0EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_1EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(29)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_2EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_3EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_4EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZNK11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA25_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(25)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIPZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10IOVariableZNS1_14emit_resourcesEvE3$_5EvT_S5_T0_"(ptr noundef, ptr noundef, ptr) #3

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

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

declare noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL25is_per_primitive_variableERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(176)) #4

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

declare noundef zeroext i1 @_ZNK11spirv_cross8Compiler18is_hidden_variableERKNS_12SPIRVariableEb(ptr noundef nonnull align 8 dereferenceable(3176), ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext) #4

declare noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL15variable_is_lutERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(176)) #4

declare noundef nonnull align 8 dereferenceable(336) ptr @_ZN11spirv_cross8Compiler22get_variable_data_typeERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(3176), ptr noundef nonnull align 8 dereferenceable(176)) #4

declare noundef i32 @_ZNK11spirv_cross8Compiler25get_variable_data_type_idERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(3176), ptr noundef nonnull align 8 dereferenceable(176)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA2_S2_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSC_S6_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA6_S2_S4_RA5_S2_S4_RA4_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(4)) #3 align 2

declare void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528), i64 noundef, ptr noundef, i1 noundef zeroext, ptr noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(35)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(32)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(36)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(37)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA53_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(53)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA38_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(38)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA54_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(54)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA40_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(40)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA16_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(16)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA39_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(39)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA17_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(17)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA41_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(41)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA43_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(43)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA66_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(66)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA73_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(73)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA92_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(92)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA31_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(31)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA67_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(67)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA79_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(79)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA95_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(95)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(49)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA56_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(56)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA51_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(51)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA33_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(33)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA71_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(71)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA42_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(42)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA58_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(58)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA20_S2_S4_RA8_S2_S4_RA34_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(34)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA32_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(22), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(32)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(59)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA30_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(22), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(30)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA50_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(50)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA35_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(35)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA47_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(47)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA88_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(88)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA84_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(84)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(76)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA82_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(82)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(22)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA81_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(81)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(44)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA26_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(26)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(60)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA83_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(83)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA106_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(106)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(105)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA107_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(107)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA46_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(46)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA19_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(19)) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA13_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(13)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA12_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(12)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA5_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(5)) #3 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA11_S2_SB_RA14_S2_SB_RA10_S2_SB_RA3_S2_SB_SD_SB_RA2_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(29), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA10_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(10)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA23_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(23)) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA11_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(11)) #3 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !28, i64 232}
!12 = !{!"_ZTSN11spirv_cross14SPIREntryPointE", !13, i64 0, !15, i64 8, !15, i64 40, !18, i64 72, !21, i64 128, !27, i64 192, !14, i64 220, !14, i64 224, !14, i64 228, !28, i64 232, !29, i64 236}
!13 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE4EEE", !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !16, i64 0, !17, i64 8, !7, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!17 = !{!"long", !7, i64 0}
!18 = !{!"_ZTSN11spirv_cross11SmallVectorINS_7TypedIDILNS_5TypesE2EEELm8EEE", !19, i64 0, !17, i64 16, !20, i64 24}
!19 = !{!"_ZTSN11spirv_cross10VectorViewINS_7TypedIDILNS_5TypesE2EEEEE", !6, i64 0, !17, i64 8}
!20 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_7TypedIDILNS_5TypesE2EEELm8EEE", !7, i64 0}
!21 = !{!"_ZTSN11spirv_cross6BitsetE", !17, i64 0, !22, i64 8}
!22 = !{!"_ZTSSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE", !23, i64 0}
!23 = !{!"_ZTSSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!24 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!25 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !26, i64 0, !17, i64 8}
!26 = !{!"float", !7, i64 0}
!27 = !{!"_ZTSN11spirv_cross14SPIREntryPoint13WorkgroupSizeE", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24}
!28 = !{!"_ZTSN3spv14ExecutionModelE", !7, i64 0}
!29 = !{!"bool", !7, i64 0}
!30 = !{!29, !29, i64 0}
!31 = !{!32, !6, i64 0}
!32 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_0", !6, i64 0, !6, i64 8}
!33 = !{!34, !6, i64 0}
!34 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_1", !6, i64 0, !6, i64 8}
!35 = !{!36, !14, i64 9848}
!36 = !{!"_ZTSN11spirv_cross12CompilerHLSLE", !37, i64 0, !134, i64 9848, !29, i64 9864, !29, i64 9865, !29, i64 9866, !29, i64 9867, !29, i64 9868, !29, i64 9869, !29, i64 9870, !29, i64 9871, !29, i64 9872, !29, i64 9873, !29, i64 9874, !29, i64 9875, !29, i64 9876, !29, i64 9877, !29, i64 9878, !29, i64 9879, !135, i64 9880, !29, i64 9984, !29, i64 9985, !136, i64 9992, !14, i64 10336, !14, i64 10340, !139, i64 10344, !14, i64 10368, !143, i64 10376, !145, i64 10432, !147, i64 10488, !148, i64 10504}
!37 = !{!"_ZTSN11spirv_cross12CompilerGLSLE", !38, i64 0, !6, i64 3176, !92, i64 3184, !29, i64 3272, !95, i64 3280, !6, i64 7616, !6, i64 7624, !29, i64 7632, !29, i64 7633, !100, i64 7636, !104, i64 7680, !104, i64 7736, !104, i64 7792, !104, i64 7848, !104, i64 7904, !104, i64 7960, !104, i64 8016, !106, i64 8072, !90, i64 8128, !29, i64 8184, !108, i64 8192, !14, i64 8416, !22, i64 8424, !22, i64 8480, !22, i64 8536, !110, i64 8592, !112, i64 8648, !113, i64 8656, !63, i64 8712, !63, i64 8992, !113, i64 9272, !115, i64 9328, !14, i64 9384, !14, i64 9388, !14, i64 9392, !29, i64 9396, !29, i64 9397, !118, i64 9400, !118, i64 9424, !122, i64 9448, !126, i64 9472, !113, i64 9496, !22, i64 9552, !22, i64 9608, !7, i64 9664, !130, i64 9672, !22, i64 9728, !6, i64 9784, !132, i64 9792}
!38 = !{!"_ZTSN11spirv_cross8CompilerE", !39, i64 8, !76, i64 1928, !76, i64 1984, !6, i64 2040, !6, i64 2048, !14, i64 2056, !79, i64 2064, !29, i64 2120, !22, i64 2128, !29, i64 2184, !29, i64 2185, !81, i64 2192, !76, i64 2312, !84, i64 2368, !22, i64 2400, !22, i64 2456, !22, i64 2512, !22, i64 2568, !22, i64 2624, !21, i64 2680, !21, i64 2744, !14, i64 2808, !14, i64 2812, !29, i64 2816, !22, i64 2824, !29, i64 2880, !29, i64 2881, !14, i64 2884, !86, i64 2888, !76, i64 2944, !88, i64 3000, !22, i64 3056, !29, i64 3112, !90, i64 3120}
!39 = !{!"_ZTSN11spirv_cross8ParsedIRE", !40, i64 0, !46, i64 8, !50, i64 32, !53, i64 248, !7, i64 304, !55, i64 1088, !55, i64 1144, !58, i64 1200, !60, i64 1256, !63, i64 1312, !66, i64 1592, !69, i64 1624, !71, i64 1680, !13, i64 1736, !73, i64 1740, !74, i64 1748, !75, i64 1752, !14, i64 1756, !14, i64 1760, !15, i64 1768, !21, i64 1800, !22, i64 1864}
!40 = !{!"_ZTSSt10unique_ptrIN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_EE", !41, i64 0}
!41 = !{!"_ZTSSt15__uniq_ptr_dataIN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_ELb1ELb1EE", !42, i64 0}
!42 = !{!"_ZTSSt15__uniq_ptr_implIN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt5tupleIJPN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_EEE", !44, i64 0}
!44 = !{!"_ZTSSt11_Tuple_implILm0EJPN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_EEE", !45, i64 0}
!45 = !{!"_ZTSSt10_Head_baseILm0EPN11spirv_cross15ObjectPoolGroupELb0EE", !6, i64 0}
!46 = !{!"_ZTSSt6vectorIjSaIjEE", !47, i64 0}
!47 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!50 = !{!"_ZTSN11spirv_cross11SmallVectorINS_7VariantELm8EEE", !51, i64 0, !17, i64 16, !52, i64 24}
!51 = !{!"_ZTSN11spirv_cross10VectorViewINS_7VariantEEE", !6, i64 0, !17, i64 8}
!52 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_7VariantELm8EEE", !7, i64 0}
!53 = !{!"_ZTSSt13unordered_mapIN11spirv_cross7TypedIDILNS0_5TypesE0EEENS0_4MetaESt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_S4_EEE", !54, i64 0}
!54 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE0EEESt4pairIKS3_NS0_4MetaEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!55 = !{!"_ZTSN11spirv_cross11SmallVectorINS_7TypedIDILNS_5TypesE0EEELm8EEE", !56, i64 0, !17, i64 16, !57, i64 24}
!56 = !{!"_ZTSN11spirv_cross10VectorViewINS_7TypedIDILNS_5TypesE0EEEEE", !6, i64 0, !17, i64 8}
!57 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_7TypedIDILNS_5TypesE0EEELm8EEE", !7, i64 0}
!58 = !{!"_ZTSSt13unordered_mapIN11spirv_cross7TypedIDILNS0_5TypesE0EEEjSt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_jEEE", !59, i64 0}
!59 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE0EEESt4pairIKS3_jESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!60 = !{!"_ZTSN11spirv_cross11SmallVectorIN3spv10CapabilityELm8EEE", !61, i64 0, !17, i64 16, !62, i64 24}
!61 = !{!"_ZTSN11spirv_cross10VectorViewIN3spv10CapabilityEEE", !6, i64 0, !17, i64 8}
!62 = !{!"_ZTSN11spirv_cross13AlignedBufferIN3spv10CapabilityELm8EEE", !7, i64 0}
!63 = !{!"_ZTSN11spirv_cross11SmallVectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELm8EEE", !64, i64 0, !17, i64 16, !65, i64 24}
!64 = !{!"_ZTSN11spirv_cross10VectorViewINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !6, i64 0, !17, i64 8}
!65 = !{!"_ZTSN11spirv_cross13AlignedBufferINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELm8EEE", !7, i64 0}
!66 = !{!"_ZTSN11spirv_cross11SmallVectorIhLm8EEE", !67, i64 0, !17, i64 16, !68, i64 24}
!67 = !{!"_ZTSN11spirv_cross10VectorViewIhEE", !6, i64 0, !17, i64 8}
!68 = !{!"_ZTSN11spirv_cross13AlignedBufferIhLm8EEE", !7, i64 0}
!69 = !{!"_ZTSSt13unordered_mapIN11spirv_cross7TypedIDILNS0_5TypesE6EEES3_St4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_S3_EEE", !70, i64 0}
!70 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE6EEESt4pairIKS3_S3_ESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!71 = !{!"_ZTSSt13unordered_mapIN11spirv_cross7TypedIDILNS0_5TypesE4EEENS0_14SPIREntryPointESt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_S4_EEE", !72, i64 0}
!72 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE4EEESt4pairIKS3_NS0_14SPIREntryPointEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!73 = !{!"_ZTSN11spirv_cross8ParsedIR6SourceE", !14, i64 0, !29, i64 4, !29, i64 5, !29, i64 6}
!74 = !{!"_ZTSN3spv15AddressingModelE", !7, i64 0}
!75 = !{!"_ZTSN3spv11MemoryModelE", !7, i64 0}
!76 = !{!"_ZTSN11spirv_cross11SmallVectorIjLm8EEE", !77, i64 0, !17, i64 16, !78, i64 24}
!77 = !{!"_ZTSN11spirv_cross10VectorViewIjEE", !6, i64 0, !17, i64 8}
!78 = !{!"_ZTSN11spirv_cross13AlignedBufferIjLm8EEE", !7, i64 0}
!79 = !{!"_ZTSSt13unordered_setIN11spirv_cross7TypedIDILNS0_5TypesE2EEESt4hashIS3_ESt8equal_toIS3_ESaIS3_EE", !80, i64 0}
!80 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE2EEES3_SaIS3_ENSt8__detail9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb1ELb1ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!81 = !{!"_ZTSN11spirv_cross11SmallVectorINS_20CombinedImageSamplerELm8EEE", !82, i64 0, !17, i64 16, !83, i64 24}
!82 = !{!"_ZTSN11spirv_cross10VectorViewINS_20CombinedImageSamplerEEE", !6, i64 0, !17, i64 8}
!83 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_20CombinedImageSamplerELm8EEE", !7, i64 0}
!84 = !{!"_ZTSSt8functionIFvRKN11spirv_cross8SPIRTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS9_EE", !85, i64 0, !6, i64 24}
!85 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!86 = !{!"_ZTSSt13unordered_mapIjSt10unique_ptrIN11spirv_cross3CFGESt14default_deleteIS2_EESt4hashIjESt8equal_toIjESaISt4pairIKjS5_EEE", !87, i64 0}
!87 = !{!"_ZTSSt10_HashtableIjSt4pairIKjSt10unique_ptrIN11spirv_cross3CFGESt14default_deleteIS4_EEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!88 = !{!"_ZTSSt13unordered_mapIjN11spirv_cross8Compiler17PhysicalBlockMetaESt4hashIjESt8equal_toIjESaISt4pairIKjS2_EEE", !89, i64 0}
!89 = !{!"_ZTSSt10_HashtableIjSt4pairIKjN11spirv_cross8Compiler17PhysicalBlockMetaEESaIS5_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!90 = !{!"_ZTSSt13unordered_mapIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIjESt8equal_toIjESaISt4pairIKjS5_EEE", !91, i64 0}
!91 = !{!"_ZTSSt10_HashtableIjSt4pairIKjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!92 = !{!"_ZTSN11spirv_cross11SmallVectorIPNS_9SPIRBlockELm8EEE", !93, i64 0, !17, i64 16, !94, i64 24}
!93 = !{!"_ZTSN11spirv_cross10VectorViewIPNS_9SPIRBlockEEE", !6, i64 0, !17, i64 8}
!94 = !{!"_ZTSN11spirv_cross13AlignedBufferIPNS_9SPIRBlockELm8EEE", !7, i64 0}
!95 = !{!"_ZTSN11spirv_cross12StringStreamILm4096ELm4096EEE", !96, i64 0, !7, i64 24, !97, i64 4120}
!96 = !{!"_ZTSN11spirv_cross12StringStreamILm4096ELm4096EE6BufferE", !6, i64 0, !17, i64 8, !17, i64 16}
!97 = !{!"_ZTSN11spirv_cross11SmallVectorINS_12StringStreamILm4096ELm4096EE6BufferELm8EEE", !98, i64 0, !17, i64 16, !99, i64 24}
!98 = !{!"_ZTSN11spirv_cross10VectorViewINS_12StringStreamILm4096ELm4096EE6BufferEEE", !6, i64 0, !17, i64 8}
!99 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_12StringStreamILm4096ELm4096EE6BufferELm8EEE", !7, i64 0}
!100 = !{!"_ZTSN11spirv_cross12CompilerGLSL7OptionsE", !14, i64 0, !29, i64 4, !29, i64 5, !14, i64 8, !29, i64 12, !29, i64 13, !29, i64 14, !29, i64 15, !29, i64 16, !29, i64 17, !29, i64 18, !29, i64 19, !29, i64 20, !29, i64 21, !29, i64 22, !29, i64 23, !14, i64 24, !101, i64 28, !102, i64 32}
!101 = !{!"_ZTSN11spirv_cross12CompilerGLSL7Options13VertexOptionsE", !29, i64 0, !29, i64 1, !29, i64 2}
!102 = !{!"_ZTSN11spirv_cross12CompilerGLSL7Options15FragmentOptionsE", !103, i64 0, !103, i64 4}
!103 = !{!"_ZTSN11spirv_cross12CompilerGLSL7Options9PrecisionE", !7, i64 0}
!104 = !{!"_ZTSSt13unordered_setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIS5_ESt8equal_toIS5_ESaIS5_EE", !105, i64 0}
!105 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_ENSt8__detail9_IdentityESt8equal_toIS5_ESt4hashIS5_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb1ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!106 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13unordered_setImSt4hashImESt8equal_toImESaImEES7_IS5_ES9_IS5_ESaISt4pairIKS5_SC_EEE", !107, i64 0}
!107 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St13unordered_setImSt4hashImESt8equal_toImESaImEEESaISF_ENSt8__detail10_Select1stESB_IS5_ES9_IS5_ENSH_18_Mod_range_hashingENSH_20_Default_ranged_hashENSH_20_Prime_rehash_policyENSH_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!108 = !{!"_ZTSN11spirv_cross12CompilerGLSL17BackendVariationsE", !15, i64 0, !15, i64 32, !15, i64 64, !29, i64 96, !29, i64 97, !29, i64 98, !29, i64 99, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !109, i64 184, !29, i64 188, !29, i64 189, !29, i64 190, !29, i64 191, !29, i64 192, !29, i64 193, !29, i64 194, !29, i64 195, !29, i64 196, !29, i64 197, !29, i64 198, !29, i64 199, !29, i64 200, !29, i64 201, !29, i64 202, !29, i64 203, !29, i64 204, !29, i64 205, !29, i64 206, !29, i64 207, !29, i64 208, !29, i64 209, !29, i64 210, !29, i64 211, !29, i64 212, !29, i64 213, !29, i64 214, !29, i64 215, !29, i64 216, !29, i64 217, !29, i64 218, !29, i64 219}
!109 = !{!"_ZTSN11spirv_cross8SPIRType8BaseTypeE", !7, i64 0}
!110 = !{!"_ZTSSt13unordered_mapIjbSt4hashIjESt8equal_toIjESaISt4pairIKjbEEE", !111, i64 0}
!111 = !{!"_ZTSSt10_HashtableIjSt4pairIKjbESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!112 = !{!"_ZTSN11spirv_cross12CompilerGLSL27ShaderSubgroupSupportHelperE", !14, i64 0}
!113 = !{!"_ZTSSt13unordered_mapIjjSt4hashIjESt8equal_toIjESaISt4pairIKjjEEE", !114, i64 0}
!114 = !{!"_ZTSSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!115 = !{!"_ZTSN11spirv_cross11SmallVectorINS_7TypedIDILNS_5TypesE1EEELm8EEE", !116, i64 0, !17, i64 16, !117, i64 24}
!116 = !{!"_ZTSN11spirv_cross10VectorViewINS_7TypedIDILNS_5TypesE1EEEEE", !6, i64 0, !17, i64 8}
!117 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_7TypedIDILNS_5TypesE1EEELm8EEE", !7, i64 0}
!118 = !{!"_ZTSSt6vectorIN11spirv_cross8PlsRemapESaIS1_EE", !119, i64 0}
!119 = !{!"_ZTSSt12_Vector_baseIN11spirv_cross8PlsRemapESaIS1_EE", !120, i64 0}
!120 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross8PlsRemapESaIS1_EE12_Vector_implE", !121, i64 0}
!121 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross8PlsRemapESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!122 = !{!"_ZTSSt6vectorISt4pairIjjESaIS1_EE", !123, i64 0}
!123 = !{!"_ZTSSt12_Vector_baseISt4pairIjjESaIS1_EE", !124, i64 0}
!124 = !{!"_ZTSNSt12_Vector_baseISt4pairIjjESaIS1_EE12_Vector_implE", !125, i64 0}
!125 = !{!"_ZTSNSt12_Vector_baseISt4pairIjjESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!126 = !{!"_ZTSSt6vectorISt4pairIjbESaIS1_EE", !127, i64 0}
!127 = !{!"_ZTSSt12_Vector_baseISt4pairIjbESaIS1_EE", !128, i64 0}
!128 = !{!"_ZTSNSt12_Vector_baseISt4pairIjbESaIS1_EE12_Vector_implE", !129, i64 0}
!129 = !{!"_ZTSNSt12_Vector_baseISt4pairIjbESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!130 = !{!"_ZTSSt13unordered_setIN11spirv_cross21LocationComponentPairENS0_14InternalHasherESt8equal_toIS1_ESaIS1_EE", !131, i64 0}
!131 = !{!"_ZTSSt10_HashtableIN11spirv_cross21LocationComponentPairES1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ENS0_14InternalHasherENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb1ELb1ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!132 = !{!"_ZTSSt13unordered_mapIjN11spirv_cross11SmallVectorINS0_7TypedIDILNS0_5TypesE3EEELm8EEESt4hashIjESt8equal_toIjESaISt4pairIKjS5_EEE", !133, i64 0}
!133 = !{!"_ZTSSt10_HashtableIjSt4pairIKjN11spirv_cross11SmallVectorINS2_7TypedIDILNS2_5TypesE3EEELm8EEEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!134 = !{!"_ZTSN11spirv_cross12CompilerHLSL7OptionsE", !14, i64 0, !29, i64 4, !29, i64 5, !29, i64 6, !29, i64 7, !29, i64 8, !29, i64 9, !29, i64 10, !29, i64 11, !29, i64 12}
!135 = !{!"_ZTSN11spirv_cross12CompilerHLSL19TextureSizeVariantsE", !17, i64 0, !7, i64 8}
!136 = !{!"_ZTSN11spirv_cross11SmallVectorINS_24HLSLVertexAttributeRemapELm8EEE", !137, i64 0, !17, i64 16, !138, i64 24}
!137 = !{!"_ZTSN11spirv_cross10VectorViewINS_24HLSLVertexAttributeRemapEEE", !6, i64 0, !17, i64 8}
!138 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_24HLSLVertexAttributeRemapELm8EEE", !7, i64 0}
!139 = !{!"_ZTSSt6vectorIN11spirv_cross13RootConstantsESaIS1_EE", !140, i64 0}
!140 = !{!"_ZTSSt12_Vector_baseIN11spirv_cross13RootConstantsESaIS1_EE", !141, i64 0}
!141 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross13RootConstantsESaIS1_EE12_Vector_implE", !142, i64 0}
!142 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross13RootConstantsESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!143 = !{!"_ZTSSt13unordered_mapIN11spirv_cross15StageSetBindingESt4pairINS0_19HLSLResourceBindingEbENS0_14InternalHasherESt8equal_toIS1_ESaIS2_IKS1_S4_EEE", !144, i64 0}
!144 = !{!"_ZTSSt10_HashtableIN11spirv_cross15StageSetBindingESt4pairIKS1_S2_INS0_19HLSLResourceBindingEbEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS1_ENS0_14InternalHasherENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!145 = !{!"_ZTSSt13unordered_setIN11spirv_cross14SetBindingPairENS0_14InternalHasherESt8equal_toIS1_ESaIS1_EE", !146, i64 0}
!146 = !{!"_ZTSSt10_HashtableIN11spirv_cross14SetBindingPairES1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ENS0_14InternalHasherENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb1ELb1ELb1EEEE", !6, i64 0, !17, i64 8, !24, i64 16, !17, i64 24, !25, i64 32, !6, i64 48}
!147 = !{!"_ZTSN11spirv_cross12CompilerHLSLUt_E", !14, i64 0, !14, i64 4, !29, i64 8, !29, i64 9}
!148 = !{!"_ZTSSt6vectorIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE", !149, i64 0}
!149 = !{!"_ZTSSt12_Vector_baseIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE", !150, i64 0}
!150 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE12_Vector_implE", !151, i64 0}
!151 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!152 = !{!153, !6, i64 0}
!153 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_2", !6, i64 0, !6, i64 8, !6, i64 16}
!154 = !{i8 0, i8 2}
!155 = !{}
!156 = !{!157, !6, i64 0}
!157 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_3", !6, i64 0, !6, i64 8}
!158 = !{!36, !29, i64 9985}
!159 = !{!36, !29, i64 9984}
!160 = !{!161, !6, i64 0}
!161 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_4", !6, i64 0, !6, i64 8, !6, i64 16}
!162 = !{!163, !6, i64 0}
!163 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_5", !6, i64 0}
!164 = !{i64 0, i64 8, !5}
!165 = !{!166, !29, i64 16}
!166 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10IOVariable", !6, i64 0, !14, i64 8, !14, i64 12, !29, i64 16}
!167 = !{!166, !6, i64 0}
!168 = !{!166, !14, i64 12}
!169 = !{!166, !14, i64 8}
!170 = !{!14, !14, i64 0}
!171 = !{!172, !176, i64 16}
!172 = !{!"_ZTSN11spirv_cross12SPIRVariableE", !173, i64 0, !175, i64 12, !176, i64 16, !14, i64 20, !174, i64 24, !177, i64 28, !76, i64 32, !29, i64 88, !29, i64 89, !174, i64 92, !55, i64 96, !29, i64 152, !29, i64 153, !29, i64 154, !29, i64 155, !14, i64 156, !178, i64 160, !29, i64 164, !29, i64 165, !29, i64 166, !6, i64 168}
!173 = !{!"_ZTSN11spirv_cross8IVariantE", !174, i64 8}
!174 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE0EEE", !14, i64 0}
!175 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE1EEE", !14, i64 0}
!176 = !{!"_ZTSN3spv12StorageClassE", !7, i64 0}
!177 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE2EEE", !14, i64 0}
!178 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE6EEE", !14, i64 0}
!179 = !{!37, !29, i64 7656}
!180 = !{!36, !29, i64 9864}
!181 = !{!36, !17, i64 9880}
!182 = !{!17, !17, i64 0}
!183 = distinct !{!183, !184}
!184 = !{!"llvm.loop.mustprogress"}
!185 = distinct !{!185, !184}
!186 = !{!36, !29, i64 9865}
!187 = !{!36, !29, i64 9866}
!188 = !{!36, !29, i64 9867}
!189 = !{!36, !29, i64 9868}
!190 = !{!36, !29, i64 9869}
!191 = !{!36, !29, i64 9870}
!192 = !{!36, !29, i64 9871}
!193 = !{!36, !29, i64 9872}
!194 = !{!36, !29, i64 9873}
!195 = !{!36, !29, i64 9874}
!196 = !{!36, !29, i64 9875}
!197 = !{!36, !29, i64 9876}
!198 = !{!36, !29, i64 9877}
!199 = !{!36, !29, i64 9878}
!200 = !{!36, !29, i64 9879}
!201 = !{i64 0, i64 4, !170}
!202 = !{!37, !29, i64 7665}


; 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::__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.anon.384 = type { ptr, ptr }
%class.anon.385 = type { ptr, ptr }
%class.anon.386 = type { ptr, ptr, ptr }
%class.anon.387 = type { ptr, ptr }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.74" }
%"class.std::_Hashtable.74" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.spirv_cross::SmallVector.388" = type { %"class.spirv_cross::VectorView.389", i64, %"class.spirv_cross::AlignedBuffer.390" }
%"class.spirv_cross::VectorView.389" = type { ptr, i64 }
%"class.spirv_cross::AlignedBuffer.390" = type { [192 x i8] }
%class.anon.391 = type { ptr, ptr, ptr }
%"class.spirv_cross::Bitset" = type { i64, %"class.std::unordered_set" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.spirv_cross::TypedID.328" = type { i32 }

@.str.9 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [30 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types = external hidden global [4 x ptr], align 16
@.str.206 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers = external hidden local_unnamed_addr global [3 x ptr], align 16
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes = external hidden local_unnamed_addr global [4 x ptr], align 16
@.str.215 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [51 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0 = external hidden global [4 x ptr], align 16
@.str.257 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [53 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types = external hidden global [4 x ptr], align 16
@.str.262 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [32 x i8], align 1
@_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types = external hidden global [4 x ptr], align 16
@.str.269 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [11 x i8], align 1

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(336) ptr @_ZN11spirv_cross8Compiler3getINS_8SPIRTypeEEERT_j(ptr noundef nonnull align 8 dereferenceable(3176), i32 noundef) local_unnamed_addr #1 align 2

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

declare void @_ZN11spirv_cross12CompilerGLSL17add_resource_nameEj(ptr noundef nonnull align 8 dereferenceable(9848), i32 noundef) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL30emit_builtin_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528)) local_unnamed_addr #1 align 2

declare noundef nonnull align 8 dereferenceable(237) ptr @_ZN11spirv_cross8Compiler15get_entry_pointEv(ptr noundef nonnull align 8 dereferenceable(3176)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL40emit_builtin_primitive_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL29emit_builtin_inputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL37emit_interface_block_member_in_structERKNS_12SPIRVariableEjjRSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528), ptr noundef nonnull align 8 dereferenceable(176), i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL30emit_interface_block_in_structERKNS_12SPIRVariableERSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(176) ptr @_ZN11spirv_cross8Compiler3getINS_12SPIRVariableEEERT_j(ptr noundef nonnull align 8 dereferenceable(3176), i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL22emit_builtin_variablesEv(ptr noundef nonnull align 8 dereferenceable(10528)) local_unnamed_addr #1 align 2

declare void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA28_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(28)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(30)) local_unnamed_addr #3 align 2

declare void @_ZN11spirv_cross12CompilerGLSL14end_scope_declEv(ptr noundef nonnull align 8 dereferenceable(9848)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL24emit_composite_constantsEv(ptr noundef nonnull align 8 dereferenceable(10528)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerHLSL41emit_specialization_constants_and_structsEv(ptr noundef nonnull align 8 dereferenceable(10528)) local_unnamed_addr #1 align 2

declare noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL24type_can_zero_initializeERKNS_8SPIRTypeE(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(336)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11spirv_cross4joinIJRA4_KcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES9_DpOT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11spirv_cross12CompilerHLSL14emit_resourcesEv(ptr noundef nonnull align 8 dereferenceable(10528) %0) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i8, align 1
  %3 = alloca %class.anon.384, align 8
  %4 = alloca %class.anon.385, align 8
  %5 = alloca i8, align 1
  %6 = alloca %class.anon.386, align 8
  %7 = alloca %class.anon.387, align 8
  %8 = alloca %"class.std::unordered_set", align 8
  %9 = alloca %"class.std::unordered_set", align 8
  %10 = alloca %"class.spirv_cross::SmallVector.388", align 8
  %11 = alloca %"class.spirv_cross::SmallVector.388", align 8
  %12 = alloca %class.anon.391, align 8
  %13 = alloca %"class.spirv_cross::Bitset", align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %22 = alloca %"class.spirv_cross::TypedID.328", align 4
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = tail call noundef nonnull align 8 dereferenceable(237) ptr @_ZN11spirv_cross8Compiler15get_entry_pointEv(ptr noundef nonnull align 8 dereferenceable(3176) %0)
  %26 = load ptr, ptr %0, align 8, !tbaa !5
  %27 = getelementptr inbounds i8, ptr %26, i64 480
  %28 = load ptr, ptr %27, align 8
  tail call void %28(ptr noundef nonnull align 8 dereferenceable(10528) %0)
  %29 = getelementptr inbounds i8, ptr %25, i64 232
  %30 = load i32, ptr %29, align 8, !tbaa !8
  switch i32 %30, label %32 [
    i32 3, label %31
    i32 1, label %31
    i32 2, label %31
    i32 5365, label %31
  ]

31:                                               ; preds = %1, %1, %1, %1
  tail call void @_ZN11spirv_cross12CompilerGLSL34fixup_implicit_builtin_block_namesEN3spv14ExecutionModelE(ptr noundef nonnull align 8 dereferenceable(9848) %0, i32 noundef %30)
  br label %32

32:                                               ; preds = %1, %31
  tail call void @_ZN11spirv_cross12CompilerHLSL41emit_specialization_constants_and_structsEv(ptr noundef nonnull align 8 dereferenceable(10528) %0)
  tail call void @_ZN11spirv_cross12CompilerHLSL24emit_composite_constantsEv(ptr noundef nonnull align 8 dereferenceable(10528) %0)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %2) #6
  store i8 0, ptr %2, align 1, !tbaa !29
  %33 = getelementptr inbounds i8, ptr %0, i64 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #6
  store ptr %0, ptr %3, align 8, !tbaa !30
  %34 = getelementptr inbounds i8, ptr %3, i64 8
  store ptr %2, ptr %34, align 8, !tbaa !32
  call void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_0EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %33, ptr noundef nonnull align 8 dereferenceable(16) %3)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #6
  store ptr %0, ptr %4, align 8, !tbaa !33
  %35 = getelementptr inbounds i8, ptr %4, i64 8
  store ptr %2, ptr %35, align 8, !tbaa !32
  call void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_1EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %33, ptr noundef nonnull align 8 dereferenceable(16) %4)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #6
  %36 = load i32, ptr %29, align 8, !tbaa !8
  %37 = icmp eq i32 %36, 0
  %38 = getelementptr inbounds i8, ptr %0, i64 9848
  %39 = load i32, ptr %38, align 8
  %40 = icmp ult i32 %39, 31
  %or.cond = select i1 %37, i1 %40, i1 false
  br i1 %or.cond, label %41, label %45

41:                                               ; preds = %32
  %42 = getelementptr inbounds i8, ptr %0, i64 2744
  %43 = call noundef zeroext i1 @_ZNK11spirv_cross6Bitset3getEj(ptr noundef nonnull align 8 dereferenceable(64) %42, i32 noundef 0)
  br i1 %43, label %44, label %45

44:                                               ; preds = %41
  call void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(29) @.str.198)
  store i8 1, ptr %2, align 1, !tbaa !29
  br label %45

45:                                               ; preds = %44, %41, %32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #6
  %46 = getelementptr inbounds i8, ptr %0, i64 2192
  %47 = call noundef zeroext i1 @_ZNK11spirv_cross10VectorViewINS_20CombinedImageSamplerEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %46) #6
  %48 = load i32, ptr %38, align 8
  %49 = icmp ult i32 %48, 31
  %not. = xor i1 %47, true
  %50 = select i1 %not., i1 true, i1 %49
  %51 = zext i1 %50 to i8
  store i8 %51, ptr %5, align 1, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #6
  store ptr %0, ptr %6, align 8, !tbaa !35
  %52 = getelementptr inbounds i8, ptr %6, i64 8
  store ptr %5, ptr %52, align 8, !tbaa !32
  %53 = getelementptr inbounds i8, ptr %6, i64 16
  store ptr %2, ptr %53, align 8, !tbaa !32
  call void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_2EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %33, ptr noundef nonnull align 8 dereferenceable(24) %6)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #6
  %54 = load i8, ptr %2, align 1, !tbaa !29, !range !37, !noundef !38
  %55 = trunc nuw i8 %54 to i1
  br i1 %55, label %56, label %57

56:                                               ; preds = %45
  call void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
  br label %57

57:                                               ; preds = %56, %45
  store i8 0, ptr %2, align 1, !tbaa !29
  call void @_ZN11spirv_cross12CompilerHLSL22emit_builtin_variablesEv(ptr noundef nonnull align 8 dereferenceable(10528) %0)
  %58 = load i32, ptr %29, align 8, !tbaa !8
  %.not = icmp eq i32 %58, 5365
  br i1 %.not, label %61, label %59

59:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #6
  store ptr %0, ptr %7, align 8, !tbaa !39
  %60 = getelementptr inbounds i8, ptr %7, i64 8
  store ptr %2, ptr %60, align 8, !tbaa !32
  call void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_3EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %33, ptr noundef nonnull align 8 dereferenceable(16) %7)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #6
  br label %61

61:                                               ; preds = %59, %57
  %62 = load i8, ptr %2, align 1, !tbaa !29, !range !37, !noundef !38
  %63 = trunc nuw i8 %62 to i1
  br i1 %63, label %64, label %65

64:                                               ; preds = %61
  call void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
  br label %65

65:                                               ; preds = %64, %61
  store i8 0, ptr %2, align 1, !tbaa !29
  %66 = getelementptr inbounds i8, ptr %0, i64 9985
  store i8 0, ptr %66, align 1, !tbaa !41
  %67 = getelementptr inbounds i8, ptr %0, i64 9984
  store i8 0, ptr %67, align 8, !tbaa !158
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8) #6
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #6
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %9) #6
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %9) #6
  call void @llvm.lifetime.start.p0(i64 216, ptr nonnull %10) #6
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(216) %10) #6
  call void @llvm.lifetime.start.p0(i64 216, ptr nonnull %11) #6
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EEC2Ev(ptr noundef nonnull align 8 dereferenceable(216) %11) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #6
  store ptr %0, ptr %12, align 8, !tbaa !159
  %68 = getelementptr inbounds i8, ptr %12, i64 8
  store ptr %10, ptr %68, align 8, !tbaa !32
  %69 = getelementptr inbounds i8, ptr %12, i64 16
  store ptr %11, ptr %69, align 8, !tbaa !32
  invoke void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_4EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920) %33, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %70 unwind label %93

70:                                               ; preds = %65
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #6
  %71 = getelementptr inbounds i8, ptr %0, i64 2680
  invoke void @_ZN11spirv_cross6BitsetC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %13, ptr noundef nonnull align 8 dereferenceable(64) %71)
          to label %72 unwind label %95

72:                                               ; preds = %70
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %13, i32 noundef 24)
          to label %73 unwind label %97

73:                                               ; preds = %72
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %13, i32 noundef 16)
          to label %74 unwind label %97

74:                                               ; preds = %73
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %13, i32 noundef 36)
          to label %75 unwind label %97

75:                                               ; preds = %74
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %13, i32 noundef 41)
          to label %76 unwind label %97

76:                                               ; preds = %75
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %13, i32 noundef 4416)
          to label %77 unwind label %97

77:                                               ; preds = %76
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %13, i32 noundef 4420)
          to label %78 unwind label %97

78:                                               ; preds = %77
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %13, i32 noundef 4419)
          to label %79 unwind label %97

79:                                               ; preds = %78
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %13, i32 noundef 4418)
          to label %80 unwind label %97

80:                                               ; preds = %79
  invoke void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64) %13, i32 noundef 4417)
          to label %81 unwind label %97

81:                                               ; preds = %80
  %82 = call noundef zeroext i1 @_ZNK11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #6
  br i1 %82, label %83, label %85

83:                                               ; preds = %81
  %84 = call noundef zeroext i1 @_ZNK11spirv_cross6Bitset5emptyEv(ptr noundef nonnull align 8 dereferenceable(64) %13)
  br i1 %84, label %115, label %85

85:                                               ; preds = %83, %81
  store i8 1, ptr %66, align 1, !tbaa !41
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA25_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(25) @.str.199)
          to label %86 unwind label %97

86:                                               ; preds = %85
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %87 unwind label %97

87:                                               ; preds = %86
  %88 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #6
  %89 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #6
  invoke void @"_ZSt4sortIPZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10IOVariableZNS1_14emit_resourcesEvE3$_5EvT_S5_T0_"(ptr noundef %88, ptr noundef %89, ptr nonnull %0)
          to label %90 unwind label %97

90:                                               ; preds = %87
  %91 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #6
  %92 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #6
  %.not133179 = icmp eq ptr %91, %92
  br i1 %.not133179, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %111, %90
  invoke void @_ZN11spirv_cross12CompilerHLSL29emit_builtin_inputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528) %0)
          to label %113 unwind label %97

93:                                               ; preds = %65
  %94 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  br label %750

95:                                               ; preds = %70
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %749

97:                                               ; preds = %114, %113, %._crit_edge, %87, %86, %85, %80, %79, %78, %77, %76, %75, %74, %73, %72
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %748

.lr.ph:                                           ; preds = %90, %111
  %.0122180 = phi ptr [ %112, %111 ], [ %91, %90 ]
  %99 = getelementptr inbounds i8, ptr %.0122180, i64 16
  %100 = load i8, ptr %99, align 8, !tbaa !161, !range !37, !noundef !38
  %101 = trunc nuw i8 %100 to i1
  %102 = load ptr, ptr %.0122180, align 8, !tbaa !163
  br i1 %101, label %103, label %110

103:                                              ; preds = %.lr.ph
  %104 = getelementptr inbounds i8, ptr %.0122180, i64 12
  %105 = load i32, ptr %104, align 4, !tbaa !164
  %106 = getelementptr inbounds i8, ptr %.0122180, i64 8
  %107 = load i32, ptr %106, align 8, !tbaa !165
  invoke void @_ZN11spirv_cross12CompilerHLSL37emit_interface_block_member_in_structERKNS_12SPIRVariableEjjRSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %0, ptr noundef nonnull align 8 dereferenceable(176) %102, i32 noundef %105, i32 noundef %107, ptr noundef nonnull align 8 dereferenceable(56) %8)
          to label %111 unwind label %108

108:                                              ; preds = %110, %103
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %748

110:                                              ; preds = %.lr.ph
  invoke void @_ZN11spirv_cross12CompilerHLSL30emit_interface_block_in_structERKNS_12SPIRVariableERSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %0, ptr noundef nonnull align 8 dereferenceable(176) %102, ptr noundef nonnull align 8 dereferenceable(56) %8)
          to label %111 unwind label %108

111:                                              ; preds = %110, %103
  %112 = getelementptr inbounds i8, ptr %.0122180, i64 24
  %.not133 = icmp eq ptr %112, %92
  br i1 %.not133, label %._crit_edge, label %.lr.ph

113:                                              ; preds = %._crit_edge
  invoke void @_ZN11spirv_cross12CompilerGLSL14end_scope_declEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %114 unwind label %97

114:                                              ; preds = %113
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %115 unwind label %97

115:                                              ; preds = %114, %83
  %116 = load i32, ptr %29, align 8, !tbaa !8
  %117 = icmp ne i32 %116, 5365
  %118 = call noundef zeroext i1 @_ZNK11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #6
  br i1 %118, label %119, label %122

119:                                              ; preds = %115
  %120 = getelementptr inbounds i8, ptr %0, i64 2744
  %121 = call noundef zeroext i1 @_ZNK11spirv_cross6Bitset5emptyEv(ptr noundef nonnull align 8 dereferenceable(64) %120)
  br i1 %121, label %187, label %122

122:                                              ; preds = %119, %115
  %123 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #6
  %124 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #6
  invoke void @"_ZSt4sortIPZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10IOVariableZNS1_14emit_resourcesEvE3$_5EvT_S5_T0_"(ptr noundef %123, ptr noundef %124, ptr nonnull %0)
          to label %125 unwind label %132

125:                                              ; preds = %122
  %126 = zext i1 %117 to i8
  store i8 %126, ptr %67, align 8, !tbaa !158
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  %127 = select i1 %117, ptr @.str.201, ptr @.str.200
  store ptr %127, ptr %14, align 8, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJPKcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %128 unwind label %134

128:                                              ; preds = %125
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %129 unwind label %132

129:                                              ; preds = %128
  %130 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #6
  %131 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #6
  %.not134181 = icmp eq ptr %130, %131
  br i1 %.not134181, label %._crit_edge185, label %.lr.ph184

._crit_edge185:                                   ; preds = %157, %129
  invoke void @_ZN11spirv_cross12CompilerHLSL30emit_builtin_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528) %0)
          to label %159 unwind label %132

132:                                              ; preds = %746, %745, %744, %743, %742, %741, %740, %739, %738, %737, %689, %688, %687, %686, %685, %680, %679, %678, %677, %676, %675, %674, %673, %672, %671, %670, %669, %668, %667, %666, %661, %660, %659, %658, %657, %652, %651, %650, %649, %648, %647, %646, %645, %644, %643, %642, %641, %640, %639, %638, %637, %636, %635, %634, %633, %632, %631, %630, %629, %628, %627, %626, %625, %624, %623, %622, %621, %620, %619, %618, %617, %616, %615, %614, %613, %612, %611, %610, %609, %608, %607, %606, %598, %597, %596, %595, %594, %593, %592, %591, %590, %589, %588, %587, %586, %585, %584, %583, %582, %581, %580, %579, %578, %577, %576, %575, %574, %573, %572, %571, %570, %569, %568, %567, %566, %561, %560, %559, %558, %557, %556, %555, %554, %553, %552, %551, %550, %549, %548, %547, %546, %545, %544, %543, %542, %541, %456, %455, %454, %453, %452, %451, %450, %449, %448, %447, %446, %445, %444, %439, %438, %437, %436, %435, %434, %433, %432, %431, %430, %429, %428, %423, %422, %421, %420, %419, %418, %417, %416, %415, %414, %413, %412, %411, %406, %405, %404, %403, %402, %401, %400, %399, %398, %397, %396, %395, %390, %389, %388, %387, %386, %385, %384, %383, %382, %381, %380, %375, %374, %373, %372, %371, %370, %369, %368, %367, %366, %365, %364, %363, %358, %357, %356, %355, %354, %353, %352, %351, %350, %349, %348, %.loopexit178, %260, %186, %185, %._crit_edge190, %165, %164, %162, %161, %160, %._crit_edge185, %128, %122
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %748

134:                                              ; preds = %125
  %135 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  br label %748

.lr.ph184:                                        ; preds = %129, %157
  %.0123182 = phi ptr [ %158, %157 ], [ %130, %129 ]
  %136 = load ptr, ptr %.0123182, align 8, !tbaa !163
  %137 = invoke noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL25is_per_primitive_variableERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(176) %136)
          to label %138 unwind label %139

138:                                              ; preds = %.lr.ph184
  br i1 %137, label %157, label %141

139:                                              ; preds = %.thread, %150, %.lr.ph184
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %748

141:                                              ; preds = %138
  %142 = getelementptr inbounds i8, ptr %.0123182, i64 16
  %143 = load i8, ptr %142, align 8, !tbaa !161, !range !37, !noundef !38
  %144 = trunc nuw i8 %143 to i1
  %.not161 = xor i1 %144, true
  %brmerge = select i1 %.not161, i1 true, i1 %117
  br i1 %brmerge, label %148, label %145

145:                                              ; preds = %141
  %146 = getelementptr inbounds i8, ptr %.0123182, i64 12
  %147 = load i32, ptr %146, align 4, !tbaa !164
  %.not137 = icmp eq i32 %147, 0
  br i1 %.not137, label %.thread, label %157

148:                                              ; preds = %141
  %149 = select i1 %144, i1 %117, i1 false
  br i1 %149, label %150, label %.thread

150:                                              ; preds = %148
  %151 = load ptr, ptr %.0123182, align 8, !tbaa !163
  %152 = getelementptr inbounds i8, ptr %.0123182, i64 12
  %153 = load i32, ptr %152, align 4, !tbaa !164
  %154 = getelementptr inbounds i8, ptr %.0123182, i64 8
  %155 = load i32, ptr %154, align 8, !tbaa !165
  invoke void @_ZN11spirv_cross12CompilerHLSL37emit_interface_block_member_in_structERKNS_12SPIRVariableEjjRSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %0, ptr noundef nonnull align 8 dereferenceable(176) %151, i32 noundef %153, i32 noundef %155, ptr noundef nonnull align 8 dereferenceable(56) %9)
          to label %157 unwind label %139

.thread:                                          ; preds = %145, %148
  %156 = load ptr, ptr %.0123182, align 8, !tbaa !163
  invoke void @_ZN11spirv_cross12CompilerHLSL30emit_interface_block_in_structERKNS_12SPIRVariableERSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %0, ptr noundef nonnull align 8 dereferenceable(176) %156, ptr noundef nonnull align 8 dereferenceable(56) %9)
          to label %157 unwind label %139

157:                                              ; preds = %150, %.thread, %145, %138
  %158 = getelementptr inbounds i8, ptr %.0123182, i64 24
  %.not134 = icmp eq ptr %158, %131
  br i1 %.not134, label %._crit_edge185, label %.lr.ph184

159:                                              ; preds = %._crit_edge185
  br i1 %117, label %160, label %161

160:                                              ; preds = %159
  invoke void @_ZN11spirv_cross12CompilerHLSL40emit_builtin_primitive_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528) %0)
          to label %161 unwind label %132

161:                                              ; preds = %160, %159
  invoke void @_ZN11spirv_cross12CompilerGLSL14end_scope_declEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %162 unwind label %132

162:                                              ; preds = %161
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %163 unwind label %132

163:                                              ; preds = %162
  br i1 %117, label %187, label %164

164:                                              ; preds = %163
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(30) @.str.202)
          to label %165 unwind label %132

165:                                              ; preds = %164
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %166 unwind label %132

166:                                              ; preds = %165
  %167 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #6
  %168 = call noundef ptr @_ZN11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #6
  %.not135186 = icmp eq ptr %167, %168
  br i1 %.not135186, label %._crit_edge190, label %.lr.ph189

._crit_edge190:                                   ; preds = %183, %166
  invoke void @_ZN11spirv_cross12CompilerHLSL40emit_builtin_primitive_outputs_in_structEv(ptr noundef nonnull align 8 dereferenceable(10528) %0)
          to label %185 unwind label %132

.lr.ph189:                                        ; preds = %166, %183
  %.0126187 = phi ptr [ %184, %183 ], [ %167, %166 ]
  %169 = load ptr, ptr %.0126187, align 8, !tbaa !163
  %170 = invoke noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL25is_per_primitive_variableERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(176) %169)
          to label %171 unwind label %172

171:                                              ; preds = %.lr.ph189
  br i1 %170, label %174, label %183

172:                                              ; preds = %181, %.lr.ph189
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %748

174:                                              ; preds = %171
  %175 = getelementptr inbounds i8, ptr %.0126187, i64 16
  %176 = load i8, ptr %175, align 8, !tbaa !161, !range !37, !noundef !38
  %177 = trunc nuw i8 %176 to i1
  br i1 %177, label %178, label %181

178:                                              ; preds = %174
  %179 = getelementptr inbounds i8, ptr %.0126187, i64 12
  %180 = load i32, ptr %179, align 4, !tbaa !164
  %.not136 = icmp eq i32 %180, 0
  br i1 %.not136, label %181, label %183

181:                                              ; preds = %178, %174
  %182 = load ptr, ptr %.0126187, align 8, !tbaa !163
  invoke void @_ZN11spirv_cross12CompilerHLSL30emit_interface_block_in_structERKNS_12SPIRVariableERSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE(ptr noundef nonnull align 8 dereferenceable(10528) %0, ptr noundef nonnull align 8 dereferenceable(176) %182, ptr noundef nonnull align 8 dereferenceable(56) %9)
          to label %183 unwind label %172

183:                                              ; preds = %181, %178, %171
  %184 = getelementptr inbounds i8, ptr %.0126187, i64 24
  %.not135 = icmp eq ptr %184, %168
  br i1 %.not135, label %._crit_edge190, label %.lr.ph189

185:                                              ; preds = %._crit_edge190
  invoke void @_ZN11spirv_cross12CompilerGLSL14end_scope_declEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %186 unwind label %132

186:                                              ; preds = %185
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %187 unwind label %132

187:                                              ; preds = %163, %186, %119
  %188 = getelementptr inbounds i8, ptr %0, i64 1928
  %189 = call noundef ptr @_ZN11spirv_cross10VectorViewIjE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %188) #6
  %190 = call noundef ptr @_ZN11spirv_cross10VectorViewIjE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %188) #6
  %.not138191 = icmp eq ptr %189, %190
  br i1 %.not138191, label %._crit_edge195, label %.lr.ph194

.lr.ph194:                                        ; preds = %187
  %191 = getelementptr inbounds i8, ptr %0, i64 7656
  br label %194

._crit_edge195:                                   ; preds = %258, %187
  %192 = load i8, ptr %2, align 1, !tbaa !29, !range !37, !noundef !38
  %193 = trunc nuw i8 %192 to i1
  br i1 %193, label %260, label %261

194:                                              ; preds = %.lr.ph194, %258
  %.0127192 = phi ptr [ %189, %.lr.ph194 ], [ %259, %258 ]
  %195 = load i32, ptr %.0127192, align 4, !tbaa !166
  %196 = invoke noundef nonnull align 8 dereferenceable(176) ptr @_ZN11spirv_cross8Compiler3getINS_12SPIRVariableEEERT_j(ptr noundef nonnull align 8 dereferenceable(3176) %0, i32 noundef %195)
          to label %197 unwind label %200

197:                                              ; preds = %194
  %198 = invoke noundef zeroext i1 @_ZNK11spirv_cross8Compiler18is_hidden_variableERKNS_12SPIRVariableEb(ptr noundef nonnull align 8 dereferenceable(3176) %0, ptr noundef nonnull align 8 dereferenceable(176) %196, i1 noundef zeroext true)
          to label %199 unwind label %200

199:                                              ; preds = %197
  br i1 %198, label %258, label %202

200:                                              ; preds = %209, %206, %197, %194
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %748

202:                                              ; preds = %199
  %203 = getelementptr inbounds i8, ptr %196, i64 16
  %204 = load i32, ptr %203, align 8
  %205 = icmp ne i32 %204, 5402
  %brmerge166 = select i1 %205, i1 true, i1 %117
  %.not146 = icmp ne i32 %204, 3
  %or.cond169.not = and i1 %.not146, %brmerge166
  br i1 %or.cond169.not, label %206, label %258

206:                                              ; preds = %202
  %207 = invoke noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL15variable_is_lutERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(176) %196)
          to label %208 unwind label %200

208:                                              ; preds = %206
  br i1 %207, label %258, label %209

209:                                              ; preds = %208
  %210 = getelementptr inbounds i8, ptr %196, i64 8
  %211 = call noundef i32 @_ZNK11spirv_cross7TypedIDILNS_5TypesE0EEcvjEv(ptr noundef nonnull align 4 dereferenceable(4) %210)
  invoke void @_ZN11spirv_cross12CompilerGLSL17add_resource_nameEj(ptr noundef nonnull align 8 dereferenceable(9848) %0, i32 noundef %211)
          to label %212 unwind label %200

212:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  %213 = load i32, ptr %203, align 8, !tbaa !167
  %switch.selectcmp.case1 = icmp eq i32 %213, 4
  %switch.selectcmp.case2 = icmp eq i32 %213, 5402
  %switch.selectcmp = or i1 %switch.selectcmp.case1, %switch.selectcmp.case2
  %214 = select i1 %switch.selectcmp, ptr @.str.119, ptr @.str.166
  store ptr %214, ptr %15, align 8, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  %215 = load i8, ptr %191, align 8, !tbaa !175, !range !37, !noundef !38
  %216 = trunc nuw i8 %215 to i1
  %217 = load i32, ptr %203, align 8
  %218 = icmp eq i32 %217, 6
  %or.cond168 = select i1 %216, i1 %218, i1 false
  br i1 %or.cond168, label %219, label %246

219:                                              ; preds = %212
  %220 = getelementptr inbounds i8, ptr %196, i64 24
  %221 = call noundef i32 @_ZNK11spirv_cross7TypedIDILNS_5TypesE0EEcvjEv(ptr noundef nonnull align 4 dereferenceable(4) %220)
  %.not147 = icmp eq i32 %221, 0
  br i1 %.not147, label %222, label %246

222:                                              ; preds = %219
  %223 = getelementptr inbounds i8, ptr %196, i64 92
  %224 = call noundef i32 @_ZNK11spirv_cross7TypedIDILNS_5TypesE0EEcvjEv(ptr noundef nonnull align 4 dereferenceable(4) %223)
  %.not148 = icmp eq i32 %224, 0
  br i1 %.not148, label %225, label %246

225:                                              ; preds = %222
  %226 = invoke noundef nonnull align 8 dereferenceable(336) ptr @_ZN11spirv_cross8Compiler22get_variable_data_typeERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(3176) %0, ptr noundef nonnull align 8 dereferenceable(176) %196)
          to label %227 unwind label %239

227:                                              ; preds = %225
  %228 = invoke noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL24type_can_zero_initializeERKNS_8SPIRTypeE(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(336) %226)
          to label %229 unwind label %239

229:                                              ; preds = %227
  br i1 %228, label %230, label %246

230:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #6
  %231 = invoke noundef i32 @_ZNK11spirv_cross8Compiler25get_variable_data_type_idERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(3176) %0, ptr noundef nonnull align 8 dereferenceable(176) %196)
          to label %232 unwind label %241

232:                                              ; preds = %230
  %233 = load ptr, ptr %0, align 8, !tbaa !5
  %234 = getelementptr inbounds i8, ptr %233, i64 464
  %235 = load ptr, ptr %234, align 8
  invoke void %235(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(9848) %0, i32 noundef %231)
          to label %236 unwind label %241

236:                                              ; preds = %232
  invoke void @_ZN11spirv_cross4joinIJRA4_KcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES9_DpOT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 1 dereferenceable(4) @.str.87, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %237 unwind label %243

237:                                              ; preds = %236
  %238 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  br label %246

239:                                              ; preds = %227, %225
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %257

241:                                              ; preds = %232, %230
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %245

243:                                              ; preds = %236
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %245

245:                                              ; preds = %243, %241
  %.pn149 = phi { ptr, i32 } [ %244, %243 ], [ %242, %241 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  br label %257

246:                                              ; preds = %237, %229, %222, %219, %212
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #6
  %247 = load ptr, ptr %0, align 8, !tbaa !5
  %248 = getelementptr inbounds i8, ptr %247, i64 312
  %249 = load ptr, ptr %248, align 8
  invoke void %249(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(176) %196)
          to label %250 unwind label %252

250:                                              ; preds = %246
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA2_S2_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSC_S6_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 1 dereferenceable(2) @.str.63, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 1 dereferenceable(2) @.str.53)
          to label %251 unwind label %254

251:                                              ; preds = %250
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  store i8 1, ptr %2, align 1, !tbaa !29
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  br label %258

252:                                              ; preds = %246
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %256

254:                                              ; preds = %250
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %256

256:                                              ; preds = %254, %252
  %.pn151 = phi { ptr, i32 } [ %255, %254 ], [ %253, %252 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  br label %257

257:                                              ; preds = %256, %245, %239
  %.pn151.pn = phi { ptr, i32 } [ %.pn151, %256 ], [ %.pn149, %245 ], [ %240, %239 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  br label %748

258:                                              ; preds = %251, %208, %202, %199
  %259 = getelementptr inbounds i8, ptr %.0127192, i64 4
  %.not138 = icmp eq ptr %259, %190
  br i1 %.not138, label %._crit_edge195, label %194

260:                                              ; preds = %._crit_edge195
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %261 unwind label %132

261:                                              ; preds = %260, %._crit_edge195
  %262 = getelementptr inbounds i8, ptr %0, i64 9864
  %263 = load i8, ptr %262, align 8, !tbaa !176, !range !37, !noundef !38
  %264 = trunc nuw i8 %263 to i1
  br i1 %264, label %.preheader177.preheader, label %.loopexit178

.preheader177.preheader:                          ; preds = %261
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA6_S2_S4_RA5_S2_S4_RA4_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, ptr noundef nonnull align 1 dereferenceable(6) @.str.206, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, ptr noundef nonnull align 1 dereferenceable(5) @.str.207, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, ptr noundef nonnull align 1 dereferenceable(4) @.str.208)
          to label %265 unwind label %281

265:                                              ; preds = %.preheader177.preheader
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %266 unwind label %281

266:                                              ; preds = %265
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(29) @.str.209)
          to label %267 unwind label %281

267:                                              ; preds = %266
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %268 unwind label %281

268:                                              ; preds = %267
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader177.1 unwind label %281

.preheader177.1:                                  ; preds = %268
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA6_S2_S4_RA5_S2_S4_RA4_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 8), ptr noundef nonnull align 1 dereferenceable(6) @.str.206, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 8), ptr noundef nonnull align 1 dereferenceable(5) @.str.207, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 8), ptr noundef nonnull align 1 dereferenceable(4) @.str.208)
          to label %269 unwind label %281

269:                                              ; preds = %.preheader177.1
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %270 unwind label %281

270:                                              ; preds = %269
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(29) @.str.209)
          to label %271 unwind label %281

271:                                              ; preds = %270
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %272 unwind label %281

272:                                              ; preds = %271
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader177.2 unwind label %281

.preheader177.2:                                  ; preds = %272
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA6_S2_S4_RA5_S2_S4_RA4_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 16), ptr noundef nonnull align 1 dereferenceable(6) @.str.206, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 16), ptr noundef nonnull align 1 dereferenceable(5) @.str.207, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 16), ptr noundef nonnull align 1 dereferenceable(4) @.str.208)
          to label %273 unwind label %281

273:                                              ; preds = %.preheader177.2
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %274 unwind label %281

274:                                              ; preds = %273
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(29) @.str.209)
          to label %275 unwind label %281

275:                                              ; preds = %274
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %276 unwind label %281

276:                                              ; preds = %275
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader177.3 unwind label %281

.preheader177.3:                                  ; preds = %276
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA6_S2_S4_RA5_S2_S4_RA4_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 24), ptr noundef nonnull align 1 dereferenceable(6) @.str.206, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 24), ptr noundef nonnull align 1 dereferenceable(5) @.str.207, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types, i64 24), ptr noundef nonnull align 1 dereferenceable(4) @.str.208)
          to label %277 unwind label %281

277:                                              ; preds = %.preheader177.3
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %278 unwind label %281

278:                                              ; preds = %277
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(29) @.str.209)
          to label %279 unwind label %281

279:                                              ; preds = %278
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %280 unwind label %281

280:                                              ; preds = %279
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.loopexit178 unwind label %281

281:                                              ; preds = %280, %279, %278, %277, %.preheader177.3, %276, %275, %274, %273, %.preheader177.2, %272, %271, %270, %269, %.preheader177.1, %268, %267, %266, %265, %.preheader177.preheader
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %748

.loopexit178:                                     ; preds = %280, %261
  %283 = getelementptr inbounds i8, ptr %0, i64 9880
  %284 = load i64, ptr %283, align 8, !tbaa !177
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %284, ptr noundef nonnull @.str.210, i1 noundef zeroext false, ptr noundef nonnull @.str.9)
          to label %.preheader176 unwind label %132

.preheader176:                                    ; preds = %.loopexit178
  %285 = getelementptr inbounds i8, ptr %0, i64 9888
  %286 = load i64, ptr %285, align 8, !tbaa !178
  %287 = load ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, align 16, !tbaa !32
  %288 = load ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, align 16, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %286, ptr noundef %287, i1 noundef zeroext true, ptr noundef %288)
          to label %289 unwind label %346

289:                                              ; preds = %.preheader176
  %290 = getelementptr inbounds i8, ptr %0, i64 9896
  %291 = load i64, ptr %290, align 8, !tbaa !178
  %292 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 8), align 8, !tbaa !32
  %293 = load ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, align 16, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %291, ptr noundef %292, i1 noundef zeroext true, ptr noundef %293)
          to label %294 unwind label %346

294:                                              ; preds = %289
  %295 = getelementptr inbounds i8, ptr %0, i64 9904
  %296 = load i64, ptr %295, align 8, !tbaa !178
  %297 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 16), align 16, !tbaa !32
  %298 = load ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, align 16, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %296, ptr noundef %297, i1 noundef zeroext true, ptr noundef %298)
          to label %299 unwind label %346

299:                                              ; preds = %294
  %300 = getelementptr inbounds i8, ptr %0, i64 9912
  %301 = load i64, ptr %300, align 8, !tbaa !178
  %302 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 24), align 8, !tbaa !32
  %303 = load ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, align 16, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %301, ptr noundef %302, i1 noundef zeroext true, ptr noundef %303)
          to label %.preheader175.1 unwind label %346

.preheader175.1:                                  ; preds = %299
  %304 = getelementptr inbounds i8, ptr %0, i64 9920
  %305 = load i64, ptr %304, align 8, !tbaa !178
  %306 = load ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, align 16, !tbaa !32
  %307 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, i64 8), align 8, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %305, ptr noundef %306, i1 noundef zeroext true, ptr noundef %307)
          to label %308 unwind label %346

308:                                              ; preds = %.preheader175.1
  %309 = getelementptr inbounds i8, ptr %0, i64 9928
  %310 = load i64, ptr %309, align 8, !tbaa !178
  %311 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 8), align 8, !tbaa !32
  %312 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, i64 8), align 8, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %310, ptr noundef %311, i1 noundef zeroext true, ptr noundef %312)
          to label %313 unwind label %346

313:                                              ; preds = %308
  %314 = getelementptr inbounds i8, ptr %0, i64 9936
  %315 = load i64, ptr %314, align 8, !tbaa !178
  %316 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 16), align 16, !tbaa !32
  %317 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, i64 8), align 8, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %315, ptr noundef %316, i1 noundef zeroext true, ptr noundef %317)
          to label %318 unwind label %346

318:                                              ; preds = %313
  %319 = getelementptr inbounds i8, ptr %0, i64 9944
  %320 = load i64, ptr %319, align 8, !tbaa !178
  %321 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 24), align 8, !tbaa !32
  %322 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, i64 8), align 8, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %320, ptr noundef %321, i1 noundef zeroext true, ptr noundef %322)
          to label %.preheader175.2 unwind label %346

.preheader175.2:                                  ; preds = %318
  %323 = getelementptr inbounds i8, ptr %0, i64 9952
  %324 = load i64, ptr %323, align 8, !tbaa !178
  %325 = load ptr, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, align 16, !tbaa !32
  %326 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, i64 16), align 16, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %324, ptr noundef %325, i1 noundef zeroext true, ptr noundef %326)
          to label %327 unwind label %346

327:                                              ; preds = %.preheader175.2
  %328 = getelementptr inbounds i8, ptr %0, i64 9960
  %329 = load i64, ptr %328, align 8, !tbaa !178
  %330 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 8), align 8, !tbaa !32
  %331 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, i64 16), align 16, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %329, ptr noundef %330, i1 noundef zeroext true, ptr noundef %331)
          to label %332 unwind label %346

332:                                              ; preds = %327
  %333 = getelementptr inbounds i8, ptr %0, i64 9968
  %334 = load i64, ptr %333, align 8, !tbaa !178
  %335 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 16), align 16, !tbaa !32
  %336 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, i64 16), align 16, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %334, ptr noundef %335, i1 noundef zeroext true, ptr noundef %336)
          to label %337 unwind label %346

337:                                              ; preds = %332
  %338 = getelementptr inbounds i8, ptr %0, i64 9976
  %339 = load i64, ptr %338, align 8, !tbaa !178
  %340 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE8vecsizes, i64 24), align 8, !tbaa !32
  %341 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10qualifiers, i64 16), align 16, !tbaa !32
  invoke void @_ZN11spirv_cross12CompilerHLSL26emit_texture_size_variantsEmPKcbS2_(ptr noundef nonnull align 8 dereferenceable(10528) %0, i64 noundef %339, ptr noundef %340, i1 noundef zeroext true, ptr noundef %341)
          to label %342 unwind label %346

342:                                              ; preds = %337
  %343 = getelementptr inbounds i8, ptr %0, i64 9865
  %344 = load i8, ptr %343, align 1, !tbaa !179, !range !37, !noundef !38
  %345 = trunc nuw i8 %344 to i1
  br i1 %345, label %348, label %359

346:                                              ; preds = %337, %332, %327, %.preheader175.2, %318, %313, %308, %.preheader175.1, %299, %294, %289, %.preheader176
  %347 = landingpad { ptr, i32 }
          cleanup
  br label %748

348:                                              ; preds = %342
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(35) @.str.215)
          to label %349 unwind label %132

349:                                              ; preds = %348
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %350 unwind label %132

350:                                              ; preds = %349
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.216)
          to label %351 unwind label %132

351:                                              ; preds = %350
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(36) @.str.217)
          to label %352 unwind label %132

352:                                              ; preds = %351
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %353 unwind label %132

353:                                              ; preds = %352
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %354 unwind label %132

354:                                              ; preds = %353
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(37) @.str.218)
          to label %355 unwind label %132

355:                                              ; preds = %354
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %356 unwind label %132

356:                                              ; preds = %355
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA53_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(53) @.str.219)
          to label %357 unwind label %132

357:                                              ; preds = %356
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %358 unwind label %132

358:                                              ; preds = %357
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %359 unwind label %132

359:                                              ; preds = %358, %342
  %360 = getelementptr inbounds i8, ptr %0, i64 9866
  %361 = load i8, ptr %360, align 2, !tbaa !180, !range !37, !noundef !38
  %362 = trunc nuw i8 %361 to i1
  br i1 %362, label %363, label %376

363:                                              ; preds = %359
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA38_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(38) @.str.220)
          to label %364 unwind label %132

364:                                              ; preds = %363
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %365 unwind label %132

365:                                              ; preds = %364
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA54_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(54) @.str.221)
          to label %366 unwind label %132

366:                                              ; preds = %365
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %367 unwind label %132

367:                                              ; preds = %366
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %368 unwind label %132

368:                                              ; preds = %367
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA40_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(40) @.str.222)
          to label %369 unwind label %132

369:                                              ; preds = %368
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %370 unwind label %132

370:                                              ; preds = %369
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA16_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(16) @.str.223)
          to label %371 unwind label %132

371:                                              ; preds = %370
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA39_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(39) @.str.224)
          to label %372 unwind label %132

372:                                              ; preds = %371
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.225)
          to label %373 unwind label %132

373:                                              ; preds = %372
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA17_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(17) @.str.226)
          to label %374 unwind label %132

374:                                              ; preds = %373
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %375 unwind label %132

375:                                              ; preds = %374
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %376 unwind label %132

376:                                              ; preds = %375, %359
  %377 = getelementptr inbounds i8, ptr %0, i64 9867
  %378 = load i8, ptr %377, align 1, !tbaa !181, !range !37, !noundef !38
  %379 = trunc nuw i8 %378 to i1
  br i1 %379, label %380, label %391

380:                                              ; preds = %376
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA41_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(41) @.str.227)
          to label %381 unwind label %132

381:                                              ; preds = %380
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %382 unwind label %132

382:                                              ; preds = %381
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.216)
          to label %383 unwind label %132

383:                                              ; preds = %382
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(36) @.str.217)
          to label %384 unwind label %132

384:                                              ; preds = %383
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %385 unwind label %132

385:                                              ; preds = %384
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %386 unwind label %132

386:                                              ; preds = %385
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA43_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(43) @.str.228)
          to label %387 unwind label %132

387:                                              ; preds = %386
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %388 unwind label %132

388:                                              ; preds = %387
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA66_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(66) @.str.229)
          to label %389 unwind label %132

389:                                              ; preds = %388
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %390 unwind label %132

390:                                              ; preds = %389
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %391 unwind label %132

391:                                              ; preds = %390, %376
  %392 = getelementptr inbounds i8, ptr %0, i64 9868
  %393 = load i8, ptr %392, align 4, !tbaa !182, !range !37, !noundef !38
  %394 = trunc nuw i8 %393 to i1
  br i1 %394, label %395, label %407

395:                                              ; preds = %391
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(35) @.str.230)
          to label %396 unwind label %132

396:                                              ; preds = %395
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %397 unwind label %132

397:                                              ; preds = %396
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA54_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(54) @.str.231)
          to label %398 unwind label %132

398:                                              ; preds = %397
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA73_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(73) @.str.232)
          to label %399 unwind label %132

399:                                              ; preds = %398
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %400 unwind label %132

400:                                              ; preds = %399
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %401 unwind label %132

401:                                              ; preds = %400
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(37) @.str.233)
          to label %402 unwind label %132

402:                                              ; preds = %401
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %403 unwind label %132

403:                                              ; preds = %402
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA92_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(92) @.str.234)
          to label %404 unwind label %132

404:                                              ; preds = %403
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA31_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(31) @.str.235)
          to label %405 unwind label %132

405:                                              ; preds = %404
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %406 unwind label %132

406:                                              ; preds = %405
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %407 unwind label %132

407:                                              ; preds = %406, %391
  %408 = getelementptr inbounds i8, ptr %0, i64 9869
  %409 = load i8, ptr %408, align 1, !tbaa !183, !range !37, !noundef !38
  %410 = trunc nuw i8 %409 to i1
  br i1 %410, label %411, label %424

411:                                              ; preds = %407
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(35) @.str.236)
          to label %412 unwind label %132

412:                                              ; preds = %411
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %413 unwind label %132

413:                                              ; preds = %412
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA67_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(67) @.str.237)
          to label %414 unwind label %132

414:                                              ; preds = %413
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA79_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(79) @.str.238)
          to label %415 unwind label %132

415:                                              ; preds = %414
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %416 unwind label %132

416:                                              ; preds = %415
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %417 unwind label %132

417:                                              ; preds = %416
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(37) @.str.239)
          to label %418 unwind label %132

418:                                              ; preds = %417
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %419 unwind label %132

419:                                              ; preds = %418
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(30) @.str.240)
          to label %420 unwind label %132

420:                                              ; preds = %419
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA95_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(95) @.str.241)
          to label %421 unwind label %132

421:                                              ; preds = %420
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(49) @.str.242)
          to label %422 unwind label %132

422:                                              ; preds = %421
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %423 unwind label %132

423:                                              ; preds = %422
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %424 unwind label %132

424:                                              ; preds = %423, %407
  %425 = getelementptr inbounds i8, ptr %0, i64 9870
  %426 = load i8, ptr %425, align 2, !tbaa !184, !range !37, !noundef !38
  %427 = trunc nuw i8 %426 to i1
  br i1 %427, label %428, label %440

428:                                              ; preds = %424
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(36) @.str.243)
          to label %429 unwind label %132

429:                                              ; preds = %428
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %430 unwind label %132

430:                                              ; preds = %429
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA56_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(56) @.str.244)
          to label %431 unwind label %132

431:                                              ; preds = %430
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(36) @.str.217)
          to label %432 unwind label %132

432:                                              ; preds = %431
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %433 unwind label %132

433:                                              ; preds = %432
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %434 unwind label %132

434:                                              ; preds = %433
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA38_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(38) @.str.245)
          to label %435 unwind label %132

435:                                              ; preds = %434
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %436 unwind label %132

436:                                              ; preds = %435
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA51_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(51) @.str.246)
          to label %437 unwind label %132

437:                                              ; preds = %436
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA33_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(33) @.str.247)
          to label %438 unwind label %132

438:                                              ; preds = %437
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %439 unwind label %132

439:                                              ; preds = %438
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %440 unwind label %132

440:                                              ; preds = %439, %424
  %441 = getelementptr inbounds i8, ptr %0, i64 9871
  %442 = load i8, ptr %441, align 1, !tbaa !185, !range !37, !noundef !38
  %443 = trunc nuw i8 %442 to i1
  br i1 %443, label %444, label %457

444:                                              ; preds = %440
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(36) @.str.248)
          to label %445 unwind label %132

445:                                              ; preds = %444
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %446 unwind label %132

446:                                              ; preds = %445
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA71_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(71) @.str.249)
          to label %447 unwind label %132

447:                                              ; preds = %446
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA42_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(42) @.str.250)
          to label %448 unwind label %132

448:                                              ; preds = %447
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %449 unwind label %132

449:                                              ; preds = %448
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %450 unwind label %132

450:                                              ; preds = %449
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA38_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(38) @.str.251)
          to label %451 unwind label %132

451:                                              ; preds = %450
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %452 unwind label %132

452:                                              ; preds = %451
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(30) @.str.240)
          to label %453 unwind label %132

453:                                              ; preds = %452
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA58_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(58) @.str.252)
          to label %454 unwind label %132

454:                                              ; preds = %453
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA51_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(51) @.str.253)
          to label %455 unwind label %132

455:                                              ; preds = %454
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %456 unwind label %132

456:                                              ; preds = %455
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %457 unwind label %132

457:                                              ; preds = %456, %440
  %458 = getelementptr inbounds i8, ptr %0, i64 9872
  %459 = load i8, ptr %458, align 8, !tbaa !186, !range !37, !noundef !38
  %460 = trunc nuw i8 %459 to i1
  br i1 %460, label %.preheader173.preheader, label %.loopexit174

.preheader173.preheader:                          ; preds = %457
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA20_S2_S4_RA8_S2_S4_RA34_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, ptr noundef nonnull align 1 dereferenceable(20) @.str.257, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, ptr noundef nonnull align 1 dereferenceable(8) @.str.258, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, ptr noundef nonnull align 1 dereferenceable(34) @.str.259)
          to label %461 unwind label %481

461:                                              ; preds = %.preheader173.preheader
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %462 unwind label %481

462:                                              ; preds = %461
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA79_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(79) @.str.260)
          to label %463 unwind label %481

463:                                              ; preds = %462
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA53_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(53) @.str.261)
          to label %464 unwind label %481

464:                                              ; preds = %463
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %465 unwind label %481

465:                                              ; preds = %464
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader173.1 unwind label %481

.preheader173.1:                                  ; preds = %465
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA20_S2_S4_RA8_S2_S4_RA34_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 8), ptr noundef nonnull align 1 dereferenceable(20) @.str.257, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 8), ptr noundef nonnull align 1 dereferenceable(8) @.str.258, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 8), ptr noundef nonnull align 1 dereferenceable(34) @.str.259)
          to label %466 unwind label %481

466:                                              ; preds = %.preheader173.1
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %467 unwind label %481

467:                                              ; preds = %466
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA79_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(79) @.str.260)
          to label %468 unwind label %481

468:                                              ; preds = %467
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA53_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(53) @.str.261)
          to label %469 unwind label %481

469:                                              ; preds = %468
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %470 unwind label %481

470:                                              ; preds = %469
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader173.2 unwind label %481

.preheader173.2:                                  ; preds = %470
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA20_S2_S4_RA8_S2_S4_RA34_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 16), ptr noundef nonnull align 1 dereferenceable(20) @.str.257, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 16), ptr noundef nonnull align 1 dereferenceable(8) @.str.258, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 16), ptr noundef nonnull align 1 dereferenceable(34) @.str.259)
          to label %471 unwind label %481

471:                                              ; preds = %.preheader173.2
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %472 unwind label %481

472:                                              ; preds = %471
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA79_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(79) @.str.260)
          to label %473 unwind label %481

473:                                              ; preds = %472
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA53_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(53) @.str.261)
          to label %474 unwind label %481

474:                                              ; preds = %473
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %475 unwind label %481

475:                                              ; preds = %474
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader173.3 unwind label %481

.preheader173.3:                                  ; preds = %475
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA20_S2_S4_RA8_S2_S4_RA34_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 24), ptr noundef nonnull align 1 dereferenceable(20) @.str.257, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 24), ptr noundef nonnull align 1 dereferenceable(8) @.str.258, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE5types_0, i64 24), ptr noundef nonnull align 1 dereferenceable(34) @.str.259)
          to label %476 unwind label %481

476:                                              ; preds = %.preheader173.3
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %477 unwind label %481

477:                                              ; preds = %476
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA79_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(79) @.str.260)
          to label %478 unwind label %481

478:                                              ; preds = %477
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA53_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(53) @.str.261)
          to label %479 unwind label %481

479:                                              ; preds = %478
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %480 unwind label %481

480:                                              ; preds = %479
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.loopexit174 unwind label %481

481:                                              ; preds = %480, %479, %478, %477, %476, %.preheader173.3, %475, %474, %473, %472, %471, %.preheader173.2, %470, %469, %468, %467, %466, %.preheader173.1, %465, %464, %463, %462, %461, %.preheader173.preheader
  %482 = landingpad { ptr, i32 }
          cleanup
  br label %748

.loopexit174:                                     ; preds = %480, %457
  %483 = getelementptr inbounds i8, ptr %0, i64 9873
  %484 = load i8, ptr %483, align 1, !tbaa !187, !range !37, !noundef !38
  %485 = trunc nuw i8 %484 to i1
  br i1 %485, label %.preheader172.preheader, label %.loopexit

.preheader172.preheader:                          ; preds = %.loopexit174
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA32_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, ptr noundef nonnull align 1 dereferenceable(22) @.str.262, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, ptr noundef nonnull align 1 dereferenceable(32) @.str.263)
          to label %486 unwind label %506

486:                                              ; preds = %.preheader172.preheader
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %487 unwind label %506

487:                                              ; preds = %486
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(59) @.str.264)
          to label %488 unwind label %506

488:                                              ; preds = %487
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.265)
          to label %489 unwind label %506

489:                                              ; preds = %488
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %490 unwind label %506

490:                                              ; preds = %489
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader172.1 unwind label %506

.preheader172.1:                                  ; preds = %490
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA32_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, i64 8), ptr noundef nonnull align 1 dereferenceable(22) @.str.262, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, i64 8), ptr noundef nonnull align 1 dereferenceable(32) @.str.263)
          to label %491 unwind label %506

491:                                              ; preds = %.preheader172.1
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %492 unwind label %506

492:                                              ; preds = %491
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(59) @.str.264)
          to label %493 unwind label %506

493:                                              ; preds = %492
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.265)
          to label %494 unwind label %506

494:                                              ; preds = %493
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %495 unwind label %506

495:                                              ; preds = %494
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader172.2 unwind label %506

.preheader172.2:                                  ; preds = %495
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA32_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, i64 16), ptr noundef nonnull align 1 dereferenceable(22) @.str.262, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, i64 16), ptr noundef nonnull align 1 dereferenceable(32) @.str.263)
          to label %496 unwind label %506

496:                                              ; preds = %.preheader172.2
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %497 unwind label %506

497:                                              ; preds = %496
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(59) @.str.264)
          to label %498 unwind label %506

498:                                              ; preds = %497
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.265)
          to label %499 unwind label %506

499:                                              ; preds = %498
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %500 unwind label %506

500:                                              ; preds = %499
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader172.3 unwind label %506

.preheader172.3:                                  ; preds = %500
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA32_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, i64 24), ptr noundef nonnull align 1 dereferenceable(22) @.str.262, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE14unsigned_types, i64 24), ptr noundef nonnull align 1 dereferenceable(32) @.str.263)
          to label %501 unwind label %506

501:                                              ; preds = %.preheader172.3
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %502 unwind label %506

502:                                              ; preds = %501
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(59) @.str.264)
          to label %503 unwind label %506

503:                                              ; preds = %502
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.265)
          to label %504 unwind label %506

504:                                              ; preds = %503
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %505 unwind label %506

505:                                              ; preds = %504
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader.preheader unwind label %506

.preheader.preheader:                             ; preds = %505
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA30_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, ptr noundef nonnull align 1 dereferenceable(22) @.str.269, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, ptr noundef nonnull align 1 dereferenceable(30) @.str.270)
          to label %508 unwind label %536

506:                                              ; preds = %505, %504, %503, %502, %501, %.preheader172.3, %500, %499, %498, %497, %496, %.preheader172.2, %495, %494, %493, %492, %491, %.preheader172.1, %490, %489, %488, %487, %486, %.preheader172.preheader
  %507 = landingpad { ptr, i32 }
          cleanup
  br label %748

508:                                              ; preds = %.preheader.preheader
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %509 unwind label %536

509:                                              ; preds = %508
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA50_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(50) @.str.271)
          to label %510 unwind label %536

510:                                              ; preds = %509
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA35_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, ptr noundef nonnull align 1 dereferenceable(35) @.str.272)
          to label %511 unwind label %536

511:                                              ; preds = %510
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(37) @.str.273)
          to label %512 unwind label %536

512:                                              ; preds = %511
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA47_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(47) @.str.274)
          to label %513 unwind label %536

513:                                              ; preds = %512
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %514 unwind label %536

514:                                              ; preds = %513
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader.1 unwind label %536

.preheader.1:                                     ; preds = %514
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA30_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 8), ptr noundef nonnull align 1 dereferenceable(22) @.str.269, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 8), ptr noundef nonnull align 1 dereferenceable(30) @.str.270)
          to label %515 unwind label %536

515:                                              ; preds = %.preheader.1
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %516 unwind label %536

516:                                              ; preds = %515
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA50_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(50) @.str.271)
          to label %517 unwind label %536

517:                                              ; preds = %516
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA35_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 8), ptr noundef nonnull align 1 dereferenceable(35) @.str.272)
          to label %518 unwind label %536

518:                                              ; preds = %517
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(37) @.str.273)
          to label %519 unwind label %536

519:                                              ; preds = %518
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA47_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(47) @.str.274)
          to label %520 unwind label %536

520:                                              ; preds = %519
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %521 unwind label %536

521:                                              ; preds = %520
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader.2 unwind label %536

.preheader.2:                                     ; preds = %521
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA30_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 16), ptr noundef nonnull align 1 dereferenceable(22) @.str.269, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 16), ptr noundef nonnull align 1 dereferenceable(30) @.str.270)
          to label %522 unwind label %536

522:                                              ; preds = %.preheader.2
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %523 unwind label %536

523:                                              ; preds = %522
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA50_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(50) @.str.271)
          to label %524 unwind label %536

524:                                              ; preds = %523
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA35_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 16), ptr noundef nonnull align 1 dereferenceable(35) @.str.272)
          to label %525 unwind label %536

525:                                              ; preds = %524
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(37) @.str.273)
          to label %526 unwind label %536

526:                                              ; preds = %525
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA47_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(47) @.str.274)
          to label %527 unwind label %536

527:                                              ; preds = %526
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %528 unwind label %536

528:                                              ; preds = %527
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.preheader.3 unwind label %536

.preheader.3:                                     ; preds = %528
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA30_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 24), ptr noundef nonnull align 1 dereferenceable(22) @.str.269, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 24), ptr noundef nonnull align 1 dereferenceable(30) @.str.270)
          to label %529 unwind label %536

529:                                              ; preds = %.preheader.3
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %530 unwind label %536

530:                                              ; preds = %529
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA50_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(50) @.str.271)
          to label %531 unwind label %536

531:                                              ; preds = %530
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA35_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(8) getelementptr inbounds (i8, ptr @_ZZN11spirv_cross12CompilerHLSL14emit_resourcesEvE12signed_types, i64 24), ptr noundef nonnull align 1 dereferenceable(35) @.str.272)
          to label %532 unwind label %536

532:                                              ; preds = %531
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(37) @.str.273)
          to label %533 unwind label %536

533:                                              ; preds = %532
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA47_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(47) @.str.274)
          to label %534 unwind label %536

534:                                              ; preds = %533
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %535 unwind label %536

535:                                              ; preds = %534
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %.loopexit unwind label %536

536:                                              ; preds = %535, %534, %533, %532, %531, %530, %529, %.preheader.3, %528, %527, %526, %525, %524, %523, %522, %.preheader.2, %521, %520, %519, %518, %517, %516, %515, %.preheader.1, %514, %513, %512, %511, %510, %509, %508, %.preheader.preheader
  %537 = landingpad { ptr, i32 }
          cleanup
  br label %748

.loopexit:                                        ; preds = %535, %.loopexit174
  %538 = getelementptr inbounds i8, ptr %0, i64 9874
  %539 = load i8, ptr %538, align 2, !tbaa !188, !range !37, !noundef !38
  %540 = trunc nuw i8 %539 to i1
  br i1 %540, label %541, label %562

541:                                              ; preds = %.loopexit
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA88_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(88) @.str.275)
          to label %542 unwind label %132

542:                                              ; preds = %541
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA84_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(84) @.str.276)
          to label %543 unwind label %132

543:                                              ; preds = %542
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.277)
          to label %544 unwind label %132

544:                                              ; preds = %543
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %545 unwind label %132

545:                                              ; preds = %544
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(76) @.str.278)
          to label %546 unwind label %132

546:                                              ; preds = %545
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %547 unwind label %132

547:                                              ; preds = %546
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA82_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(82) @.str.279)
          to label %548 unwind label %132

548:                                              ; preds = %547
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(22) @.str.280)
          to label %549 unwind label %132

549:                                              ; preds = %548
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(22) @.str.281)
          to label %550 unwind label %132

550:                                              ; preds = %549
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %551 unwind label %132

551:                                              ; preds = %550
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(22) @.str.282)
          to label %552 unwind label %132

552:                                              ; preds = %551
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(22) @.str.283)
          to label %553 unwind label %132

553:                                              ; preds = %552
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %554 unwind label %132

554:                                              ; preds = %553
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA81_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(81) @.str.284)
          to label %555 unwind label %132

555:                                              ; preds = %554
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(59) @.str.285)
          to label %556 unwind label %132

556:                                              ; preds = %555
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %557 unwind label %132

557:                                              ; preds = %556
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(59) @.str.286)
          to label %558 unwind label %132

558:                                              ; preds = %557
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(76) @.str.287)
          to label %559 unwind label %132

559:                                              ; preds = %558
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(49) @.str.288)
          to label %560 unwind label %132

560:                                              ; preds = %559
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %561 unwind label %132

561:                                              ; preds = %560
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %562 unwind label %132

562:                                              ; preds = %561, %.loopexit
  %563 = getelementptr inbounds i8, ptr %0, i64 9875
  %564 = load i8, ptr %563, align 1, !tbaa !189, !range !37, !noundef !38
  %565 = trunc nuw i8 %564 to i1
  br i1 %565, label %566, label %599

566:                                              ; preds = %562
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(44) @.str.289)
          to label %567 unwind label %132

567:                                              ; preds = %566
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA56_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(56) @.str.290)
          to label %568 unwind label %132

568:                                              ; preds = %567
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %569 unwind label %132

569:                                              ; preds = %568
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA26_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(26) @.str.291)
          to label %570 unwind label %132

570:                                              ; preds = %569
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %571 unwind label %132

571:                                              ; preds = %570
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %572 unwind label %132

572:                                              ; preds = %571
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA88_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(88) @.str.275)
          to label %573 unwind label %132

573:                                              ; preds = %572
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA84_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(84) @.str.276)
          to label %574 unwind label %132

574:                                              ; preds = %573
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.292)
          to label %575 unwind label %132

575:                                              ; preds = %574
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %576 unwind label %132

576:                                              ; preds = %575
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(76) @.str.293)
          to label %577 unwind label %132

577:                                              ; preds = %576
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %578 unwind label %132

578:                                              ; preds = %577
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA82_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(82) @.str.279)
          to label %579 unwind label %132

579:                                              ; preds = %578
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(60) @.str.294)
          to label %580 unwind label %132

580:                                              ; preds = %579
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(60) @.str.295)
          to label %581 unwind label %132

581:                                              ; preds = %580
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(60) @.str.296)
          to label %582 unwind label %132

582:                                              ; preds = %581
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %583 unwind label %132

583:                                              ; preds = %582
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(60) @.str.297)
          to label %584 unwind label %132

584:                                              ; preds = %583
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(60) @.str.298)
          to label %585 unwind label %132

585:                                              ; preds = %584
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(60) @.str.299)
          to label %586 unwind label %132

586:                                              ; preds = %585
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %587 unwind label %132

587:                                              ; preds = %586
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(60) @.str.300)
          to label %588 unwind label %132

588:                                              ; preds = %587
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(60) @.str.301)
          to label %589 unwind label %132

589:                                              ; preds = %588
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(60) @.str.302)
          to label %590 unwind label %132

590:                                              ; preds = %589
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %591 unwind label %132

591:                                              ; preds = %590
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA81_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(81) @.str.284)
          to label %592 unwind label %132

592:                                              ; preds = %591
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA83_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(83) @.str.303)
          to label %593 unwind label %132

593:                                              ; preds = %592
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %594 unwind label %132

594:                                              ; preds = %593
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(59) @.str.286)
          to label %595 unwind label %132

595:                                              ; preds = %594
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(76) @.str.287)
          to label %596 unwind label %132

596:                                              ; preds = %595
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(49) @.str.288)
          to label %597 unwind label %132

597:                                              ; preds = %596
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %598 unwind label %132

598:                                              ; preds = %597
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %599 unwind label %132

599:                                              ; preds = %598, %562
  %600 = getelementptr inbounds i8, ptr %0, i64 9876
  %601 = load i8, ptr %600, align 4, !tbaa !190, !range !37, !noundef !38
  %602 = trunc nuw i8 %601 to i1
  br i1 %602, label %603, label %653

603:                                              ; preds = %599
  %604 = load i8, ptr %563, align 1, !tbaa !189, !range !37, !noundef !38
  %605 = trunc nuw i8 %604 to i1
  br i1 %605, label %612, label %606

606:                                              ; preds = %603
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(44) @.str.289)
          to label %607 unwind label %132

607:                                              ; preds = %606
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA56_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(56) @.str.290)
          to label %608 unwind label %132

608:                                              ; preds = %607
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %609 unwind label %132

609:                                              ; preds = %608
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA26_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(26) @.str.291)
          to label %610 unwind label %132

610:                                              ; preds = %609
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %611 unwind label %132

611:                                              ; preds = %610
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %612 unwind label %132

612:                                              ; preds = %611, %603
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(44) @.str.304)
          to label %613 unwind label %132

613:                                              ; preds = %612
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA106_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(106) @.str.305)
          to label %614 unwind label %132

614:                                              ; preds = %613
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %615 unwind label %132

615:                                              ; preds = %614
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.306)
          to label %616 unwind label %132

616:                                              ; preds = %615
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %617 unwind label %132

617:                                              ; preds = %616
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %618 unwind label %132

618:                                              ; preds = %617
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA88_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(88) @.str.275)
          to label %619 unwind label %132

619:                                              ; preds = %618
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA84_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(84) @.str.276)
          to label %620 unwind label %132

620:                                              ; preds = %619
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.307)
          to label %621 unwind label %132

621:                                              ; preds = %620
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %622 unwind label %132

622:                                              ; preds = %621
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(76) @.str.308)
          to label %623 unwind label %132

623:                                              ; preds = %622
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %624 unwind label %132

624:                                              ; preds = %623
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA82_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(82) @.str.279)
          to label %625 unwind label %132

625:                                              ; preds = %624
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.309)
          to label %626 unwind label %132

626:                                              ; preds = %625
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.310)
          to label %627 unwind label %132

627:                                              ; preds = %626
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.311)
          to label %628 unwind label %132

628:                                              ; preds = %627
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.312)
          to label %629 unwind label %132

629:                                              ; preds = %628
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %630 unwind label %132

630:                                              ; preds = %629
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.313)
          to label %631 unwind label %132

631:                                              ; preds = %630
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.314)
          to label %632 unwind label %132

632:                                              ; preds = %631
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.315)
          to label %633 unwind label %132

633:                                              ; preds = %632
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.316)
          to label %634 unwind label %132

634:                                              ; preds = %633
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %635 unwind label %132

635:                                              ; preds = %634
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.317)
          to label %636 unwind label %132

636:                                              ; preds = %635
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.318)
          to label %637 unwind label %132

637:                                              ; preds = %636
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.319)
          to label %638 unwind label %132

638:                                              ; preds = %637
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.320)
          to label %639 unwind label %132

639:                                              ; preds = %638
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %640 unwind label %132

640:                                              ; preds = %639
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.321)
          to label %641 unwind label %132

641:                                              ; preds = %640
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.322)
          to label %642 unwind label %132

642:                                              ; preds = %641
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.323)
          to label %643 unwind label %132

643:                                              ; preds = %642
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(105) @.str.324)
          to label %644 unwind label %132

644:                                              ; preds = %643
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %645 unwind label %132

645:                                              ; preds = %644
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA81_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(81) @.str.284)
          to label %646 unwind label %132

646:                                              ; preds = %645
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA107_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(107) @.str.325)
          to label %647 unwind label %132

647:                                              ; preds = %646
  invoke void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %648 unwind label %132

648:                                              ; preds = %647
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(59) @.str.286)
          to label %649 unwind label %132

649:                                              ; preds = %648
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(76) @.str.287)
          to label %650 unwind label %132

650:                                              ; preds = %649
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(49) @.str.288)
          to label %651 unwind label %132

651:                                              ; preds = %650
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %652 unwind label %132

652:                                              ; preds = %651
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %653 unwind label %132

653:                                              ; preds = %652, %599
  %654 = getelementptr inbounds i8, ptr %0, i64 9877
  %655 = load i8, ptr %654, align 1, !tbaa !191, !range !37, !noundef !38
  %656 = trunc nuw i8 %655 to i1
  br i1 %656, label %657, label %662

657:                                              ; preds = %653
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(35) @.str.326)
          to label %658 unwind label %132

658:                                              ; preds = %657
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %659 unwind label %132

659:                                              ; preds = %658
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.327)
          to label %660 unwind label %132

660:                                              ; preds = %659
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %661 unwind label %132

661:                                              ; preds = %660
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %662 unwind label %132

662:                                              ; preds = %661, %653
  %663 = getelementptr inbounds i8, ptr %0, i64 9878
  %664 = load i8, ptr %663, align 2, !tbaa !192, !range !37, !noundef !38
  %665 = trunc nuw i8 %664 to i1
  br i1 %665, label %666, label %681

666:                                              ; preds = %662
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA46_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(46) @.str.328)
          to label %667 unwind label %132

667:                                              ; preds = %666
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %668 unwind label %132

668:                                              ; preds = %667
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA19_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(19) @.str.329)
          to label %669 unwind label %132

669:                                              ; preds = %668
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA24_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(24) @.str.330)
          to label %670 unwind label %132

670:                                              ; preds = %669
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA42_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(42) @.str.331)
          to label %671 unwind label %132

671:                                              ; preds = %670
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA13_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(13) @.str.332)
          to label %672 unwind label %132

672:                                              ; preds = %671
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %673 unwind label %132

673:                                              ; preds = %672
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA12_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(12) @.str.333)
          to label %674 unwind label %132

674:                                              ; preds = %673
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %675 unwind label %132

675:                                              ; preds = %674
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA5_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(5) @.str.113)
          to label %676 unwind label %132

676:                                              ; preds = %675
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %677 unwind label %132

677:                                              ; preds = %676
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(44) @.str.334)
          to label %678 unwind label %132

678:                                              ; preds = %677
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %679 unwind label %132

679:                                              ; preds = %678
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %680 unwind label %132

680:                                              ; preds = %679
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %681 unwind label %132

681:                                              ; preds = %680, %662
  %682 = getelementptr inbounds i8, ptr %0, i64 9879
  %683 = load i8, ptr %682, align 1, !tbaa !193, !range !37, !noundef !38
  %684 = trunc nuw i8 %683 to i1
  br i1 %684, label %685, label %690

685:                                              ; preds = %681
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA51_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(51) @.str.335)
          to label %686 unwind label %132

686:                                              ; preds = %685
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %687 unwind label %132

687:                                              ; preds = %686
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(32) @.str.336)
          to label %688 unwind label %132

688:                                              ; preds = %687
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %689 unwind label %132

689:                                              ; preds = %688
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %690 unwind label %132

690:                                              ; preds = %689, %681
  %691 = getelementptr inbounds i8, ptr %0, i64 10504
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #6
  %692 = call ptr @_ZNSt6vectorIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %691) #6
  store ptr %692, ptr %20, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  %693 = call ptr @_ZNSt6vectorIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %691) #6
  store ptr %693, ptr %21, align 8
  %694 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN11spirv_cross7TypedIDILNS1_5TypesE1EEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #6
  br i1 %694, label %.lr.ph204, label %._crit_edge205

._crit_edge205:                                   ; preds = %719, %690
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  br i1 %117, label %747, label %733

.lr.ph204:                                        ; preds = %690, %719
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  %695 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN11spirv_cross7TypedIDILNS1_5TypesE1EEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  %696 = load i32, ptr %695, align 4, !tbaa !166
  store i32 %696, ptr %22, align 4, !tbaa !166
  %697 = call noundef i32 @_ZNK11spirv_cross7TypedIDILNS_5TypesE1EEcvjEv(ptr noundef nonnull align 4 dereferenceable(4) %22)
  %698 = invoke noundef nonnull align 8 dereferenceable(336) ptr @_ZN11spirv_cross8Compiler3getINS_8SPIRTypeEEERT_j(ptr noundef nonnull align 8 dereferenceable(3176) %0, i32 noundef %697)
          to label %699 unwind label %722

699:                                              ; preds = %.lr.ph204
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #6
  %700 = load ptr, ptr %0, align 8, !tbaa !5
  %701 = getelementptr inbounds i8, ptr %700, i64 152
  %702 = load ptr, ptr %701, align 8
  invoke void %702(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(10528) %0, ptr noundef nonnull align 8 dereferenceable(336) %698, i32 noundef 0)
          to label %703 unwind label %724

703:                                              ; preds = %699
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #6
  %704 = load ptr, ptr %0, align 8, !tbaa !5
  %705 = getelementptr inbounds i8, ptr %704, i64 304
  %706 = load ptr, ptr %705, align 8
  invoke void %706(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 8 dereferenceable(336) %698, i32 noundef 0)
          to label %707 unwind label %726

707:                                              ; preds = %703
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA11_S2_SB_RA14_S2_SB_RA10_S2_SB_RA3_S2_SB_SD_SB_RA2_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(29) @.str.337, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 1 dereferenceable(11) @.str.338, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 1 dereferenceable(14) @.str.339, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 1 dereferenceable(10) @.str.340, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 1 dereferenceable(3) @.str.341, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 1 dereferenceable(11) @.str.342, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 1 dereferenceable(2) @.str.78)
          to label %708 unwind label %728

708:                                              ; preds = %707
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %709 unwind label %728

709:                                              ; preds = %708
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA10_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(10) @.str.343)
          to label %710 unwind label %728

710:                                              ; preds = %709
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %711 unwind label %728

711:                                              ; preds = %710
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(22) @.str.344)
          to label %712 unwind label %728

712:                                              ; preds = %711
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %713 unwind label %728

713:                                              ; preds = %712
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA5_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(5) @.str.113)
          to label %714 unwind label %728

714:                                              ; preds = %713
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %715 unwind label %728

715:                                              ; preds = %714
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA23_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(23) @.str.345)
          to label %716 unwind label %728

716:                                              ; preds = %715
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %717 unwind label %728

717:                                              ; preds = %716
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %718 unwind label %728

718:                                              ; preds = %717
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %719 unwind label %728

719:                                              ; preds = %718
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  %720 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN11spirv_cross7TypedIDILNS1_5TypesE1EEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  %721 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN11spirv_cross7TypedIDILNS1_5TypesE1EEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #6
  br i1 %721, label %.lr.ph204, label %._crit_edge205

722:                                              ; preds = %.lr.ph204
  %723 = landingpad { ptr, i32 }
          cleanup
  br label %732

724:                                              ; preds = %699
  %725 = landingpad { ptr, i32 }
          cleanup
  br label %731

726:                                              ; preds = %703
  %727 = landingpad { ptr, i32 }
          cleanup
  br label %730

728:                                              ; preds = %718, %717, %716, %715, %714, %713, %712, %711, %710, %709, %708, %707
  %729 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %730

730:                                              ; preds = %728, %726
  %.pn = phi { ptr, i32 } [ %729, %728 ], [ %727, %726 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %731

731:                                              ; preds = %730, %724
  %.pn.pn = phi { ptr, i32 } [ %.pn, %730 ], [ %725, %724 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  br label %732

732:                                              ; preds = %731, %722
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %731 ], [ %723, %722 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  br label %748

733:                                              ; preds = %._crit_edge205
  %734 = getelementptr inbounds i8, ptr %0, i64 7665
  %735 = load i8, ptr %734, align 1, !tbaa !194, !range !37, !noundef !38
  %736 = trunc nuw i8 %735 to i1
  br i1 %736, label %737, label %747

737:                                              ; preds = %733
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA30_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(30) @.str.346)
          to label %738 unwind label %132

738:                                              ; preds = %737
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %739 unwind label %132

739:                                              ; preds = %738
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(36) @.str.347)
          to label %740 unwind label %132

740:                                              ; preds = %739
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %741 unwind label %132

741:                                              ; preds = %740
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %742 unwind label %132

742:                                              ; preds = %741
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA28_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(28) @.str.348)
          to label %743 unwind label %132

743:                                              ; preds = %742
  invoke void @_ZN11spirv_cross12CompilerGLSL11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %744 unwind label %132

744:                                              ; preds = %743
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA11_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(11) @.str.349)
          to label %745 unwind label %132

745:                                              ; preds = %744
  invoke void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848) %0)
          to label %746 unwind label %132

746:                                              ; preds = %745
  invoke void @_ZN11spirv_cross12CompilerGLSL9statementIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848) %0, ptr noundef nonnull align 1 dereferenceable(1) @.str.9)
          to label %747 unwind label %132

747:                                              ; preds = %746, %733, %._crit_edge205
  call void @_ZN11spirv_cross6BitsetD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %13) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #6
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EED2Ev(ptr noundef nonnull align 8 dereferenceable(216) %11) #6
  call void @llvm.lifetime.end.p0(i64 216, ptr nonnull %11) #6
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EED2Ev(ptr noundef nonnull align 8 dereferenceable(216) %10) #6
  call void @llvm.lifetime.end.p0(i64 216, ptr nonnull %10) #6
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %9) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %9) #6
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #6
  ret void

748:                                              ; preds = %132, %134, %139, %172, %281, %346, %481, %506, %536, %732, %257, %200, %108, %97
  %.pn151.pn.pn.pn.pn = phi { ptr, i32 } [ %109, %108 ], [ %98, %97 ], [ %282, %281 ], [ %347, %346 ], [ %482, %481 ], [ %507, %506 ], [ %537, %536 ], [ %.pn.pn.pn, %732 ], [ %133, %132 ], [ %140, %139 ], [ %173, %172 ], [ %135, %134 ], [ %.pn151.pn, %257 ], [ %201, %200 ]
  call void @_ZN11spirv_cross6BitsetD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %13) #6
  br label %749

749:                                              ; preds = %748, %95
  %.pn151.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn.pn.pn, %748 ], [ %96, %95 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #6
  br label %750

750:                                              ; preds = %749, %93
  %.pn151.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn.pn.pn.pn, %749 ], [ %94, %93 ]
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EED2Ev(ptr noundef nonnull align 8 dereferenceable(216) %11) #6
  call void @llvm.lifetime.end.p0(i64 216, ptr nonnull %11) #6
  call void @_ZN11spirv_cross11SmallVectorIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableLm8EED2Ev(ptr noundef nonnull align 8 dereferenceable(216) %10) #6
  call void @llvm.lifetime.end.p0(i64 216, ptr nonnull %10) #6
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %9) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %9) #6
  call void @_ZNSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %8) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #6
  resume { ptr, i32 } %.pn151.pn.pn.pn.pn.pn.pn
}

declare void @_ZN11spirv_cross12CompilerGLSL34fixup_implicit_builtin_block_namesEN3spv14ExecutionModelE(ptr noundef nonnull align 8 dereferenceable(9848), i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_0EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_1EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(29)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_2EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_3EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN11spirv_cross8ParsedIR17for_each_typed_idINS_12SPIRVariableEZNS_12CompilerHLSL14emit_resourcesEvE3$_4EEvRKT0_"(ptr noundef nonnull align 8 dereferenceable(1920), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross6Bitset5clearEj(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZNK11spirv_cross10VectorViewIZNS_12CompilerHLSL14emit_resourcesEvE10IOVariableE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA25_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(25)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIPZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10IOVariableZNS1_14emit_resourcesEvE3$_5EvT_S5_T0_"(ptr noundef, ptr noundef, ptr) local_unnamed_addr #3

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJPKcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

declare noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL25is_per_primitive_variableERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #4

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

declare noundef zeroext i1 @_ZNK11spirv_cross8Compiler18is_hidden_variableERKNS_12SPIRVariableEb(ptr noundef nonnull align 8 dereferenceable(3176), ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext) local_unnamed_addr #4

declare noundef zeroext i1 @_ZNK11spirv_cross12CompilerGLSL15variable_is_lutERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(336) ptr @_ZN11spirv_cross8Compiler22get_variable_data_typeERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(3176), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #4

declare noundef i32 @_ZNK11spirv_cross8Compiler25get_variable_data_type_idERKNS_12SPIRVariableE(ptr noundef nonnull align 8 dereferenceable(3176), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA2_S2_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSC_S6_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA6_S2_S4_RA5_S2_S4_RA4_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(4)) local_unnamed_addr #3 align 2

declare void @_ZN11spirv_cross12CompilerGLSL9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(9848)) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA35_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(35)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA32_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA36_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(36)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA37_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(37)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA53_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(53)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA38_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(38)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA54_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(54)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA40_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(40)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA16_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA39_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(39)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA17_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(17)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA41_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(41)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA43_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(43)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA66_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(66)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA73_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(73)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA92_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(92)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA31_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(31)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA67_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(67)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA79_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(79)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA95_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(95)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA49_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(49)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA56_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(56)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA51_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(51)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA33_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(33)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA71_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(71)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA42_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(42)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA58_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(58)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA20_S2_S4_RA8_S2_S4_RA34_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(34)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA32_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(22), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA59_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(59)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA22_S2_S4_RA30_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(22), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(30)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA50_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(50)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRPKcRA35_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(35)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA47_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(47)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA88_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(88)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA84_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(84)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA76_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(76)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL19statement_no_indentIJRA1_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA82_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(82)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA22_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(22)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA81_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(81)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA44_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(44)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA26_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(26)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA60_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(60)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA83_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(83)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA106_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(106)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA105_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(105)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA107_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(107)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA46_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(46)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA19_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(19)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA13_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(13)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA12_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(12)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA5_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(5)) local_unnamed_addr #3 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA29_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA11_S2_SB_RA14_S2_SB_RA10_S2_SB_RA3_S2_SB_SD_SB_RA2_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(29), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA10_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(10)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA23_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(23)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11spirv_cross12CompilerGLSL9statementIJRA11_KcEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(9848), ptr noundef nonnull align 1 dereferenceable(11)) local_unnamed_addr #3 align 2

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { 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 #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !27, i64 232}
!9 = !{!"_ZTSN11spirv_cross14SPIREntryPointE", !10, i64 0, !13, i64 8, !13, i64 40, !17, i64 72, !20, i64 128, !26, i64 192, !11, i64 220, !11, i64 224, !11, i64 228, !27, i64 232, !28, i64 236}
!10 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE4EEE", !11, i64 0}
!11 = !{!"int", !12, i64 0}
!12 = !{!"omnipotent char", !7, i64 0}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !14, i64 0, !16, i64 8, !12, i64 16}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !15, i64 0}
!15 = !{!"any pointer", !12, i64 0}
!16 = !{!"long", !12, i64 0}
!17 = !{!"_ZTSN11spirv_cross11SmallVectorINS_7TypedIDILNS_5TypesE2EEELm8EEE", !18, i64 0, !16, i64 16, !19, i64 24}
!18 = !{!"_ZTSN11spirv_cross10VectorViewINS_7TypedIDILNS_5TypesE2EEEEE", !15, i64 0, !16, i64 8}
!19 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_7TypedIDILNS_5TypesE2EEELm8EEE", !12, i64 0}
!20 = !{!"_ZTSN11spirv_cross6BitsetE", !16, i64 0, !21, i64 8}
!21 = !{!"_ZTSSt13unordered_setIjSt4hashIjESt8equal_toIjESaIjEE", !22, i64 0}
!22 = !{!"_ZTSSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!23 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !15, i64 0}
!24 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !25, i64 0, !16, i64 8}
!25 = !{!"float", !12, i64 0}
!26 = !{!"_ZTSN11spirv_cross14SPIREntryPoint13WorkgroupSizeE", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24}
!27 = !{!"_ZTSN3spv14ExecutionModelE", !12, i64 0}
!28 = !{!"bool", !12, i64 0}
!29 = !{!28, !28, i64 0}
!30 = !{!31, !15, i64 0}
!31 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_0", !15, i64 0, !15, i64 8}
!32 = !{!15, !15, i64 0}
!33 = !{!34, !15, i64 0}
!34 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_1", !15, i64 0, !15, i64 8}
!35 = !{!36, !15, i64 0}
!36 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_2", !15, i64 0, !15, i64 8, !15, i64 16}
!37 = !{i8 0, i8 2}
!38 = !{}
!39 = !{!40, !15, i64 0}
!40 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_3", !15, i64 0, !15, i64 8}
!41 = !{!42, !28, i64 9985}
!42 = !{!"_ZTSN11spirv_cross12CompilerHLSLE", !43, i64 0, !140, i64 9848, !28, i64 9864, !28, i64 9865, !28, i64 9866, !28, i64 9867, !28, i64 9868, !28, i64 9869, !28, i64 9870, !28, i64 9871, !28, i64 9872, !28, i64 9873, !28, i64 9874, !28, i64 9875, !28, i64 9876, !28, i64 9877, !28, i64 9878, !28, i64 9879, !141, i64 9880, !28, i64 9984, !28, i64 9985, !142, i64 9992, !11, i64 10336, !11, i64 10340, !145, i64 10344, !11, i64 10368, !149, i64 10376, !151, i64 10432, !153, i64 10488, !154, i64 10504}
!43 = !{!"_ZTSN11spirv_cross12CompilerGLSLE", !44, i64 0, !15, i64 3176, !98, i64 3184, !28, i64 3272, !101, i64 3280, !15, i64 7616, !15, i64 7624, !28, i64 7632, !28, i64 7633, !106, i64 7636, !110, i64 7680, !110, i64 7736, !110, i64 7792, !110, i64 7848, !110, i64 7904, !110, i64 7960, !110, i64 8016, !112, i64 8072, !96, i64 8128, !28, i64 8184, !114, i64 8192, !11, i64 8416, !21, i64 8424, !21, i64 8480, !21, i64 8536, !116, i64 8592, !118, i64 8648, !119, i64 8656, !69, i64 8712, !69, i64 8992, !119, i64 9272, !121, i64 9328, !11, i64 9384, !11, i64 9388, !11, i64 9392, !28, i64 9396, !28, i64 9397, !124, i64 9400, !124, i64 9424, !128, i64 9448, !132, i64 9472, !119, i64 9496, !21, i64 9552, !21, i64 9608, !12, i64 9664, !136, i64 9672, !21, i64 9728, !15, i64 9784, !138, i64 9792}
!44 = !{!"_ZTSN11spirv_cross8CompilerE", !45, i64 8, !82, i64 1928, !82, i64 1984, !15, i64 2040, !15, i64 2048, !11, i64 2056, !85, i64 2064, !28, i64 2120, !21, i64 2128, !28, i64 2184, !28, i64 2185, !87, i64 2192, !82, i64 2312, !90, i64 2368, !21, i64 2400, !21, i64 2456, !21, i64 2512, !21, i64 2568, !21, i64 2624, !20, i64 2680, !20, i64 2744, !11, i64 2808, !11, i64 2812, !28, i64 2816, !21, i64 2824, !28, i64 2880, !28, i64 2881, !11, i64 2884, !92, i64 2888, !82, i64 2944, !94, i64 3000, !21, i64 3056, !28, i64 3112, !96, i64 3120}
!45 = !{!"_ZTSN11spirv_cross8ParsedIRE", !46, i64 0, !52, i64 8, !56, i64 32, !59, i64 248, !12, i64 304, !61, i64 1088, !61, i64 1144, !64, i64 1200, !66, i64 1256, !69, i64 1312, !72, i64 1592, !75, i64 1624, !77, i64 1680, !10, i64 1736, !79, i64 1740, !80, i64 1748, !81, i64 1752, !11, i64 1756, !11, i64 1760, !13, i64 1768, !20, i64 1800, !21, i64 1864}
!46 = !{!"_ZTSSt10unique_ptrIN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_EE", !47, i64 0}
!47 = !{!"_ZTSSt15__uniq_ptr_dataIN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_ELb1ELb1EE", !48, i64 0}
!48 = !{!"_ZTSSt15__uniq_ptr_implIN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_EE", !49, i64 0}
!49 = !{!"_ZTSSt5tupleIJPN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_EEE", !50, i64 0}
!50 = !{!"_ZTSSt11_Tuple_implILm0EJPN11spirv_cross15ObjectPoolGroupESt14default_deleteIS1_EEE", !51, i64 0}
!51 = !{!"_ZTSSt10_Head_baseILm0EPN11spirv_cross15ObjectPoolGroupELb0EE", !15, i64 0}
!52 = !{!"_ZTSSt6vectorIjSaIjEE", !53, i64 0}
!53 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!56 = !{!"_ZTSN11spirv_cross11SmallVectorINS_7VariantELm8EEE", !57, i64 0, !16, i64 16, !58, i64 24}
!57 = !{!"_ZTSN11spirv_cross10VectorViewINS_7VariantEEE", !15, i64 0, !16, i64 8}
!58 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_7VariantELm8EEE", !12, i64 0}
!59 = !{!"_ZTSSt13unordered_mapIN11spirv_cross7TypedIDILNS0_5TypesE0EEENS0_4MetaESt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_S4_EEE", !60, i64 0}
!60 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE0EEESt4pairIKS3_NS0_4MetaEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!61 = !{!"_ZTSN11spirv_cross11SmallVectorINS_7TypedIDILNS_5TypesE0EEELm8EEE", !62, i64 0, !16, i64 16, !63, i64 24}
!62 = !{!"_ZTSN11spirv_cross10VectorViewINS_7TypedIDILNS_5TypesE0EEEEE", !15, i64 0, !16, i64 8}
!63 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_7TypedIDILNS_5TypesE0EEELm8EEE", !12, i64 0}
!64 = !{!"_ZTSSt13unordered_mapIN11spirv_cross7TypedIDILNS0_5TypesE0EEEjSt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_jEEE", !65, i64 0}
!65 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE0EEESt4pairIKS3_jESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!66 = !{!"_ZTSN11spirv_cross11SmallVectorIN3spv10CapabilityELm8EEE", !67, i64 0, !16, i64 16, !68, i64 24}
!67 = !{!"_ZTSN11spirv_cross10VectorViewIN3spv10CapabilityEEE", !15, i64 0, !16, i64 8}
!68 = !{!"_ZTSN11spirv_cross13AlignedBufferIN3spv10CapabilityELm8EEE", !12, i64 0}
!69 = !{!"_ZTSN11spirv_cross11SmallVectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELm8EEE", !70, i64 0, !16, i64 16, !71, i64 24}
!70 = !{!"_ZTSN11spirv_cross10VectorViewINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !15, i64 0, !16, i64 8}
!71 = !{!"_ZTSN11spirv_cross13AlignedBufferINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELm8EEE", !12, i64 0}
!72 = !{!"_ZTSN11spirv_cross11SmallVectorIhLm8EEE", !73, i64 0, !16, i64 16, !74, i64 24}
!73 = !{!"_ZTSN11spirv_cross10VectorViewIhEE", !15, i64 0, !16, i64 8}
!74 = !{!"_ZTSN11spirv_cross13AlignedBufferIhLm8EEE", !12, i64 0}
!75 = !{!"_ZTSSt13unordered_mapIN11spirv_cross7TypedIDILNS0_5TypesE6EEES3_St4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_S3_EEE", !76, i64 0}
!76 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE6EEESt4pairIKS3_S3_ESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!77 = !{!"_ZTSSt13unordered_mapIN11spirv_cross7TypedIDILNS0_5TypesE4EEENS0_14SPIREntryPointESt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_S4_EEE", !78, i64 0}
!78 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE4EEESt4pairIKS3_NS0_14SPIREntryPointEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!79 = !{!"_ZTSN11spirv_cross8ParsedIR6SourceE", !11, i64 0, !28, i64 4, !28, i64 5, !28, i64 6}
!80 = !{!"_ZTSN3spv15AddressingModelE", !12, i64 0}
!81 = !{!"_ZTSN3spv11MemoryModelE", !12, i64 0}
!82 = !{!"_ZTSN11spirv_cross11SmallVectorIjLm8EEE", !83, i64 0, !16, i64 16, !84, i64 24}
!83 = !{!"_ZTSN11spirv_cross10VectorViewIjEE", !15, i64 0, !16, i64 8}
!84 = !{!"_ZTSN11spirv_cross13AlignedBufferIjLm8EEE", !12, i64 0}
!85 = !{!"_ZTSSt13unordered_setIN11spirv_cross7TypedIDILNS0_5TypesE2EEESt4hashIS3_ESt8equal_toIS3_ESaIS3_EE", !86, i64 0}
!86 = !{!"_ZTSSt10_HashtableIN11spirv_cross7TypedIDILNS0_5TypesE2EEES3_SaIS3_ENSt8__detail9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb1ELb1ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!87 = !{!"_ZTSN11spirv_cross11SmallVectorINS_20CombinedImageSamplerELm8EEE", !88, i64 0, !16, i64 16, !89, i64 24}
!88 = !{!"_ZTSN11spirv_cross10VectorViewINS_20CombinedImageSamplerEEE", !15, i64 0, !16, i64 8}
!89 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_20CombinedImageSamplerELm8EEE", !12, i64 0}
!90 = !{!"_ZTSSt8functionIFvRKN11spirv_cross8SPIRTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS9_EE", !91, i64 0, !15, i64 24}
!91 = !{!"_ZTSSt14_Function_base", !12, i64 0, !15, i64 16}
!92 = !{!"_ZTSSt13unordered_mapIjSt10unique_ptrIN11spirv_cross3CFGESt14default_deleteIS2_EESt4hashIjESt8equal_toIjESaISt4pairIKjS5_EEE", !93, i64 0}
!93 = !{!"_ZTSSt10_HashtableIjSt4pairIKjSt10unique_ptrIN11spirv_cross3CFGESt14default_deleteIS4_EEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!94 = !{!"_ZTSSt13unordered_mapIjN11spirv_cross8Compiler17PhysicalBlockMetaESt4hashIjESt8equal_toIjESaISt4pairIKjS2_EEE", !95, i64 0}
!95 = !{!"_ZTSSt10_HashtableIjSt4pairIKjN11spirv_cross8Compiler17PhysicalBlockMetaEESaIS5_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!96 = !{!"_ZTSSt13unordered_mapIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIjESt8equal_toIjESaISt4pairIKjS5_EEE", !97, i64 0}
!97 = !{!"_ZTSSt10_HashtableIjSt4pairIKjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!98 = !{!"_ZTSN11spirv_cross11SmallVectorIPNS_9SPIRBlockELm8EEE", !99, i64 0, !16, i64 16, !100, i64 24}
!99 = !{!"_ZTSN11spirv_cross10VectorViewIPNS_9SPIRBlockEEE", !15, i64 0, !16, i64 8}
!100 = !{!"_ZTSN11spirv_cross13AlignedBufferIPNS_9SPIRBlockELm8EEE", !12, i64 0}
!101 = !{!"_ZTSN11spirv_cross12StringStreamILm4096ELm4096EEE", !102, i64 0, !12, i64 24, !103, i64 4120}
!102 = !{!"_ZTSN11spirv_cross12StringStreamILm4096ELm4096EE6BufferE", !15, i64 0, !16, i64 8, !16, i64 16}
!103 = !{!"_ZTSN11spirv_cross11SmallVectorINS_12StringStreamILm4096ELm4096EE6BufferELm8EEE", !104, i64 0, !16, i64 16, !105, i64 24}
!104 = !{!"_ZTSN11spirv_cross10VectorViewINS_12StringStreamILm4096ELm4096EE6BufferEEE", !15, i64 0, !16, i64 8}
!105 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_12StringStreamILm4096ELm4096EE6BufferELm8EEE", !12, i64 0}
!106 = !{!"_ZTSN11spirv_cross12CompilerGLSL7OptionsE", !11, i64 0, !28, i64 4, !28, i64 5, !11, i64 8, !28, i64 12, !28, i64 13, !28, i64 14, !28, i64 15, !28, i64 16, !28, i64 17, !28, i64 18, !28, i64 19, !28, i64 20, !28, i64 21, !28, i64 22, !28, i64 23, !11, i64 24, !107, i64 28, !108, i64 32}
!107 = !{!"_ZTSN11spirv_cross12CompilerGLSL7Options13VertexOptionsE", !28, i64 0, !28, i64 1, !28, i64 2}
!108 = !{!"_ZTSN11spirv_cross12CompilerGLSL7Options15FragmentOptionsE", !109, i64 0, !109, i64 4}
!109 = !{!"_ZTSN11spirv_cross12CompilerGLSL7Options9PrecisionE", !12, i64 0}
!110 = !{!"_ZTSSt13unordered_setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIS5_ESt8equal_toIS5_ESaIS5_EE", !111, i64 0}
!111 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_ENSt8__detail9_IdentityESt8equal_toIS5_ESt4hashIS5_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb1ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!112 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13unordered_setImSt4hashImESt8equal_toImESaImEES7_IS5_ES9_IS5_ESaISt4pairIKS5_SC_EEE", !113, i64 0}
!113 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St13unordered_setImSt4hashImESt8equal_toImESaImEEESaISF_ENSt8__detail10_Select1stESB_IS5_ES9_IS5_ENSH_18_Mod_range_hashingENSH_20_Default_ranged_hashENSH_20_Prime_rehash_policyENSH_17_Hashtable_traitsILb1ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!114 = !{!"_ZTSN11spirv_cross12CompilerGLSL17BackendVariationsE", !13, i64 0, !13, i64 32, !13, i64 64, !28, i64 96, !28, i64 97, !28, i64 98, !28, i64 99, !15, i64 104, !15, i64 112, !15, i64 120, !15, i64 128, !15, i64 136, !15, i64 144, !15, i64 152, !15, i64 160, !15, i64 168, !15, i64 176, !115, i64 184, !28, i64 188, !28, i64 189, !28, i64 190, !28, i64 191, !28, i64 192, !28, i64 193, !28, i64 194, !28, i64 195, !28, i64 196, !28, i64 197, !28, i64 198, !28, i64 199, !28, i64 200, !28, i64 201, !28, i64 202, !28, i64 203, !28, i64 204, !28, i64 205, !28, i64 206, !28, i64 207, !28, i64 208, !28, i64 209, !28, i64 210, !28, i64 211, !28, i64 212, !28, i64 213, !28, i64 214, !28, i64 215, !28, i64 216, !28, i64 217, !28, i64 218, !28, i64 219}
!115 = !{!"_ZTSN11spirv_cross8SPIRType8BaseTypeE", !12, i64 0}
!116 = !{!"_ZTSSt13unordered_mapIjbSt4hashIjESt8equal_toIjESaISt4pairIKjbEEE", !117, i64 0}
!117 = !{!"_ZTSSt10_HashtableIjSt4pairIKjbESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!118 = !{!"_ZTSN11spirv_cross12CompilerGLSL27ShaderSubgroupSupportHelperE", !11, i64 0}
!119 = !{!"_ZTSSt13unordered_mapIjjSt4hashIjESt8equal_toIjESaISt4pairIKjjEEE", !120, i64 0}
!120 = !{!"_ZTSSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!121 = !{!"_ZTSN11spirv_cross11SmallVectorINS_7TypedIDILNS_5TypesE1EEELm8EEE", !122, i64 0, !16, i64 16, !123, i64 24}
!122 = !{!"_ZTSN11spirv_cross10VectorViewINS_7TypedIDILNS_5TypesE1EEEEE", !15, i64 0, !16, i64 8}
!123 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_7TypedIDILNS_5TypesE1EEELm8EEE", !12, i64 0}
!124 = !{!"_ZTSSt6vectorIN11spirv_cross8PlsRemapESaIS1_EE", !125, i64 0}
!125 = !{!"_ZTSSt12_Vector_baseIN11spirv_cross8PlsRemapESaIS1_EE", !126, i64 0}
!126 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross8PlsRemapESaIS1_EE12_Vector_implE", !127, i64 0}
!127 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross8PlsRemapESaIS1_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!128 = !{!"_ZTSSt6vectorISt4pairIjjESaIS1_EE", !129, i64 0}
!129 = !{!"_ZTSSt12_Vector_baseISt4pairIjjESaIS1_EE", !130, i64 0}
!130 = !{!"_ZTSNSt12_Vector_baseISt4pairIjjESaIS1_EE12_Vector_implE", !131, i64 0}
!131 = !{!"_ZTSNSt12_Vector_baseISt4pairIjjESaIS1_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!132 = !{!"_ZTSSt6vectorISt4pairIjbESaIS1_EE", !133, i64 0}
!133 = !{!"_ZTSSt12_Vector_baseISt4pairIjbESaIS1_EE", !134, i64 0}
!134 = !{!"_ZTSNSt12_Vector_baseISt4pairIjbESaIS1_EE12_Vector_implE", !135, i64 0}
!135 = !{!"_ZTSNSt12_Vector_baseISt4pairIjbESaIS1_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!136 = !{!"_ZTSSt13unordered_setIN11spirv_cross21LocationComponentPairENS0_14InternalHasherESt8equal_toIS1_ESaIS1_EE", !137, i64 0}
!137 = !{!"_ZTSSt10_HashtableIN11spirv_cross21LocationComponentPairES1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ENS0_14InternalHasherENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb1ELb1ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!138 = !{!"_ZTSSt13unordered_mapIjN11spirv_cross11SmallVectorINS0_7TypedIDILNS0_5TypesE3EEELm8EEESt4hashIjESt8equal_toIjESaISt4pairIKjS5_EEE", !139, i64 0}
!139 = !{!"_ZTSSt10_HashtableIjSt4pairIKjN11spirv_cross11SmallVectorINS2_7TypedIDILNS2_5TypesE3EEELm8EEEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!140 = !{!"_ZTSN11spirv_cross12CompilerHLSL7OptionsE", !11, i64 0, !28, i64 4, !28, i64 5, !28, i64 6, !28, i64 7, !28, i64 8, !28, i64 9, !28, i64 10, !28, i64 11, !28, i64 12}
!141 = !{!"_ZTSN11spirv_cross12CompilerHLSL19TextureSizeVariantsE", !16, i64 0, !12, i64 8}
!142 = !{!"_ZTSN11spirv_cross11SmallVectorINS_24HLSLVertexAttributeRemapELm8EEE", !143, i64 0, !16, i64 16, !144, i64 24}
!143 = !{!"_ZTSN11spirv_cross10VectorViewINS_24HLSLVertexAttributeRemapEEE", !15, i64 0, !16, i64 8}
!144 = !{!"_ZTSN11spirv_cross13AlignedBufferINS_24HLSLVertexAttributeRemapELm8EEE", !12, i64 0}
!145 = !{!"_ZTSSt6vectorIN11spirv_cross13RootConstantsESaIS1_EE", !146, i64 0}
!146 = !{!"_ZTSSt12_Vector_baseIN11spirv_cross13RootConstantsESaIS1_EE", !147, i64 0}
!147 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross13RootConstantsESaIS1_EE12_Vector_implE", !148, i64 0}
!148 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross13RootConstantsESaIS1_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!149 = !{!"_ZTSSt13unordered_mapIN11spirv_cross15StageSetBindingESt4pairINS0_19HLSLResourceBindingEbENS0_14InternalHasherESt8equal_toIS1_ESaIS2_IKS1_S4_EEE", !150, i64 0}
!150 = !{!"_ZTSSt10_HashtableIN11spirv_cross15StageSetBindingESt4pairIKS1_S2_INS0_19HLSLResourceBindingEbEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS1_ENS0_14InternalHasherENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!151 = !{!"_ZTSSt13unordered_setIN11spirv_cross14SetBindingPairENS0_14InternalHasherESt8equal_toIS1_ESaIS1_EE", !152, i64 0}
!152 = !{!"_ZTSSt10_HashtableIN11spirv_cross14SetBindingPairES1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ENS0_14InternalHasherENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb1ELb1ELb1EEEE", !15, i64 0, !16, i64 8, !23, i64 16, !16, i64 24, !24, i64 32, !15, i64 48}
!153 = !{!"_ZTSN11spirv_cross12CompilerHLSLUt_E", !11, i64 0, !11, i64 4, !28, i64 8, !28, i64 9}
!154 = !{!"_ZTSSt6vectorIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE", !155, i64 0}
!155 = !{!"_ZTSSt12_Vector_baseIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE", !156, i64 0}
!156 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE12_Vector_implE", !157, i64 0}
!157 = !{!"_ZTSNSt12_Vector_baseIN11spirv_cross7TypedIDILNS0_5TypesE1EEESaIS3_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!158 = !{!42, !28, i64 9984}
!159 = !{!160, !15, i64 0}
!160 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE3$_4", !15, i64 0, !15, i64 8, !15, i64 16}
!161 = !{!162, !28, i64 16}
!162 = !{!"_ZTSZN11spirv_cross12CompilerHLSL14emit_resourcesEvE10IOVariable", !15, i64 0, !11, i64 8, !11, i64 12, !28, i64 16}
!163 = !{!162, !15, i64 0}
!164 = !{!162, !11, i64 12}
!165 = !{!162, !11, i64 8}
!166 = !{!11, !11, i64 0}
!167 = !{!168, !172, i64 16}
!168 = !{!"_ZTSN11spirv_cross12SPIRVariableE", !169, i64 0, !171, i64 12, !172, i64 16, !11, i64 20, !170, i64 24, !173, i64 28, !82, i64 32, !28, i64 88, !28, i64 89, !170, i64 92, !61, i64 96, !28, i64 152, !28, i64 153, !28, i64 154, !28, i64 155, !11, i64 156, !174, i64 160, !28, i64 164, !28, i64 165, !28, i64 166, !15, i64 168}
!169 = !{!"_ZTSN11spirv_cross8IVariantE", !170, i64 8}
!170 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE0EEE", !11, i64 0}
!171 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE1EEE", !11, i64 0}
!172 = !{!"_ZTSN3spv12StorageClassE", !12, i64 0}
!173 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE2EEE", !11, i64 0}
!174 = !{!"_ZTSN11spirv_cross7TypedIDILNS_5TypesE6EEE", !11, i64 0}
!175 = !{!43, !28, i64 7656}
!176 = !{!42, !28, i64 9864}
!177 = !{!42, !16, i64 9880}
!178 = !{!16, !16, i64 0}
!179 = !{!42, !28, i64 9865}
!180 = !{!42, !28, i64 9866}
!181 = !{!42, !28, i64 9867}
!182 = !{!42, !28, i64 9868}
!183 = !{!42, !28, i64 9869}
!184 = !{!42, !28, i64 9870}
!185 = !{!42, !28, i64 9871}
!186 = !{!42, !28, i64 9872}
!187 = !{!42, !28, i64 9873}
!188 = !{!42, !28, i64 9874}
!189 = !{!42, !28, i64 9875}
!190 = !{!42, !28, i64 9876}
!191 = !{!42, !28, i64 9877}
!192 = !{!42, !28, i64 9878}
!193 = !{!42, !28, i64 9879}
!194 = !{!43, !28, i64 7665}


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