; LLVM IR from hbatagelo/abcg :: abcg/external/glslang/glslang/MachineIndependent (ParseHelper)

; 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.__gnu_cxx::__normal_iterator.233" = type { ptr }
%"class.glslang::TParseVersions" = type { ptr, i8, i32, ptr, i32, i32, %"struct.glslang::SpvVersion", ptr, %"class.glslang::TMap", %"class.glslang::TMap.0", i32, i32, ptr }
%"struct.glslang::SpvVersion" = type <{ i32, i32, i32, i32, i8, [3 x i8] }>
%"class.glslang::TMap" = type { %"class.std::map" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>>>::_Rb_tree_impl" = type { %"class.glslang::pool_allocator", [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::pool_allocator" = type { ptr }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.glslang::TMap.0" = type { %"class.std::map.1" }
%"class.std::map.1" = type { %"class.std::_Rb_tree.2" }
%"class.std::_Rb_tree.2" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>>>::_Rb_tree_impl" = type { %"class.glslang::pool_allocator.3", [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::pool_allocator.3" = type { ptr }
%"class.glslang::TPublicType" = type { i32, %"struct.glslang::TSampler", %"class.glslang::TQualifier", %"struct.glslang::TShaderQualifiers", i16, ptr, ptr, %"struct.glslang::TSourceLoc", ptr, ptr }
%"struct.glslang::TSampler" = type { i32 }
%"class.glslang::TQualifier" = type <{ ptr, i64, i8, [3 x i8], i32, i32, i64, i64, i8, i8, i8, i8, i8, [3 x i8], i32, i8, [3 x i8], i32, ptr }>
%"struct.glslang::TShaderQualifiers" = type { i32, i8, i8, i32, i32, i32, i32, i8, [3 x i32], [3 x i8], [3 x i32], i8, i8, i32, i8, i32, i32, i8, i8, i8, i32, i8 }
%"struct.glslang::TSourceLoc" = type { ptr, i32, i32, i32 }
%"class.glslang::TParseContext" = type { %"class.glslang::TParseContextBase", i8, ptr, %"class.glslang::TQualifier", [22 x i32], %struct.TBuiltInResource, ptr, [5632 x i32], %"class.glslang::TPrecisionManager", %"class.glslang::TQualifier", %"class.glslang::TQualifier", %"class.glslang::TQualifier", %"class.glslang::TQualifier", %"class.glslang::TQualifier", %"class.std::__cxx11::basic_string", ptr, i8, %"class.std::set", %"class.glslang::TVector.35", %"class.std::map.39", %"class.std::map.39", %"class.glslang::TVector" }
%"class.glslang::TParseContextBase" = type { %"class.glslang::TParseVersions", ptr, ptr, i32, i32, i32, i32, i32, ptr, i8, i8, %"class.glslang::TList", %"class.glslang::TList.5", %"struct.glslang::TPragma", i32, i32, i8, %"class.glslang::TVector", ptr, ptr, %struct.TBuiltInResource, ptr, %"class.std::__cxx11::basic_string", %"class.std::function", %"class.std::function.15", %"class.std::function.17", %"class.std::function.19", %"class.std::function.21", ptr, i32, i32, i32, %"class.glslang::TMap.24", i32, %"class.glslang::TMap.29" }
%"class.glslang::TList" = type { %"class.std::__cxx11::list" }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<glslang::TVector<TIntermNode *> *, glslang::pool_allocator<glslang::TVector<TIntermNode *> *>>::_List_impl" }
%"struct.std::__cxx11::_List_base<glslang::TVector<TIntermNode *> *, glslang::pool_allocator<glslang::TVector<TIntermNode *> *>>::_List_impl" = type { %"class.glslang::pool_allocator.4", %"struct.std::__detail::_List_node_header" }
%"class.glslang::pool_allocator.4" = type { ptr }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.glslang::TList.5" = type { %"class.std::__cxx11::list.6" }
%"class.std::__cxx11::list.6" = type { %"class.std::__cxx11::_List_base.7" }
%"class.std::__cxx11::_List_base.7" = type { %"struct.std::__cxx11::_List_base<int, glslang::pool_allocator<int>>::_List_impl" }
%"struct.std::__cxx11::_List_base<int, glslang::pool_allocator<int>>::_List_impl" = type { %"class.glslang::pool_allocator.8", %"struct.std::__detail::_List_node_header" }
%"class.glslang::pool_allocator.8" = type { ptr }
%"struct.glslang::TPragma" = type { i8, i8, %"class.glslang::TPragmaTable" }
%"class.glslang::TPragmaTable" = type { %"class.glslang::TMap.9" }
%"class.glslang::TMap.9" = type { %"class.std::map.10" }
%"class.std::map.10" = type { %"class.std::_Rb_tree.11" }
%"class.std::_Rb_tree.11" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>>>::_Rb_tree_impl" = type { %"class.glslang::pool_allocator.12", [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::pool_allocator.12" = type { ptr }
%"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::function.15" = type { %"class.std::_Function_base", ptr }
%"class.std::function.17" = type { %"class.std::_Function_base", ptr }
%"class.std::function.19" = type { %"class.std::_Function_base", ptr }
%"class.std::function.21" = type { %"class.std::_Function_base", ptr }
%"class.glslang::TMap.24" = type { %"class.std::map.25" }
%"class.std::map.25" = type { %"class.std::_Rb_tree.26" }
%"class.std::_Rb_tree.26" = type { %"struct.std::_Rb_tree<int, std::pair<const int, glslang::TVariable *>, std::_Select1st<std::pair<const int, glslang::TVariable *>>, std::less<int>, glslang::pool_allocator<std::pair<const int, glslang::TVariable *>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, glslang::TVariable *>, std::_Select1st<std::pair<const int, glslang::TVariable *>>, std::less<int>, glslang::pool_allocator<std::pair<const int, glslang::TVariable *>>>::_Rb_tree_impl" = type { %"class.glslang::pool_allocator.27", [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::pool_allocator.27" = type { ptr }
%"class.glslang::TMap.29" = type { %"class.std::map.30" }
%"class.std::map.30" = type { %"class.std::_Rb_tree.31" }
%"class.std::_Rb_tree.31" = type { %"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int>>, std::less<int>, glslang::pool_allocator<std::pair<const int, int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int>>, std::less<int>, glslang::pool_allocator<std::pair<const int, int>>>::_Rb_tree_impl" = type { %"class.glslang::pool_allocator.32", [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::pool_allocator.32" = type { ptr }
%struct.TBuiltInResource = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.TLimits }
%struct.TLimits = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%"class.glslang::TPrecisionManager" = type <{ ptr, i8, i8, i8, i8, [4 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider" = type { %"class.glslang::pool_allocator.14", ptr }
%"class.glslang::pool_allocator.14" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::set" = type { %"class.std::_Rb_tree.33" }
%"class.std::_Rb_tree.33" = type { %"struct.std::_Rb_tree<long long, long long, std::_Identity<long long>, std::less<long long>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<long long, long long, std::_Identity<long long>, std::less<long long>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::TVector.35" = type { %"class.std::vector.36" }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<glslang::TIntermTyped *, glslang::pool_allocator<glslang::TIntermTyped *>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TIntermTyped *, glslang::pool_allocator<glslang::TIntermTyped *>>::_Vector_impl" = type { %"class.glslang::pool_allocator.38", %"struct.std::_Vector_base<glslang::TIntermTyped *, glslang::pool_allocator<glslang::TIntermTyped *>>::_Vector_impl_data" }
%"class.glslang::pool_allocator.38" = type { ptr }
%"struct.std::_Vector_base<glslang::TIntermTyped *, glslang::pool_allocator<glslang::TIntermTyped *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.39" = type { %"class.std::_Rb_tree.40" }
%"class.std::_Rb_tree.40" = type { %"struct.std::_Rb_tree<const glslang::TVector<glslang::TTypeLoc> *, std::pair<const glslang::TVector<glslang::TTypeLoc> *const, std::map<unsigned long, const glslang::TVector<glslang::TTypeLoc> *>>, std::_Select1st<std::pair<const glslang::TVector<glslang::TTypeLoc> *const, std::map<unsigned long, const glslang::TVector<glslang::TTypeLoc> *>>>, std::less<const glslang::TVector<glslang::TTypeLoc> *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const glslang::TVector<glslang::TTypeLoc> *, std::pair<const glslang::TVector<glslang::TTypeLoc> *const, std::map<unsigned long, const glslang::TVector<glslang::TTypeLoc> *>>, std::_Select1st<std::pair<const glslang::TVector<glslang::TTypeLoc> *const, std::map<unsigned long, const glslang::TVector<glslang::TTypeLoc> *>>>, std::less<const glslang::TVector<glslang::TTypeLoc> *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::TVector" = type { %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<glslang::TSymbol *, glslang::pool_allocator<glslang::TSymbol *>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TSymbol *, glslang::pool_allocator<glslang::TSymbol *>>::_Vector_impl" = type { %"class.glslang::pool_allocator.13", %"struct.std::_Vector_base<glslang::TSymbol *, glslang::pool_allocator<glslang::TSymbol *>>::_Vector_impl_data" }
%"class.glslang::pool_allocator.13" = type { ptr }
%"struct.std::_Vector_base<glslang::TSymbol *, glslang::pool_allocator<glslang::TSymbol *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZN7glslangL19E_GL_NV_mesh_shaderE = external hidden constant ptr, align 8
@_ZN7glslangL25E_GL_EXT_buffer_referenceE = external hidden constant ptr, align 8
@.str.609 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [19 x i8], align 1
@__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.614 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.615 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.617 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.618 = external hidden unnamed_addr constant [9 x i8], align 1
@__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts.620 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.621 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.623 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.624 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.625 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.626 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.627 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.628 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.629 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.630 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.631 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.632 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.633 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.634 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.635 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.636 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.637 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.638 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.639 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.640 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.641 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.642 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.643 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.644 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.645 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZN7glslangL18OVR_multiview_EXTsE = external hidden constant [2 x ptr], align 16
@.str.646 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZN7glslangL29E_GL_NV_stereo_view_renderingE = external hidden constant ptr, align 8
@.str.647 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.648 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.649 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.650 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.651 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.652 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.653 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.654 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.655 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.656 = external hidden unnamed_addr constant [42 x i8], align 1
@__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts.657 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.658 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.659 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.660 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.661 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.662 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.663 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.664 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.665 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.666 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.667 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.668 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.669 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.670 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.671 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.672 = external hidden unnamed_addr constant [75 x i8], align 1

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #0 align 2

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

declare void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) #3

declare void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) #3

declare void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, ptr noundef, ptr noundef) #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang6IsPow2IiEEbT_(i32 noundef) #0

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEESB_PDoFiiEET0_T_SF_SE_T1_(ptr, ptr, ptr, ptr noundef) #0

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @tolower(i32 noundef) #6

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(232) %2, ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %4) #5 align 2 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i8, align 1
  %16 = alloca i32, align 4
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.233", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.233", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.233", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.233", align 8
  %21 = alloca ptr, align 8
  %22 = alloca [2 x ptr], align 16
  %23 = alloca ptr, align 8
  %24 = alloca [2 x ptr], align 16
  %25 = alloca ptr, align 8
  %26 = alloca [2 x ptr], align 16
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %27 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  store ptr @.str.609, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  store ptr @.str.610, ptr %12, align 8, !tbaa !5
  %28 = load ptr, ptr %10, align 8, !tbaa !5
  %29 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN7glslang13TParseContext12integerCheckEPKNS_12TIntermTypedEPKc(ptr noundef nonnull align 8 dereferenceable(24912) %27, ptr noundef %28, ptr noundef %29)
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %30 = load ptr, ptr %10, align 8, !tbaa !5
  %31 = load ptr, ptr %30, align 8, !tbaa !9
  %32 = getelementptr inbounds ptr, ptr %31, i64 17
  %33 = load ptr, ptr %32, align 8
  %34 = call noundef ptr %33(ptr noundef nonnull align 8 dereferenceable(32) %30)
  store ptr %34, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #7
  store i8 0, ptr %15, align 1, !tbaa !11
  %35 = load ptr, ptr %13, align 8, !tbaa !5
  %36 = icmp ne ptr %35, null
  br i1 %36, label %37, label %50

37:                                               ; preds = %5
  %38 = load ptr, ptr %13, align 8, !tbaa !5
  %39 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %38)
  %40 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %39, i64 noundef 0)
  %41 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %40)
  store i32 %41, ptr %14, align 4, !tbaa !13
  %42 = load ptr, ptr %13, align 8, !tbaa !5
  %43 = call noundef zeroext i1 @_ZNK7glslang20TIntermConstantUnion9isLiteralEv(ptr noundef nonnull align 8 dereferenceable(193) %42)
  br i1 %43, label %49, label %44

44:                                               ; preds = %37
  %45 = load ptr, ptr %7, align 8, !tbaa !5
  %46 = load ptr, ptr %12, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %45, i32 noundef 6, ptr noundef %46)
  %47 = load ptr, ptr %7, align 8, !tbaa !5
  %48 = load ptr, ptr %12, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %47, i32 noundef 6, i32 noundef 440, ptr noundef @.str.611, ptr noundef %48)
  br label %49

49:                                               ; preds = %44, %37
  br label %51

50:                                               ; preds = %5
  store i32 0, ptr %14, align 4, !tbaa !13
  store i8 1, ptr %15, align 1, !tbaa !11
  br label %51

51:                                               ; preds = %50, %49
  %52 = load i32, ptr %14, align 4, !tbaa !13
  %53 = icmp slt i32 %52, 0
  br i1 %53, label %54, label %60

54:                                               ; preds = %51
  %55 = load ptr, ptr %7, align 8, !tbaa !5
  %56 = load ptr, ptr %11, align 8, !tbaa !5
  %57 = load ptr, ptr %27, align 8, !tbaa !9
  %58 = getelementptr inbounds ptr, ptr %57, i64 42
  %59 = load ptr, ptr %58, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %59(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef @.str.612, ptr noundef %56, ptr noundef @.str.2)
  store i32 1, ptr %16, align 4
  br label %968

60:                                               ; preds = %51
  %61 = load ptr, ptr %9, align 8, !tbaa !5
  %62 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %61) #7
  %63 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %17, i32 0, i32 0
  store ptr %62, ptr %63, align 8
  %64 = load ptr, ptr %9, align 8, !tbaa !5
  %65 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %64) #7
  %66 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %18, i32 0, i32 0
  store ptr %65, ptr %66, align 8
  %67 = load ptr, ptr %9, align 8, !tbaa !5
  %68 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %67) #7
  %69 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %19, i32 0, i32 0
  store ptr %68, ptr %69, align 8
  %70 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %17, i32 0, i32 0
  %71 = load ptr, ptr %70, align 8
  %72 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %18, i32 0, i32 0
  %73 = load ptr, ptr %72, align 8
  %74 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %19, i32 0, i32 0
  %75 = load ptr, ptr %74, align 8
  %76 = call ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEESB_PDoFiiEET0_T_SF_SE_T1_(ptr %71, ptr %73, ptr %75, ptr noundef @tolower)
  %77 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %20, i32 0, i32 0
  store ptr %76, ptr %77, align 8
  %78 = load ptr, ptr %9, align 8, !tbaa !5
  %79 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %78, ptr noundef @.str.207)
  br i1 %79, label %80, label %112

80:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  store ptr @.str.207, ptr %21, align 8, !tbaa !5
  %81 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 6
  %82 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %81, i32 0, i32 0
  %83 = load i32, ptr %82, align 8, !tbaa !15
  %84 = icmp eq i32 %83, 0
  br i1 %84, label %85, label %93

85:                                               ; preds = %80
  %86 = load ptr, ptr %7, align 8, !tbaa !5
  %87 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %86, i32 noundef 14, ptr noundef %87)
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %22, ptr align 16 @__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts, i64 16, i1 false)
  %88 = load ptr, ptr %7, align 8, !tbaa !5
  %89 = getelementptr inbounds [2 x ptr], ptr %22, i64 0, i64 0
  %90 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %88, i32 noundef 6, i32 noundef 420, i32 noundef 2, ptr noundef %89, ptr noundef %90)
  %91 = load ptr, ptr %7, align 8, !tbaa !5
  %92 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %91, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef %92)
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #7
  br label %93

93:                                               ; preds = %85, %80
  %94 = load i32, ptr %14, align 4, !tbaa !13
  %95 = load ptr, ptr %8, align 8, !tbaa !5
  %96 = getelementptr inbounds %"class.glslang::TPublicType", ptr %95, i32 0, i32 2
  %97 = getelementptr inbounds %"class.glslang::TQualifier", ptr %96, i32 0, i32 4
  store i32 %94, ptr %97, align 4, !tbaa !37
  %98 = load ptr, ptr %8, align 8, !tbaa !5
  %99 = getelementptr inbounds %"class.glslang::TPublicType", ptr %98, i32 0, i32 2
  %100 = getelementptr inbounds %"class.glslang::TQualifier", ptr %99, i32 0, i32 1
  %101 = load i64, ptr %100, align 8
  %102 = and i64 %101, -8589934593
  %103 = or i64 %102, 8589934592
  store i64 %103, ptr %100, align 8
  %104 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %105 = trunc i8 %104 to i1
  br i1 %105, label %106, label %111

106:                                              ; preds = %93
  %107 = load ptr, ptr %7, align 8, !tbaa !5
  %108 = load ptr, ptr %27, align 8, !tbaa !9
  %109 = getelementptr inbounds ptr, ptr %108, i64 42
  %110 = load ptr, ptr %109, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %110(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef @.str.614, ptr noundef @.str.207, ptr noundef @.str.2)
  br label %111

111:                                              ; preds = %106, %93
  store i32 1, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %968

112:                                              ; preds = %60
  %113 = load ptr, ptr %9, align 8, !tbaa !5
  %114 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %113, ptr noundef @.str.615)
  br i1 %114, label %115, label %147

115:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  store ptr @.str.616, ptr %23, align 8, !tbaa !5
  %116 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 6
  %117 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %116, i32 0, i32 0
  %118 = load i32, ptr %117, align 8, !tbaa !15
  %119 = icmp eq i32 %118, 0
  br i1 %119, label %120, label %125

120:                                              ; preds = %115
  %121 = load ptr, ptr %7, align 8, !tbaa !5
  %122 = load ptr, ptr %23, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %121, i32 noundef 6, ptr noundef %122)
  %123 = load ptr, ptr %7, align 8, !tbaa !5
  %124 = load ptr, ptr %23, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %123, i32 noundef 6, i32 noundef 440, ptr noundef @.str.611, ptr noundef %124)
  br label %125

125:                                              ; preds = %120, %115
  %126 = load i32, ptr %14, align 4, !tbaa !13
  %127 = call noundef zeroext i1 @_ZN7glslang6IsPow2IiEEbT_(i32 noundef %126)
  br i1 %127, label %133, label %128

128:                                              ; preds = %125
  %129 = load ptr, ptr %7, align 8, !tbaa !5
  %130 = load ptr, ptr %27, align 8, !tbaa !9
  %131 = getelementptr inbounds ptr, ptr %130, i64 42
  %132 = load ptr, ptr %131, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %132(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %129, ptr noundef @.str.617, ptr noundef @.str.615, ptr noundef @.str.2)
  br label %138

133:                                              ; preds = %125
  %134 = load i32, ptr %14, align 4, !tbaa !13
  %135 = load ptr, ptr %8, align 8, !tbaa !5
  %136 = getelementptr inbounds %"class.glslang::TPublicType", ptr %135, i32 0, i32 2
  %137 = getelementptr inbounds %"class.glslang::TQualifier", ptr %136, i32 0, i32 5
  store i32 %134, ptr %137, align 8, !tbaa !58
  br label %138

138:                                              ; preds = %133, %128
  %139 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %140 = trunc i8 %139 to i1
  br i1 %140, label %141, label %146

141:                                              ; preds = %138
  %142 = load ptr, ptr %7, align 8, !tbaa !5
  %143 = load ptr, ptr %27, align 8, !tbaa !9
  %144 = getelementptr inbounds ptr, ptr %143, i64 42
  %145 = load ptr, ptr %144, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %145(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %142, ptr noundef @.str.614, ptr noundef @.str.615, ptr noundef @.str.2)
  br label %146

146:                                              ; preds = %141, %138
  store i32 1, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %968

147:                                              ; preds = %112
  %148 = load ptr, ptr %9, align 8, !tbaa !5
  %149 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %148, ptr noundef @.str.618)
  br i1 %149, label %150, label %182

150:                                              ; preds = %147
  %151 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %151, i32 noundef 8, i32 noundef 300, ptr noundef null, ptr noundef @.str.618)
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %24, ptr align 16 @__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts.620, i64 16, i1 false)
  %152 = load ptr, ptr %7, align 8, !tbaa !5
  %153 = getelementptr inbounds [2 x ptr], ptr %24, i64 0, i64 0
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %152, i32 noundef -9, i32 noundef 330, i32 noundef 2, ptr noundef %153, ptr noundef @.str.618)
  %154 = load i32, ptr %14, align 4, !tbaa !13
  %155 = icmp uge i32 %154, 4095
  br i1 %155, label %156, label %163

156:                                              ; preds = %150
  %157 = load ptr, ptr %7, align 8, !tbaa !5
  %158 = load ptr, ptr %9, align 8, !tbaa !5
  %159 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %158) #7
  %160 = load ptr, ptr %27, align 8, !tbaa !9
  %161 = getelementptr inbounds ptr, ptr %160, i64 42
  %162 = load ptr, ptr %161, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %162(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %157, ptr noundef @.str.621, ptr noundef %159, ptr noundef @.str.2)
  br label %173

163:                                              ; preds = %150
  %164 = load i32, ptr %14, align 4, !tbaa !13
  %165 = load ptr, ptr %8, align 8, !tbaa !5
  %166 = getelementptr inbounds %"class.glslang::TPublicType", ptr %165, i32 0, i32 2
  %167 = getelementptr inbounds %"class.glslang::TQualifier", ptr %166, i32 0, i32 6
  %168 = zext i32 %164 to i64
  %169 = load i64, ptr %167, align 4
  %170 = and i64 %168, 4095
  %171 = and i64 %169, -4096
  %172 = or i64 %171, %170
  store i64 %172, ptr %167, align 4
  br label %173

173:                                              ; preds = %163, %156
  %174 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %175 = trunc i8 %174 to i1
  br i1 %175, label %176, label %181

176:                                              ; preds = %173
  %177 = load ptr, ptr %7, align 8, !tbaa !5
  %178 = load ptr, ptr %27, align 8, !tbaa !9
  %179 = getelementptr inbounds ptr, ptr %178, i64 42
  %180 = load ptr, ptr %179, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %180(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %177, ptr noundef @.str.614, ptr noundef @.str.618, ptr noundef @.str.2)
  br label %181

181:                                              ; preds = %176, %173
  store i32 1, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  br label %968

182:                                              ; preds = %147
  %183 = load ptr, ptr %9, align 8, !tbaa !5
  %184 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %183, ptr noundef @.str.622)
  br i1 %184, label %185, label %223

185:                                              ; preds = %182
  %186 = load i32, ptr %14, align 4, !tbaa !13
  %187 = icmp uge i32 %186, 63
  br i1 %187, label %188, label %195

188:                                              ; preds = %185
  %189 = load ptr, ptr %7, align 8, !tbaa !5
  %190 = load ptr, ptr %9, align 8, !tbaa !5
  %191 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %190) #7
  %192 = load ptr, ptr %27, align 8, !tbaa !9
  %193 = getelementptr inbounds ptr, ptr %192, i64 42
  %194 = load ptr, ptr %193, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %194(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %189, ptr noundef @.str.623, ptr noundef %191, ptr noundef @.str.2)
  br label %206

195:                                              ; preds = %185
  %196 = load i32, ptr %14, align 4, !tbaa !13
  %197 = load ptr, ptr %8, align 8, !tbaa !5
  %198 = getelementptr inbounds %"class.glslang::TPublicType", ptr %197, i32 0, i32 2
  %199 = getelementptr inbounds %"class.glslang::TQualifier", ptr %198, i32 0, i32 6
  %200 = zext i32 %196 to i64
  %201 = load i64, ptr %199, align 4
  %202 = and i64 %200, 127
  %203 = shl i64 %202, 15
  %204 = and i64 %201, -4161537
  %205 = or i64 %204, %203
  store i64 %205, ptr %199, align 4
  br label %206

206:                                              ; preds = %195, %188
  %207 = load i32, ptr %14, align 4, !tbaa !13
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %209, label %214

209:                                              ; preds = %206
  %210 = load ptr, ptr %7, align 8, !tbaa !5
  %211 = load ptr, ptr %27, align 8, !tbaa !9
  %212 = getelementptr inbounds ptr, ptr %211, i64 39
  %213 = load ptr, ptr %212, align 8
  call void %213(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %210, ptr noundef @.str.624)
  br label %214

214:                                              ; preds = %209, %206
  %215 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %216 = trunc i8 %215 to i1
  br i1 %216, label %217, label %222

217:                                              ; preds = %214
  %218 = load ptr, ptr %7, align 8, !tbaa !5
  %219 = load ptr, ptr %27, align 8, !tbaa !9
  %220 = getelementptr inbounds ptr, ptr %219, i64 42
  %221 = load ptr, ptr %220, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %221(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %218, ptr noundef @.str.614, ptr noundef @.str.622, ptr noundef @.str.2)
  br label %222

222:                                              ; preds = %217, %214
  store i32 1, ptr %16, align 4
  br label %968

223:                                              ; preds = %182
  %224 = load ptr, ptr %9, align 8, !tbaa !5
  %225 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %224, ptr noundef @.str.625)
  br i1 %225, label %226, label %258

226:                                              ; preds = %223
  %227 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %227, i32 noundef -9, i32 noundef 420, ptr noundef @.str.94, ptr noundef @.str.625)
  %228 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %228, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef @.str.625)
  %229 = load i32, ptr %14, align 4, !tbaa !13
  %230 = icmp uge i32 %229, 65535
  br i1 %230, label %231, label %238

231:                                              ; preds = %226
  %232 = load ptr, ptr %7, align 8, !tbaa !5
  %233 = load ptr, ptr %9, align 8, !tbaa !5
  %234 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %233) #7
  %235 = load ptr, ptr %27, align 8, !tbaa !9
  %236 = getelementptr inbounds ptr, ptr %235, i64 42
  %237 = load ptr, ptr %236, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %237(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %232, ptr noundef @.str.626, ptr noundef %234, ptr noundef @.str.2)
  br label %249

238:                                              ; preds = %226
  %239 = load i32, ptr %14, align 4, !tbaa !13
  %240 = load ptr, ptr %8, align 8, !tbaa !5
  %241 = getelementptr inbounds %"class.glslang::TPublicType", ptr %240, i32 0, i32 2
  %242 = getelementptr inbounds %"class.glslang::TQualifier", ptr %241, i32 0, i32 6
  %243 = zext i32 %239 to i64
  %244 = load i64, ptr %242, align 4
  %245 = and i64 %243, 65535
  %246 = shl i64 %245, 32
  %247 = and i64 %244, -281470681743361
  %248 = or i64 %247, %246
  store i64 %248, ptr %242, align 4
  br label %249

249:                                              ; preds = %238, %231
  %250 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %251 = trunc i8 %250 to i1
  br i1 %251, label %252, label %257

252:                                              ; preds = %249
  %253 = load ptr, ptr %7, align 8, !tbaa !5
  %254 = load ptr, ptr %27, align 8, !tbaa !9
  %255 = getelementptr inbounds ptr, ptr %254, i64 42
  %256 = load ptr, ptr %255, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %256(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %253, ptr noundef @.str.614, ptr noundef @.str.625, ptr noundef @.str.2)
  br label %257

257:                                              ; preds = %252, %249
  store i32 1, ptr %16, align 4
  br label %968

258:                                              ; preds = %223
  br label %259

259:                                              ; preds = %258
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  br label %262

262:                                              ; preds = %261
  %263 = load ptr, ptr %9, align 8, !tbaa !5
  %264 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %263, ptr noundef @.str.627)
  br i1 %264, label %265, label %317

265:                                              ; preds = %262
  %266 = load ptr, ptr %7, align 8, !tbaa !5
  %267 = load ptr, ptr %27, align 8, !tbaa !9
  %268 = getelementptr inbounds ptr, ptr %267, i64 40
  %269 = load ptr, ptr %268, align 8
  call void %269(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %266, ptr noundef @.str.627)
  %270 = load i32, ptr %14, align 4, !tbaa !13
  %271 = icmp sge i32 %270, 2047
  br i1 %271, label %272, label %279

272:                                              ; preds = %265
  %273 = load ptr, ptr %7, align 8, !tbaa !5
  %274 = load ptr, ptr %9, align 8, !tbaa !5
  %275 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %274) #7
  %276 = load ptr, ptr %27, align 8, !tbaa !9
  %277 = getelementptr inbounds ptr, ptr %276, i64 42
  %278 = load ptr, ptr %277, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %278(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %273, ptr noundef @.str.628, ptr noundef %275, ptr noundef @.str.2)
  br label %308

279:                                              ; preds = %265
  %280 = load i32, ptr %14, align 4, !tbaa !13
  %281 = load ptr, ptr %8, align 8, !tbaa !5
  %282 = getelementptr inbounds %"class.glslang::TPublicType", ptr %281, i32 0, i32 2
  %283 = getelementptr inbounds %"class.glslang::TQualifier", ptr %282, i32 0, i32 7
  %284 = zext i32 %280 to i64
  %285 = load i64, ptr %283, align 4
  %286 = and i64 %284, 2047
  %287 = shl i64 %286, 40
  %288 = and i64 %285, -2250700302057473
  %289 = or i64 %288, %287
  store i64 %289, ptr %283, align 4
  %290 = load ptr, ptr %8, align 8, !tbaa !5
  %291 = getelementptr inbounds %"class.glslang::TPublicType", ptr %290, i32 0, i32 2
  %292 = getelementptr inbounds %"class.glslang::TQualifier", ptr %291, i32 0, i32 1
  %293 = load i64, ptr %292, align 8
  %294 = and i64 %293, -2147483649
  %295 = or i64 %294, 2147483648
  store i64 %295, ptr %292, align 8
  %296 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %297 = load ptr, ptr %296, align 8, !tbaa !59
  %298 = load i32, ptr %14, align 4, !tbaa !13
  %299 = call noundef zeroext i1 @_ZN7glslang13TIntermediate17addUsedConstantIdEi(ptr noundef nonnull align 8 dereferenceable(1784) %297, i32 noundef %298)
  br i1 %299, label %307, label %300

300:                                              ; preds = %279
  %301 = load ptr, ptr %7, align 8, !tbaa !5
  %302 = load ptr, ptr %9, align 8, !tbaa !5
  %303 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %302) #7
  %304 = load ptr, ptr %27, align 8, !tbaa !9
  %305 = getelementptr inbounds ptr, ptr %304, i64 42
  %306 = load ptr, ptr %305, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %306(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %301, ptr noundef @.str.629, ptr noundef %303, ptr noundef @.str.2)
  br label %307

307:                                              ; preds = %300, %279
  br label %308

308:                                              ; preds = %307, %272
  %309 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %310 = trunc i8 %309 to i1
  br i1 %310, label %311, label %316

311:                                              ; preds = %308
  %312 = load ptr, ptr %7, align 8, !tbaa !5
  %313 = load ptr, ptr %27, align 8, !tbaa !9
  %314 = getelementptr inbounds ptr, ptr %313, i64 42
  %315 = load ptr, ptr %314, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %315(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %312, ptr noundef @.str.614, ptr noundef @.str.627, ptr noundef @.str.2)
  br label %316

316:                                              ; preds = %311, %308
  store i32 1, ptr %16, align 4
  br label %968

317:                                              ; preds = %262
  %318 = load ptr, ptr %9, align 8, !tbaa !5
  %319 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %318, ptr noundef @.str.630)
  br i1 %319, label %320, label %352

320:                                              ; preds = %317
  %321 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %321, i32 noundef 6, ptr noundef @.str.630)
  %322 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %322, i32 noundef 6, i32 noundef 440, ptr noundef @.str.611, ptr noundef @.str.630)
  %323 = load i32, ptr %14, align 4, !tbaa !13
  %324 = icmp uge i32 %323, 4
  br i1 %324, label %325, label %332

325:                                              ; preds = %320
  %326 = load ptr, ptr %7, align 8, !tbaa !5
  %327 = load ptr, ptr %9, align 8, !tbaa !5
  %328 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %327) #7
  %329 = load ptr, ptr %27, align 8, !tbaa !9
  %330 = getelementptr inbounds ptr, ptr %329, i64 42
  %331 = load ptr, ptr %330, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %331(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %326, ptr noundef @.str.631, ptr noundef %328, ptr noundef @.str.2)
  br label %343

332:                                              ; preds = %320
  %333 = load i32, ptr %14, align 4, !tbaa !13
  %334 = load ptr, ptr %8, align 8, !tbaa !5
  %335 = getelementptr inbounds %"class.glslang::TPublicType", ptr %334, i32 0, i32 2
  %336 = getelementptr inbounds %"class.glslang::TQualifier", ptr %335, i32 0, i32 6
  %337 = zext i32 %333 to i64
  %338 = load i64, ptr %336, align 4
  %339 = and i64 %337, 7
  %340 = shl i64 %339, 12
  %341 = and i64 %338, -28673
  %342 = or i64 %341, %340
  store i64 %342, ptr %336, align 4
  br label %343

343:                                              ; preds = %332, %325
  %344 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %345 = trunc i8 %344 to i1
  br i1 %345, label %346, label %351

346:                                              ; preds = %343
  %347 = load ptr, ptr %7, align 8, !tbaa !5
  %348 = load ptr, ptr %27, align 8, !tbaa !9
  %349 = getelementptr inbounds ptr, ptr %348, i64 42
  %350 = load ptr, ptr %349, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %350(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %347, ptr noundef @.str.614, ptr noundef @.str.630, ptr noundef @.str.2)
  br label %351

351:                                              ; preds = %346, %343
  store i32 1, ptr %16, align 4
  br label %968

352:                                              ; preds = %317
  %353 = load ptr, ptr %9, align 8, !tbaa !5
  %354 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %353, i64 noundef 0, i64 noundef 4, ptr noundef @.str.632)
  %355 = icmp eq i32 %354, 0
  br i1 %355, label %356, label %501

356:                                              ; preds = %352
  %357 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %358 = load ptr, ptr %357, align 8, !tbaa !59
  call void @_ZN7glslang13TIntermediate10setXfbModeEv(ptr noundef nonnull align 8 dereferenceable(1784) %358)
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  store ptr @.str.633, ptr %25, align 8, !tbaa !5
  %359 = load ptr, ptr %7, align 8, !tbaa !5
  %360 = load ptr, ptr %25, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %359, i32 noundef 15, ptr noundef %360)
  %361 = load ptr, ptr %7, align 8, !tbaa !5
  %362 = load ptr, ptr %25, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %361, i32 noundef 6, ptr noundef %362)
  %363 = load ptr, ptr %7, align 8, !tbaa !5
  %364 = load ptr, ptr %25, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %363, i32 noundef 6, i32 noundef 440, ptr noundef @.str.611, ptr noundef %364)
  %365 = load ptr, ptr %9, align 8, !tbaa !5
  %366 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %365, ptr noundef @.str.511)
  br i1 %366, label %367, label %412

367:                                              ; preds = %356
  %368 = load i32, ptr %14, align 4, !tbaa !13
  %369 = getelementptr inbounds %"class.glslang::TParseContext", ptr %27, i32 0, i32 5
  %370 = getelementptr inbounds %struct.TBuiltInResource, ptr %369, i32 0, i32 78
  %371 = load i32, ptr %370, align 8, !tbaa !60
  %372 = icmp sge i32 %368, %371
  br i1 %372, label %373, label %383

373:                                              ; preds = %367
  %374 = load ptr, ptr %7, align 8, !tbaa !5
  %375 = load ptr, ptr %9, align 8, !tbaa !5
  %376 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %375) #7
  %377 = getelementptr inbounds %"class.glslang::TParseContext", ptr %27, i32 0, i32 5
  %378 = getelementptr inbounds %struct.TBuiltInResource, ptr %377, i32 0, i32 78
  %379 = load i32, ptr %378, align 8, !tbaa !60
  %380 = load ptr, ptr %27, align 8, !tbaa !9
  %381 = getelementptr inbounds ptr, ptr %380, i64 42
  %382 = load ptr, ptr %381, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %382(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %374, ptr noundef @.str.634, ptr noundef %376, ptr noundef @.str.635, i32 noundef %379)
  br label %383

383:                                              ; preds = %373, %367
  %384 = load i32, ptr %14, align 4, !tbaa !13
  %385 = icmp sge i32 %384, 15
  br i1 %385, label %386, label %393

386:                                              ; preds = %383
  %387 = load ptr, ptr %7, align 8, !tbaa !5
  %388 = load ptr, ptr %9, align 8, !tbaa !5
  %389 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %388) #7
  %390 = load ptr, ptr %27, align 8, !tbaa !9
  %391 = getelementptr inbounds ptr, ptr %390, i64 42
  %392 = load ptr, ptr %391, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %392(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %387, ptr noundef @.str.634, ptr noundef %389, ptr noundef @.str.636, i32 noundef 14)
  br label %403

393:                                              ; preds = %383
  %394 = load i32, ptr %14, align 4, !tbaa !13
  %395 = load ptr, ptr %8, align 8, !tbaa !5
  %396 = getelementptr inbounds %"class.glslang::TPublicType", ptr %395, i32 0, i32 2
  %397 = getelementptr inbounds %"class.glslang::TQualifier", ptr %396, i32 0, i32 7
  %398 = zext i32 %394 to i64
  %399 = load i64, ptr %397, align 4
  %400 = and i64 %398, 15
  %401 = and i64 %399, -16
  %402 = or i64 %401, %400
  store i64 %402, ptr %397, align 4
  br label %403

403:                                              ; preds = %393, %386
  %404 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %405 = trunc i8 %404 to i1
  br i1 %405, label %406, label %411

406:                                              ; preds = %403
  %407 = load ptr, ptr %7, align 8, !tbaa !5
  %408 = load ptr, ptr %27, align 8, !tbaa !9
  %409 = getelementptr inbounds ptr, ptr %408, i64 42
  %410 = load ptr, ptr %409, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %410(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %407, ptr noundef @.str.614, ptr noundef @.str.511, ptr noundef @.str.2)
  br label %411

411:                                              ; preds = %406, %403
  store i32 1, ptr %16, align 4
  br label %498

412:                                              ; preds = %356
  %413 = load ptr, ptr %9, align 8, !tbaa !5
  %414 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %413, ptr noundef @.str.637)
  br i1 %414, label %415, label %445

415:                                              ; preds = %412
  %416 = load i32, ptr %14, align 4, !tbaa !13
  %417 = icmp sge i32 %416, 8191
  br i1 %417, label %418, label %425

418:                                              ; preds = %415
  %419 = load ptr, ptr %7, align 8, !tbaa !5
  %420 = load ptr, ptr %9, align 8, !tbaa !5
  %421 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %420) #7
  %422 = load ptr, ptr %27, align 8, !tbaa !9
  %423 = getelementptr inbounds ptr, ptr %422, i64 42
  %424 = load ptr, ptr %423, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %424(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %419, ptr noundef @.str.638, ptr noundef %421, ptr noundef @.str.636, i32 noundef 8190)
  br label %436

425:                                              ; preds = %415
  %426 = load i32, ptr %14, align 4, !tbaa !13
  %427 = load ptr, ptr %8, align 8, !tbaa !5
  %428 = getelementptr inbounds %"class.glslang::TPublicType", ptr %427, i32 0, i32 2
  %429 = getelementptr inbounds %"class.glslang::TQualifier", ptr %428, i32 0, i32 7
  %430 = zext i32 %426 to i64
  %431 = load i64, ptr %429, align 4
  %432 = and i64 %430, 8191
  %433 = shl i64 %432, 18
  %434 = and i64 %431, -2147221505
  %435 = or i64 %434, %433
  store i64 %435, ptr %429, align 4
  br label %436

436:                                              ; preds = %425, %418
  %437 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %438 = trunc i8 %437 to i1
  br i1 %438, label %439, label %444

439:                                              ; preds = %436
  %440 = load ptr, ptr %7, align 8, !tbaa !5
  %441 = load ptr, ptr %27, align 8, !tbaa !9
  %442 = getelementptr inbounds ptr, ptr %441, i64 42
  %443 = load ptr, ptr %442, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %443(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %440, ptr noundef @.str.614, ptr noundef @.str.637, ptr noundef @.str.2)
  br label %444

444:                                              ; preds = %439, %436
  store i32 1, ptr %16, align 4
  br label %498

445:                                              ; preds = %412
  %446 = load ptr, ptr %9, align 8, !tbaa !5
  %447 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %446, ptr noundef @.str.639)
  br i1 %447, label %448, label %495

448:                                              ; preds = %445
  %449 = load i32, ptr %14, align 4, !tbaa !13
  %450 = getelementptr inbounds %"class.glslang::TParseContext", ptr %27, i32 0, i32 5
  %451 = getelementptr inbounds %struct.TBuiltInResource, ptr %450, i32 0, i32 79
  %452 = load i32, ptr %451, align 4, !tbaa !128
  %453 = mul nsw i32 4, %452
  %454 = icmp sgt i32 %449, %453
  br i1 %454, label %455, label %465

455:                                              ; preds = %448
  %456 = load ptr, ptr %7, align 8, !tbaa !5
  %457 = load ptr, ptr %9, align 8, !tbaa !5
  %458 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %457) #7
  %459 = getelementptr inbounds %"class.glslang::TParseContext", ptr %27, i32 0, i32 5
  %460 = getelementptr inbounds %struct.TBuiltInResource, ptr %459, i32 0, i32 79
  %461 = load i32, ptr %460, align 4, !tbaa !128
  %462 = load ptr, ptr %27, align 8, !tbaa !9
  %463 = getelementptr inbounds ptr, ptr %462, i64 42
  %464 = load ptr, ptr %463, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %464(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %456, ptr noundef @.str.640, ptr noundef %458, ptr noundef @.str.641, i32 noundef %461)
  br label %465

465:                                              ; preds = %455, %448
  %466 = load i32, ptr %14, align 4, !tbaa !13
  %467 = icmp sge i32 %466, 16383
  br i1 %467, label %468, label %475

468:                                              ; preds = %465
  %469 = load ptr, ptr %7, align 8, !tbaa !5
  %470 = load ptr, ptr %9, align 8, !tbaa !5
  %471 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %470) #7
  %472 = load ptr, ptr %27, align 8, !tbaa !9
  %473 = getelementptr inbounds ptr, ptr %472, i64 42
  %474 = load ptr, ptr %473, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %474(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %469, ptr noundef @.str.642, ptr noundef %471, ptr noundef @.str.636, i32 noundef 16382)
  br label %486

475:                                              ; preds = %465
  %476 = load i32, ptr %14, align 4, !tbaa !13
  %477 = load ptr, ptr %8, align 8, !tbaa !5
  %478 = getelementptr inbounds %"class.glslang::TPublicType", ptr %477, i32 0, i32 2
  %479 = getelementptr inbounds %"class.glslang::TQualifier", ptr %478, i32 0, i32 7
  %480 = zext i32 %476 to i64
  %481 = load i64, ptr %479, align 4
  %482 = and i64 %480, 16383
  %483 = shl i64 %482, 4
  %484 = and i64 %481, -262129
  %485 = or i64 %484, %483
  store i64 %485, ptr %479, align 4
  br label %486

486:                                              ; preds = %475, %468
  %487 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %488 = trunc i8 %487 to i1
  br i1 %488, label %489, label %494

489:                                              ; preds = %486
  %490 = load ptr, ptr %7, align 8, !tbaa !5
  %491 = load ptr, ptr %27, align 8, !tbaa !9
  %492 = getelementptr inbounds ptr, ptr %491, i64 42
  %493 = load ptr, ptr %492, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %493(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %490, ptr noundef @.str.614, ptr noundef @.str.639, ptr noundef @.str.2)
  br label %494

494:                                              ; preds = %489, %486
  store i32 1, ptr %16, align 4
  br label %498

495:                                              ; preds = %445
  br label %496

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496
  store i32 0, ptr %16, align 4
  br label %498

498:                                              ; preds = %497, %494, %444, %411
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  %499 = load i32, ptr %16, align 4
  switch i32 %499, label %968 [
    i32 0, label %500
  ]

500:                                              ; preds = %498
  br label %501

501:                                              ; preds = %500, %352
  %502 = load ptr, ptr %9, align 8, !tbaa !5
  %503 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %502, ptr noundef @.str.643)
  br i1 %503, label %504, label %538

504:                                              ; preds = %501
  %505 = load ptr, ptr %7, align 8, !tbaa !5
  %506 = load ptr, ptr %27, align 8, !tbaa !9
  %507 = getelementptr inbounds ptr, ptr %506, i64 39
  %508 = load ptr, ptr %507, align 8
  call void %508(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %505, ptr noundef @.str.643)
  %509 = load i32, ptr %14, align 4, !tbaa !13
  %510 = icmp sge i32 %509, 255
  br i1 %510, label %511, label %518

511:                                              ; preds = %504
  %512 = load ptr, ptr %7, align 8, !tbaa !5
  %513 = load ptr, ptr %9, align 8, !tbaa !5
  %514 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %513) #7
  %515 = load ptr, ptr %27, align 8, !tbaa !9
  %516 = getelementptr inbounds ptr, ptr %515, i64 42
  %517 = load ptr, ptr %516, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %517(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %512, ptr noundef @.str.644, ptr noundef %514, ptr noundef @.str.2)
  br label %529

518:                                              ; preds = %504
  %519 = load i32, ptr %14, align 4, !tbaa !13
  %520 = load ptr, ptr %8, align 8, !tbaa !5
  %521 = getelementptr inbounds %"class.glslang::TPublicType", ptr %520, i32 0, i32 2
  %522 = getelementptr inbounds %"class.glslang::TQualifier", ptr %521, i32 0, i32 7
  %523 = zext i32 %519 to i64
  %524 = load i64, ptr %522, align 4
  %525 = and i64 %523, 255
  %526 = shl i64 %525, 32
  %527 = and i64 %524, -1095216660481
  %528 = or i64 %527, %526
  store i64 %528, ptr %522, align 4
  br label %529

529:                                              ; preds = %518, %511
  %530 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %531 = trunc i8 %530 to i1
  br i1 %531, label %532, label %537

532:                                              ; preds = %529
  %533 = load ptr, ptr %7, align 8, !tbaa !5
  %534 = load ptr, ptr %27, align 8, !tbaa !9
  %535 = getelementptr inbounds ptr, ptr %534, i64 42
  %536 = load ptr, ptr %535, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %536(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %533, ptr noundef @.str.614, ptr noundef @.str.643, ptr noundef @.str.2)
  br label %537

537:                                              ; preds = %532, %529
  store i32 1, ptr %16, align 4
  br label %968

538:                                              ; preds = %501
  %539 = load ptr, ptr %9, align 8, !tbaa !5
  %540 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %539, ptr noundef @.str.645)
  br i1 %540, label %541, label %558

541:                                              ; preds = %538
  %542 = load ptr, ptr %7, align 8, !tbaa !5
  %543 = load ptr, ptr %27, align 8, !tbaa !9
  %544 = getelementptr inbounds ptr, ptr %543, i64 5
  %545 = load ptr, ptr %544, align 8
  call void %545(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %542, i32 noundef 2, ptr noundef @_ZN7glslangL18OVR_multiview_EXTsE, ptr noundef @.str.645)
  %546 = load i32, ptr %14, align 4, !tbaa !13
  %547 = load ptr, ptr %8, align 8, !tbaa !5
  %548 = getelementptr inbounds %"class.glslang::TPublicType", ptr %547, i32 0, i32 3
  %549 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %548, i32 0, i32 15
  store i32 %546, ptr %549, align 4, !tbaa !129
  %550 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %551 = trunc i8 %550 to i1
  br i1 %551, label %552, label %557

552:                                              ; preds = %541
  %553 = load ptr, ptr %7, align 8, !tbaa !5
  %554 = load ptr, ptr %27, align 8, !tbaa !9
  %555 = getelementptr inbounds ptr, ptr %554, i64 42
  %556 = load ptr, ptr %555, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %556(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %553, ptr noundef @.str.614, ptr noundef @.str.645, ptr noundef @.str.2)
  br label %557

557:                                              ; preds = %552, %541
  store i32 1, ptr %16, align 4
  br label %968

558:                                              ; preds = %538
  %559 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %560 = load i32, ptr %559, align 4, !tbaa !130
  %561 = icmp eq i32 %560, 0
  br i1 %561, label %574, label %562

562:                                              ; preds = %558
  %563 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %564 = load i32, ptr %563, align 4, !tbaa !130
  %565 = icmp eq i32 %564, 1
  br i1 %565, label %574, label %566

566:                                              ; preds = %562
  %567 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %568 = load i32, ptr %567, align 4, !tbaa !130
  %569 = icmp eq i32 %568, 2
  br i1 %569, label %574, label %570

570:                                              ; preds = %566
  %571 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %572 = load i32, ptr %571, align 4, !tbaa !130
  %573 = icmp eq i32 %572, 3
  br i1 %573, label %574, label %595

574:                                              ; preds = %570, %566, %562, %558
  %575 = load ptr, ptr %9, align 8, !tbaa !5
  %576 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %575, ptr noundef @.str.646)
  br i1 %576, label %577, label %594

577:                                              ; preds = %574
  %578 = load ptr, ptr %7, align 8, !tbaa !5
  %579 = load ptr, ptr %27, align 8, !tbaa !9
  %580 = getelementptr inbounds ptr, ptr %579, i64 5
  %581 = load ptr, ptr %580, align 8
  call void %581(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %578, i32 noundef 1, ptr noundef @_ZN7glslangL29E_GL_NV_stereo_view_renderingE, ptr noundef @.str.647)
  %582 = load i32, ptr %14, align 4, !tbaa !13
  %583 = load ptr, ptr %8, align 8, !tbaa !5
  %584 = getelementptr inbounds %"class.glslang::TPublicType", ptr %583, i32 0, i32 2
  %585 = getelementptr inbounds %"class.glslang::TQualifier", ptr %584, i32 0, i32 14
  store i32 %582, ptr %585, align 4, !tbaa !131
  %586 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %587 = trunc i8 %586 to i1
  br i1 %587, label %588, label %593

588:                                              ; preds = %577
  %589 = load ptr, ptr %7, align 8, !tbaa !5
  %590 = load ptr, ptr %27, align 8, !tbaa !9
  %591 = getelementptr inbounds ptr, ptr %590, i64 42
  %592 = load ptr, ptr %591, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %592(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %589, ptr noundef @.str.614, ptr noundef @.str.646, ptr noundef @.str.2)
  br label %593

593:                                              ; preds = %588, %577
  store i32 1, ptr %16, align 4
  br label %968

594:                                              ; preds = %574
  br label %595

595:                                              ; preds = %594, %570
  %596 = load ptr, ptr %9, align 8, !tbaa !5
  %597 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %596, ptr noundef @.str.648)
  br i1 %597, label %598, label %631

598:                                              ; preds = %595
  %599 = load ptr, ptr %7, align 8, !tbaa !5
  %600 = load ptr, ptr %27, align 8, !tbaa !9
  %601 = getelementptr inbounds ptr, ptr %600, i64 5
  %602 = load ptr, ptr %601, align 8
  call void %602(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %599, i32 noundef 1, ptr noundef @_ZN7glslangL25E_GL_EXT_buffer_referenceE, ptr noundef @.str.648)
  %603 = load i32, ptr %14, align 4, !tbaa !13
  %604 = call noundef zeroext i1 @_ZN7glslang6IsPow2IiEEbT_(i32 noundef %603)
  br i1 %604, label %610, label %605

605:                                              ; preds = %598
  %606 = load ptr, ptr %7, align 8, !tbaa !5
  %607 = load ptr, ptr %27, align 8, !tbaa !9
  %608 = getelementptr inbounds ptr, ptr %607, i64 42
  %609 = load ptr, ptr %608, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %609(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %606, ptr noundef @.str.617, ptr noundef @.str.648, ptr noundef @.str.2)
  br label %622

610:                                              ; preds = %598
  %611 = load i32, ptr %14, align 4, !tbaa !13
  %612 = call noundef i32 @_ZN7glslang7IntLog2IiEEiT_(i32 noundef %611)
  %613 = load ptr, ptr %8, align 8, !tbaa !5
  %614 = getelementptr inbounds %"class.glslang::TPublicType", ptr %613, i32 0, i32 2
  %615 = getelementptr inbounds %"class.glslang::TQualifier", ptr %614, i32 0, i32 7
  %616 = zext i32 %612 to i64
  %617 = load i64, ptr %615, align 4
  %618 = and i64 %616, 63
  %619 = shl i64 %618, 51
  %620 = and i64 %617, -141863388262170625
  %621 = or i64 %620, %619
  store i64 %621, ptr %615, align 4
  br label %622

622:                                              ; preds = %610, %605
  %623 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %624 = trunc i8 %623 to i1
  br i1 %624, label %625, label %630

625:                                              ; preds = %622
  %626 = load ptr, ptr %7, align 8, !tbaa !5
  %627 = load ptr, ptr %27, align 8, !tbaa !9
  %628 = getelementptr inbounds ptr, ptr %627, i64 42
  %629 = load ptr, ptr %628, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %629(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %626, ptr noundef @.str.614, ptr noundef @.str.648, ptr noundef @.str.2)
  br label %630

630:                                              ; preds = %625, %622
  store i32 1, ptr %16, align 4
  br label %968

631:                                              ; preds = %595
  %632 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %633 = load i32, ptr %632, align 4, !tbaa !130
  switch i32 %633, label %960 [
    i32 1, label %634
    i32 3, label %660
    i32 4, label %743
    i32 13, label %781
    i32 12, label %844
    i32 5, label %844
  ]

634:                                              ; preds = %631
  %635 = load ptr, ptr %9, align 8, !tbaa !5
  %636 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %635, ptr noundef @.str.80)
  br i1 %636, label %637, label %659

637:                                              ; preds = %634
  %638 = load i32, ptr %14, align 4, !tbaa !13
  %639 = icmp eq i32 %638, 0
  br i1 %639, label %640, label %645

640:                                              ; preds = %637
  %641 = load ptr, ptr %7, align 8, !tbaa !5
  %642 = load ptr, ptr %27, align 8, !tbaa !9
  %643 = getelementptr inbounds ptr, ptr %642, i64 42
  %644 = load ptr, ptr %643, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %644(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %641, ptr noundef @.str.649, ptr noundef @.str.80, ptr noundef @.str.2)
  br label %650

645:                                              ; preds = %637
  %646 = load i32, ptr %14, align 4, !tbaa !13
  %647 = load ptr, ptr %8, align 8, !tbaa !5
  %648 = getelementptr inbounds %"class.glslang::TPublicType", ptr %647, i32 0, i32 3
  %649 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %648, i32 0, i32 4
  store i32 %646, ptr %649, align 4, !tbaa !132
  br label %650

650:                                              ; preds = %645, %640
  %651 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %652 = trunc i8 %651 to i1
  br i1 %652, label %653, label %658

653:                                              ; preds = %650
  %654 = load ptr, ptr %7, align 8, !tbaa !5
  %655 = load ptr, ptr %27, align 8, !tbaa !9
  %656 = getelementptr inbounds ptr, ptr %655, i64 42
  %657 = load ptr, ptr %656, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %657(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %654, ptr noundef @.str.614, ptr noundef @.str.80, ptr noundef @.str.2)
  br label %658

658:                                              ; preds = %653, %650
  store i32 1, ptr %16, align 4
  br label %968

659:                                              ; preds = %634
  br label %961

660:                                              ; preds = %631
  %661 = load ptr, ptr %9, align 8, !tbaa !5
  %662 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %661, ptr noundef @.str.650)
  br i1 %662, label %663, label %686

663:                                              ; preds = %660
  %664 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %664, i32 noundef 6, i32 noundef 400, ptr noundef null, ptr noundef @.str.650)
  %665 = load i32, ptr %14, align 4, !tbaa !13
  %666 = icmp eq i32 %665, 0
  br i1 %666, label %667, label %672

667:                                              ; preds = %663
  %668 = load ptr, ptr %7, align 8, !tbaa !5
  %669 = load ptr, ptr %27, align 8, !tbaa !9
  %670 = getelementptr inbounds ptr, ptr %669, i64 42
  %671 = load ptr, ptr %670, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %671(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %668, ptr noundef @.str.651, ptr noundef @.str.650, ptr noundef @.str.2)
  br label %677

672:                                              ; preds = %663
  %673 = load i32, ptr %14, align 4, !tbaa !13
  %674 = load ptr, ptr %8, align 8, !tbaa !5
  %675 = getelementptr inbounds %"class.glslang::TPublicType", ptr %674, i32 0, i32 3
  %676 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %675, i32 0, i32 3
  store i32 %673, ptr %676, align 8, !tbaa !133
  br label %677

677:                                              ; preds = %672, %667
  %678 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %679 = trunc i8 %678 to i1
  br i1 %679, label %680, label %685

680:                                              ; preds = %677
  %681 = load ptr, ptr %7, align 8, !tbaa !5
  %682 = load ptr, ptr %27, align 8, !tbaa !9
  %683 = getelementptr inbounds ptr, ptr %682, i64 42
  %684 = load ptr, ptr %683, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %684(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %681, ptr noundef @.str.614, ptr noundef @.str.650, ptr noundef @.str.2)
  br label %685

685:                                              ; preds = %680, %677
  store i32 1, ptr %16, align 4
  br label %968

686:                                              ; preds = %660
  %687 = load ptr, ptr %9, align 8, !tbaa !5
  %688 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %687, ptr noundef @.str.83)
  br i1 %688, label %689, label %713

689:                                              ; preds = %686
  %690 = load i32, ptr %14, align 4, !tbaa !13
  %691 = load ptr, ptr %8, align 8, !tbaa !5
  %692 = getelementptr inbounds %"class.glslang::TPublicType", ptr %691, i32 0, i32 3
  %693 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %692, i32 0, i32 4
  store i32 %690, ptr %693, align 4, !tbaa !132
  %694 = load i32, ptr %14, align 4, !tbaa !13
  %695 = getelementptr inbounds %"class.glslang::TParseContext", ptr %27, i32 0, i32 5
  %696 = getelementptr inbounds %struct.TBuiltInResource, ptr %695, i32 0, i32 47
  %697 = load i32, ptr %696, align 4, !tbaa !134
  %698 = icmp sgt i32 %694, %697
  br i1 %698, label %699, label %704

699:                                              ; preds = %689
  %700 = load ptr, ptr %7, align 8, !tbaa !5
  %701 = load ptr, ptr %27, align 8, !tbaa !9
  %702 = getelementptr inbounds ptr, ptr %701, i64 42
  %703 = load ptr, ptr %702, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %703(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %700, ptr noundef @.str.652, ptr noundef @.str.83, ptr noundef @.str.2)
  br label %704

704:                                              ; preds = %699, %689
  %705 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %706 = trunc i8 %705 to i1
  br i1 %706, label %707, label %712

707:                                              ; preds = %704
  %708 = load ptr, ptr %7, align 8, !tbaa !5
  %709 = load ptr, ptr %27, align 8, !tbaa !9
  %710 = getelementptr inbounds ptr, ptr %709, i64 42
  %711 = load ptr, ptr %710, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %711(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %708, ptr noundef @.str.614, ptr noundef @.str.83, ptr noundef @.str.2)
  br label %712

712:                                              ; preds = %707, %704
  store i32 1, ptr %16, align 4
  br label %968

713:                                              ; preds = %686
  %714 = load ptr, ptr %9, align 8, !tbaa !5
  %715 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %714, ptr noundef @.str.653)
  br i1 %715, label %716, label %742

716:                                              ; preds = %713
  %717 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %717, i32 noundef -9, ptr noundef @.str.654)
  %718 = load i32, ptr %14, align 4, !tbaa !13
  %719 = load ptr, ptr %8, align 8, !tbaa !5
  %720 = getelementptr inbounds %"class.glslang::TPublicType", ptr %719, i32 0, i32 2
  %721 = getelementptr inbounds %"class.glslang::TQualifier", ptr %720, i32 0, i32 6
  %722 = zext i32 %718 to i64
  %723 = load i64, ptr %721, align 4
  %724 = and i64 %722, 255
  %725 = shl i64 %724, 56
  %726 = and i64 %723, 72057594037927935
  %727 = or i64 %726, %725
  store i64 %727, ptr %721, align 4
  %728 = load i32, ptr %14, align 4, !tbaa !13
  %729 = icmp sgt i32 %728, 0
  br i1 %729, label %730, label %733

730:                                              ; preds = %716
  %731 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %732 = load ptr, ptr %731, align 8, !tbaa !59
  call void @_ZN7glslang13TIntermediate14setMultiStreamEv(ptr noundef nonnull align 8 dereferenceable(1784) %732)
  br label %733

733:                                              ; preds = %730, %716
  %734 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %735 = trunc i8 %734 to i1
  br i1 %735, label %736, label %741

736:                                              ; preds = %733
  %737 = load ptr, ptr %7, align 8, !tbaa !5
  %738 = load ptr, ptr %27, align 8, !tbaa !9
  %739 = getelementptr inbounds ptr, ptr %738, i64 42
  %740 = load ptr, ptr %739, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %740(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %737, ptr noundef @.str.614, ptr noundef @.str.653, ptr noundef @.str.2)
  br label %741

741:                                              ; preds = %736, %733
  store i32 1, ptr %16, align 4
  br label %968

742:                                              ; preds = %713
  br label %961

743:                                              ; preds = %631
  %744 = load ptr, ptr %9, align 8, !tbaa !5
  %745 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %744, ptr noundef @.str.655)
  br i1 %745, label %746, label %780

746:                                              ; preds = %743
  %747 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %747, i32 noundef 14, ptr noundef @.str.656)
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %26, ptr align 16 @__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts.657, i64 16, i1 false)
  %748 = load ptr, ptr %7, align 8, !tbaa !5
  %749 = getelementptr inbounds [2 x ptr], ptr %26, i64 0, i64 0
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %748, i32 noundef 6, i32 noundef 330, i32 noundef 2, ptr noundef %749, ptr noundef @.str.656)
  %750 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %750, i32 noundef 8, i32 noundef 310, ptr noundef @.str.658, ptr noundef @.str.656)
  %751 = load i32, ptr %14, align 4, !tbaa !13
  %752 = icmp slt i32 %751, 0
  br i1 %752, label %756, label %753

753:                                              ; preds = %746
  %754 = load i32, ptr %14, align 4, !tbaa !13
  %755 = icmp sgt i32 %754, 1
  br i1 %755, label %756, label %761

756:                                              ; preds = %753, %746
  store i32 0, ptr %14, align 4, !tbaa !13
  %757 = load ptr, ptr %7, align 8, !tbaa !5
  %758 = load ptr, ptr %27, align 8, !tbaa !9
  %759 = getelementptr inbounds ptr, ptr %758, i64 42
  %760 = load ptr, ptr %759, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %760(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %757, ptr noundef @.str.659, ptr noundef @.str.655, ptr noundef @.str.2)
  br label %761

761:                                              ; preds = %756, %753
  %762 = load i32, ptr %14, align 4, !tbaa !13
  %763 = load ptr, ptr %8, align 8, !tbaa !5
  %764 = getelementptr inbounds %"class.glslang::TPublicType", ptr %763, i32 0, i32 2
  %765 = getelementptr inbounds %"class.glslang::TQualifier", ptr %764, i32 0, i32 6
  %766 = zext i32 %762 to i64
  %767 = load i64, ptr %765, align 4
  %768 = and i64 %766, 255
  %769 = shl i64 %768, 48
  %770 = and i64 %767, -71776119061217281
  %771 = or i64 %770, %769
  store i64 %771, ptr %765, align 4
  %772 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %773 = trunc i8 %772 to i1
  br i1 %773, label %774, label %779

774:                                              ; preds = %761
  %775 = load ptr, ptr %7, align 8, !tbaa !5
  %776 = load ptr, ptr %27, align 8, !tbaa !9
  %777 = getelementptr inbounds ptr, ptr %776, i64 42
  %778 = load ptr, ptr %777, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %778(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %775, ptr noundef @.str.614, ptr noundef @.str.655, ptr noundef @.str.2)
  br label %779

779:                                              ; preds = %774, %761
  store i32 1, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  br label %968

780:                                              ; preds = %743
  br label %961

781:                                              ; preds = %631
  %782 = load ptr, ptr %9, align 8, !tbaa !5
  %783 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %782, ptr noundef @.str.83)
  br i1 %783, label %784, label %812

784:                                              ; preds = %781
  %785 = load ptr, ptr %7, align 8, !tbaa !5
  %786 = load ptr, ptr %27, align 8, !tbaa !9
  %787 = getelementptr inbounds ptr, ptr %786, i64 5
  %788 = load ptr, ptr %787, align 8
  call void %788(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %785, i32 noundef 1, ptr noundef @_ZN7glslangL19E_GL_NV_mesh_shaderE, ptr noundef @.str.83)
  %789 = load i32, ptr %14, align 4, !tbaa !13
  %790 = load ptr, ptr %8, align 8, !tbaa !5
  %791 = getelementptr inbounds %"class.glslang::TPublicType", ptr %790, i32 0, i32 3
  %792 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %791, i32 0, i32 4
  store i32 %789, ptr %792, align 4, !tbaa !132
  %793 = load i32, ptr %14, align 4, !tbaa !13
  %794 = getelementptr inbounds %"class.glslang::TParseContext", ptr %27, i32 0, i32 5
  %795 = getelementptr inbounds %struct.TBuiltInResource, ptr %794, i32 0, i32 83
  %796 = load i32, ptr %795, align 4, !tbaa !135
  %797 = icmp sgt i32 %793, %796
  br i1 %797, label %798, label %803

798:                                              ; preds = %784
  %799 = load ptr, ptr %7, align 8, !tbaa !5
  %800 = load ptr, ptr %27, align 8, !tbaa !9
  %801 = getelementptr inbounds ptr, ptr %800, i64 42
  %802 = load ptr, ptr %801, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %802(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %799, ptr noundef @.str.660, ptr noundef @.str.83, ptr noundef @.str.2)
  br label %803

803:                                              ; preds = %798, %784
  %804 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %805 = trunc i8 %804 to i1
  br i1 %805, label %806, label %811

806:                                              ; preds = %803
  %807 = load ptr, ptr %7, align 8, !tbaa !5
  %808 = load ptr, ptr %27, align 8, !tbaa !9
  %809 = getelementptr inbounds ptr, ptr %808, i64 42
  %810 = load ptr, ptr %809, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %810(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %807, ptr noundef @.str.614, ptr noundef @.str.83, ptr noundef @.str.2)
  br label %811

811:                                              ; preds = %806, %803
  store i32 1, ptr %16, align 4
  br label %968

812:                                              ; preds = %781
  %813 = load ptr, ptr %9, align 8, !tbaa !5
  %814 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %813, ptr noundef @.str.82)
  br i1 %814, label %815, label %843

815:                                              ; preds = %812
  %816 = load ptr, ptr %7, align 8, !tbaa !5
  %817 = load ptr, ptr %27, align 8, !tbaa !9
  %818 = getelementptr inbounds ptr, ptr %817, i64 5
  %819 = load ptr, ptr %818, align 8
  call void %819(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %816, i32 noundef 1, ptr noundef @_ZN7glslangL19E_GL_NV_mesh_shaderE, ptr noundef @.str.82)
  %820 = load i32, ptr %14, align 4, !tbaa !13
  %821 = load ptr, ptr %8, align 8, !tbaa !5
  %822 = getelementptr inbounds %"class.glslang::TPublicType", ptr %821, i32 0, i32 3
  %823 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %822, i32 0, i32 20
  store i32 %820, ptr %823, align 8, !tbaa !136
  %824 = load i32, ptr %14, align 4, !tbaa !13
  %825 = getelementptr inbounds %"class.glslang::TParseContext", ptr %27, i32 0, i32 5
  %826 = getelementptr inbounds %struct.TBuiltInResource, ptr %825, i32 0, i32 84
  %827 = load i32, ptr %826, align 8, !tbaa !137
  %828 = icmp sgt i32 %824, %827
  br i1 %828, label %829, label %834

829:                                              ; preds = %815
  %830 = load ptr, ptr %7, align 8, !tbaa !5
  %831 = load ptr, ptr %27, align 8, !tbaa !9
  %832 = getelementptr inbounds ptr, ptr %831, i64 42
  %833 = load ptr, ptr %832, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %833(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %830, ptr noundef @.str.661, ptr noundef @.str.82, ptr noundef @.str.2)
  br label %834

834:                                              ; preds = %829, %815
  %835 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %836 = trunc i8 %835 to i1
  br i1 %836, label %837, label %842

837:                                              ; preds = %834
  %838 = load ptr, ptr %7, align 8, !tbaa !5
  %839 = load ptr, ptr %27, align 8, !tbaa !9
  %840 = getelementptr inbounds ptr, ptr %839, i64 42
  %841 = load ptr, ptr %840, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %841(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %838, ptr noundef @.str.614, ptr noundef @.str.82, ptr noundef @.str.2)
  br label %842

842:                                              ; preds = %837, %834
  store i32 1, ptr %16, align 4
  br label %968

843:                                              ; preds = %812
  br label %844

844:                                              ; preds = %843, %631, %631
  %845 = load ptr, ptr %9, align 8, !tbaa !5
  %846 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %845, i64 noundef 0, i64 noundef 11, ptr noundef @.str.662)
  %847 = icmp eq i32 %846, 0
  br i1 %847, label %848, label %959

848:                                              ; preds = %844
  %849 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %850 = load i32, ptr %849, align 4, !tbaa !130
  %851 = icmp eq i32 %850, 13
  br i1 %851, label %856, label %852

852:                                              ; preds = %848
  %853 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %854 = load i32, ptr %853, align 4, !tbaa !130
  %855 = icmp eq i32 %854, 12
  br i1 %855, label %856, label %861

856:                                              ; preds = %852, %848
  %857 = load ptr, ptr %7, align 8, !tbaa !5
  %858 = load ptr, ptr %27, align 8, !tbaa !9
  %859 = getelementptr inbounds ptr, ptr %858, i64 5
  %860 = load ptr, ptr %859, align 8
  call void %860(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %857, i32 noundef 1, ptr noundef @_ZN7glslangL19E_GL_NV_mesh_shaderE, ptr noundef @.str.663)
  br label %864

861:                                              ; preds = %852
  %862 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %862, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef @.str.663)
  %863 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef nonnull align 8 dereferenceable(24) %863, i32 noundef -9, i32 noundef 430, ptr noundef @.str.664, ptr noundef @.str.663)
  br label %864

864:                                              ; preds = %861, %856
  %865 = load i8, ptr %15, align 1, !tbaa !11, !range !56, !noundef !57
  %866 = trunc i8 %865 to i1
  br i1 %866, label %867, label %872

867:                                              ; preds = %864
  %868 = load ptr, ptr %7, align 8, !tbaa !5
  %869 = load ptr, ptr %27, align 8, !tbaa !9
  %870 = getelementptr inbounds ptr, ptr %869, i64 42
  %871 = load ptr, ptr %870, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %871(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %868, ptr noundef @.str.614, ptr noundef @.str.665, ptr noundef @.str.2)
  br label %872

872:                                              ; preds = %867, %864
  %873 = load ptr, ptr %9, align 8, !tbaa !5
  %874 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %873) #7
  %875 = icmp eq i64 %874, 12
  br i1 %875, label %876, label %886

876:                                              ; preds = %872
  %877 = load i32, ptr %14, align 4, !tbaa !13
  %878 = icmp eq i32 %877, 0
  br i1 %878, label %879, label %886

879:                                              ; preds = %876
  %880 = load ptr, ptr %7, align 8, !tbaa !5
  %881 = load ptr, ptr %9, align 8, !tbaa !5
  %882 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %881) #7
  %883 = load ptr, ptr %27, align 8, !tbaa !9
  %884 = getelementptr inbounds ptr, ptr %883, i64 42
  %885 = load ptr, ptr %884, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %885(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %880, ptr noundef @.str.651, ptr noundef %882, ptr noundef @.str.2)
  store i32 1, ptr %16, align 4
  br label %968

886:                                              ; preds = %876, %872
  %887 = load ptr, ptr %9, align 8, !tbaa !5
  %888 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %887, ptr noundef @.str.666)
  br i1 %888, label %889, label %899

889:                                              ; preds = %886
  %890 = load i32, ptr %14, align 4, !tbaa !13
  %891 = load ptr, ptr %8, align 8, !tbaa !5
  %892 = getelementptr inbounds %"class.glslang::TPublicType", ptr %891, i32 0, i32 3
  %893 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %892, i32 0, i32 8
  %894 = getelementptr inbounds [3 x i32], ptr %893, i64 0, i64 0
  store i32 %890, ptr %894, align 4, !tbaa !13
  %895 = load ptr, ptr %8, align 8, !tbaa !5
  %896 = getelementptr inbounds %"class.glslang::TPublicType", ptr %895, i32 0, i32 3
  %897 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %896, i32 0, i32 9
  %898 = getelementptr inbounds [3 x i8], ptr %897, i64 0, i64 0
  store i8 1, ptr %898, align 8, !tbaa !11
  store i32 1, ptr %16, align 4
  br label %968

899:                                              ; preds = %886
  %900 = load ptr, ptr %9, align 8, !tbaa !5
  %901 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %900, ptr noundef @.str.667)
  br i1 %901, label %902, label %912

902:                                              ; preds = %899
  %903 = load i32, ptr %14, align 4, !tbaa !13
  %904 = load ptr, ptr %8, align 8, !tbaa !5
  %905 = getelementptr inbounds %"class.glslang::TPublicType", ptr %904, i32 0, i32 3
  %906 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %905, i32 0, i32 8
  %907 = getelementptr inbounds [3 x i32], ptr %906, i64 0, i64 1
  store i32 %903, ptr %907, align 4, !tbaa !13
  %908 = load ptr, ptr %8, align 8, !tbaa !5
  %909 = getelementptr inbounds %"class.glslang::TPublicType", ptr %908, i32 0, i32 3
  %910 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %909, i32 0, i32 9
  %911 = getelementptr inbounds [3 x i8], ptr %910, i64 0, i64 1
  store i8 1, ptr %911, align 1, !tbaa !11
  store i32 1, ptr %16, align 4
  br label %968

912:                                              ; preds = %899
  %913 = load ptr, ptr %9, align 8, !tbaa !5
  %914 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %913, ptr noundef @.str.668)
  br i1 %914, label %915, label %925

915:                                              ; preds = %912
  %916 = load i32, ptr %14, align 4, !tbaa !13
  %917 = load ptr, ptr %8, align 8, !tbaa !5
  %918 = getelementptr inbounds %"class.glslang::TPublicType", ptr %917, i32 0, i32 3
  %919 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %918, i32 0, i32 8
  %920 = getelementptr inbounds [3 x i32], ptr %919, i64 0, i64 2
  store i32 %916, ptr %920, align 4, !tbaa !13
  %921 = load ptr, ptr %8, align 8, !tbaa !5
  %922 = getelementptr inbounds %"class.glslang::TPublicType", ptr %921, i32 0, i32 3
  %923 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %922, i32 0, i32 9
  %924 = getelementptr inbounds [3 x i8], ptr %923, i64 0, i64 2
  store i8 1, ptr %924, align 2, !tbaa !11
  store i32 1, ptr %16, align 4
  br label %968

925:                                              ; preds = %912
  %926 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 6
  %927 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %926, i32 0, i32 0
  %928 = load i32, ptr %927, align 8, !tbaa !15
  %929 = icmp ne i32 %928, 0
  br i1 %929, label %930, label %958

930:                                              ; preds = %925
  %931 = load ptr, ptr %9, align 8, !tbaa !5
  %932 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %931, ptr noundef @.str.669)
  br i1 %932, label %933, label %939

933:                                              ; preds = %930
  %934 = load i32, ptr %14, align 4, !tbaa !13
  %935 = load ptr, ptr %8, align 8, !tbaa !5
  %936 = getelementptr inbounds %"class.glslang::TPublicType", ptr %935, i32 0, i32 3
  %937 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %936, i32 0, i32 10
  %938 = getelementptr inbounds [3 x i32], ptr %937, i64 0, i64 0
  store i32 %934, ptr %938, align 4, !tbaa !13
  store i32 1, ptr %16, align 4
  br label %968

939:                                              ; preds = %930
  %940 = load ptr, ptr %9, align 8, !tbaa !5
  %941 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %940, ptr noundef @.str.670)
  br i1 %941, label %942, label %948

942:                                              ; preds = %939
  %943 = load i32, ptr %14, align 4, !tbaa !13
  %944 = load ptr, ptr %8, align 8, !tbaa !5
  %945 = getelementptr inbounds %"class.glslang::TPublicType", ptr %944, i32 0, i32 3
  %946 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %945, i32 0, i32 10
  %947 = getelementptr inbounds [3 x i32], ptr %946, i64 0, i64 1
  store i32 %943, ptr %947, align 4, !tbaa !13
  store i32 1, ptr %16, align 4
  br label %968

948:                                              ; preds = %939
  %949 = load ptr, ptr %9, align 8, !tbaa !5
  %950 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %949, ptr noundef @.str.671)
  br i1 %950, label %951, label %957

951:                                              ; preds = %948
  %952 = load i32, ptr %14, align 4, !tbaa !13
  %953 = load ptr, ptr %8, align 8, !tbaa !5
  %954 = getelementptr inbounds %"class.glslang::TPublicType", ptr %953, i32 0, i32 3
  %955 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %954, i32 0, i32 10
  %956 = getelementptr inbounds [3 x i32], ptr %955, i64 0, i64 2
  store i32 %952, ptr %956, align 4, !tbaa !13
  store i32 1, ptr %16, align 4
  br label %968

957:                                              ; preds = %948
  br label %958

958:                                              ; preds = %957, %925
  br label %959

959:                                              ; preds = %958, %844
  br label %961

960:                                              ; preds = %631
  br label %961

961:                                              ; preds = %960, %959, %780, %742, %659
  %962 = load ptr, ptr %7, align 8, !tbaa !5
  %963 = load ptr, ptr %9, align 8, !tbaa !5
  %964 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %963) #7
  %965 = load ptr, ptr %27, align 8, !tbaa !9
  %966 = getelementptr inbounds ptr, ptr %965, i64 42
  %967 = load ptr, ptr %966, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %967(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %962, ptr noundef @.str.672, ptr noundef %964, ptr noundef @.str.2)
  store i32 0, ptr %16, align 4
  br label %968

968:                                              ; preds = %961, %951, %942, %933, %915, %902, %889, %879, %842, %811, %779, %741, %712, %685, %658, %630, %593, %557, %537, %498, %351, %316, %257, %222, %181, %146, %111, %54
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  %969 = load i32, ptr %16, align 4
  switch i32 %969, label %971 [
    i32 0, label %970
    i32 1, label %970
  ]

970:                                              ; preds = %968, %968
  ret void

971:                                              ; preds = %968
  unreachable
}

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

declare noundef zeroext i1 @_ZN7glslang13TIntermediate17addUsedConstantIdEi(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef) #3

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

declare void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN7glslang7IntLog2IiEEiT_(i32 noundef) #0

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!16, !14, i64 32}
!16 = !{!"_ZTSN7glslang14TParseVersionsE", !12, i64 8, !17, i64 12, !6, i64 16, !14, i64 24, !18, i64 28, !19, i64 32, !6, i64 56, !20, i64 64, !31, i64 120, !36, i64 176, !14, i64 180, !6, i64 184}
!17 = !{!"_ZTS8EProfile", !7, i64 0}
!18 = !{!"_ZTS11EShLanguage", !7, i64 0}
!19 = !{!"_ZTSN7glslang10SpvVersionE", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !12, i64 16}
!20 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_18TExtensionBehaviorESt4lessIS7_EEE", !21, i64 0}
!21 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_18TExtensionBehaviorESt4lessIS7_ENS5_ISt4pairIKS7_S8_EEEE", !22, i64 0}
!22 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE", !23, i64 0}
!23 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE13_Rb_tree_implISF_Lb1EEE", !24, i64 0, !25, i64 8, !27, i64 16}
!24 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEENS_18TExtensionBehaviorEEEEE", !6, i64 0}
!25 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEE", !26, i64 0}
!26 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEE"}
!27 = !{!"_ZTSSt15_Rb_tree_header", !28, i64 0, !30, i64 32}
!28 = !{!"_ZTSSt18_Rb_tree_node_base", !29, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!29 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!30 = !{!"long", !7, i64 0}
!31 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEjSt4lessIS7_EEE", !32, i64 0}
!32 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEjSt4lessIS7_ENS5_ISt4pairIKS7_jEEEE", !33, i64 0}
!33 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !34, i64 0}
!34 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !35, i64 0, !25, i64 8, !27, i64 16}
!35 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEEjEEEE", !6, i64 0}
!36 = !{!"_ZTS11EShMessages", !7, i64 0}
!37 = !{!38, !14, i64 28}
!38 = !{!"_ZTSN7glslang11TPublicTypeE", !39, i64 0, !40, i64 4, !42, i64 8, !49, i64 80, !14, i64 168, !14, i64 168, !14, i64 169, !12, i64 169, !6, i64 176, !6, i64 184, !55, i64 192, !6, i64 216, !6, i64 224}
!39 = !{!"_ZTSN7glslang10TBasicTypeE", !7, i64 0}
!40 = !{!"_ZTSN7glslang8TSamplerE", !39, i64 0, !41, i64 1, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !12, i64 2, !14, i64 2, !14, i64 3, !12, i64 3, !12, i64 3}
!41 = !{!"_ZTSN7glslang11TSamplerDimE", !7, i64 0}
!42 = !{!"_ZTSN7glslang10TQualifierE", !6, i64 0, !43, i64 8, !44, i64 8, !44, i64 9, !45, i64 11, !12, i64 11, !12, i64 11, !12, i64 11, !12, i64 11, !12, i64 11, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 15, !12, i64 15, !12, i64 15, !46, i64 15, !47, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 29, !14, i64 29, !14, i64 32, !14, i64 34, !14, i64 35, !14, i64 36, !14, i64 36, !14, i64 38, !14, i64 40, !14, i64 41, !14, i64 42, !48, i64 44, !12, i64 45, !12, i64 46, !12, i64 47, !12, i64 48, !14, i64 52, !12, i64 56, !14, i64 60, !6, i64 64}
!43 = !{!"_ZTSN7glslang17TStorageQualifierE", !7, i64 0}
!44 = !{!"_ZTSN7glslang16TBuiltInVariableE", !7, i64 0}
!45 = !{!"_ZTSN7glslang19TPrecisionQualifierE", !7, i64 0}
!46 = !{!"_ZTSN7glslang13TLayoutMatrixE", !7, i64 0}
!47 = !{!"_ZTSN7glslang14TLayoutPackingE", !7, i64 0}
!48 = !{!"_ZTSN7glslang13TLayoutFormatE", !7, i64 0}
!49 = !{!"_ZTSN7glslang17TShaderQualifiersE", !50, i64 0, !12, i64 4, !12, i64 5, !14, i64 8, !14, i64 12, !51, i64 16, !52, i64 20, !12, i64 24, !7, i64 28, !7, i64 40, !7, i64 44, !12, i64 56, !12, i64 57, !53, i64 60, !12, i64 64, !14, i64 68, !54, i64 72, !12, i64 76, !12, i64 77, !12, i64 78, !14, i64 80, !12, i64 84}
!50 = !{!"_ZTSN7glslang15TLayoutGeometryE", !7, i64 0}
!51 = !{!"_ZTSN7glslang14TVertexSpacingE", !7, i64 0}
!52 = !{!"_ZTSN7glslang12TVertexOrderE", !7, i64 0}
!53 = !{!"_ZTSN7glslang12TLayoutDepthE", !7, i64 0}
!54 = !{!"_ZTSN7glslang18TInterlockOrderingE", !7, i64 0}
!55 = !{!"_ZTSN7glslang10TSourceLocE", !6, i64 0, !14, i64 8, !14, i64 12, !14, i64 16}
!56 = !{i8 0, i8 2}
!57 = !{}
!58 = !{!38, !14, i64 32}
!59 = !{!16, !6, i64 56}
!60 = !{!61, !14, i64 1664}
!61 = !{!"_ZTSN7glslang13TParseContextE", !62, i64 0, !12, i64 1176, !6, i64 1184, !42, i64 1192, !7, i64 1264, !88, i64 1352, !6, i64 1736, !7, i64 1744, !111, i64 24272, !42, i64 24288, !42, i64 24360, !42, i64 24432, !42, i64 24504, !42, i64 24576, !90, i64 24648, !6, i64 24688, !12, i64 24696, !112, i64 24704, !117, i64 24752, !123, i64 24784, !123, i64 24832, !82, i64 24880}
!62 = !{!"_ZTSN7glslang17TParseContextBaseE", !16, i64 0, !6, i64 192, !6, i64 200, !14, i64 208, !14, i64 212, !14, i64 216, !14, i64 220, !14, i64 224, !6, i64 232, !12, i64 240, !12, i64 241, !63, i64 248, !70, i64 280, !75, i64 312, !14, i64 376, !14, i64 380, !12, i64 384, !82, i64 392, !6, i64 424, !6, i64 432, !88, i64 440, !6, i64 824, !90, i64 832, !93, i64 872, !95, i64 904, !96, i64 936, !97, i64 968, !98, i64 1000, !6, i64 1032, !14, i64 1040, !14, i64 1044, !14, i64 1048, !99, i64 1056, !14, i64 1112, !106, i64 1120}
!63 = !{!"_ZTSN7glslang5TListIPNS_7TVectorIP11TIntermNodeEEEE", !64, i64 0}
!64 = !{!"_ZTSNSt7__cxx114listIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEEE", !65, i64 0}
!65 = !{!"_ZTSNSt7__cxx1110_List_baseIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEEE", !66, i64 0}
!66 = !{!"_ZTSNSt7__cxx1110_List_baseIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEE10_List_implE", !67, i64 0, !68, i64 8}
!67 = !{!"_ZTSN7glslang14pool_allocatorISt10_List_nodeIPNS_7TVectorIP11TIntermNodeEEEEE", !6, i64 0}
!68 = !{!"_ZTSNSt8__detail17_List_node_headerE", !69, i64 0, !30, i64 16}
!69 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!70 = !{!"_ZTSN7glslang5TListIiEE", !71, i64 0}
!71 = !{!"_ZTSNSt7__cxx114listIiN7glslang14pool_allocatorIiEEEE", !72, i64 0}
!72 = !{!"_ZTSNSt7__cxx1110_List_baseIiN7glslang14pool_allocatorIiEEEE", !73, i64 0}
!73 = !{!"_ZTSNSt7__cxx1110_List_baseIiN7glslang14pool_allocatorIiEEE10_List_implE", !74, i64 0, !68, i64 8}
!74 = !{!"_ZTSN7glslang14pool_allocatorISt10_List_nodeIiEEE", !6, i64 0}
!75 = !{!"_ZTSN7glslang7TPragmaE", !12, i64 0, !12, i64 1, !76, i64 8}
!76 = !{!"_ZTSN7glslang12TPragmaTableE", !77, i64 0}
!77 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_St4lessIS7_EEE", !78, i64 0}
!78 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEES7_St4lessIS7_ENS5_ISt4pairIKS7_S7_EEEE", !79, i64 0}
!79 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_S7_ESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !80, i64 0}
!80 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_S7_ESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !81, i64 0, !25, i64 8, !27, i64 16}
!81 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEES8_EEEE", !6, i64 0}
!82 = !{!"_ZTSN7glslang7TVectorIPNS_7TSymbolEEE", !83, i64 0}
!83 = !{!"_ZTSSt6vectorIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE", !84, i64 0}
!84 = !{!"_ZTSSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE", !85, i64 0}
!85 = !{!"_ZTSNSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE12_Vector_implE", !86, i64 0, !87, i64 8}
!86 = !{!"_ZTSN7glslang14pool_allocatorIPNS_7TSymbolEEE", !6, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!88 = !{!"_ZTS16TBuiltInResource", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !14, i64 36, !14, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56, !14, i64 60, !14, i64 64, !14, i64 68, !14, i64 72, !14, i64 76, !14, i64 80, !14, i64 84, !14, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !14, i64 136, !14, i64 140, !14, i64 144, !14, i64 148, !14, i64 152, !14, i64 156, !14, i64 160, !14, i64 164, !14, i64 168, !14, i64 172, !14, i64 176, !14, i64 180, !14, i64 184, !14, i64 188, !14, i64 192, !14, i64 196, !14, i64 200, !14, i64 204, !14, i64 208, !14, i64 212, !14, i64 216, !14, i64 220, !14, i64 224, !14, i64 228, !14, i64 232, !14, i64 236, !14, i64 240, !14, i64 244, !14, i64 248, !14, i64 252, !14, i64 256, !14, i64 260, !14, i64 264, !14, i64 268, !14, i64 272, !14, i64 276, !14, i64 280, !14, i64 284, !14, i64 288, !14, i64 292, !14, i64 296, !14, i64 300, !14, i64 304, !14, i64 308, !14, i64 312, !14, i64 316, !14, i64 320, !14, i64 324, !14, i64 328, !14, i64 332, !14, i64 336, !14, i64 340, !14, i64 344, !14, i64 348, !14, i64 352, !14, i64 356, !14, i64 360, !14, i64 364, !14, i64 368, !89, i64 372}
!89 = !{!"_ZTS7TLimits", !12, i64 0, !12, i64 1, !12, i64 2, !12, i64 3, !12, i64 4, !12, i64 5, !12, i64 6, !12, i64 7, !12, i64 8}
!90 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEE", !91, i64 0, !30, i64 16, !7, i64 24}
!91 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE12_Alloc_hiderE", !92, i64 0, !6, i64 8}
!92 = !{!"_ZTSN7glslang14pool_allocatorIcEE", !6, i64 0}
!93 = !{!"_ZTSSt8functionIFviibiPKcEE", !94, i64 0, !6, i64 24}
!94 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!95 = !{!"_ZTSSt8functionIFviRKN7glslang7TVectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_14pool_allocatorIcEEEEEEEE", !94, i64 0, !6, i64 24}
!96 = !{!"_ZTSSt8functionIFviiPKcEE", !94, i64 0, !6, i64 24}
!97 = !{!"_ZTSSt8functionIFviPKcS1_EE", !94, i64 0, !6, i64 24}
!98 = !{!"_ZTSSt8functionIFviPKcEE", !94, i64 0, !6, i64 24}
!99 = !{!"_ZTSN7glslang4TMapIiPNS_9TVariableESt4lessIiEEE", !100, i64 0}
!100 = !{!"_ZTSSt3mapIiPN7glslang9TVariableESt4lessIiENS0_14pool_allocatorISt4pairIKiS2_EEEE", !101, i64 0}
!101 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiPN7glslang9TVariableEESt10_Select1stIS5_ESt4lessIiENS2_14pool_allocatorIS5_EEE", !102, i64 0}
!102 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiPN7glslang9TVariableEESt10_Select1stIS5_ESt4lessIiENS2_14pool_allocatorIS5_EEE13_Rb_tree_implIS9_Lb1EEE", !103, i64 0, !104, i64 8, !27, i64 16}
!103 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKiPNS_9TVariableEEEEE", !6, i64 0}
!104 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !105, i64 0}
!105 = !{!"_ZTSSt4lessIiE"}
!106 = !{!"_ZTSN7glslang4TMapIiiSt4lessIiEEE", !107, i64 0}
!107 = !{!"_ZTSSt3mapIiiSt4lessIiEN7glslang14pool_allocatorISt4pairIKiiEEEE", !108, i64 0}
!108 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiEN7glslang14pool_allocatorIS2_EEE", !109, i64 0}
!109 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiEN7glslang14pool_allocatorIS2_EEE13_Rb_tree_implIS6_Lb1EEE", !110, i64 0, !104, i64 8, !27, i64 16}
!110 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKiiEEEE", !6, i64 0}
!111 = !{!"_ZTSN7glslang17TPrecisionManagerE", !12, i64 8, !12, i64 9, !12, i64 10, !12, i64 11}
!112 = !{!"_ZTSSt3setIxSt4lessIxESaIxEE", !113, i64 0}
!113 = !{!"_ZTSSt8_Rb_treeIxxSt9_IdentityIxESt4lessIxESaIxEE", !114, i64 0}
!114 = !{!"_ZTSNSt8_Rb_treeIxxSt9_IdentityIxESt4lessIxESaIxEE13_Rb_tree_implIS3_Lb1EEE", !115, i64 0, !27, i64 8}
!115 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIxEE", !116, i64 0}
!116 = !{!"_ZTSSt4lessIxE"}
!117 = !{!"_ZTSN7glslang7TVectorIPNS_12TIntermTypedEEE", !118, i64 0}
!118 = !{!"_ZTSSt6vectorIPN7glslang12TIntermTypedENS0_14pool_allocatorIS2_EEE", !119, i64 0}
!119 = !{!"_ZTSSt12_Vector_baseIPN7glslang12TIntermTypedENS0_14pool_allocatorIS2_EEE", !120, i64 0}
!120 = !{!"_ZTSNSt12_Vector_baseIPN7glslang12TIntermTypedENS0_14pool_allocatorIS2_EEE12_Vector_implE", !121, i64 0, !122, i64 8}
!121 = !{!"_ZTSN7glslang14pool_allocatorIPNS_12TIntermTypedEEE", !6, i64 0}
!122 = !{!"_ZTSNSt12_Vector_baseIPN7glslang12TIntermTypedENS0_14pool_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!123 = !{!"_ZTSSt3mapIPKN7glslang7TVectorINS0_8TTypeLocEEES_ImS5_St4lessImESaISt4pairIKmS5_EEES6_IS5_ESaIS8_IKS5_SC_EEE", !124, i64 0}
!124 = !{!"_ZTSSt8_Rb_treeIPKN7glslang7TVectorINS0_8TTypeLocEEESt4pairIKS5_St3mapImS5_St4lessImESaIS6_IKmS5_EEEESt10_Select1stISF_ES9_IS5_ESaISF_EE", !125, i64 0}
!125 = !{!"_ZTSNSt8_Rb_treeIPKN7glslang7TVectorINS0_8TTypeLocEEESt4pairIKS5_St3mapImS5_St4lessImESaIS6_IKmS5_EEEESt10_Select1stISF_ES9_IS5_ESaISF_EE13_Rb_tree_implISI_Lb1EEE", !126, i64 0, !27, i64 8}
!126 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPKN7glslang7TVectorINS1_8TTypeLocEEEEE", !127, i64 0}
!127 = !{!"_ZTSSt4lessIPKN7glslang7TVectorINS0_8TTypeLocEEEE"}
!128 = !{!61, !14, i64 1668}
!129 = !{!38, !14, i64 148}
!130 = !{!16, !18, i64 28}
!131 = !{!38, !14, i64 60}
!132 = !{!38, !14, i64 92}
!133 = !{!38, !14, i64 88}
!134 = !{!61, !14, i64 1540}
!135 = !{!61, !14, i64 1684}
!136 = !{!38, !14, i64 160}
!137 = !{!61, !14, i64 1688}


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

@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZN7glslangL19E_GL_NV_mesh_shaderE = external hidden constant ptr, align 8
@_ZN7glslangL25E_GL_EXT_buffer_referenceE = external hidden constant ptr, align 8
@.str.609 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [19 x i8], align 1
@__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.614 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.615 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.617 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.618 = external hidden unnamed_addr constant [9 x i8], align 1
@__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts.620 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.621 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.623 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.624 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.625 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.626 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.627 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.628 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.629 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.630 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.631 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.632 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.633 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.634 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.635 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.636 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.637 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.638 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.639 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.640 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.641 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.642 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.643 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.644 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.645 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZN7glslangL18OVR_multiview_EXTsE = external hidden constant [2 x ptr], align 16
@.str.646 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZN7glslangL29E_GL_NV_stereo_view_renderingE = external hidden constant ptr, align 8
@.str.647 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.648 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.649 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.650 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.651 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.652 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.653 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.654 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.655 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.656 = external hidden unnamed_addr constant [42 x i8], align 1
@__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts.657 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.658 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.659 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.660 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.661 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.662 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.663 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.664 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.665 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.666 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.667 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.668 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.669 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.670 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.671 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.672 = external hidden unnamed_addr constant [75 x i8], align 1

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

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #0 align 2

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

declare void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang6IsPow2IiEEbT_(i32 noundef) local_unnamed_addr #0

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEESB_PDoFiiEET0_T_SF_SE_T1_(ptr, ptr, ptr, ptr noundef) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @tolower(i32 noundef) #6

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull align 8 dereferenceable(232) %2, ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %4) local_unnamed_addr #5 align 2 {
  %6 = alloca [2 x ptr], align 16
  %7 = alloca [2 x ptr], align 16
  %8 = alloca [2 x ptr], align 16
  tail call void @_ZN7glslang13TParseContext12integerCheckEPKNS_12TIntermTypedEPKc(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef %4, ptr noundef nonnull @.str.609)
  %9 = load ptr, ptr %4, align 8, !tbaa !5
  %10 = getelementptr inbounds i8, ptr %9, i64 136
  %11 = load ptr, ptr %10, align 8
  %12 = tail call noundef ptr %11(ptr noundef nonnull align 8 dereferenceable(32) %4)
  %.not = icmp eq ptr %12, null
  br i1 %.not, label %.thread, label %13

13:                                               ; preds = %5
  %14 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %12)
  %15 = tail call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef 0)
  %16 = tail call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %15)
  %17 = tail call noundef zeroext i1 @_ZNK7glslang20TIntermConstantUnion9isLiteralEv(ptr noundef nonnull align 8 dereferenceable(193) %12)
  br i1 %17, label %19, label %18

18:                                               ; preds = %13
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, ptr noundef nonnull @.str.610)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 440, ptr noundef nonnull @.str.611, ptr noundef nonnull @.str.610)
  br label %19

19:                                               ; preds = %13, %18
  %20 = icmp slt i32 %16, 0
  br i1 %20, label %21, label %.thread

21:                                               ; preds = %19
  %22 = load ptr, ptr %0, align 8, !tbaa !5
  %23 = getelementptr inbounds i8, ptr %22, i64 336
  %24 = load ptr, ptr %23, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %24(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.612, ptr noundef nonnull @.str.609, ptr noundef nonnull @.str.2)
  br label %.critedge

.thread:                                          ; preds = %5, %19
  %.0265 = phi i32 [ %16, %19 ], [ 0, %5 ]
  %25 = tail call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %26 = tail call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %27 = tail call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %28 = tail call ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEESB_PDoFiiEET0_T_SF_SE_T1_(ptr %25, ptr %26, ptr %27, ptr noundef nonnull @tolower)
  %29 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.207)
  br i1 %29, label %30, label %44

30:                                               ; preds = %.thread
  %31 = getelementptr inbounds i8, ptr %0, i64 32
  %32 = load i32, ptr %31, align 8, !tbaa !8
  %33 = icmp eq i32 %32, 0
  br i1 %33, label %34, label %35

34:                                               ; preds = %30
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 14, ptr noundef nonnull @.str.207)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %6, ptr noundef nonnull align 16 dereferenceable(16) @__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts, i64 16, i1 false)
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 420, i32 noundef 2, ptr noundef nonnull %6, ptr noundef nonnull @.str.207)
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef nonnull @.str.207)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  br label %35

35:                                               ; preds = %34, %30
  %36 = getelementptr inbounds i8, ptr %2, i64 28
  store i32 %.0265, ptr %36, align 4, !tbaa !34
  %37 = getelementptr inbounds i8, ptr %2, i64 16
  %38 = load i64, ptr %37, align 8
  %39 = or i64 %38, 8589934592
  store i64 %39, ptr %37, align 8
  br i1 %.not, label %40, label %.critedge

40:                                               ; preds = %35
  %41 = load ptr, ptr %0, align 8, !tbaa !5
  %42 = getelementptr inbounds i8, ptr %41, i64 336
  %43 = load ptr, ptr %42, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %43(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.207, ptr noundef nonnull @.str.2)
  br label %.critedge

44:                                               ; preds = %.thread
  %45 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.615)
  br i1 %45, label %46, label %64

46:                                               ; preds = %44
  %47 = getelementptr inbounds i8, ptr %0, i64 32
  %48 = load i32, ptr %47, align 8, !tbaa !8
  %49 = icmp eq i32 %48, 0
  br i1 %49, label %50, label %51

50:                                               ; preds = %46
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, ptr noundef nonnull @.str.616)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 440, ptr noundef nonnull @.str.611, ptr noundef nonnull @.str.616)
  br label %51

51:                                               ; preds = %50, %46
  %52 = tail call noundef zeroext i1 @_ZN7glslang6IsPow2IiEEbT_(i32 noundef %.0265)
  br i1 %52, label %57, label %53

53:                                               ; preds = %51
  %54 = load ptr, ptr %0, align 8, !tbaa !5
  %55 = getelementptr inbounds i8, ptr %54, i64 336
  %56 = load ptr, ptr %55, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %56(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.617, ptr noundef nonnull @.str.615, ptr noundef nonnull @.str.2)
  br label %59

57:                                               ; preds = %51
  %58 = getelementptr inbounds i8, ptr %2, i64 32
  store i32 %.0265, ptr %58, align 8, !tbaa !53
  br label %59

59:                                               ; preds = %57, %53
  br i1 %.not, label %60, label %.critedge

60:                                               ; preds = %59
  %61 = load ptr, ptr %0, align 8, !tbaa !5
  %62 = getelementptr inbounds i8, ptr %61, i64 336
  %63 = load ptr, ptr %62, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %63(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.615, ptr noundef nonnull @.str.2)
  br label %.critedge

64:                                               ; preds = %44
  %65 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.618)
  br i1 %65, label %66, label %85

66:                                               ; preds = %64
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 300, ptr noundef null, ptr noundef nonnull @.str.618)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %7, ptr noundef nonnull align 16 dereferenceable(16) @__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts.620, i64 16, i1 false)
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 330, i32 noundef 2, ptr noundef nonnull %7, ptr noundef nonnull @.str.618)
  %67 = icmp ugt i32 %.0265, 4094
  br i1 %67, label %68, label %73

68:                                               ; preds = %66
  %69 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %70 = load ptr, ptr %0, align 8, !tbaa !5
  %71 = getelementptr inbounds i8, ptr %70, i64 336
  %72 = load ptr, ptr %71, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %72(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.621, ptr noundef %69, ptr noundef nonnull @.str.2)
  br label %79

73:                                               ; preds = %66
  %74 = getelementptr inbounds i8, ptr %2, i64 36
  %75 = zext nneg i32 %.0265 to i64
  %76 = load i64, ptr %74, align 4
  %77 = and i64 %76, -4096
  %78 = or disjoint i64 %77, %75
  store i64 %78, ptr %74, align 4
  br label %79

79:                                               ; preds = %73, %68
  br i1 %.not, label %80, label %84

80:                                               ; preds = %79
  %81 = load ptr, ptr %0, align 8, !tbaa !5
  %82 = getelementptr inbounds i8, ptr %81, i64 336
  %83 = load ptr, ptr %82, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %83(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.618, ptr noundef nonnull @.str.2)
  br label %84

84:                                               ; preds = %80, %79
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #7
  br label %.critedge

85:                                               ; preds = %64
  %86 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.622)
  br i1 %86, label %87, label %109

87:                                               ; preds = %85
  %88 = icmp ugt i32 %.0265, 62
  br i1 %88, label %.thread266, label %93

.thread266:                                       ; preds = %87
  %89 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %90 = load ptr, ptr %0, align 8, !tbaa !5
  %91 = getelementptr inbounds i8, ptr %90, i64 336
  %92 = load ptr, ptr %91, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %92(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.623, ptr noundef %89, ptr noundef nonnull @.str.2)
  br label %100

93:                                               ; preds = %87
  %94 = getelementptr inbounds i8, ptr %2, i64 36
  %95 = load i64, ptr %94, align 4
  %96 = shl nuw nsw i32 %.0265, 15
  %97 = zext nneg i32 %96 to i64
  %98 = and i64 %95, -4161537
  %99 = or disjoint i64 %98, %97
  store i64 %99, ptr %94, align 4
  %.not262 = icmp eq i32 %.0265, 0
  br i1 %.not262, label %104, label %100

100:                                              ; preds = %.thread266, %93
  %101 = load ptr, ptr %0, align 8, !tbaa !5
  %102 = getelementptr inbounds i8, ptr %101, i64 312
  %103 = load ptr, ptr %102, align 8
  tail call void %103(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.624)
  br label %104

104:                                              ; preds = %100, %93
  br i1 %.not, label %105, label %.critedge

105:                                              ; preds = %104
  %106 = load ptr, ptr %0, align 8, !tbaa !5
  %107 = getelementptr inbounds i8, ptr %106, i64 336
  %108 = load ptr, ptr %107, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %108(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.622, ptr noundef nonnull @.str.2)
  br label %.critedge

109:                                              ; preds = %85
  %110 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.625)
  br i1 %110, label %111, label %130

111:                                              ; preds = %109
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 420, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.625)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef nonnull @.str.625)
  %112 = icmp ugt i32 %.0265, 65534
  br i1 %112, label %113, label %118

113:                                              ; preds = %111
  %114 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %115 = load ptr, ptr %0, align 8, !tbaa !5
  %116 = getelementptr inbounds i8, ptr %115, i64 336
  %117 = load ptr, ptr %116, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %117(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.626, ptr noundef %114, ptr noundef nonnull @.str.2)
  br label %125

118:                                              ; preds = %111
  %119 = getelementptr inbounds i8, ptr %2, i64 36
  %120 = zext nneg i32 %.0265 to i64
  %121 = load i64, ptr %119, align 4
  %122 = shl nuw nsw i64 %120, 32
  %123 = and i64 %121, -281470681743361
  %124 = or disjoint i64 %123, %122
  store i64 %124, ptr %119, align 4
  br label %125

125:                                              ; preds = %118, %113
  br i1 %.not, label %126, label %.critedge

126:                                              ; preds = %125
  %127 = load ptr, ptr %0, align 8, !tbaa !5
  %128 = getelementptr inbounds i8, ptr %127, i64 336
  %129 = load ptr, ptr %128, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %129(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.625, ptr noundef nonnull @.str.2)
  br label %.critedge

130:                                              ; preds = %109
  %131 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.627)
  br i1 %131, label %132, label %159

132:                                              ; preds = %130
  %133 = load ptr, ptr %0, align 8, !tbaa !5
  %134 = getelementptr inbounds i8, ptr %133, i64 320
  %135 = load ptr, ptr %134, align 8
  tail call void %135(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.627)
  %136 = icmp ugt i32 %.0265, 2046
  br i1 %136, label %.sink.split, label %137

137:                                              ; preds = %132
  %138 = getelementptr inbounds i8, ptr %2, i64 44
  %139 = load i64, ptr %138, align 4
  %140 = zext nneg i32 %.0265 to i64
  %141 = shl nuw nsw i64 %140, 40
  %142 = and i64 %139, -2250700302057473
  %143 = or disjoint i64 %142, %141
  store i64 %143, ptr %138, align 4
  %144 = getelementptr inbounds i8, ptr %2, i64 16
  %145 = load i64, ptr %144, align 8
  %146 = or i64 %145, 2147483648
  store i64 %146, ptr %144, align 8
  %147 = getelementptr inbounds i8, ptr %0, i64 56
  %148 = load ptr, ptr %147, align 8, !tbaa !54
  %149 = tail call noundef zeroext i1 @_ZN7glslang13TIntermediate17addUsedConstantIdEi(ptr noundef nonnull align 8 dereferenceable(1784) %148, i32 noundef %.0265)
  br i1 %149, label %154, label %.sink.split

.sink.split:                                      ; preds = %137, %132
  %.str.629.sink = phi ptr [ @.str.628, %132 ], [ @.str.629, %137 ]
  %150 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %151 = load ptr, ptr %0, align 8, !tbaa !5
  %152 = getelementptr inbounds i8, ptr %151, i64 336
  %153 = load ptr, ptr %152, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %153(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull %.str.629.sink, ptr noundef %150, ptr noundef nonnull @.str.2)
  br label %154

154:                                              ; preds = %.sink.split, %137
  br i1 %.not, label %155, label %.critedge

155:                                              ; preds = %154
  %156 = load ptr, ptr %0, align 8, !tbaa !5
  %157 = getelementptr inbounds i8, ptr %156, i64 336
  %158 = load ptr, ptr %157, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %158(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.627, ptr noundef nonnull @.str.2)
  br label %.critedge

159:                                              ; preds = %130
  %160 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.630)
  br i1 %160, label %161, label %180

161:                                              ; preds = %159
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, ptr noundef nonnull @.str.630)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 440, ptr noundef nonnull @.str.611, ptr noundef nonnull @.str.630)
  %162 = icmp ugt i32 %.0265, 3
  br i1 %162, label %163, label %168

163:                                              ; preds = %161
  %164 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %165 = load ptr, ptr %0, align 8, !tbaa !5
  %166 = getelementptr inbounds i8, ptr %165, i64 336
  %167 = load ptr, ptr %166, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %167(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.631, ptr noundef %164, ptr noundef nonnull @.str.2)
  br label %175

168:                                              ; preds = %161
  %169 = getelementptr inbounds i8, ptr %2, i64 36
  %170 = load i64, ptr %169, align 4
  %171 = shl nuw nsw i32 %.0265, 12
  %172 = zext nneg i32 %171 to i64
  %173 = and i64 %170, -28673
  %174 = or disjoint i64 %173, %172
  store i64 %174, ptr %169, align 4
  br label %175

175:                                              ; preds = %168, %163
  br i1 %.not, label %176, label %.critedge

176:                                              ; preds = %175
  %177 = load ptr, ptr %0, align 8, !tbaa !5
  %178 = getelementptr inbounds i8, ptr %177, i64 336
  %179 = load ptr, ptr %178, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %179(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.630, ptr noundef nonnull @.str.2)
  br label %.critedge

180:                                              ; preds = %159
  %181 = tail call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %3, i64 noundef 0, i64 noundef 4, ptr noundef nonnull @.str.632)
  %182 = icmp eq i32 %181, 0
  br i1 %182, label %183, label %267

183:                                              ; preds = %180
  %184 = getelementptr inbounds i8, ptr %0, i64 56
  %185 = load ptr, ptr %184, align 8, !tbaa !54
  tail call void @_ZN7glslang13TIntermediate10setXfbModeEv(ptr noundef nonnull align 8 dereferenceable(1784) %185)
  tail call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 15, ptr noundef nonnull @.str.633)
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, ptr noundef nonnull @.str.633)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 440, ptr noundef nonnull @.str.611, ptr noundef nonnull @.str.633)
  %186 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.511)
  br i1 %186, label %187, label %214

187:                                              ; preds = %183
  %188 = getelementptr inbounds i8, ptr %0, i64 1664
  %189 = load i32, ptr %188, align 8, !tbaa !55
  %.not259 = icmp slt i32 %.0265, %189
  br i1 %.not259, label %196, label %190

190:                                              ; preds = %187
  %191 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %192 = load i32, ptr %188, align 8, !tbaa !55
  %193 = load ptr, ptr %0, align 8, !tbaa !5
  %194 = getelementptr inbounds i8, ptr %193, i64 336
  %195 = load ptr, ptr %194, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %195(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.634, ptr noundef %191, ptr noundef nonnull @.str.635, i32 noundef %192)
  br label %196

196:                                              ; preds = %190, %187
  %197 = icmp ugt i32 %.0265, 14
  br i1 %197, label %198, label %203

198:                                              ; preds = %196
  %199 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %200 = load ptr, ptr %0, align 8, !tbaa !5
  %201 = getelementptr inbounds i8, ptr %200, i64 336
  %202 = load ptr, ptr %201, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %202(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.634, ptr noundef %199, ptr noundef nonnull @.str.636, i32 noundef 14)
  br label %209

203:                                              ; preds = %196
  %204 = getelementptr inbounds i8, ptr %2, i64 44
  %205 = load i64, ptr %204, align 4
  %206 = zext nneg i32 %.0265 to i64
  %207 = and i64 %205, -16
  %208 = or disjoint i64 %207, %206
  store i64 %208, ptr %204, align 4
  br label %209

209:                                              ; preds = %203, %198
  br i1 %.not, label %210, label %.critedge

210:                                              ; preds = %209
  %211 = load ptr, ptr %0, align 8, !tbaa !5
  %212 = getelementptr inbounds i8, ptr %211, i64 336
  %213 = load ptr, ptr %212, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %213(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.511, ptr noundef nonnull @.str.2)
  br label %.critedge

214:                                              ; preds = %183
  %215 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.637)
  br i1 %215, label %216, label %235

216:                                              ; preds = %214
  %217 = icmp ugt i32 %.0265, 8190
  br i1 %217, label %218, label %223

218:                                              ; preds = %216
  %219 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %220 = load ptr, ptr %0, align 8, !tbaa !5
  %221 = getelementptr inbounds i8, ptr %220, i64 336
  %222 = load ptr, ptr %221, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %222(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.638, ptr noundef %219, ptr noundef nonnull @.str.636, i32 noundef 8190)
  br label %230

223:                                              ; preds = %216
  %224 = getelementptr inbounds i8, ptr %2, i64 44
  %225 = load i64, ptr %224, align 4
  %226 = shl nuw nsw i32 %.0265, 18
  %227 = zext nneg i32 %226 to i64
  %228 = and i64 %225, -2147221505
  %229 = or disjoint i64 %228, %227
  store i64 %229, ptr %224, align 4
  br label %230

230:                                              ; preds = %223, %218
  br i1 %.not, label %231, label %.critedge

231:                                              ; preds = %230
  %232 = load ptr, ptr %0, align 8, !tbaa !5
  %233 = getelementptr inbounds i8, ptr %232, i64 336
  %234 = load ptr, ptr %233, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %234(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.637, ptr noundef nonnull @.str.2)
  br label %.critedge

235:                                              ; preds = %214
  %236 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.639)
  br i1 %236, label %237, label %267

237:                                              ; preds = %235
  %238 = getelementptr inbounds i8, ptr %0, i64 1668
  %239 = load i32, ptr %238, align 4, !tbaa !123
  %240 = shl nsw i32 %239, 2
  %241 = icmp sgt i32 %.0265, %240
  br i1 %241, label %242, label %248

242:                                              ; preds = %237
  %243 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %244 = load i32, ptr %238, align 4, !tbaa !123
  %245 = load ptr, ptr %0, align 8, !tbaa !5
  %246 = getelementptr inbounds i8, ptr %245, i64 336
  %247 = load ptr, ptr %246, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %247(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.640, ptr noundef %243, ptr noundef nonnull @.str.641, i32 noundef %244)
  br label %248

248:                                              ; preds = %242, %237
  %249 = icmp ugt i32 %.0265, 16382
  br i1 %249, label %250, label %255

250:                                              ; preds = %248
  %251 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %252 = load ptr, ptr %0, align 8, !tbaa !5
  %253 = getelementptr inbounds i8, ptr %252, i64 336
  %254 = load ptr, ptr %253, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %254(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.642, ptr noundef %251, ptr noundef nonnull @.str.636, i32 noundef 16382)
  br label %262

255:                                              ; preds = %248
  %256 = getelementptr inbounds i8, ptr %2, i64 44
  %257 = load i64, ptr %256, align 4
  %258 = shl nuw nsw i32 %.0265, 4
  %259 = zext nneg i32 %258 to i64
  %260 = and i64 %257, -262129
  %261 = or disjoint i64 %260, %259
  store i64 %261, ptr %256, align 4
  br label %262

262:                                              ; preds = %255, %250
  br i1 %.not, label %263, label %.critedge

263:                                              ; preds = %262
  %264 = load ptr, ptr %0, align 8, !tbaa !5
  %265 = getelementptr inbounds i8, ptr %264, i64 336
  %266 = load ptr, ptr %265, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %266(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.639, ptr noundef nonnull @.str.2)
  br label %.critedge

267:                                              ; preds = %235, %180
  %268 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.643)
  br i1 %268, label %269, label %291

269:                                              ; preds = %267
  %270 = load ptr, ptr %0, align 8, !tbaa !5
  %271 = getelementptr inbounds i8, ptr %270, i64 312
  %272 = load ptr, ptr %271, align 8
  tail call void %272(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.643)
  %273 = icmp ugt i32 %.0265, 254
  br i1 %273, label %274, label %279

274:                                              ; preds = %269
  %275 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %276 = load ptr, ptr %0, align 8, !tbaa !5
  %277 = getelementptr inbounds i8, ptr %276, i64 336
  %278 = load ptr, ptr %277, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %278(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.644, ptr noundef %275, ptr noundef nonnull @.str.2)
  br label %286

279:                                              ; preds = %269
  %280 = getelementptr inbounds i8, ptr %2, i64 44
  %281 = load i64, ptr %280, align 4
  %282 = zext nneg i32 %.0265 to i64
  %283 = shl nuw nsw i64 %282, 32
  %284 = and i64 %281, -1095216660481
  %285 = or disjoint i64 %284, %283
  store i64 %285, ptr %280, align 4
  br label %286

286:                                              ; preds = %279, %274
  br i1 %.not, label %287, label %.critedge

287:                                              ; preds = %286
  %288 = load ptr, ptr %0, align 8, !tbaa !5
  %289 = getelementptr inbounds i8, ptr %288, i64 336
  %290 = load ptr, ptr %289, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %290(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.643, ptr noundef nonnull @.str.2)
  br label %.critedge

291:                                              ; preds = %267
  %292 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.645)
  br i1 %292, label %293, label %302

293:                                              ; preds = %291
  %294 = load ptr, ptr %0, align 8, !tbaa !5
  %295 = getelementptr inbounds i8, ptr %294, i64 40
  %296 = load ptr, ptr %295, align 8
  tail call void %296(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 2, ptr noundef nonnull @_ZN7glslangL18OVR_multiview_EXTsE, ptr noundef nonnull @.str.645)
  %297 = getelementptr inbounds i8, ptr %2, i64 148
  store i32 %.0265, ptr %297, align 4, !tbaa !124
  br i1 %.not, label %298, label %.critedge

298:                                              ; preds = %293
  %299 = load ptr, ptr %0, align 8, !tbaa !5
  %300 = getelementptr inbounds i8, ptr %299, i64 336
  %301 = load ptr, ptr %300, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %301(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.645, ptr noundef nonnull @.str.2)
  br label %.critedge

302:                                              ; preds = %291
  %303 = getelementptr inbounds i8, ptr %0, i64 28
  %304 = load i32, ptr %303, align 4, !tbaa !125
  %switch = icmp ult i32 %304, 4
  br i1 %switch, label %305, label %316

305:                                              ; preds = %302
  %306 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.646)
  br i1 %306, label %307, label %316

307:                                              ; preds = %305
  %308 = load ptr, ptr %0, align 8, !tbaa !5
  %309 = getelementptr inbounds i8, ptr %308, i64 40
  %310 = load ptr, ptr %309, align 8
  tail call void %310(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL29E_GL_NV_stereo_view_renderingE, ptr noundef nonnull @.str.647)
  %311 = getelementptr inbounds i8, ptr %2, i64 60
  store i32 %.0265, ptr %311, align 4, !tbaa !126
  br i1 %.not, label %312, label %.critedge

312:                                              ; preds = %307
  %313 = load ptr, ptr %0, align 8, !tbaa !5
  %314 = getelementptr inbounds i8, ptr %313, i64 336
  %315 = load ptr, ptr %314, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %315(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.646, ptr noundef nonnull @.str.2)
  br label %.critedge

316:                                              ; preds = %302, %305
  %317 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.648)
  br i1 %317, label %318, label %341

318:                                              ; preds = %316
  %319 = load ptr, ptr %0, align 8, !tbaa !5
  %320 = getelementptr inbounds i8, ptr %319, i64 40
  %321 = load ptr, ptr %320, align 8
  tail call void %321(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL25E_GL_EXT_buffer_referenceE, ptr noundef nonnull @.str.648)
  %322 = tail call noundef zeroext i1 @_ZN7glslang6IsPow2IiEEbT_(i32 noundef %.0265)
  br i1 %322, label %327, label %323

323:                                              ; preds = %318
  %324 = load ptr, ptr %0, align 8, !tbaa !5
  %325 = getelementptr inbounds i8, ptr %324, i64 336
  %326 = load ptr, ptr %325, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %326(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.617, ptr noundef nonnull @.str.648, ptr noundef nonnull @.str.2)
  br label %336

327:                                              ; preds = %318
  %328 = tail call noundef i32 @_ZN7glslang7IntLog2IiEEiT_(i32 noundef %.0265)
  %329 = getelementptr inbounds i8, ptr %2, i64 44
  %330 = load i64, ptr %329, align 4
  %331 = and i32 %328, 63
  %332 = zext nneg i32 %331 to i64
  %333 = shl nuw nsw i64 %332, 51
  %334 = and i64 %330, -141863388262170625
  %335 = or disjoint i64 %333, %334
  store i64 %335, ptr %329, align 4
  br label %336

336:                                              ; preds = %327, %323
  br i1 %.not, label %337, label %.critedge

337:                                              ; preds = %336
  %338 = load ptr, ptr %0, align 8, !tbaa !5
  %339 = getelementptr inbounds i8, ptr %338, i64 336
  %340 = load ptr, ptr %339, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %340(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.648, ptr noundef nonnull @.str.2)
  br label %.critedge

341:                                              ; preds = %316
  %342 = load i32, ptr %303, align 4, !tbaa !125
  switch i32 %342, label %520 [
    i32 1, label %343
    i32 3, label %358
    i32 4, label %407
    i32 13, label %427
    i32 12, label %465
    i32 5, label %465
  ]

343:                                              ; preds = %341
  %344 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.80)
  br i1 %344, label %345, label %520

345:                                              ; preds = %343
  %346 = icmp eq i32 %.0265, 0
  br i1 %346, label %347, label %351

347:                                              ; preds = %345
  %348 = load ptr, ptr %0, align 8, !tbaa !5
  %349 = getelementptr inbounds i8, ptr %348, i64 336
  %350 = load ptr, ptr %349, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %350(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.649, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2)
  br label %353

351:                                              ; preds = %345
  %352 = getelementptr inbounds i8, ptr %2, i64 92
  store i32 %.0265, ptr %352, align 4, !tbaa !127
  br label %353

353:                                              ; preds = %351, %347
  br i1 %.not, label %354, label %.critedge

354:                                              ; preds = %353
  %355 = load ptr, ptr %0, align 8, !tbaa !5
  %356 = getelementptr inbounds i8, ptr %355, i64 336
  %357 = load ptr, ptr %356, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %357(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2)
  br label %.critedge

358:                                              ; preds = %341
  %359 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.650)
  br i1 %359, label %360, label %373

360:                                              ; preds = %358
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 400, ptr noundef null, ptr noundef nonnull @.str.650)
  %361 = icmp eq i32 %.0265, 0
  br i1 %361, label %362, label %366

362:                                              ; preds = %360
  %363 = load ptr, ptr %0, align 8, !tbaa !5
  %364 = getelementptr inbounds i8, ptr %363, i64 336
  %365 = load ptr, ptr %364, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %365(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.651, ptr noundef nonnull @.str.650, ptr noundef nonnull @.str.2)
  br label %368

366:                                              ; preds = %360
  %367 = getelementptr inbounds i8, ptr %2, i64 88
  store i32 %.0265, ptr %367, align 8, !tbaa !128
  br label %368

368:                                              ; preds = %366, %362
  br i1 %.not, label %369, label %.critedge

369:                                              ; preds = %368
  %370 = load ptr, ptr %0, align 8, !tbaa !5
  %371 = getelementptr inbounds i8, ptr %370, i64 336
  %372 = load ptr, ptr %371, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %372(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.650, ptr noundef nonnull @.str.2)
  br label %.critedge

373:                                              ; preds = %358
  %374 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.83)
  br i1 %374, label %375, label %389

375:                                              ; preds = %373
  %376 = getelementptr inbounds i8, ptr %2, i64 92
  store i32 %.0265, ptr %376, align 4, !tbaa !127
  %377 = getelementptr inbounds i8, ptr %0, i64 1540
  %378 = load i32, ptr %377, align 4, !tbaa !129
  %379 = icmp sgt i32 %.0265, %378
  br i1 %379, label %380, label %384

380:                                              ; preds = %375
  %381 = load ptr, ptr %0, align 8, !tbaa !5
  %382 = getelementptr inbounds i8, ptr %381, i64 336
  %383 = load ptr, ptr %382, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %383(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.652, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2)
  br label %384

384:                                              ; preds = %380, %375
  br i1 %.not, label %385, label %.critedge

385:                                              ; preds = %384
  %386 = load ptr, ptr %0, align 8, !tbaa !5
  %387 = getelementptr inbounds i8, ptr %386, i64 336
  %388 = load ptr, ptr %387, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %388(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2)
  br label %.critedge

389:                                              ; preds = %373
  %390 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.653)
  br i1 %390, label %391, label %520

391:                                              ; preds = %389
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, ptr noundef nonnull @.str.654)
  %392 = getelementptr inbounds i8, ptr %2, i64 36
  %393 = load i64, ptr %392, align 4
  %394 = and i32 %.0265, 255
  %395 = zext nneg i32 %394 to i64
  %396 = shl nuw i64 %395, 56
  %397 = and i64 %393, 72057594037927935
  %398 = or disjoint i64 %397, %396
  store i64 %398, ptr %392, align 4
  %.not261 = icmp eq i32 %.0265, 0
  br i1 %.not261, label %402, label %399

399:                                              ; preds = %391
  %400 = getelementptr inbounds i8, ptr %0, i64 56
  %401 = load ptr, ptr %400, align 8, !tbaa !54
  tail call void @_ZN7glslang13TIntermediate14setMultiStreamEv(ptr noundef nonnull align 8 dereferenceable(1784) %401)
  br label %402

402:                                              ; preds = %399, %391
  br i1 %.not, label %403, label %.critedge

403:                                              ; preds = %402
  %404 = load ptr, ptr %0, align 8, !tbaa !5
  %405 = getelementptr inbounds i8, ptr %404, i64 336
  %406 = load ptr, ptr %405, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %406(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.653, ptr noundef nonnull @.str.2)
  br label %.critedge

407:                                              ; preds = %341
  %408 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.655)
  br i1 %408, label %409, label %520

409:                                              ; preds = %407
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 14, ptr noundef nonnull @.str.656)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #7
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %8, ptr noundef nonnull align 16 dereferenceable(16) @__const._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPKNS_12TIntermTypedE.exts.657, i64 16, i1 false)
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 330, i32 noundef 2, ptr noundef nonnull %8, ptr noundef nonnull @.str.656)
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 310, ptr noundef nonnull @.str.658, ptr noundef nonnull @.str.656)
  %410 = icmp ugt i32 %.0265, 1
  br i1 %410, label %411, label %415

411:                                              ; preds = %409
  %412 = load ptr, ptr %0, align 8, !tbaa !5
  %413 = getelementptr inbounds i8, ptr %412, i64 336
  %414 = load ptr, ptr %413, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %414(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.659, ptr noundef nonnull @.str.655, ptr noundef nonnull @.str.2)
  br label %415

415:                                              ; preds = %409, %411
  %.1 = phi i32 [ 0, %411 ], [ %.0265, %409 ]
  %416 = getelementptr inbounds i8, ptr %2, i64 36
  %417 = load i64, ptr %416, align 4
  %418 = zext nneg i32 %.1 to i64
  %419 = shl nuw nsw i64 %418, 48
  %420 = and i64 %417, -71776119061217281
  %421 = or disjoint i64 %420, %419
  store i64 %421, ptr %416, align 4
  br i1 %.not, label %422, label %426

422:                                              ; preds = %415
  %423 = load ptr, ptr %0, align 8, !tbaa !5
  %424 = getelementptr inbounds i8, ptr %423, i64 336
  %425 = load ptr, ptr %424, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %425(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.655, ptr noundef nonnull @.str.2)
  br label %426

426:                                              ; preds = %422, %415
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  br label %.critedge

427:                                              ; preds = %341
  %428 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.83)
  br i1 %428, label %429, label %446

429:                                              ; preds = %427
  %430 = load ptr, ptr %0, align 8, !tbaa !5
  %431 = getelementptr inbounds i8, ptr %430, i64 40
  %432 = load ptr, ptr %431, align 8
  tail call void %432(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL19E_GL_NV_mesh_shaderE, ptr noundef nonnull @.str.83)
  %433 = getelementptr inbounds i8, ptr %2, i64 92
  store i32 %.0265, ptr %433, align 4, !tbaa !127
  %434 = getelementptr inbounds i8, ptr %0, i64 1684
  %435 = load i32, ptr %434, align 4, !tbaa !130
  %436 = icmp sgt i32 %.0265, %435
  br i1 %436, label %437, label %441

437:                                              ; preds = %429
  %438 = load ptr, ptr %0, align 8, !tbaa !5
  %439 = getelementptr inbounds i8, ptr %438, i64 336
  %440 = load ptr, ptr %439, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %440(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.660, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2)
  br label %441

441:                                              ; preds = %437, %429
  br i1 %.not, label %442, label %.critedge

442:                                              ; preds = %441
  %443 = load ptr, ptr %0, align 8, !tbaa !5
  %444 = getelementptr inbounds i8, ptr %443, i64 336
  %445 = load ptr, ptr %444, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %445(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2)
  br label %.critedge

446:                                              ; preds = %427
  %447 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.82)
  br i1 %447, label %448, label %465

448:                                              ; preds = %446
  %449 = load ptr, ptr %0, align 8, !tbaa !5
  %450 = getelementptr inbounds i8, ptr %449, i64 40
  %451 = load ptr, ptr %450, align 8
  tail call void %451(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL19E_GL_NV_mesh_shaderE, ptr noundef nonnull @.str.82)
  %452 = getelementptr inbounds i8, ptr %2, i64 160
  store i32 %.0265, ptr %452, align 8, !tbaa !131
  %453 = getelementptr inbounds i8, ptr %0, i64 1688
  %454 = load i32, ptr %453, align 8, !tbaa !132
  %455 = icmp sgt i32 %.0265, %454
  br i1 %455, label %456, label %460

456:                                              ; preds = %448
  %457 = load ptr, ptr %0, align 8, !tbaa !5
  %458 = getelementptr inbounds i8, ptr %457, i64 336
  %459 = load ptr, ptr %458, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %459(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.661, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.2)
  br label %460

460:                                              ; preds = %456, %448
  br i1 %.not, label %461, label %.critedge

461:                                              ; preds = %460
  %462 = load ptr, ptr %0, align 8, !tbaa !5
  %463 = getelementptr inbounds i8, ptr %462, i64 336
  %464 = load ptr, ptr %463, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %464(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.2)
  br label %.critedge

465:                                              ; preds = %446, %341, %341
  %466 = tail call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %3, i64 noundef 0, i64 noundef 11, ptr noundef nonnull @.str.662)
  %467 = icmp eq i32 %466, 0
  br i1 %467, label %468, label %520

468:                                              ; preds = %465
  %469 = load i32, ptr %303, align 4, !tbaa !125
  %470 = and i32 %469, -2
  %switch263 = icmp eq i32 %470, 12
  br i1 %switch263, label %471, label %475

471:                                              ; preds = %468
  %472 = load ptr, ptr %0, align 8, !tbaa !5
  %473 = getelementptr inbounds i8, ptr %472, i64 40
  %474 = load ptr, ptr %473, align 8
  tail call void %474(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL19E_GL_NV_mesh_shaderE, ptr noundef nonnull @.str.663)
  br label %476

475:                                              ; preds = %468
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef nonnull @.str.663)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 430, ptr noundef nonnull @.str.664, ptr noundef nonnull @.str.663)
  br label %476

476:                                              ; preds = %475, %471
  br i1 %.not, label %477, label %481

477:                                              ; preds = %476
  %478 = load ptr, ptr %0, align 8, !tbaa !5
  %479 = getelementptr inbounds i8, ptr %478, i64 336
  %480 = load ptr, ptr %479, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %480(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.665, ptr noundef nonnull @.str.2)
  br label %481

481:                                              ; preds = %477, %476
  %482 = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %483 = icmp eq i64 %482, 12
  %484 = icmp eq i32 %.0265, 0
  %or.cond3 = and i1 %484, %483
  br i1 %or.cond3, label %485, label %490

485:                                              ; preds = %481
  %486 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %487 = load ptr, ptr %0, align 8, !tbaa !5
  %488 = getelementptr inbounds i8, ptr %487, i64 336
  %489 = load ptr, ptr %488, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %489(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.651, ptr noundef %486, ptr noundef nonnull @.str.2)
  br label %.critedge

490:                                              ; preds = %481
  %491 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.666)
  br i1 %491, label %492, label %495

492:                                              ; preds = %490
  %493 = getelementptr inbounds i8, ptr %2, i64 108
  store i32 %.0265, ptr %493, align 4, !tbaa !133
  %494 = getelementptr inbounds i8, ptr %2, i64 120
  store i8 1, ptr %494, align 8, !tbaa !134
  br label %.critedge

495:                                              ; preds = %490
  %496 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.667)
  br i1 %496, label %497, label %500

497:                                              ; preds = %495
  %498 = getelementptr inbounds i8, ptr %2, i64 112
  store i32 %.0265, ptr %498, align 8, !tbaa !133
  %499 = getelementptr inbounds i8, ptr %2, i64 121
  store i8 1, ptr %499, align 1, !tbaa !134
  br label %.critedge

500:                                              ; preds = %495
  %501 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.668)
  br i1 %501, label %502, label %505

502:                                              ; preds = %500
  %503 = getelementptr inbounds i8, ptr %2, i64 116
  store i32 %.0265, ptr %503, align 4, !tbaa !133
  %504 = getelementptr inbounds i8, ptr %2, i64 122
  store i8 1, ptr %504, align 2, !tbaa !134
  br label %.critedge

505:                                              ; preds = %500
  %506 = getelementptr inbounds i8, ptr %0, i64 32
  %507 = load i32, ptr %506, align 8, !tbaa !8
  %.not260 = icmp eq i32 %507, 0
  br i1 %.not260, label %520, label %508

508:                                              ; preds = %505
  %509 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.669)
  br i1 %509, label %510, label %512

510:                                              ; preds = %508
  %511 = getelementptr inbounds i8, ptr %2, i64 124
  store i32 %.0265, ptr %511, align 4, !tbaa !133
  br label %.critedge

512:                                              ; preds = %508
  %513 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.670)
  br i1 %513, label %514, label %516

514:                                              ; preds = %512
  %515 = getelementptr inbounds i8, ptr %2, i64 128
  store i32 %.0265, ptr %515, align 8, !tbaa !133
  br label %.critedge

516:                                              ; preds = %512
  %517 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.671)
  br i1 %517, label %518, label %520

518:                                              ; preds = %516
  %519 = getelementptr inbounds i8, ptr %2, i64 132
  store i32 %.0265, ptr %519, align 4, !tbaa !133
  br label %.critedge

520:                                              ; preds = %341, %465, %516, %505, %407, %389, %343
  %521 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  %522 = load ptr, ptr %0, align 8, !tbaa !5
  %523 = getelementptr inbounds i8, ptr %522, i64 336
  %524 = load ptr, ptr %523, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %524(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.672, ptr noundef %521, ptr noundef nonnull @.str.2)
  br label %.critedge

.critedge:                                        ; preds = %210, %209, %231, %230, %263, %262, %460, %461, %441, %442, %402, %403, %384, %385, %368, %369, %353, %354, %336, %337, %307, %312, %293, %298, %286, %287, %175, %176, %154, %155, %125, %126, %104, %105, %59, %60, %35, %40, %520, %518, %514, %510, %502, %497, %492, %485, %426, %84, %21
  ret void
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang20TIntermConstantUnion9isLiteralEv(ptr noundef nonnull align 8 dereferenceable(193)) local_unnamed_addr #0 align 2

declare noundef zeroext i1 @_ZN7glslang13TIntermediate17addUsedConstantIdEi(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef) local_unnamed_addr #3

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

declare void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN7glslang7IntLog2IiEEiT_(i32 noundef) local_unnamed_addr #0

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !14, i64 32}
!9 = !{!"_ZTSN7glslang14TParseVersionsE", !10, i64 8, !12, i64 12, !13, i64 16, !14, i64 24, !15, i64 28, !16, i64 32, !13, i64 56, !17, i64 64, !28, i64 120, !33, i64 176, !14, i64 180, !13, i64 184}
!10 = !{!"bool", !11, i64 0}
!11 = !{!"omnipotent char", !7, i64 0}
!12 = !{!"_ZTS8EProfile", !11, i64 0}
!13 = !{!"any pointer", !11, i64 0}
!14 = !{!"int", !11, i64 0}
!15 = !{!"_ZTS11EShLanguage", !11, i64 0}
!16 = !{!"_ZTSN7glslang10SpvVersionE", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !10, i64 16}
!17 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_18TExtensionBehaviorESt4lessIS7_EEE", !18, i64 0}
!18 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_18TExtensionBehaviorESt4lessIS7_ENS5_ISt4pairIKS7_S8_EEEE", !19, i64 0}
!19 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE", !20, i64 0}
!20 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE13_Rb_tree_implISF_Lb1EEE", !21, i64 0, !22, i64 8, !24, i64 16}
!21 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEENS_18TExtensionBehaviorEEEEE", !13, i64 0}
!22 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEE", !23, i64 0}
!23 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEE"}
!24 = !{!"_ZTSSt15_Rb_tree_header", !25, i64 0, !27, i64 32}
!25 = !{!"_ZTSSt18_Rb_tree_node_base", !26, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!26 = !{!"_ZTSSt14_Rb_tree_color", !11, i64 0}
!27 = !{!"long", !11, i64 0}
!28 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEjSt4lessIS7_EEE", !29, i64 0}
!29 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEjSt4lessIS7_ENS5_ISt4pairIKS7_jEEEE", !30, i64 0}
!30 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !31, i64 0}
!31 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !32, i64 0, !22, i64 8, !24, i64 16}
!32 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEEjEEEE", !13, i64 0}
!33 = !{!"_ZTS11EShMessages", !11, i64 0}
!34 = !{!35, !14, i64 28}
!35 = !{!"_ZTSN7glslang11TPublicTypeE", !36, i64 0, !37, i64 4, !39, i64 8, !46, i64 80, !14, i64 168, !14, i64 168, !14, i64 169, !10, i64 169, !13, i64 176, !13, i64 184, !52, i64 192, !13, i64 216, !13, i64 224}
!36 = !{!"_ZTSN7glslang10TBasicTypeE", !11, i64 0}
!37 = !{!"_ZTSN7glslang8TSamplerE", !36, i64 0, !38, i64 1, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !14, i64 2, !14, i64 3, !10, i64 3, !10, i64 3}
!38 = !{!"_ZTSN7glslang11TSamplerDimE", !11, i64 0}
!39 = !{!"_ZTSN7glslang10TQualifierE", !13, i64 0, !40, i64 8, !41, i64 8, !41, i64 9, !42, i64 11, !10, i64 11, !10, i64 11, !10, i64 11, !10, i64 11, !10, i64 11, !10, i64 12, !10, i64 12, !10, i64 12, !10, i64 12, !10, i64 12, !10, i64 12, !10, i64 12, !10, i64 12, !10, i64 13, !10, i64 13, !10, i64 13, !10, i64 13, !10, i64 13, !10, i64 13, !10, i64 13, !10, i64 13, !10, i64 14, !10, i64 14, !10, i64 14, !10, i64 14, !10, i64 14, !10, i64 14, !10, i64 14, !10, i64 14, !10, i64 15, !10, i64 15, !10, i64 15, !43, i64 15, !44, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 29, !14, i64 29, !14, i64 32, !14, i64 34, !14, i64 35, !14, i64 36, !14, i64 36, !14, i64 38, !14, i64 40, !14, i64 41, !14, i64 42, !45, i64 44, !10, i64 45, !10, i64 46, !10, i64 47, !10, i64 48, !14, i64 52, !10, i64 56, !14, i64 60, !13, i64 64}
!40 = !{!"_ZTSN7glslang17TStorageQualifierE", !11, i64 0}
!41 = !{!"_ZTSN7glslang16TBuiltInVariableE", !11, i64 0}
!42 = !{!"_ZTSN7glslang19TPrecisionQualifierE", !11, i64 0}
!43 = !{!"_ZTSN7glslang13TLayoutMatrixE", !11, i64 0}
!44 = !{!"_ZTSN7glslang14TLayoutPackingE", !11, i64 0}
!45 = !{!"_ZTSN7glslang13TLayoutFormatE", !11, i64 0}
!46 = !{!"_ZTSN7glslang17TShaderQualifiersE", !47, i64 0, !10, i64 4, !10, i64 5, !14, i64 8, !14, i64 12, !48, i64 16, !49, i64 20, !10, i64 24, !11, i64 28, !11, i64 40, !11, i64 44, !10, i64 56, !10, i64 57, !50, i64 60, !10, i64 64, !14, i64 68, !51, i64 72, !10, i64 76, !10, i64 77, !10, i64 78, !14, i64 80, !10, i64 84}
!47 = !{!"_ZTSN7glslang15TLayoutGeometryE", !11, i64 0}
!48 = !{!"_ZTSN7glslang14TVertexSpacingE", !11, i64 0}
!49 = !{!"_ZTSN7glslang12TVertexOrderE", !11, i64 0}
!50 = !{!"_ZTSN7glslang12TLayoutDepthE", !11, i64 0}
!51 = !{!"_ZTSN7glslang18TInterlockOrderingE", !11, i64 0}
!52 = !{!"_ZTSN7glslang10TSourceLocE", !13, i64 0, !14, i64 8, !14, i64 12, !14, i64 16}
!53 = !{!35, !14, i64 32}
!54 = !{!9, !13, i64 56}
!55 = !{!56, !14, i64 1664}
!56 = !{!"_ZTSN7glslang13TParseContextE", !57, i64 0, !10, i64 1176, !13, i64 1184, !39, i64 1192, !11, i64 1264, !83, i64 1352, !13, i64 1736, !11, i64 1744, !106, i64 24272, !39, i64 24288, !39, i64 24360, !39, i64 24432, !39, i64 24504, !39, i64 24576, !85, i64 24648, !13, i64 24688, !10, i64 24696, !107, i64 24704, !112, i64 24752, !118, i64 24784, !118, i64 24832, !77, i64 24880}
!57 = !{!"_ZTSN7glslang17TParseContextBaseE", !9, i64 0, !13, i64 192, !13, i64 200, !14, i64 208, !14, i64 212, !14, i64 216, !14, i64 220, !14, i64 224, !13, i64 232, !10, i64 240, !10, i64 241, !58, i64 248, !65, i64 280, !70, i64 312, !14, i64 376, !14, i64 380, !10, i64 384, !77, i64 392, !13, i64 424, !13, i64 432, !83, i64 440, !13, i64 824, !85, i64 832, !88, i64 872, !90, i64 904, !91, i64 936, !92, i64 968, !93, i64 1000, !13, i64 1032, !14, i64 1040, !14, i64 1044, !14, i64 1048, !94, i64 1056, !14, i64 1112, !101, i64 1120}
!58 = !{!"_ZTSN7glslang5TListIPNS_7TVectorIP11TIntermNodeEEEE", !59, i64 0}
!59 = !{!"_ZTSNSt7__cxx114listIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEEE", !60, i64 0}
!60 = !{!"_ZTSNSt7__cxx1110_List_baseIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEEE", !61, i64 0}
!61 = !{!"_ZTSNSt7__cxx1110_List_baseIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEE10_List_implE", !62, i64 0, !63, i64 8}
!62 = !{!"_ZTSN7glslang14pool_allocatorISt10_List_nodeIPNS_7TVectorIP11TIntermNodeEEEEE", !13, i64 0}
!63 = !{!"_ZTSNSt8__detail17_List_node_headerE", !64, i64 0, !27, i64 16}
!64 = !{!"_ZTSNSt8__detail15_List_node_baseE", !13, i64 0, !13, i64 8}
!65 = !{!"_ZTSN7glslang5TListIiEE", !66, i64 0}
!66 = !{!"_ZTSNSt7__cxx114listIiN7glslang14pool_allocatorIiEEEE", !67, i64 0}
!67 = !{!"_ZTSNSt7__cxx1110_List_baseIiN7glslang14pool_allocatorIiEEEE", !68, i64 0}
!68 = !{!"_ZTSNSt7__cxx1110_List_baseIiN7glslang14pool_allocatorIiEEE10_List_implE", !69, i64 0, !63, i64 8}
!69 = !{!"_ZTSN7glslang14pool_allocatorISt10_List_nodeIiEEE", !13, i64 0}
!70 = !{!"_ZTSN7glslang7TPragmaE", !10, i64 0, !10, i64 1, !71, i64 8}
!71 = !{!"_ZTSN7glslang12TPragmaTableE", !72, i64 0}
!72 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_St4lessIS7_EEE", !73, i64 0}
!73 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEES7_St4lessIS7_ENS5_ISt4pairIKS7_S7_EEEE", !74, i64 0}
!74 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_S7_ESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !75, i64 0}
!75 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_S7_ESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !76, i64 0, !22, i64 8, !24, i64 16}
!76 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEES8_EEEE", !13, i64 0}
!77 = !{!"_ZTSN7glslang7TVectorIPNS_7TSymbolEEE", !78, i64 0}
!78 = !{!"_ZTSSt6vectorIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE", !79, i64 0}
!79 = !{!"_ZTSSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE", !80, i64 0}
!80 = !{!"_ZTSNSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE12_Vector_implE", !81, i64 0, !82, i64 8}
!81 = !{!"_ZTSN7glslang14pool_allocatorIPNS_7TSymbolEEE", !13, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!83 = !{!"_ZTS16TBuiltInResource", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !14, i64 36, !14, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56, !14, i64 60, !14, i64 64, !14, i64 68, !14, i64 72, !14, i64 76, !14, i64 80, !14, i64 84, !14, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !14, i64 136, !14, i64 140, !14, i64 144, !14, i64 148, !14, i64 152, !14, i64 156, !14, i64 160, !14, i64 164, !14, i64 168, !14, i64 172, !14, i64 176, !14, i64 180, !14, i64 184, !14, i64 188, !14, i64 192, !14, i64 196, !14, i64 200, !14, i64 204, !14, i64 208, !14, i64 212, !14, i64 216, !14, i64 220, !14, i64 224, !14, i64 228, !14, i64 232, !14, i64 236, !14, i64 240, !14, i64 244, !14, i64 248, !14, i64 252, !14, i64 256, !14, i64 260, !14, i64 264, !14, i64 268, !14, i64 272, !14, i64 276, !14, i64 280, !14, i64 284, !14, i64 288, !14, i64 292, !14, i64 296, !14, i64 300, !14, i64 304, !14, i64 308, !14, i64 312, !14, i64 316, !14, i64 320, !14, i64 324, !14, i64 328, !14, i64 332, !14, i64 336, !14, i64 340, !14, i64 344, !14, i64 348, !14, i64 352, !14, i64 356, !14, i64 360, !14, i64 364, !14, i64 368, !84, i64 372}
!84 = !{!"_ZTS7TLimits", !10, i64 0, !10, i64 1, !10, i64 2, !10, i64 3, !10, i64 4, !10, i64 5, !10, i64 6, !10, i64 7, !10, i64 8}
!85 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEE", !86, i64 0, !27, i64 16, !11, i64 24}
!86 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE12_Alloc_hiderE", !87, i64 0, !13, i64 8}
!87 = !{!"_ZTSN7glslang14pool_allocatorIcEE", !13, i64 0}
!88 = !{!"_ZTSSt8functionIFviibiPKcEE", !89, i64 0, !13, i64 24}
!89 = !{!"_ZTSSt14_Function_base", !11, i64 0, !13, i64 16}
!90 = !{!"_ZTSSt8functionIFviRKN7glslang7TVectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_14pool_allocatorIcEEEEEEEE", !89, i64 0, !13, i64 24}
!91 = !{!"_ZTSSt8functionIFviiPKcEE", !89, i64 0, !13, i64 24}
!92 = !{!"_ZTSSt8functionIFviPKcS1_EE", !89, i64 0, !13, i64 24}
!93 = !{!"_ZTSSt8functionIFviPKcEE", !89, i64 0, !13, i64 24}
!94 = !{!"_ZTSN7glslang4TMapIiPNS_9TVariableESt4lessIiEEE", !95, i64 0}
!95 = !{!"_ZTSSt3mapIiPN7glslang9TVariableESt4lessIiENS0_14pool_allocatorISt4pairIKiS2_EEEE", !96, i64 0}
!96 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiPN7glslang9TVariableEESt10_Select1stIS5_ESt4lessIiENS2_14pool_allocatorIS5_EEE", !97, i64 0}
!97 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiPN7glslang9TVariableEESt10_Select1stIS5_ESt4lessIiENS2_14pool_allocatorIS5_EEE13_Rb_tree_implIS9_Lb1EEE", !98, i64 0, !99, i64 8, !24, i64 16}
!98 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKiPNS_9TVariableEEEEE", !13, i64 0}
!99 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !100, i64 0}
!100 = !{!"_ZTSSt4lessIiE"}
!101 = !{!"_ZTSN7glslang4TMapIiiSt4lessIiEEE", !102, i64 0}
!102 = !{!"_ZTSSt3mapIiiSt4lessIiEN7glslang14pool_allocatorISt4pairIKiiEEEE", !103, i64 0}
!103 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiEN7glslang14pool_allocatorIS2_EEE", !104, i64 0}
!104 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiEN7glslang14pool_allocatorIS2_EEE13_Rb_tree_implIS6_Lb1EEE", !105, i64 0, !99, i64 8, !24, i64 16}
!105 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKiiEEEE", !13, i64 0}
!106 = !{!"_ZTSN7glslang17TPrecisionManagerE", !10, i64 8, !10, i64 9, !10, i64 10, !10, i64 11}
!107 = !{!"_ZTSSt3setIxSt4lessIxESaIxEE", !108, i64 0}
!108 = !{!"_ZTSSt8_Rb_treeIxxSt9_IdentityIxESt4lessIxESaIxEE", !109, i64 0}
!109 = !{!"_ZTSNSt8_Rb_treeIxxSt9_IdentityIxESt4lessIxESaIxEE13_Rb_tree_implIS3_Lb1EEE", !110, i64 0, !24, i64 8}
!110 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIxEE", !111, i64 0}
!111 = !{!"_ZTSSt4lessIxE"}
!112 = !{!"_ZTSN7glslang7TVectorIPNS_12TIntermTypedEEE", !113, i64 0}
!113 = !{!"_ZTSSt6vectorIPN7glslang12TIntermTypedENS0_14pool_allocatorIS2_EEE", !114, i64 0}
!114 = !{!"_ZTSSt12_Vector_baseIPN7glslang12TIntermTypedENS0_14pool_allocatorIS2_EEE", !115, i64 0}
!115 = !{!"_ZTSNSt12_Vector_baseIPN7glslang12TIntermTypedENS0_14pool_allocatorIS2_EEE12_Vector_implE", !116, i64 0, !117, i64 8}
!116 = !{!"_ZTSN7glslang14pool_allocatorIPNS_12TIntermTypedEEE", !13, i64 0}
!117 = !{!"_ZTSNSt12_Vector_baseIPN7glslang12TIntermTypedENS0_14pool_allocatorIS2_EEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!118 = !{!"_ZTSSt3mapIPKN7glslang7TVectorINS0_8TTypeLocEEES_ImS5_St4lessImESaISt4pairIKmS5_EEES6_IS5_ESaIS8_IKS5_SC_EEE", !119, i64 0}
!119 = !{!"_ZTSSt8_Rb_treeIPKN7glslang7TVectorINS0_8TTypeLocEEESt4pairIKS5_St3mapImS5_St4lessImESaIS6_IKmS5_EEEESt10_Select1stISF_ES9_IS5_ESaISF_EE", !120, i64 0}
!120 = !{!"_ZTSNSt8_Rb_treeIPKN7glslang7TVectorINS0_8TTypeLocEEESt4pairIKS5_St3mapImS5_St4lessImESaIS6_IKmS5_EEEESt10_Select1stISF_ES9_IS5_ESaISF_EE13_Rb_tree_implISI_Lb1EEE", !121, i64 0, !24, i64 8}
!121 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPKN7glslang7TVectorINS1_8TTypeLocEEEEE", !122, i64 0}
!122 = !{!"_ZTSSt4lessIPKN7glslang7TVectorINS0_8TTypeLocEEEE"}
!123 = !{!56, !14, i64 1668}
!124 = !{!35, !14, i64 148}
!125 = !{!9, !15, i64 28}
!126 = !{!35, !14, i64 60}
!127 = !{!35, !14, i64 92}
!128 = !{!35, !14, i64 88}
!129 = !{!56, !14, i64 1540}
!130 = !{!56, !14, i64 1684}
!131 = !{!35, !14, i64 160}
!132 = !{!56, !14, i64 1688}
!133 = !{!14, !14, i64 0}
!134 = !{!10, !10, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass