; 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.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] }
%"struct.glslang::TSampler" = type { i32 }
%"struct.glslang::TParameter" = type { ptr, ptr, ptr }
%"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::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::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.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 }>
%"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.27 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [113 x i8], align 1
@_ZN7glslangL15AEP_gpu_shader5E = external hidden constant [2 x ptr], align 16
@.str.88 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [26 x i8], align 1
@__PRETTY_FUNCTION__._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE = external hidden unnamed_addr constant [102 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [19 x i8], align 1
@_ZN7glslangL32E_GL_AMD_texture_gather_bias_lodE = external hidden constant ptr, align 8
@.str.205 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZN7glslangL24E_GL_ARB_sparse_texture2E = external hidden constant ptr, align 8
@.str.207 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZN7glslangL28E_GL_EXT_shader_atomic_floatE = external hidden constant ptr, align 8
@.str.236 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZN7glslangL29E_GL_EXT_shader_atomic_float2E = external hidden constant ptr, align 8
@.str.238 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZN7glslangL31E_GL_KHR_memory_scope_semanticsE = external hidden constant ptr, align 8
@__const._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE.extensions = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.243 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [28 x i8], align 1
@_ZN7glslangL20E_GL_ARB_gpu_shader5E = external hidden constant ptr, align 8
@.str.249 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZN7glslangL27E_GL_EXT_shader_integer_mixE = external hidden constant ptr, align 8
@.str.254 = external hidden unnamed_addr constant [34 x i8], align 1
@_ZN7glslangL38E_GL_EXT_samplerless_texture_functionsE = external hidden constant ptr, align 8
@.str.255 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN7glslangL44E_GL_EXT_shader_subgroup_extended_types_int8E = external hidden constant ptr, align 8
@_ZN7glslangL45E_GL_EXT_shader_subgroup_extended_types_int16E = external hidden constant ptr, align 8
@_ZN7glslangL45E_GL_EXT_shader_subgroup_extended_types_int64E = external hidden constant ptr, align 8
@_ZN7glslangL47E_GL_EXT_shader_subgroup_extended_types_float16E = external hidden constant ptr, align 8

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang5TType11isReferenceEv(ptr noundef nonnull align 8 dereferenceable(144)) #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)) #1 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) #1 align 2

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #4

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) #5

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) #5

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(144), i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, ptr noundef, ptr noundef) #0 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(328) %2, ptr noundef nonnull align 8 dereferenceable(184) %3) #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %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 %"class.std::__cxx11::basic_string", align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i8, align 1
  %19 = alloca i8, align 1
  %20 = alloca i32, align 4
  %21 = alloca [4 x i32], align 16
  %22 = alloca [3 x i32], align 4
  %23 = alloca i32, align 4
  %24 = alloca i8, align 1
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %"struct.glslang::TSampler", align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i64, align 8
  %33 = alloca [2 x ptr], align 16
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca i8, align 1
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i8, align 1
  %43 = alloca i8, align 1
  %44 = alloca i8, align 1
  %45 = alloca ptr, align 8
  %46 = alloca i8, align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.glslang::pool_allocator.14", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.glslang::pool_allocator.14", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.glslang::pool_allocator.14", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.glslang::pool_allocator.14", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.glslang::pool_allocator.14", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.glslang::pool_allocator.14", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.glslang::pool_allocator.14", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.glslang::pool_allocator.14", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %67 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  store ptr null, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  store ptr null, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  store ptr null, ptr %11, align 8, !tbaa !5
  %68 = load ptr, ptr %8, align 8, !tbaa !5
  %69 = load ptr, ptr %68, align 8, !tbaa !9
  %70 = getelementptr inbounds ptr, ptr %69, i64 6
  %71 = load ptr, ptr %70, align 8
  %72 = call noundef ptr %71(ptr noundef nonnull align 8 dereferenceable(32) %68)
  %73 = icmp ne ptr %72, null
  br i1 %73, label %74, label %96

74:                                               ; preds = %4
  %75 = load ptr, ptr %8, align 8, !tbaa !5
  %76 = load ptr, ptr %75, align 8, !tbaa !9
  %77 = getelementptr inbounds ptr, ptr %76, i64 6
  %78 = load ptr, ptr %77, align 8
  %79 = call noundef ptr %78(ptr noundef nonnull align 8 dereferenceable(32) %75)
  %80 = load ptr, ptr %79, align 8, !tbaa !9
  %81 = getelementptr inbounds ptr, ptr %80, i64 50
  %82 = load ptr, ptr %81, align 8
  %83 = call noundef nonnull align 8 dereferenceable(32) ptr %82(ptr noundef nonnull align 8 dereferenceable(352) %79)
  store ptr %83, ptr %9, align 8, !tbaa !5
  %84 = load ptr, ptr %9, align 8, !tbaa !5
  %85 = call noundef i64 @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  %86 = icmp ugt i64 %85, 0
  br i1 %86, label %87, label %95

87:                                               ; preds = %74
  %88 = load ptr, ptr %9, align 8, !tbaa !5
  %89 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %88, i64 noundef 0) #7
  %90 = load ptr, ptr %89, align 8, !tbaa !5
  %91 = load ptr, ptr %90, align 8, !tbaa !9
  %92 = getelementptr inbounds ptr, ptr %91, i64 3
  %93 = load ptr, ptr %92, align 8
  %94 = call noundef ptr %93(ptr noundef nonnull align 8 dereferenceable(32) %90)
  store ptr %94, ptr %11, align 8, !tbaa !5
  br label %95

95:                                               ; preds = %87, %74
  br label %117

96:                                               ; preds = %4
  %97 = load ptr, ptr %8, align 8, !tbaa !5
  %98 = load ptr, ptr %97, align 8, !tbaa !9
  %99 = getelementptr inbounds ptr, ptr %98, i64 7
  %100 = load ptr, ptr %99, align 8
  %101 = call noundef ptr %100(ptr noundef nonnull align 8 dereferenceable(32) %97)
  %102 = icmp ne ptr %101, null
  br i1 %102, label %103, label %104

103:                                              ; preds = %96
  br label %106

104:                                              ; preds = %96
  call void @__assert_fail(ptr noundef @.str.195, ptr noundef @.str.68, i32 noundef 2107, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE) #8
  unreachable

105:                                              ; No predecessors!
  br label %106

106:                                              ; preds = %105, %103
  %107 = load ptr, ptr %8, align 8, !tbaa !5
  %108 = load ptr, ptr %107, align 8, !tbaa !9
  %109 = getelementptr inbounds ptr, ptr %108, i64 7
  %110 = load ptr, ptr %109, align 8
  %111 = call noundef ptr %110(ptr noundef nonnull align 8 dereferenceable(32) %107)
  %112 = load ptr, ptr %111, align 8, !tbaa !9
  %113 = getelementptr inbounds ptr, ptr %112, i64 49
  %114 = load ptr, ptr %113, align 8
  %115 = call noundef ptr %114(ptr noundef nonnull align 8 dereferenceable(240) %111)
  store ptr %115, ptr %10, align 8, !tbaa !5
  %116 = load ptr, ptr %10, align 8, !tbaa !5
  store ptr %116, ptr %11, align 8, !tbaa !5
  br label %117

117:                                              ; preds = %106, %95
  call void @llvm.lifetime.start.p0(i64 40, ptr %12) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12)
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  store ptr null, ptr %13, align 8, !tbaa !5
  %118 = load ptr, ptr %8, align 8, !tbaa !5
  %119 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %118)
          to label %120 unwind label %121

120:                                              ; preds = %117
  switch i32 %119, label %2435 [
    i32 633, label %125
    i32 634, label %125
    i32 635, label %125
    i32 654, label %515
    i32 655, label %515
    i32 656, label %515
    i32 662, label %624
    i32 663, label %624
    i32 664, label %624
    i32 416, label %637
    i32 417, label %741
    i32 622, label %826
    i32 624, label %826
    i32 625, label %826
    i32 626, label %826
    i32 628, label %826
    i32 630, label %826
    i32 632, label %826
    i32 693, label %1076
    i32 694, label %1093
    i32 695, label %1110
    i32 699, label %1171
    i32 700, label %1188
    i32 707, label %1249
    i32 710, label %1249
    i32 711, label %1249
    i32 712, label %1249
    i32 713, label %1249
    i32 714, label %1249
    i32 715, label %1249
    i32 716, label %1249
    i32 717, label %1249
    i32 719, label %1249
    i32 720, label %1249
    i32 723, label %1249
    i32 724, label %1249
    i32 617, label %1266
    i32 593, label %1266
    i32 598, label %1269
    i32 599, label %1269
    i32 600, label %1269
    i32 601, label %1269
    i32 602, label %1269
    i32 603, label %1269
    i32 604, label %1269
    i32 605, label %1269
    i32 606, label %1269
    i32 607, label %1269
    i32 423, label %1638
    i32 424, label %1638
    i32 425, label %1638
    i32 426, label %1638
    i32 427, label %1638
    i32 428, label %1638
    i32 429, label %1638
    i32 430, label %1638
    i32 431, label %1638
    i32 432, label %1638
    i32 433, label %1638
    i32 291, label %2016
    i32 292, label %2016
    i32 293, label %2016
    i32 294, label %2016
    i32 304, label %2162
    i32 305, label %2162
    i32 364, label %2176
    i32 365, label %2176
    i32 366, label %2176
    i32 367, label %2176
    i32 368, label %2176
    i32 369, label %2176
    i32 370, label %2176
    i32 329, label %2232
    i32 371, label %2232
    i32 306, label %2255
    i32 307, label %2255
    i32 219, label %2277
  ]

121:                                              ; preds = %2537, %2523, %2436, %2427, %2420, %2413, %2405, %2398, %2390, %2383, %2375, %2368, %2360, %2353, %2345, %2330, %2323, %2315, %2308, %2300, %2293, %2285, %2271, %2266, %2259, %2247, %2237, %2186, %2176, %2172, %2166, %2125, %2115, %2109, %2106, %2101, %2095, %2090, %2022, %2016, %1916, %1909, %1903, %1897, %1892, %1887, %1882, %1877, %1872, %1867, %1861, %1854, %1847, %1841, %1834, %1828, %1823, %1818, %1793, %1787, %1780, %1774, %1766, %1759, %1753, %1747, %1742, %1737, %1732, %1727, %1722, %1717, %1711, %1704, %1697, %1691, %1684, %1678, %1673, %1668, %1663, %1658, %1654, %1649, %1642, %1266, %1259, %1249, %1198, %1188, %1181, %1171, %1120, %1110, %1103, %1093, %1086, %1076, %751, %741, %647, %637, %631, %624, %135, %133, %131, %125, %117
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %14, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %15, align 4
  br label %2714

125:                                              ; preds = %120, %120, %120
  %126 = load ptr, ptr %7, align 8, !tbaa !5
  %127 = load ptr, ptr %126, align 8, !tbaa !9
  %128 = getelementptr inbounds ptr, ptr %127, i64 3
  %129 = load ptr, ptr %128, align 8
  %130 = invoke noundef nonnull align 8 dereferenceable(40) ptr %129(ptr noundef nonnull align 8 dereferenceable(33) %126)
          to label %131 unwind label %121

131:                                              ; preds = %125
  %132 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef nonnull align 8 dereferenceable(40) %130)
          to label %133 unwind label %121

133:                                              ; preds = %131
  %134 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef @.str.196)
          to label %135 unwind label %121

135:                                              ; preds = %133
  %136 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %12) #7
  store ptr %136, ptr %13, align 8, !tbaa !5
  %137 = load ptr, ptr %6, align 8, !tbaa !5
  %138 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef %138)
          to label %139 unwind label %121

139:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  store i32 -1, ptr %16, align 4, !tbaa !11
  %140 = load ptr, ptr %8, align 8, !tbaa !5
  %141 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %140)
          to label %142 unwind label %143

142:                                              ; preds = %139
  switch i32 %141, label %384 [
    i32 633, label %147
    i32 634, label %219
    i32 635, label %324
  ]

143:                                              ; preds = %443, %397, %388, %376, %360, %353, %346, %333, %327, %324, %310, %304, %301, %285, %278, %271, %267, %263, %255, %243, %237, %225, %219, %214, %200, %194, %191, %179, %173, %161, %155, %147, %139
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %14, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %15, align 4
  br label %514

147:                                              ; preds = %142
  %148 = load ptr, ptr %7, align 8, !tbaa !5
  %149 = load ptr, ptr %148, align 8, !tbaa !9
  %150 = getelementptr inbounds ptr, ptr %149, i64 36
  %151 = load ptr, ptr %150, align 8
  %152 = invoke noundef i32 %151(ptr noundef nonnull align 8 dereferenceable(328) %148)
          to label %153 unwind label %143

153:                                              ; preds = %147
  %154 = icmp sgt i32 %152, 2
  br i1 %154, label %191, label %155

155:                                              ; preds = %153
  %156 = load ptr, ptr %7, align 8, !tbaa !5
  %157 = load ptr, ptr %156, align 8, !tbaa !9
  %158 = getelementptr inbounds ptr, ptr %157, i64 40
  %159 = load ptr, ptr %158, align 8
  %160 = invoke noundef nonnull align 8 dereferenceable(24) ptr %159(ptr noundef nonnull align 8 dereferenceable(328) %156, i32 noundef 0)
          to label %161 unwind label %143

161:                                              ; preds = %155
  %162 = getelementptr inbounds %"struct.glslang::TParameter", ptr %160, i32 0, i32 1
  %163 = load ptr, ptr %162, align 8, !tbaa !13
  %164 = load ptr, ptr %163, align 8, !tbaa !9
  %165 = getelementptr inbounds ptr, ptr %164, i64 9
  %166 = load ptr, ptr %165, align 8
  %167 = invoke noundef nonnull align 4 dereferenceable(4) ptr %166(ptr noundef nonnull align 8 dereferenceable(144) %163)
          to label %168 unwind label %143

168:                                              ; preds = %161
  %169 = load i32, ptr %167, align 4
  %170 = lshr i32 %169, 8
  %171 = and i32 %170, 255
  %172 = icmp eq i32 %171, 5
  br i1 %172, label %191, label %173

173:                                              ; preds = %168
  %174 = load ptr, ptr %7, align 8, !tbaa !5
  %175 = load ptr, ptr %174, align 8, !tbaa !9
  %176 = getelementptr inbounds ptr, ptr %175, i64 40
  %177 = load ptr, ptr %176, align 8
  %178 = invoke noundef nonnull align 8 dereferenceable(24) ptr %177(ptr noundef nonnull align 8 dereferenceable(328) %174, i32 noundef 0)
          to label %179 unwind label %143

179:                                              ; preds = %173
  %180 = getelementptr inbounds %"struct.glslang::TParameter", ptr %178, i32 0, i32 1
  %181 = load ptr, ptr %180, align 8, !tbaa !13
  %182 = load ptr, ptr %181, align 8, !tbaa !9
  %183 = getelementptr inbounds ptr, ptr %182, i64 9
  %184 = load ptr, ptr %183, align 8
  %185 = invoke noundef nonnull align 4 dereferenceable(4) ptr %184(ptr noundef nonnull align 8 dereferenceable(144) %181)
          to label %186 unwind label %143

186:                                              ; preds = %179
  %187 = load i32, ptr %185, align 4
  %188 = lshr i32 %187, 17
  %189 = and i32 %188, 1
  %190 = trunc i32 %189 to i1
  br i1 %190, label %191, label %214

191:                                              ; preds = %186, %168, %153
  %192 = load ptr, ptr %6, align 8, !tbaa !5
  %193 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %192, i32 noundef -9, i32 noundef 400, ptr noundef @.str.197, ptr noundef %193)
          to label %194 unwind label %143

194:                                              ; preds = %191
  %195 = load ptr, ptr %7, align 8, !tbaa !5
  %196 = load ptr, ptr %195, align 8, !tbaa !9
  %197 = getelementptr inbounds ptr, ptr %196, i64 40
  %198 = load ptr, ptr %197, align 8
  %199 = invoke noundef nonnull align 8 dereferenceable(24) ptr %198(ptr noundef nonnull align 8 dereferenceable(328) %195, i32 noundef 0)
          to label %200 unwind label %143

200:                                              ; preds = %194
  %201 = getelementptr inbounds %"struct.glslang::TParameter", ptr %199, i32 0, i32 1
  %202 = load ptr, ptr %201, align 8, !tbaa !13
  %203 = load ptr, ptr %202, align 8, !tbaa !9
  %204 = getelementptr inbounds ptr, ptr %203, i64 9
  %205 = load ptr, ptr %204, align 8
  %206 = invoke noundef nonnull align 4 dereferenceable(4) ptr %205(ptr noundef nonnull align 8 dereferenceable(144) %202)
          to label %207 unwind label %143

207:                                              ; preds = %200
  %208 = load i32, ptr %206, align 4
  %209 = lshr i32 %208, 17
  %210 = and i32 %209, 1
  %211 = trunc i32 %210 to i1
  br i1 %211, label %213, label %212

212:                                              ; preds = %207
  store i32 2, ptr %16, align 4, !tbaa !11
  br label %213

213:                                              ; preds = %212, %207
  br label %218

214:                                              ; preds = %186
  %215 = load ptr, ptr %6, align 8, !tbaa !5
  %216 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %215, i32 noundef -9, i32 noundef 400, ptr noundef @.str.198, ptr noundef %216)
          to label %217 unwind label %143

217:                                              ; preds = %214
  br label %218

218:                                              ; preds = %217, %213
  br label %385

219:                                              ; preds = %142
  %220 = load ptr, ptr %7, align 8, !tbaa !5
  %221 = load ptr, ptr %220, align 8, !tbaa !9
  %222 = getelementptr inbounds ptr, ptr %221, i64 40
  %223 = load ptr, ptr %222, align 8
  %224 = invoke noundef nonnull align 8 dereferenceable(24) ptr %223(ptr noundef nonnull align 8 dereferenceable(328) %220, i32 noundef 0)
          to label %225 unwind label %143

225:                                              ; preds = %219
  %226 = getelementptr inbounds %"struct.glslang::TParameter", ptr %224, i32 0, i32 1
  %227 = load ptr, ptr %226, align 8, !tbaa !13
  %228 = load ptr, ptr %227, align 8, !tbaa !9
  %229 = getelementptr inbounds ptr, ptr %228, i64 9
  %230 = load ptr, ptr %229, align 8
  %231 = invoke noundef nonnull align 4 dereferenceable(4) ptr %230(ptr noundef nonnull align 8 dereferenceable(144) %227)
          to label %232 unwind label %143

232:                                              ; preds = %225
  %233 = load i32, ptr %231, align 4
  %234 = lshr i32 %233, 8
  %235 = and i32 %234, 255
  %236 = icmp eq i32 %235, 2
  br i1 %236, label %237, label %267

237:                                              ; preds = %232
  %238 = load ptr, ptr %7, align 8, !tbaa !5
  %239 = load ptr, ptr %238, align 8, !tbaa !9
  %240 = getelementptr inbounds ptr, ptr %239, i64 40
  %241 = load ptr, ptr %240, align 8
  %242 = invoke noundef nonnull align 8 dereferenceable(24) ptr %241(ptr noundef nonnull align 8 dereferenceable(328) %238, i32 noundef 0)
          to label %243 unwind label %143

243:                                              ; preds = %237
  %244 = getelementptr inbounds %"struct.glslang::TParameter", ptr %242, i32 0, i32 1
  %245 = load ptr, ptr %244, align 8, !tbaa !13
  %246 = load ptr, ptr %245, align 8, !tbaa !9
  %247 = getelementptr inbounds ptr, ptr %246, i64 9
  %248 = load ptr, ptr %247, align 8
  %249 = invoke noundef nonnull align 4 dereferenceable(4) ptr %248(ptr noundef nonnull align 8 dereferenceable(144) %245)
          to label %250 unwind label %143

250:                                              ; preds = %243
  %251 = load i32, ptr %249, align 4
  %252 = lshr i32 %251, 17
  %253 = and i32 %252, 1
  %254 = trunc i32 %253 to i1
  br i1 %254, label %267, label %255

255:                                              ; preds = %250
  %256 = load ptr, ptr %7, align 8, !tbaa !5
  %257 = load ptr, ptr %256, align 8, !tbaa !9
  %258 = getelementptr inbounds ptr, ptr %257, i64 36
  %259 = load ptr, ptr %258, align 8
  %260 = invoke noundef i32 %259(ptr noundef nonnull align 8 dereferenceable(328) %256)
          to label %261 unwind label %143

261:                                              ; preds = %255
  %262 = icmp eq i32 %260, 3
  br i1 %262, label %263, label %267

263:                                              ; preds = %261
  %264 = load ptr, ptr %6, align 8, !tbaa !5
  %265 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %264, i32 noundef -9, i32 noundef 400, ptr noundef @.str.198, ptr noundef %265)
          to label %266 unwind label %143

266:                                              ; preds = %263
  br label %271

267:                                              ; preds = %261, %250, %232
  %268 = load ptr, ptr %6, align 8, !tbaa !5
  %269 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %268, i32 noundef -9, i32 noundef 400, ptr noundef @.str.197, ptr noundef %269)
          to label %270 unwind label %143

270:                                              ; preds = %267
  br label %271

271:                                              ; preds = %270, %266
  %272 = load ptr, ptr %9, align 8, !tbaa !5
  %273 = load ptr, ptr %7, align 8, !tbaa !5
  %274 = load ptr, ptr %273, align 8, !tbaa !9
  %275 = getelementptr inbounds ptr, ptr %274, i64 40
  %276 = load ptr, ptr %275, align 8
  %277 = invoke noundef nonnull align 8 dereferenceable(24) ptr %276(ptr noundef nonnull align 8 dereferenceable(328) %273, i32 noundef 0)
          to label %278 unwind label %143

278:                                              ; preds = %271
  %279 = getelementptr inbounds %"struct.glslang::TParameter", ptr %277, i32 0, i32 1
  %280 = load ptr, ptr %279, align 8, !tbaa !13
  %281 = load ptr, ptr %280, align 8, !tbaa !9
  %282 = getelementptr inbounds ptr, ptr %281, i64 9
  %283 = load ptr, ptr %282, align 8
  %284 = invoke noundef nonnull align 4 dereferenceable(4) ptr %283(ptr noundef nonnull align 8 dereferenceable(144) %280)
          to label %285 unwind label %143

285:                                              ; preds = %278
  %286 = load i32, ptr %284, align 4
  %287 = lshr i32 %286, 17
  %288 = and i32 %287, 1
  %289 = trunc i32 %288 to i1
  %290 = zext i1 %289 to i64
  %291 = select i1 %289, i32 3, i32 2
  %292 = sext i32 %291 to i64
  %293 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %272, i64 noundef %292) #7
  %294 = load ptr, ptr %293, align 8, !tbaa !5
  %295 = load ptr, ptr %294, align 8, !tbaa !9
  %296 = getelementptr inbounds ptr, ptr %295, i64 5
  %297 = load ptr, ptr %296, align 8
  %298 = invoke noundef ptr %297(ptr noundef nonnull align 8 dereferenceable(32) %294)
          to label %299 unwind label %143

299:                                              ; preds = %285
  %300 = icmp ne ptr %298, null
  br i1 %300, label %304, label %301

301:                                              ; preds = %299
  %302 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %302, i32 noundef 8, i32 noundef 320, i32 noundef 2, ptr noundef @_ZN7glslangL15AEP_gpu_shader5E, ptr noundef @.str.199)
          to label %303 unwind label %143

303:                                              ; preds = %301
  br label %304

304:                                              ; preds = %303, %299
  %305 = load ptr, ptr %7, align 8, !tbaa !5
  %306 = load ptr, ptr %305, align 8, !tbaa !9
  %307 = getelementptr inbounds ptr, ptr %306, i64 40
  %308 = load ptr, ptr %307, align 8
  %309 = invoke noundef nonnull align 8 dereferenceable(24) ptr %308(ptr noundef nonnull align 8 dereferenceable(328) %305, i32 noundef 0)
          to label %310 unwind label %143

310:                                              ; preds = %304
  %311 = getelementptr inbounds %"struct.glslang::TParameter", ptr %309, i32 0, i32 1
  %312 = load ptr, ptr %311, align 8, !tbaa !13
  %313 = load ptr, ptr %312, align 8, !tbaa !9
  %314 = getelementptr inbounds ptr, ptr %313, i64 9
  %315 = load ptr, ptr %314, align 8
  %316 = invoke noundef nonnull align 4 dereferenceable(4) ptr %315(ptr noundef nonnull align 8 dereferenceable(144) %312)
          to label %317 unwind label %143

317:                                              ; preds = %310
  %318 = load i32, ptr %316, align 4
  %319 = lshr i32 %318, 17
  %320 = and i32 %319, 1
  %321 = trunc i32 %320 to i1
  br i1 %321, label %323, label %322

322:                                              ; preds = %317
  store i32 3, ptr %16, align 4, !tbaa !11
  br label %323

323:                                              ; preds = %322, %317
  br label %385

324:                                              ; preds = %142
  %325 = load ptr, ptr %6, align 8, !tbaa !5
  %326 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %325, i32 noundef -9, i32 noundef 400, ptr noundef @.str.197, ptr noundef %326)
          to label %327 unwind label %143

327:                                              ; preds = %324
  %328 = load ptr, ptr %7, align 8, !tbaa !5
  %329 = load ptr, ptr %328, align 8, !tbaa !9
  %330 = getelementptr inbounds ptr, ptr %329, i64 40
  %331 = load ptr, ptr %330, align 8
  %332 = invoke noundef nonnull align 8 dereferenceable(24) ptr %331(ptr noundef nonnull align 8 dereferenceable(328) %328, i32 noundef 0)
          to label %333 unwind label %143

333:                                              ; preds = %327
  %334 = getelementptr inbounds %"struct.glslang::TParameter", ptr %332, i32 0, i32 1
  %335 = load ptr, ptr %334, align 8, !tbaa !13
  %336 = load ptr, ptr %335, align 8, !tbaa !9
  %337 = getelementptr inbounds ptr, ptr %336, i64 9
  %338 = load ptr, ptr %337, align 8
  %339 = invoke noundef nonnull align 4 dereferenceable(4) ptr %338(ptr noundef nonnull align 8 dereferenceable(144) %335)
          to label %340 unwind label %143

340:                                              ; preds = %333
  %341 = load i32, ptr %339, align 4
  %342 = lshr i32 %341, 17
  %343 = and i32 %342, 1
  %344 = trunc i32 %343 to i1
  br i1 %344, label %346, label %345

345:                                              ; preds = %340
  store i32 3, ptr %16, align 4, !tbaa !11
  br label %346

346:                                              ; preds = %345, %340
  %347 = load ptr, ptr %9, align 8, !tbaa !5
  %348 = load ptr, ptr %7, align 8, !tbaa !5
  %349 = load ptr, ptr %348, align 8, !tbaa !9
  %350 = getelementptr inbounds ptr, ptr %349, i64 40
  %351 = load ptr, ptr %350, align 8
  %352 = invoke noundef nonnull align 8 dereferenceable(24) ptr %351(ptr noundef nonnull align 8 dereferenceable(328) %348, i32 noundef 0)
          to label %353 unwind label %143

353:                                              ; preds = %346
  %354 = getelementptr inbounds %"struct.glslang::TParameter", ptr %352, i32 0, i32 1
  %355 = load ptr, ptr %354, align 8, !tbaa !13
  %356 = load ptr, ptr %355, align 8, !tbaa !9
  %357 = getelementptr inbounds ptr, ptr %356, i64 9
  %358 = load ptr, ptr %357, align 8
  %359 = invoke noundef nonnull align 4 dereferenceable(4) ptr %358(ptr noundef nonnull align 8 dereferenceable(144) %355)
          to label %360 unwind label %143

360:                                              ; preds = %353
  %361 = load i32, ptr %359, align 4
  %362 = lshr i32 %361, 17
  %363 = and i32 %362, 1
  %364 = trunc i32 %363 to i1
  %365 = zext i1 %364 to i64
  %366 = select i1 %364, i32 3, i32 2
  %367 = sext i32 %366 to i64
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %347, i64 noundef %367) #7
  %369 = load ptr, ptr %368, align 8, !tbaa !5
  %370 = load ptr, ptr %369, align 8, !tbaa !9
  %371 = getelementptr inbounds ptr, ptr %370, i64 5
  %372 = load ptr, ptr %371, align 8
  %373 = invoke noundef ptr %372(ptr noundef nonnull align 8 dereferenceable(32) %369)
          to label %374 unwind label %143

374:                                              ; preds = %360
  %375 = icmp ne ptr %373, null
  br i1 %375, label %383, label %376

376:                                              ; preds = %374
  %377 = load ptr, ptr %6, align 8, !tbaa !5
  %378 = load ptr, ptr %13, align 8, !tbaa !5
  %379 = load ptr, ptr %67, align 8, !tbaa !9
  %380 = getelementptr inbounds ptr, ptr %379, i64 42
  %381 = load ptr, ptr %380, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %381(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %377, ptr noundef @.str.200, ptr noundef %378, ptr noundef @.str.201)
          to label %382 unwind label %143

382:                                              ; preds = %376
  br label %383

383:                                              ; preds = %382, %374
  br label %385

384:                                              ; preds = %142
  br label %385

385:                                              ; preds = %384, %383, %323, %218
  %386 = load i32, ptr %16, align 4, !tbaa !11
  %387 = icmp sgt i32 %386, 0
  br i1 %387, label %388, label %451

388:                                              ; preds = %385
  %389 = load i32, ptr %16, align 4, !tbaa !11
  %390 = load ptr, ptr %7, align 8, !tbaa !5
  %391 = load ptr, ptr %390, align 8, !tbaa !9
  %392 = getelementptr inbounds ptr, ptr %391, i64 36
  %393 = load ptr, ptr %392, align 8
  %394 = invoke noundef i32 %393(ptr noundef nonnull align 8 dereferenceable(328) %390)
          to label %395 unwind label %143

395:                                              ; preds = %388
  %396 = icmp slt i32 %389, %394
  br i1 %396, label %397, label %451

397:                                              ; preds = %395
  %398 = load ptr, ptr %9, align 8, !tbaa !5
  %399 = load i32, ptr %16, align 4, !tbaa !11
  %400 = sext i32 %399 to i64
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %398, i64 noundef %400) #7
  %402 = load ptr, ptr %401, align 8, !tbaa !5
  %403 = load ptr, ptr %402, align 8, !tbaa !9
  %404 = getelementptr inbounds ptr, ptr %403, i64 5
  %405 = load ptr, ptr %404, align 8
  %406 = invoke noundef ptr %405(ptr noundef nonnull align 8 dereferenceable(32) %402)
          to label %407 unwind label %143

407:                                              ; preds = %397
  %408 = icmp ne ptr %406, null
  br i1 %408, label %409, label %443

409:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %410 = load ptr, ptr %9, align 8, !tbaa !5
  %411 = load i32, ptr %16, align 4, !tbaa !11
  %412 = sext i32 %411 to i64
  %413 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %410, i64 noundef %412) #7
  %414 = load ptr, ptr %413, align 8, !tbaa !5
  %415 = load ptr, ptr %414, align 8, !tbaa !9
  %416 = getelementptr inbounds ptr, ptr %415, i64 5
  %417 = load ptr, ptr %416, align 8
  %418 = invoke noundef ptr %417(ptr noundef nonnull align 8 dereferenceable(32) %414)
          to label %419 unwind label %438

419:                                              ; preds = %409
  %420 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %418)
          to label %421 unwind label %438

421:                                              ; preds = %419
  %422 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %420, i64 noundef 0)
          to label %423 unwind label %438

423:                                              ; preds = %421
  %424 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %422)
          to label %425 unwind label %438

425:                                              ; preds = %423
  store i32 %424, ptr %17, align 4, !tbaa !11
  %426 = load i32, ptr %17, align 4, !tbaa !11
  %427 = icmp slt i32 %426, 0
  br i1 %427, label %431, label %428

428:                                              ; preds = %425
  %429 = load i32, ptr %17, align 4, !tbaa !11
  %430 = icmp sgt i32 %429, 3
  br i1 %430, label %431, label %442

431:                                              ; preds = %428, %425
  %432 = load ptr, ptr %6, align 8, !tbaa !5
  %433 = load ptr, ptr %13, align 8, !tbaa !5
  %434 = load ptr, ptr %67, align 8, !tbaa !9
  %435 = getelementptr inbounds ptr, ptr %434, i64 42
  %436 = load ptr, ptr %435, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %436(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %432, ptr noundef @.str.202, ptr noundef %433, ptr noundef @.str.203)
          to label %437 unwind label %438

437:                                              ; preds = %431
  br label %442

438:                                              ; preds = %431, %423, %421, %419, %409
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %14, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %514

442:                                              ; preds = %437, %428
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %450

443:                                              ; preds = %407
  %444 = load ptr, ptr %6, align 8, !tbaa !5
  %445 = load ptr, ptr %13, align 8, !tbaa !5
  %446 = load ptr, ptr %67, align 8, !tbaa !9
  %447 = getelementptr inbounds ptr, ptr %446, i64 42
  %448 = load ptr, ptr %447, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %448(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %444, ptr noundef @.str.200, ptr noundef %445, ptr noundef @.str.203)
          to label %449 unwind label %143

449:                                              ; preds = %443
  br label %450

450:                                              ; preds = %449, %442
  br label %451

451:                                              ; preds = %450, %395, %385
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #7
  store i8 0, ptr %18, align 1, !tbaa !15
  %452 = load ptr, ptr %8, align 8, !tbaa !5
  %453 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %452)
          to label %454 unwind label %465

454:                                              ; preds = %451
  %455 = icmp eq i32 %453, 633
  br i1 %455, label %456, label %469

456:                                              ; preds = %454
  %457 = load ptr, ptr %7, align 8, !tbaa !5
  %458 = load ptr, ptr %457, align 8, !tbaa !9
  %459 = getelementptr inbounds ptr, ptr %458, i64 36
  %460 = load ptr, ptr %459, align 8
  %461 = invoke noundef i32 %460(ptr noundef nonnull align 8 dereferenceable(328) %457)
          to label %462 unwind label %465

462:                                              ; preds = %456
  %463 = icmp sgt i32 %461, 3
  %464 = zext i1 %463 to i8
  store i8 %464, ptr %18, align 1, !tbaa !15
  br label %489

465:                                              ; preds = %506, %502, %500, %498, %492, %479, %474, %469, %456, %451
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %14, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  br label %514

469:                                              ; preds = %454
  %470 = load ptr, ptr %8, align 8, !tbaa !5
  %471 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %470)
          to label %472 unwind label %465

472:                                              ; preds = %469
  %473 = icmp eq i32 %471, 634
  br i1 %473, label %479, label %474

474:                                              ; preds = %472
  %475 = load ptr, ptr %8, align 8, !tbaa !5
  %476 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %475)
          to label %477 unwind label %465

477:                                              ; preds = %474
  %478 = icmp eq i32 %476, 635
  br i1 %478, label %479, label %488

479:                                              ; preds = %477, %472
  %480 = load ptr, ptr %7, align 8, !tbaa !5
  %481 = load ptr, ptr %480, align 8, !tbaa !9
  %482 = getelementptr inbounds ptr, ptr %481, i64 36
  %483 = load ptr, ptr %482, align 8
  %484 = invoke noundef i32 %483(ptr noundef nonnull align 8 dereferenceable(328) %480)
          to label %485 unwind label %465

485:                                              ; preds = %479
  %486 = icmp sgt i32 %484, 4
  %487 = zext i1 %486 to i8
  store i8 %487, ptr %18, align 1, !tbaa !15
  br label %488

488:                                              ; preds = %485, %477
  br label %489

489:                                              ; preds = %488, %462
  %490 = load i8, ptr %18, align 1, !tbaa !15, !range !17, !noundef !18
  %491 = trunc i8 %490 to i1
  br i1 %491, label %492, label %513

492:                                              ; preds = %489
  %493 = load ptr, ptr %7, align 8, !tbaa !5
  %494 = load ptr, ptr %493, align 8, !tbaa !9
  %495 = getelementptr inbounds ptr, ptr %494, i64 3
  %496 = load ptr, ptr %495, align 8
  %497 = invoke noundef nonnull align 8 dereferenceable(40) ptr %496(ptr noundef nonnull align 8 dereferenceable(33) %493)
          to label %498 unwind label %465

498:                                              ; preds = %492
  %499 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef nonnull align 8 dereferenceable(40) %497)
          to label %500 unwind label %465

500:                                              ; preds = %498
  %501 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef @.str.204)
          to label %502 unwind label %465

502:                                              ; preds = %500
  %503 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %12) #7
  store ptr %503, ptr %13, align 8, !tbaa !5
  %504 = load ptr, ptr %6, align 8, !tbaa !5
  %505 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %504, i32 noundef -9, i32 noundef 450, ptr noundef null, ptr noundef %505)
          to label %506 unwind label %465

506:                                              ; preds = %502
  %507 = load ptr, ptr %6, align 8, !tbaa !5
  %508 = load ptr, ptr %13, align 8, !tbaa !5
  %509 = load ptr, ptr %67, align 8, !tbaa !9
  %510 = getelementptr inbounds ptr, ptr %509, i64 5
  %511 = load ptr, ptr %510, align 8
  invoke void %511(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %507, i32 noundef 1, ptr noundef @_ZN7glslangL32E_GL_AMD_texture_gather_bias_lodE, ptr noundef %508)
          to label %512 unwind label %465

512:                                              ; preds = %506
  br label %513

513:                                              ; preds = %512, %489
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %2436

514:                                              ; preds = %465, %438, %143
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %2714

515:                                              ; preds = %120, %120, %120
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  store i8 0, ptr %19, align 1, !tbaa !15
  %516 = load ptr, ptr %8, align 8, !tbaa !5
  %517 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %516)
          to label %518 unwind label %529

518:                                              ; preds = %515
  %519 = icmp eq i32 %517, 654
  br i1 %519, label %520, label %533

520:                                              ; preds = %518
  %521 = load ptr, ptr %7, align 8, !tbaa !5
  %522 = load ptr, ptr %521, align 8, !tbaa !9
  %523 = getelementptr inbounds ptr, ptr %522, i64 36
  %524 = load ptr, ptr %523, align 8
  %525 = invoke noundef i32 %524(ptr noundef nonnull align 8 dereferenceable(328) %521)
          to label %526 unwind label %529

526:                                              ; preds = %520
  %527 = icmp sgt i32 %525, 4
  %528 = zext i1 %527 to i8
  store i8 %528, ptr %19, align 1, !tbaa !15
  br label %553

529:                                              ; preds = %577, %570, %566, %564, %562, %556, %543, %538, %533, %520, %515
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %14, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %15, align 4
  br label %623

533:                                              ; preds = %518
  %534 = load ptr, ptr %8, align 8, !tbaa !5
  %535 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %534)
          to label %536 unwind label %529

536:                                              ; preds = %533
  %537 = icmp eq i32 %535, 655
  br i1 %537, label %543, label %538

538:                                              ; preds = %536
  %539 = load ptr, ptr %8, align 8, !tbaa !5
  %540 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %539)
          to label %541 unwind label %529

541:                                              ; preds = %538
  %542 = icmp eq i32 %540, 656
  br i1 %542, label %543, label %552

543:                                              ; preds = %541, %536
  %544 = load ptr, ptr %7, align 8, !tbaa !5
  %545 = load ptr, ptr %544, align 8, !tbaa !9
  %546 = getelementptr inbounds ptr, ptr %545, i64 36
  %547 = load ptr, ptr %546, align 8
  %548 = invoke noundef i32 %547(ptr noundef nonnull align 8 dereferenceable(328) %544)
          to label %549 unwind label %529

549:                                              ; preds = %543
  %550 = icmp sgt i32 %548, 5
  %551 = zext i1 %550 to i8
  store i8 %551, ptr %19, align 1, !tbaa !15
  br label %552

552:                                              ; preds = %549, %541
  br label %553

553:                                              ; preds = %552, %526
  %554 = load i8, ptr %19, align 1, !tbaa !15, !range !17, !noundef !18
  %555 = trunc i8 %554 to i1
  br i1 %555, label %556, label %577

556:                                              ; preds = %553
  %557 = load ptr, ptr %7, align 8, !tbaa !5
  %558 = load ptr, ptr %557, align 8, !tbaa !9
  %559 = getelementptr inbounds ptr, ptr %558, i64 3
  %560 = load ptr, ptr %559, align 8
  %561 = invoke noundef nonnull align 8 dereferenceable(40) ptr %560(ptr noundef nonnull align 8 dereferenceable(33) %557)
          to label %562 unwind label %529

562:                                              ; preds = %556
  %563 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef nonnull align 8 dereferenceable(40) %561)
          to label %564 unwind label %529

564:                                              ; preds = %562
  %565 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef @.str.204)
          to label %566 unwind label %529

566:                                              ; preds = %564
  %567 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %12) #7
  store ptr %567, ptr %13, align 8, !tbaa !5
  %568 = load ptr, ptr %6, align 8, !tbaa !5
  %569 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %568, i32 noundef -9, i32 noundef 450, ptr noundef null, ptr noundef %569)
          to label %570 unwind label %529

570:                                              ; preds = %566
  %571 = load ptr, ptr %6, align 8, !tbaa !5
  %572 = load ptr, ptr %13, align 8, !tbaa !5
  %573 = load ptr, ptr %67, align 8, !tbaa !9
  %574 = getelementptr inbounds ptr, ptr %573, i64 5
  %575 = load ptr, ptr %574, align 8
  invoke void %575(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %571, i32 noundef 1, ptr noundef @_ZN7glslangL32E_GL_AMD_texture_gather_bias_lodE, ptr noundef %572)
          to label %576 unwind label %529

576:                                              ; preds = %570
  br label %577

577:                                              ; preds = %576, %553
  %578 = load ptr, ptr %8, align 8, !tbaa !5
  %579 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %578)
          to label %580 unwind label %529

580:                                              ; preds = %577
  %581 = icmp eq i32 %579, 656
  br i1 %581, label %582, label %622

582:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %583 = load ptr, ptr %11, align 8, !tbaa !5
  %584 = load ptr, ptr %583, align 8, !tbaa !9
  %585 = getelementptr inbounds ptr, ptr %584, i64 30
  %586 = load ptr, ptr %585, align 8
  %587 = invoke noundef nonnull align 8 dereferenceable(144) ptr %586(ptr noundef nonnull align 8 dereferenceable(176) %583)
          to label %588 unwind label %617

588:                                              ; preds = %582
  %589 = load ptr, ptr %587, align 8, !tbaa !9
  %590 = getelementptr inbounds ptr, ptr %589, i64 8
  %591 = load ptr, ptr %590, align 8
  %592 = invoke noundef nonnull align 4 dereferenceable(4) ptr %591(ptr noundef nonnull align 8 dereferenceable(144) %587)
          to label %593 unwind label %617

593:                                              ; preds = %588
  %594 = load i32, ptr %592, align 4
  %595 = lshr i32 %594, 17
  %596 = and i32 %595, 1
  %597 = trunc i32 %596 to i1
  %598 = zext i1 %597 to i64
  %599 = select i1 %597, i32 3, i32 2
  store i32 %599, ptr %20, align 4, !tbaa !11
  %600 = load ptr, ptr %9, align 8, !tbaa !5
  %601 = load i32, ptr %20, align 4, !tbaa !11
  %602 = sext i32 %601 to i64
  %603 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %600, i64 noundef %602) #7
  %604 = load ptr, ptr %603, align 8, !tbaa !5
  %605 = load ptr, ptr %604, align 8, !tbaa !9
  %606 = getelementptr inbounds ptr, ptr %605, i64 5
  %607 = load ptr, ptr %606, align 8
  %608 = invoke noundef ptr %607(ptr noundef nonnull align 8 dereferenceable(32) %604)
          to label %609 unwind label %617

609:                                              ; preds = %593
  %610 = icmp ne ptr %608, null
  br i1 %610, label %621, label %611

611:                                              ; preds = %609
  %612 = load ptr, ptr %6, align 8, !tbaa !5
  %613 = load ptr, ptr %67, align 8, !tbaa !9
  %614 = getelementptr inbounds ptr, ptr %613, i64 42
  %615 = load ptr, ptr %614, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %615(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %612, ptr noundef @.str.205, ptr noundef @.str.206, ptr noundef @.str.2)
          to label %616 unwind label %617

616:                                              ; preds = %611
  br label %621

617:                                              ; preds = %611, %593, %588, %582
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %14, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %623

621:                                              ; preds = %616, %609
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %622

622:                                              ; preds = %621, %580
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  br label %2436

623:                                              ; preds = %617, %529
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  br label %2714

624:                                              ; preds = %120, %120, %120
  %625 = load ptr, ptr %6, align 8, !tbaa !5
  %626 = load ptr, ptr %7, align 8, !tbaa !5
  %627 = load ptr, ptr %626, align 8, !tbaa !9
  %628 = getelementptr inbounds ptr, ptr %627, i64 3
  %629 = load ptr, ptr %628, align 8
  %630 = invoke noundef nonnull align 8 dereferenceable(40) ptr %629(ptr noundef nonnull align 8 dereferenceable(33) %626)
          to label %631 unwind label %121

631:                                              ; preds = %624
  %632 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %630) #7
  %633 = load ptr, ptr %67, align 8, !tbaa !9
  %634 = getelementptr inbounds ptr, ptr %633, i64 5
  %635 = load ptr, ptr %634, align 8
  invoke void %635(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %625, i32 noundef 1, ptr noundef @_ZN7glslangL24E_GL_ARB_sparse_texture2E, ptr noundef %632)
          to label %636 unwind label %121

636:                                              ; preds = %631
  br label %2436

637:                                              ; preds = %120
  %638 = load ptr, ptr %9, align 8, !tbaa !5
  %639 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %638, i64 noundef 1) #7
  %640 = load ptr, ptr %639, align 8, !tbaa !5
  %641 = load ptr, ptr %640, align 8, !tbaa !9
  %642 = getelementptr inbounds ptr, ptr %641, i64 5
  %643 = load ptr, ptr %642, align 8
  %644 = invoke noundef ptr %643(ptr noundef nonnull align 8 dereferenceable(32) %640)
          to label %645 unwind label %121

645:                                              ; preds = %637
  %646 = icmp ne ptr %644, null
  br i1 %646, label %653, label %647

647:                                              ; preds = %645
  %648 = load ptr, ptr %6, align 8, !tbaa !5
  %649 = load ptr, ptr %67, align 8, !tbaa !9
  %650 = getelementptr inbounds ptr, ptr %649, i64 42
  %651 = load ptr, ptr %650, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %651(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %648, ptr noundef @.str.205, ptr noundef @.str.207, ptr noundef @.str.2)
          to label %652 unwind label %121

652:                                              ; preds = %647
  br label %740

653:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #7
  call void @llvm.memset.p0.i64(ptr align 16 %21, i8 0, i64 16, i1 false)
  %654 = load ptr, ptr %9, align 8, !tbaa !5
  %655 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %654, i64 noundef 1) #7
  %656 = load ptr, ptr %655, align 8, !tbaa !5
  %657 = load ptr, ptr %656, align 8, !tbaa !9
  %658 = getelementptr inbounds ptr, ptr %657, i64 5
  %659 = load ptr, ptr %658, align 8
  %660 = invoke noundef ptr %659(ptr noundef nonnull align 8 dereferenceable(32) %656)
          to label %661 unwind label %735

661:                                              ; preds = %653
  %662 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %660)
          to label %663 unwind label %735

663:                                              ; preds = %661
  %664 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %662, i64 noundef 0)
          to label %665 unwind label %735

665:                                              ; preds = %663
  %666 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %664)
          to label %667 unwind label %735

667:                                              ; preds = %665
  %668 = getelementptr inbounds [4 x i32], ptr %21, i64 0, i64 0
  store i32 %666, ptr %668, align 16, !tbaa !11
  %669 = load ptr, ptr %9, align 8, !tbaa !5
  %670 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %669, i64 noundef 1) #7
  %671 = load ptr, ptr %670, align 8, !tbaa !5
  %672 = load ptr, ptr %671, align 8, !tbaa !9
  %673 = getelementptr inbounds ptr, ptr %672, i64 5
  %674 = load ptr, ptr %673, align 8
  %675 = invoke noundef ptr %674(ptr noundef nonnull align 8 dereferenceable(32) %671)
          to label %676 unwind label %735

676:                                              ; preds = %667
  %677 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %675)
          to label %678 unwind label %735

678:                                              ; preds = %676
  %679 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %677, i64 noundef 1)
          to label %680 unwind label %735

680:                                              ; preds = %678
  %681 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %679)
          to label %682 unwind label %735

682:                                              ; preds = %680
  %683 = getelementptr inbounds [4 x i32], ptr %21, i64 0, i64 1
  store i32 %681, ptr %683, align 4, !tbaa !11
  %684 = load ptr, ptr %9, align 8, !tbaa !5
  %685 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %684, i64 noundef 1) #7
  %686 = load ptr, ptr %685, align 8, !tbaa !5
  %687 = load ptr, ptr %686, align 8, !tbaa !9
  %688 = getelementptr inbounds ptr, ptr %687, i64 5
  %689 = load ptr, ptr %688, align 8
  %690 = invoke noundef ptr %689(ptr noundef nonnull align 8 dereferenceable(32) %686)
          to label %691 unwind label %735

691:                                              ; preds = %682
  %692 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %690)
          to label %693 unwind label %735

693:                                              ; preds = %691
  %694 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %692, i64 noundef 2)
          to label %695 unwind label %735

695:                                              ; preds = %693
  %696 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %694)
          to label %697 unwind label %735

697:                                              ; preds = %695
  %698 = getelementptr inbounds [4 x i32], ptr %21, i64 0, i64 2
  store i32 %696, ptr %698, align 8, !tbaa !11
  %699 = load ptr, ptr %9, align 8, !tbaa !5
  %700 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %699, i64 noundef 1) #7
  %701 = load ptr, ptr %700, align 8, !tbaa !5
  %702 = load ptr, ptr %701, align 8, !tbaa !9
  %703 = getelementptr inbounds ptr, ptr %702, i64 5
  %704 = load ptr, ptr %703, align 8
  %705 = invoke noundef ptr %704(ptr noundef nonnull align 8 dereferenceable(32) %701)
          to label %706 unwind label %735

706:                                              ; preds = %697
  %707 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %705)
          to label %708 unwind label %735

708:                                              ; preds = %706
  %709 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %707, i64 noundef 3)
          to label %710 unwind label %735

710:                                              ; preds = %708
  %711 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %709)
          to label %712 unwind label %735

712:                                              ; preds = %710
  %713 = getelementptr inbounds [4 x i32], ptr %21, i64 0, i64 3
  store i32 %711, ptr %713, align 4, !tbaa !11
  %714 = getelementptr inbounds [4 x i32], ptr %21, i64 0, i64 0
  %715 = load i32, ptr %714, align 16, !tbaa !11
  %716 = icmp ugt i32 %715, 3
  br i1 %716, label %729, label %717

717:                                              ; preds = %712
  %718 = getelementptr inbounds [4 x i32], ptr %21, i64 0, i64 1
  %719 = load i32, ptr %718, align 4, !tbaa !11
  %720 = icmp ugt i32 %719, 3
  br i1 %720, label %729, label %721

721:                                              ; preds = %717
  %722 = getelementptr inbounds [4 x i32], ptr %21, i64 0, i64 2
  %723 = load i32, ptr %722, align 8, !tbaa !11
  %724 = icmp ugt i32 %723, 3
  br i1 %724, label %729, label %725

725:                                              ; preds = %721
  %726 = getelementptr inbounds [4 x i32], ptr %21, i64 0, i64 3
  %727 = load i32, ptr %726, align 4, !tbaa !11
  %728 = icmp ugt i32 %727, 3
  br i1 %728, label %729, label %739

729:                                              ; preds = %725, %721, %717, %712
  %730 = load ptr, ptr %6, align 8, !tbaa !5
  %731 = load ptr, ptr %67, align 8, !tbaa !9
  %732 = getelementptr inbounds ptr, ptr %731, i64 42
  %733 = load ptr, ptr %732, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %733(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %730, ptr noundef @.str.208, ptr noundef @.str.207, ptr noundef @.str.2)
          to label %734 unwind label %735

734:                                              ; preds = %729
  br label %739

735:                                              ; preds = %729, %710, %708, %706, %697, %695, %693, %691, %682, %680, %678, %676, %667, %665, %663, %661, %653
  %736 = landingpad { ptr, i32 }
          cleanup
  %737 = extractvalue { ptr, i32 } %736, 0
  store ptr %737, ptr %14, align 8
  %738 = extractvalue { ptr, i32 } %736, 1
  store i32 %738, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #7
  br label %2714

739:                                              ; preds = %734, %725
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #7
  br label %740

740:                                              ; preds = %739, %652
  br label %2436

741:                                              ; preds = %120
  %742 = load ptr, ptr %9, align 8, !tbaa !5
  %743 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %742, i64 noundef 1) #7
  %744 = load ptr, ptr %743, align 8, !tbaa !5
  %745 = load ptr, ptr %744, align 8, !tbaa !9
  %746 = getelementptr inbounds ptr, ptr %745, i64 5
  %747 = load ptr, ptr %746, align 8
  %748 = invoke noundef ptr %747(ptr noundef nonnull align 8 dereferenceable(32) %744)
          to label %749 unwind label %121

749:                                              ; preds = %741
  %750 = icmp ne ptr %748, null
  br i1 %750, label %757, label %751

751:                                              ; preds = %749
  %752 = load ptr, ptr %6, align 8, !tbaa !5
  %753 = load ptr, ptr %67, align 8, !tbaa !9
  %754 = getelementptr inbounds ptr, ptr %753, i64 42
  %755 = load ptr, ptr %754, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %755(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %752, ptr noundef @.str.205, ptr noundef @.str.209, ptr noundef @.str.2)
          to label %756 unwind label %121

756:                                              ; preds = %751
  br label %825

757:                                              ; preds = %749
  call void @llvm.lifetime.start.p0(i64 12, ptr %22) #7
  call void @llvm.memset.p0.i64(ptr align 4 %22, i8 0, i64 12, i1 false)
  %758 = load ptr, ptr %9, align 8, !tbaa !5
  %759 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %758, i64 noundef 1) #7
  %760 = load ptr, ptr %759, align 8, !tbaa !5
  %761 = load ptr, ptr %760, align 8, !tbaa !9
  %762 = getelementptr inbounds ptr, ptr %761, i64 5
  %763 = load ptr, ptr %762, align 8
  %764 = invoke noundef ptr %763(ptr noundef nonnull align 8 dereferenceable(32) %760)
          to label %765 unwind label %820

765:                                              ; preds = %757
  %766 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %764)
          to label %767 unwind label %820

767:                                              ; preds = %765
  %768 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %766, i64 noundef 0)
          to label %769 unwind label %820

769:                                              ; preds = %767
  %770 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %768)
          to label %771 unwind label %820

771:                                              ; preds = %769
  %772 = getelementptr inbounds [3 x i32], ptr %22, i64 0, i64 0
  store i32 %770, ptr %772, align 4, !tbaa !11
  %773 = load ptr, ptr %9, align 8, !tbaa !5
  %774 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %773, i64 noundef 1) #7
  %775 = load ptr, ptr %774, align 8, !tbaa !5
  %776 = load ptr, ptr %775, align 8, !tbaa !9
  %777 = getelementptr inbounds ptr, ptr %776, i64 5
  %778 = load ptr, ptr %777, align 8
  %779 = invoke noundef ptr %778(ptr noundef nonnull align 8 dereferenceable(32) %775)
          to label %780 unwind label %820

780:                                              ; preds = %771
  %781 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %779)
          to label %782 unwind label %820

782:                                              ; preds = %780
  %783 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %781, i64 noundef 1)
          to label %784 unwind label %820

784:                                              ; preds = %782
  %785 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %783)
          to label %786 unwind label %820

786:                                              ; preds = %784
  %787 = getelementptr inbounds [3 x i32], ptr %22, i64 0, i64 1
  store i32 %785, ptr %787, align 4, !tbaa !11
  %788 = load ptr, ptr %9, align 8, !tbaa !5
  %789 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %788, i64 noundef 1) #7
  %790 = load ptr, ptr %789, align 8, !tbaa !5
  %791 = load ptr, ptr %790, align 8, !tbaa !9
  %792 = getelementptr inbounds ptr, ptr %791, i64 5
  %793 = load ptr, ptr %792, align 8
  %794 = invoke noundef ptr %793(ptr noundef nonnull align 8 dereferenceable(32) %790)
          to label %795 unwind label %820

795:                                              ; preds = %786
  %796 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %794)
          to label %797 unwind label %820

797:                                              ; preds = %795
  %798 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %796, i64 noundef 2)
          to label %799 unwind label %820

799:                                              ; preds = %797
  %800 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %798)
          to label %801 unwind label %820

801:                                              ; preds = %799
  %802 = getelementptr inbounds [3 x i32], ptr %22, i64 0, i64 2
  store i32 %800, ptr %802, align 4, !tbaa !11
  %803 = getelementptr inbounds [3 x i32], ptr %22, i64 0, i64 0
  %804 = load i32, ptr %803, align 4, !tbaa !11
  %805 = icmp ugt i32 %804, 31
  br i1 %805, label %814, label %806

806:                                              ; preds = %801
  %807 = getelementptr inbounds [3 x i32], ptr %22, i64 0, i64 1
  %808 = load i32, ptr %807, align 4, !tbaa !11
  %809 = icmp ugt i32 %808, 31
  br i1 %809, label %814, label %810

810:                                              ; preds = %806
  %811 = getelementptr inbounds [3 x i32], ptr %22, i64 0, i64 2
  %812 = load i32, ptr %811, align 4, !tbaa !11
  %813 = icmp ugt i32 %812, 31
  br i1 %813, label %814, label %824

814:                                              ; preds = %810, %806, %801
  %815 = load ptr, ptr %6, align 8, !tbaa !5
  %816 = load ptr, ptr %67, align 8, !tbaa !9
  %817 = getelementptr inbounds ptr, ptr %816, i64 42
  %818 = load ptr, ptr %817, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %818(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %815, ptr noundef @.str.210, ptr noundef @.str.209, ptr noundef @.str.2)
          to label %819 unwind label %820

819:                                              ; preds = %814
  br label %824

820:                                              ; preds = %814, %799, %797, %795, %786, %784, %782, %780, %771, %769, %767, %765, %757
  %821 = landingpad { ptr, i32 }
          cleanup
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %14, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 12, ptr %22) #7
  br label %2714

824:                                              ; preds = %819, %810
  call void @llvm.lifetime.end.p0(i64 12, ptr %22) #7
  br label %825

825:                                              ; preds = %824, %756
  br label %2436

826:                                              ; preds = %120, %120, %120, %120, %120, %120, %120
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  store i32 -1, ptr %23, align 4, !tbaa !11
  %827 = load ptr, ptr %8, align 8, !tbaa !5
  %828 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %827)
          to label %829 unwind label %830

829:                                              ; preds = %826
  switch i32 %828, label %856 [
    i32 622, label %834
    i32 624, label %835
    i32 625, label %851
    i32 626, label %852
    i32 628, label %853
    i32 630, label %854
    i32 632, label %855
  ]

830:                                              ; preds = %846, %841, %835, %826
  %831 = landingpad { ptr, i32 }
          cleanup
  %832 = extractvalue { ptr, i32 } %831, 0
  store ptr %832, ptr %14, align 8
  %833 = extractvalue { ptr, i32 } %831, 1
  store i32 %833, ptr %15, align 4
  br label %1075

834:                                              ; preds = %829
  store i32 2, ptr %23, align 4, !tbaa !11
  br label %857

835:                                              ; preds = %829
  %836 = load ptr, ptr %11, align 8, !tbaa !5
  %837 = load ptr, ptr %836, align 8, !tbaa !9
  %838 = getelementptr inbounds ptr, ptr %837, i64 30
  %839 = load ptr, ptr %838, align 8
  %840 = invoke noundef nonnull align 8 dereferenceable(144) ptr %839(ptr noundef nonnull align 8 dereferenceable(176) %836)
          to label %841 unwind label %830

841:                                              ; preds = %835
  %842 = load ptr, ptr %840, align 8, !tbaa !9
  %843 = getelementptr inbounds ptr, ptr %842, i64 8
  %844 = load ptr, ptr %843, align 8
  %845 = invoke noundef nonnull align 4 dereferenceable(4) ptr %844(ptr noundef nonnull align 8 dereferenceable(144) %840)
          to label %846 unwind label %830

846:                                              ; preds = %841
  %847 = invoke noundef zeroext i1 @_ZNK7glslang8TSampler6isRectEv(ptr noundef nonnull align 4 dereferenceable(4) %845)
          to label %848 unwind label %830

848:                                              ; preds = %846
  %849 = zext i1 %847 to i64
  %850 = select i1 %847, i32 2, i32 3
  store i32 %850, ptr %23, align 4, !tbaa !11
  br label %857

851:                                              ; preds = %829
  store i32 2, ptr %23, align 4, !tbaa !11
  br label %857

852:                                              ; preds = %829
  store i32 3, ptr %23, align 4, !tbaa !11
  br label %857

853:                                              ; preds = %829
  store i32 3, ptr %23, align 4, !tbaa !11
  br label %857

854:                                              ; preds = %829
  store i32 4, ptr %23, align 4, !tbaa !11
  br label %857

855:                                              ; preds = %829
  store i32 4, ptr %23, align 4, !tbaa !11
  br label %857

856:                                              ; preds = %829
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str.68, i32 noundef 2278, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE) #8
  unreachable

857:                                              ; preds = %855, %854, %853, %852, %851, %848, %834
  %858 = load i32, ptr %23, align 4, !tbaa !11
  %859 = icmp sgt i32 %858, 0
  br i1 %859, label %860, label %1074

860:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #7
  %861 = load ptr, ptr %9, align 8, !tbaa !5
  %862 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %861, i64 noundef 1) #7
  %863 = load ptr, ptr %862, align 8, !tbaa !5
  %864 = load ptr, ptr %863, align 8, !tbaa !9
  %865 = getelementptr inbounds ptr, ptr %864, i64 3
  %866 = load ptr, ptr %865, align 8
  %867 = invoke noundef ptr %866(ptr noundef nonnull align 8 dereferenceable(32) %863)
          to label %868 unwind label %899

868:                                              ; preds = %860
  %869 = load ptr, ptr %867, align 8, !tbaa !9
  %870 = getelementptr inbounds ptr, ptr %869, i64 32
  %871 = load ptr, ptr %870, align 8
  %872 = invoke noundef i32 %871(ptr noundef nonnull align 8 dereferenceable(176) %867)
          to label %873 unwind label %899

873:                                              ; preds = %868
  %874 = icmp eq i32 %872, 3
  br i1 %874, label %875, label %891

875:                                              ; preds = %873
  %876 = load ptr, ptr %11, align 8, !tbaa !5
  %877 = load ptr, ptr %876, align 8, !tbaa !9
  %878 = getelementptr inbounds ptr, ptr %877, i64 30
  %879 = load ptr, ptr %878, align 8
  %880 = invoke noundef nonnull align 8 dereferenceable(144) ptr %879(ptr noundef nonnull align 8 dereferenceable(176) %876)
          to label %881 unwind label %899

881:                                              ; preds = %875
  %882 = load ptr, ptr %880, align 8, !tbaa !9
  %883 = getelementptr inbounds ptr, ptr %882, i64 8
  %884 = load ptr, ptr %883, align 8
  %885 = invoke noundef nonnull align 4 dereferenceable(4) ptr %884(ptr noundef nonnull align 8 dereferenceable(144) %880)
          to label %886 unwind label %899

886:                                              ; preds = %881
  %887 = load i32, ptr %885, align 4
  %888 = lshr i32 %887, 17
  %889 = and i32 %888, 1
  %890 = trunc i32 %889 to i1
  br label %891

891:                                              ; preds = %886, %873
  %892 = phi i1 [ false, %873 ], [ %890, %886 ]
  %893 = zext i1 %892 to i8
  store i8 %893, ptr %24, align 1, !tbaa !15
  %894 = load i8, ptr %24, align 1, !tbaa !15, !range !17, !noundef !18
  %895 = trunc i8 %894 to i1
  br i1 %895, label %896, label %903

896:                                              ; preds = %891
  %897 = load i32, ptr %23, align 4, !tbaa !11
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr %23, align 4, !tbaa !11
  br label %903

899:                                              ; preds = %1021, %927, %921, %918, %913, %903, %881, %875, %868, %860
  %900 = landingpad { ptr, i32 }
          cleanup
  %901 = extractvalue { ptr, i32 } %900, 0
  store ptr %901, ptr %14, align 8
  %902 = extractvalue { ptr, i32 } %900, 1
  store i32 %902, ptr %15, align 4
  br label %1073

903:                                              ; preds = %896, %891
  %904 = load ptr, ptr %9, align 8, !tbaa !5
  %905 = load i32, ptr %23, align 4, !tbaa !11
  %906 = sext i32 %905 to i64
  %907 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %904, i64 noundef %906) #7
  %908 = load ptr, ptr %907, align 8, !tbaa !5
  %909 = load ptr, ptr %908, align 8, !tbaa !9
  %910 = getelementptr inbounds ptr, ptr %909, i64 3
  %911 = load ptr, ptr %910, align 8
  %912 = invoke noundef ptr %911(ptr noundef nonnull align 8 dereferenceable(32) %908)
          to label %913 unwind label %899

913:                                              ; preds = %903
  %914 = load ptr, ptr %912, align 8, !tbaa !9
  %915 = getelementptr inbounds ptr, ptr %914, i64 33
  %916 = load ptr, ptr %915, align 8
  %917 = invoke noundef nonnull align 8 dereferenceable(72) ptr %916(ptr noundef nonnull align 8 dereferenceable(176) %912)
          to label %918 unwind label %899

918:                                              ; preds = %913
  %919 = invoke noundef zeroext i1 @_ZNK7glslang10TQualifier10isConstantEv(ptr noundef nonnull align 8 dereferenceable(72) %917)
          to label %920 unwind label %899

920:                                              ; preds = %918
  br i1 %919, label %927, label %921

921:                                              ; preds = %920
  %922 = load ptr, ptr %6, align 8, !tbaa !5
  %923 = load ptr, ptr %67, align 8, !tbaa !9
  %924 = getelementptr inbounds ptr, ptr %923, i64 42
  %925 = load ptr, ptr %924, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %925(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %922, ptr noundef @.str.205, ptr noundef @.str.211, ptr noundef @.str.2)
          to label %926 unwind label %899

926:                                              ; preds = %921
  br label %1021

927:                                              ; preds = %920
  %928 = load ptr, ptr %9, align 8, !tbaa !5
  %929 = load i32, ptr %23, align 4, !tbaa !11
  %930 = sext i32 %929 to i64
  %931 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %928, i64 noundef %930) #7
  %932 = load ptr, ptr %931, align 8, !tbaa !5
  %933 = load ptr, ptr %932, align 8, !tbaa !9
  %934 = getelementptr inbounds ptr, ptr %933, i64 5
  %935 = load ptr, ptr %934, align 8
  %936 = invoke noundef ptr %935(ptr noundef nonnull align 8 dereferenceable(32) %932)
          to label %937 unwind label %899

937:                                              ; preds = %927
  %938 = icmp ne ptr %936, null
  br i1 %938, label %939, label %1020

939:                                              ; preds = %937
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %940 = load ptr, ptr %9, align 8, !tbaa !5
  %941 = load i32, ptr %23, align 4, !tbaa !11
  %942 = sext i32 %941 to i64
  %943 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %940, i64 noundef %942) #7
  %944 = load ptr, ptr %943, align 8, !tbaa !5
  %945 = load ptr, ptr %944, align 8, !tbaa !9
  %946 = getelementptr inbounds ptr, ptr %945, i64 3
  %947 = load ptr, ptr %946, align 8
  %948 = invoke noundef ptr %947(ptr noundef nonnull align 8 dereferenceable(32) %944)
          to label %949 unwind label %965

949:                                              ; preds = %939
  %950 = load ptr, ptr %948, align 8, !tbaa !9
  %951 = getelementptr inbounds ptr, ptr %950, i64 30
  %952 = load ptr, ptr %951, align 8
  %953 = invoke noundef nonnull align 8 dereferenceable(144) ptr %952(ptr noundef nonnull align 8 dereferenceable(176) %948)
          to label %954 unwind label %965

954:                                              ; preds = %949
  store ptr %953, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  store i32 0, ptr %26, align 4, !tbaa !11
  br label %955

955:                                              ; preds = %1014, %954
  %956 = load i32, ptr %26, align 4, !tbaa !11
  %957 = load ptr, ptr %25, align 8, !tbaa !5
  %958 = load ptr, ptr %957, align 8, !tbaa !9
  %959 = getelementptr inbounds ptr, ptr %958, i64 12
  %960 = load ptr, ptr %959, align 8
  %961 = invoke noundef i32 %960(ptr noundef nonnull align 8 dereferenceable(144) %957)
          to label %962 unwind label %969

962:                                              ; preds = %955
  %963 = icmp slt i32 %956, %961
  br i1 %963, label %973, label %964

964:                                              ; preds = %962
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %1018

965:                                              ; preds = %949, %939
  %966 = landingpad { ptr, i32 }
          cleanup
  %967 = extractvalue { ptr, i32 } %966, 0
  store ptr %967, ptr %14, align 8
  %968 = extractvalue { ptr, i32 } %966, 1
  store i32 %968, ptr %15, align 4
  br label %1019

969:                                              ; preds = %955
  %970 = landingpad { ptr, i32 }
          cleanup
  %971 = extractvalue { ptr, i32 } %970, 0
  store ptr %971, ptr %14, align 8
  %972 = extractvalue { ptr, i32 } %970, 1
  store i32 %972, ptr %15, align 4
  br label %1017

973:                                              ; preds = %962
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %974 = load ptr, ptr %9, align 8, !tbaa !5
  %975 = load i32, ptr %23, align 4, !tbaa !11
  %976 = sext i32 %975 to i64
  %977 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %974, i64 noundef %976) #7
  %978 = load ptr, ptr %977, align 8, !tbaa !5
  %979 = load ptr, ptr %978, align 8, !tbaa !9
  %980 = getelementptr inbounds ptr, ptr %979, i64 5
  %981 = load ptr, ptr %980, align 8
  %982 = invoke noundef ptr %981(ptr noundef nonnull align 8 dereferenceable(32) %978)
          to label %983 unwind label %1009

983:                                              ; preds = %973
  %984 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %982)
          to label %985 unwind label %1009

985:                                              ; preds = %983
  %986 = load i32, ptr %26, align 4, !tbaa !11
  %987 = sext i32 %986 to i64
  %988 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %984, i64 noundef %987)
          to label %989 unwind label %1009

989:                                              ; preds = %985
  %990 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %988)
          to label %991 unwind label %1009

991:                                              ; preds = %989
  store i32 %990, ptr %27, align 4, !tbaa !11
  %992 = load i32, ptr %27, align 4, !tbaa !11
  %993 = getelementptr inbounds %"class.glslang::TParseContext", ptr %67, i32 0, i32 5
  %994 = getelementptr inbounds %struct.TBuiltInResource, ptr %993, i32 0, i32 18
  %995 = load i32, ptr %994, align 8, !tbaa !19
  %996 = icmp sgt i32 %992, %995
  br i1 %996, label %1003, label %997

997:                                              ; preds = %991
  %998 = load i32, ptr %27, align 4, !tbaa !11
  %999 = getelementptr inbounds %"class.glslang::TParseContext", ptr %67, i32 0, i32 5
  %1000 = getelementptr inbounds %struct.TBuiltInResource, ptr %999, i32 0, i32 17
  %1001 = load i32, ptr %1000, align 4, !tbaa !115
  %1002 = icmp slt i32 %998, %1001
  br i1 %1002, label %1003, label %1013

1003:                                             ; preds = %997, %991
  %1004 = load ptr, ptr %6, align 8, !tbaa !5
  %1005 = load ptr, ptr %67, align 8, !tbaa !9
  %1006 = getelementptr inbounds ptr, ptr %1005, i64 42
  %1007 = load ptr, ptr %1006, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1007(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1004, ptr noundef @.str.212, ptr noundef @.str.211, ptr noundef @.str.213)
          to label %1008 unwind label %1009

1008:                                             ; preds = %1003
  br label %1013

1009:                                             ; preds = %1003, %989, %985, %983, %973
  %1010 = landingpad { ptr, i32 }
          cleanup
  %1011 = extractvalue { ptr, i32 } %1010, 0
  store ptr %1011, ptr %14, align 8
  %1012 = extractvalue { ptr, i32 } %1010, 1
  store i32 %1012, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %1017

1013:                                             ; preds = %1008, %997
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %1014

1014:                                             ; preds = %1013
  %1015 = load i32, ptr %26, align 4, !tbaa !11
  %1016 = add nsw i32 %1015, 1
  store i32 %1016, ptr %26, align 4, !tbaa !11
  br label %955, !llvm.loop !116

1017:                                             ; preds = %1009, %969
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %1019

1018:                                             ; preds = %964
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  br label %1020

1019:                                             ; preds = %1017, %965
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  br label %1073

1020:                                             ; preds = %1018, %937
  br label %1021

1021:                                             ; preds = %1020, %926
  %1022 = load ptr, ptr %8, align 8, !tbaa !5
  %1023 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1022)
          to label %1024 unwind label %899

1024:                                             ; preds = %1021
  %1025 = icmp eq i32 %1023, 622
  br i1 %1025, label %1026, label %1072

1026:                                             ; preds = %1024
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  %1027 = load ptr, ptr %11, align 8, !tbaa !5
  %1028 = load ptr, ptr %1027, align 8, !tbaa !9
  %1029 = getelementptr inbounds ptr, ptr %1028, i64 30
  %1030 = load ptr, ptr %1029, align 8
  %1031 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1030(ptr noundef nonnull align 8 dereferenceable(176) %1027)
          to label %1032 unwind label %1055

1032:                                             ; preds = %1026
  %1033 = load ptr, ptr %1031, align 8, !tbaa !9
  %1034 = getelementptr inbounds ptr, ptr %1033, i64 8
  %1035 = load ptr, ptr %1034, align 8
  %1036 = invoke noundef nonnull align 4 dereferenceable(4) ptr %1035(ptr noundef nonnull align 8 dereferenceable(144) %1031)
          to label %1037 unwind label %1055

1037:                                             ; preds = %1032
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %28, ptr align 4 %1036, i64 4, i1 false), !tbaa.struct !118
  %1038 = invoke noundef zeroext i1 @_ZNK7glslang8TSampler4is2DEv(ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %1039 unwind label %1055

1039:                                             ; preds = %1037
  br i1 %1038, label %1040, label %1071

1040:                                             ; preds = %1039
  %1041 = invoke noundef zeroext i1 @_ZNK7glslang8TSampler9isArrayedEv(ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %1042 unwind label %1055

1042:                                             ; preds = %1040
  br i1 %1041, label %1043, label %1071

1043:                                             ; preds = %1042
  %1044 = invoke noundef zeroext i1 @_ZNK7glslang8TSampler8isShadowEv(ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %1045 unwind label %1055

1045:                                             ; preds = %1043
  br i1 %1044, label %1046, label %1071

1046:                                             ; preds = %1045
  %1047 = invoke noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %67)
          to label %1048 unwind label %1055

1048:                                             ; preds = %1046
  br i1 %1047, label %1049, label %1059

1049:                                             ; preds = %1048
  %1050 = load ptr, ptr %6, align 8, !tbaa !5
  %1051 = load ptr, ptr %67, align 8, !tbaa !9
  %1052 = getelementptr inbounds ptr, ptr %1051, i64 42
  %1053 = load ptr, ptr %1052, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1053(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1050, ptr noundef @.str.214, ptr noundef @.str.215, ptr noundef @.str.216)
          to label %1054 unwind label %1055

1054:                                             ; preds = %1049
  br label %1070

1055:                                             ; preds = %1063, %1049, %1046, %1043, %1040, %1037, %1032, %1026
  %1056 = landingpad { ptr, i32 }
          cleanup
  %1057 = extractvalue { ptr, i32 } %1056, 0
  store ptr %1057, ptr %14, align 8
  %1058 = extractvalue { ptr, i32 } %1056, 1
  store i32 %1058, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %1073

1059:                                             ; preds = %1048
  %1060 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 4
  %1061 = load i32, ptr %1060, align 8, !tbaa !120
  %1062 = icmp sle i32 %1061, 420
  br i1 %1062, label %1063, label %1069

1063:                                             ; preds = %1059
  %1064 = load ptr, ptr %6, align 8, !tbaa !5
  %1065 = load ptr, ptr %67, align 8, !tbaa !9
  %1066 = getelementptr inbounds ptr, ptr %1065, i64 42
  %1067 = load ptr, ptr %1066, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1067(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1064, ptr noundef @.str.214, ptr noundef @.str.215, ptr noundef @.str.217)
          to label %1068 unwind label %1055

1068:                                             ; preds = %1063
  br label %1069

1069:                                             ; preds = %1068, %1059
  br label %1070

1070:                                             ; preds = %1069, %1054
  br label %1071

1071:                                             ; preds = %1070, %1045, %1042, %1039
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %1072

1072:                                             ; preds = %1071, %1024
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  br label %1074

1073:                                             ; preds = %1055, %1019, %899
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  br label %1075

1074:                                             ; preds = %1072, %857
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %2436

1075:                                             ; preds = %1073, %830
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %2714

1076:                                             ; preds = %120
  %1077 = load ptr, ptr %9, align 8, !tbaa !5
  %1078 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1077, i64 noundef 10) #7
  %1079 = load ptr, ptr %1078, align 8, !tbaa !5
  %1080 = load ptr, ptr %1079, align 8, !tbaa !9
  %1081 = getelementptr inbounds ptr, ptr %1080, i64 5
  %1082 = load ptr, ptr %1081, align 8
  %1083 = invoke noundef ptr %1082(ptr noundef nonnull align 8 dereferenceable(32) %1079)
          to label %1084 unwind label %121

1084:                                             ; preds = %1076
  %1085 = icmp ne ptr %1083, null
  br i1 %1085, label %1092, label %1086

1086:                                             ; preds = %1084
  %1087 = load ptr, ptr %6, align 8, !tbaa !5
  %1088 = load ptr, ptr %67, align 8, !tbaa !9
  %1089 = getelementptr inbounds ptr, ptr %1088, i64 42
  %1090 = load ptr, ptr %1089, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1090(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1087, ptr noundef @.str.205, ptr noundef @.str.218, ptr noundef @.str.219)
          to label %1091 unwind label %121

1091:                                             ; preds = %1086
  br label %1092

1092:                                             ; preds = %1091, %1084
  br label %2436

1093:                                             ; preds = %120
  %1094 = load ptr, ptr %9, align 8, !tbaa !5
  %1095 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1094, i64 noundef 11) #7
  %1096 = load ptr, ptr %1095, align 8, !tbaa !5
  %1097 = load ptr, ptr %1096, align 8, !tbaa !9
  %1098 = getelementptr inbounds ptr, ptr %1097, i64 5
  %1099 = load ptr, ptr %1098, align 8
  %1100 = invoke noundef ptr %1099(ptr noundef nonnull align 8 dereferenceable(32) %1096)
          to label %1101 unwind label %121

1101:                                             ; preds = %1093
  %1102 = icmp ne ptr %1100, null
  br i1 %1102, label %1109, label %1103

1103:                                             ; preds = %1101
  %1104 = load ptr, ptr %6, align 8, !tbaa !5
  %1105 = load ptr, ptr %67, align 8, !tbaa !9
  %1106 = getelementptr inbounds ptr, ptr %1105, i64 42
  %1107 = load ptr, ptr %1106, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1107(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1104, ptr noundef @.str.205, ptr noundef @.str.218, ptr noundef @.str.219)
          to label %1108 unwind label %121

1108:                                             ; preds = %1103
  br label %1109

1109:                                             ; preds = %1108, %1101
  br label %2436

1110:                                             ; preds = %120
  %1111 = load ptr, ptr %9, align 8, !tbaa !5
  %1112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1111, i64 noundef 10) #7
  %1113 = load ptr, ptr %1112, align 8, !tbaa !5
  %1114 = load ptr, ptr %1113, align 8, !tbaa !9
  %1115 = getelementptr inbounds ptr, ptr %1114, i64 5
  %1116 = load ptr, ptr %1115, align 8
  %1117 = invoke noundef ptr %1116(ptr noundef nonnull align 8 dereferenceable(32) %1113)
          to label %1118 unwind label %121

1118:                                             ; preds = %1110
  %1119 = icmp ne ptr %1117, null
  br i1 %1119, label %1126, label %1120

1120:                                             ; preds = %1118
  %1121 = load ptr, ptr %6, align 8, !tbaa !5
  %1122 = load ptr, ptr %67, align 8, !tbaa !9
  %1123 = getelementptr inbounds ptr, ptr %1122, i64 42
  %1124 = load ptr, ptr %1123, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1124(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1121, ptr noundef @.str.205, ptr noundef @.str.218, ptr noundef @.str.219)
          to label %1125 unwind label %121

1125:                                             ; preds = %1120
  br label %1170

1126:                                             ; preds = %1118
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %1127 = load ptr, ptr %9, align 8, !tbaa !5
  %1128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1127, i64 noundef 10) #7
  %1129 = load ptr, ptr %1128, align 8, !tbaa !5
  %1130 = load ptr, ptr %1129, align 8, !tbaa !9
  %1131 = getelementptr inbounds ptr, ptr %1130, i64 5
  %1132 = load ptr, ptr %1131, align 8
  %1133 = invoke noundef ptr %1132(ptr noundef nonnull align 8 dereferenceable(32) %1129)
          to label %1134 unwind label %1165

1134:                                             ; preds = %1126
  %1135 = load ptr, ptr %1133, align 8, !tbaa !9
  %1136 = getelementptr inbounds ptr, ptr %1135, i64 5
  %1137 = load ptr, ptr %1136, align 8
  %1138 = invoke noundef ptr %1137(ptr noundef nonnull align 8 dereferenceable(193) %1133)
          to label %1139 unwind label %1165

1139:                                             ; preds = %1134
  %1140 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %1138)
          to label %1141 unwind label %1165

1141:                                             ; preds = %1139
  %1142 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1140, i64 noundef 0)
          to label %1143 unwind label %1165

1143:                                             ; preds = %1141
  %1144 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1142)
          to label %1145 unwind label %1165

1145:                                             ; preds = %1143
  store i32 %1144, ptr %29, align 4, !tbaa !11
  %1146 = load ptr, ptr %67, align 8, !tbaa !9
  %1147 = getelementptr inbounds ptr, ptr %1146, i64 8
  %1148 = load ptr, ptr %1147, align 8
  %1149 = invoke noundef zeroext i1 %1148(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef @.str.220)
          to label %1150 unwind label %1165

1150:                                             ; preds = %1145
  br i1 %1149, label %1169, label %1151

1151:                                             ; preds = %1150
  %1152 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 7
  %1153 = load ptr, ptr %1152, align 8, !tbaa !121
  %1154 = load i32, ptr %29, align 4, !tbaa !11
  %1155 = invoke noundef i32 @_ZN7glslang13TIntermediate15checkLocationRTEii(ptr noundef nonnull align 8 dereferenceable(1784) %1153, i32 noundef 0, i32 noundef %1154)
          to label %1156 unwind label %1165

1156:                                             ; preds = %1151
  %1157 = icmp slt i32 %1155, 0
  br i1 %1157, label %1158, label %1169

1158:                                             ; preds = %1156
  %1159 = load ptr, ptr %6, align 8, !tbaa !5
  %1160 = load i32, ptr %29, align 4, !tbaa !11
  %1161 = load ptr, ptr %67, align 8, !tbaa !9
  %1162 = getelementptr inbounds ptr, ptr %1161, i64 42
  %1163 = load ptr, ptr %1162, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1163(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1159, ptr noundef @.str.221, ptr noundef @.str.222, ptr noundef @.str.223, i32 noundef %1160)
          to label %1164 unwind label %1165

1164:                                             ; preds = %1158
  br label %1169

1165:                                             ; preds = %1158, %1151, %1145, %1143, %1141, %1139, %1134, %1126
  %1166 = landingpad { ptr, i32 }
          cleanup
  %1167 = extractvalue { ptr, i32 } %1166, 0
  store ptr %1167, ptr %14, align 8
  %1168 = extractvalue { ptr, i32 } %1166, 1
  store i32 %1168, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %2714

1169:                                             ; preds = %1164, %1156, %1150
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %1170

1170:                                             ; preds = %1169, %1125
  br label %2436

1171:                                             ; preds = %120
  %1172 = load ptr, ptr %9, align 8, !tbaa !5
  %1173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1172, i64 noundef 1) #7
  %1174 = load ptr, ptr %1173, align 8, !tbaa !5
  %1175 = load ptr, ptr %1174, align 8, !tbaa !9
  %1176 = getelementptr inbounds ptr, ptr %1175, i64 5
  %1177 = load ptr, ptr %1176, align 8
  %1178 = invoke noundef ptr %1177(ptr noundef nonnull align 8 dereferenceable(32) %1174)
          to label %1179 unwind label %121

1179:                                             ; preds = %1171
  %1180 = icmp ne ptr %1178, null
  br i1 %1180, label %1187, label %1181

1181:                                             ; preds = %1179
  %1182 = load ptr, ptr %6, align 8, !tbaa !5
  %1183 = load ptr, ptr %67, align 8, !tbaa !9
  %1184 = getelementptr inbounds ptr, ptr %1183, i64 42
  %1185 = load ptr, ptr %1184, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1185(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1182, ptr noundef @.str.205, ptr noundef @.str.224, ptr noundef @.str.2)
          to label %1186 unwind label %121

1186:                                             ; preds = %1181
  br label %1187

1187:                                             ; preds = %1186, %1179
  br label %2436

1188:                                             ; preds = %120
  %1189 = load ptr, ptr %9, align 8, !tbaa !5
  %1190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1189, i64 noundef 1) #7
  %1191 = load ptr, ptr %1190, align 8, !tbaa !5
  %1192 = load ptr, ptr %1191, align 8, !tbaa !9
  %1193 = getelementptr inbounds ptr, ptr %1192, i64 5
  %1194 = load ptr, ptr %1193, align 8
  %1195 = invoke noundef ptr %1194(ptr noundef nonnull align 8 dereferenceable(32) %1191)
          to label %1196 unwind label %121

1196:                                             ; preds = %1188
  %1197 = icmp ne ptr %1195, null
  br i1 %1197, label %1204, label %1198

1198:                                             ; preds = %1196
  %1199 = load ptr, ptr %6, align 8, !tbaa !5
  %1200 = load ptr, ptr %67, align 8, !tbaa !9
  %1201 = getelementptr inbounds ptr, ptr %1200, i64 42
  %1202 = load ptr, ptr %1201, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1202(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1199, ptr noundef @.str.205, ptr noundef @.str.224, ptr noundef @.str.2)
          to label %1203 unwind label %121

1203:                                             ; preds = %1198
  br label %1248

1204:                                             ; preds = %1196
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %1205 = load ptr, ptr %9, align 8, !tbaa !5
  %1206 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1205, i64 noundef 1) #7
  %1207 = load ptr, ptr %1206, align 8, !tbaa !5
  %1208 = load ptr, ptr %1207, align 8, !tbaa !9
  %1209 = getelementptr inbounds ptr, ptr %1208, i64 5
  %1210 = load ptr, ptr %1209, align 8
  %1211 = invoke noundef ptr %1210(ptr noundef nonnull align 8 dereferenceable(32) %1207)
          to label %1212 unwind label %1243

1212:                                             ; preds = %1204
  %1213 = load ptr, ptr %1211, align 8, !tbaa !9
  %1214 = getelementptr inbounds ptr, ptr %1213, i64 5
  %1215 = load ptr, ptr %1214, align 8
  %1216 = invoke noundef ptr %1215(ptr noundef nonnull align 8 dereferenceable(193) %1211)
          to label %1217 unwind label %1243

1217:                                             ; preds = %1212
  %1218 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %1216)
          to label %1219 unwind label %1243

1219:                                             ; preds = %1217
  %1220 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1218, i64 noundef 0)
          to label %1221 unwind label %1243

1221:                                             ; preds = %1219
  %1222 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1220)
          to label %1223 unwind label %1243

1223:                                             ; preds = %1221
  store i32 %1222, ptr %30, align 4, !tbaa !11
  %1224 = load ptr, ptr %67, align 8, !tbaa !9
  %1225 = getelementptr inbounds ptr, ptr %1224, i64 8
  %1226 = load ptr, ptr %1225, align 8
  %1227 = invoke noundef zeroext i1 %1226(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef @.str.220)
          to label %1228 unwind label %1243

1228:                                             ; preds = %1223
  br i1 %1227, label %1247, label %1229

1229:                                             ; preds = %1228
  %1230 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 7
  %1231 = load ptr, ptr %1230, align 8, !tbaa !121
  %1232 = load i32, ptr %30, align 4, !tbaa !11
  %1233 = invoke noundef i32 @_ZN7glslang13TIntermediate15checkLocationRTEii(ptr noundef nonnull align 8 dereferenceable(1784) %1231, i32 noundef 1, i32 noundef %1232)
          to label %1234 unwind label %1243

1234:                                             ; preds = %1229
  %1235 = icmp slt i32 %1233, 0
  br i1 %1235, label %1236, label %1247

1236:                                             ; preds = %1234
  %1237 = load ptr, ptr %6, align 8, !tbaa !5
  %1238 = load i32, ptr %30, align 4, !tbaa !11
  %1239 = load ptr, ptr %67, align 8, !tbaa !9
  %1240 = getelementptr inbounds ptr, ptr %1239, i64 42
  %1241 = load ptr, ptr %1240, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1241(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1237, ptr noundef @.str.221, ptr noundef @.str.225, ptr noundef @.str.223, i32 noundef %1238)
          to label %1242 unwind label %1243

1242:                                             ; preds = %1236
  br label %1247

1243:                                             ; preds = %1236, %1229, %1223, %1221, %1219, %1217, %1212, %1204
  %1244 = landingpad { ptr, i32 }
          cleanup
  %1245 = extractvalue { ptr, i32 } %1244, 0
  store ptr %1245, ptr %14, align 8
  %1246 = extractvalue { ptr, i32 } %1244, 1
  store i32 %1246, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %2714

1247:                                             ; preds = %1242, %1234, %1228
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %1248

1248:                                             ; preds = %1247, %1203
  br label %2436

1249:                                             ; preds = %120, %120, %120, %120, %120, %120, %120, %120, %120, %120, %120, %120, %120
  %1250 = load ptr, ptr %9, align 8, !tbaa !5
  %1251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1250, i64 noundef 1) #7
  %1252 = load ptr, ptr %1251, align 8, !tbaa !5
  %1253 = load ptr, ptr %1252, align 8, !tbaa !9
  %1254 = getelementptr inbounds ptr, ptr %1253, i64 5
  %1255 = load ptr, ptr %1254, align 8
  %1256 = invoke noundef ptr %1255(ptr noundef nonnull align 8 dereferenceable(32) %1252)
          to label %1257 unwind label %121

1257:                                             ; preds = %1249
  %1258 = icmp ne ptr %1256, null
  br i1 %1258, label %1265, label %1259

1259:                                             ; preds = %1257
  %1260 = load ptr, ptr %6, align 8, !tbaa !5
  %1261 = load ptr, ptr %67, align 8, !tbaa !9
  %1262 = getelementptr inbounds ptr, ptr %1261, i64 42
  %1263 = load ptr, ptr %1262, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1263(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1260, ptr noundef @.str.205, ptr noundef @.str.226, ptr noundef @.str.2)
          to label %1264 unwind label %121

1264:                                             ; preds = %1259
  br label %1265

1265:                                             ; preds = %1264, %1257
  br label %2436

1266:                                             ; preds = %120, %120
  %1267 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1267, i32 noundef -9, i32 noundef 450, ptr noundef @.str.227, ptr noundef @.str.228)
          to label %1268 unwind label %121

1268:                                             ; preds = %1266
  br label %2436

1269:                                             ; preds = %120, %120, %120, %120, %120, %120, %120, %120, %120, %120
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %1270 = load ptr, ptr %11, align 8, !tbaa !5
  %1271 = load ptr, ptr %1270, align 8, !tbaa !9
  %1272 = getelementptr inbounds ptr, ptr %1271, i64 30
  %1273 = load ptr, ptr %1272, align 8
  %1274 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1273(ptr noundef nonnull align 8 dereferenceable(176) %1270)
          to label %1275 unwind label %1368

1275:                                             ; preds = %1269
  store ptr %1274, ptr %31, align 8, !tbaa !5
  %1276 = load ptr, ptr %31, align 8, !tbaa !5
  %1277 = load ptr, ptr %1276, align 8, !tbaa !9
  %1278 = getelementptr inbounds ptr, ptr %1277, i64 8
  %1279 = load ptr, ptr %1278, align 8
  %1280 = invoke noundef nonnull align 4 dereferenceable(4) ptr %1279(ptr noundef nonnull align 8 dereferenceable(144) %1276)
          to label %1281 unwind label %1368

1281:                                             ; preds = %1275
  %1282 = load i32, ptr %1280, align 4
  %1283 = and i32 %1282, 255
  %1284 = icmp eq i32 %1283, 8
  br i1 %1284, label %1315, label %1285

1285:                                             ; preds = %1281
  %1286 = load ptr, ptr %31, align 8, !tbaa !5
  %1287 = load ptr, ptr %1286, align 8, !tbaa !9
  %1288 = getelementptr inbounds ptr, ptr %1287, i64 8
  %1289 = load ptr, ptr %1288, align 8
  %1290 = invoke noundef nonnull align 4 dereferenceable(4) ptr %1289(ptr noundef nonnull align 8 dereferenceable(144) %1286)
          to label %1291 unwind label %1368

1291:                                             ; preds = %1285
  %1292 = load i32, ptr %1290, align 4
  %1293 = and i32 %1292, 255
  %1294 = icmp eq i32 %1293, 9
  br i1 %1294, label %1315, label %1295

1295:                                             ; preds = %1291
  %1296 = load ptr, ptr %31, align 8, !tbaa !5
  %1297 = load ptr, ptr %1296, align 8, !tbaa !9
  %1298 = getelementptr inbounds ptr, ptr %1297, i64 8
  %1299 = load ptr, ptr %1298, align 8
  %1300 = invoke noundef nonnull align 4 dereferenceable(4) ptr %1299(ptr noundef nonnull align 8 dereferenceable(144) %1296)
          to label %1301 unwind label %1368

1301:                                             ; preds = %1295
  %1302 = load i32, ptr %1300, align 4
  %1303 = and i32 %1302, 255
  %1304 = icmp eq i32 %1303, 10
  br i1 %1304, label %1315, label %1305

1305:                                             ; preds = %1301
  %1306 = load ptr, ptr %31, align 8, !tbaa !5
  %1307 = load ptr, ptr %1306, align 8, !tbaa !9
  %1308 = getelementptr inbounds ptr, ptr %1307, i64 8
  %1309 = load ptr, ptr %1308, align 8
  %1310 = invoke noundef nonnull align 4 dereferenceable(4) ptr %1309(ptr noundef nonnull align 8 dereferenceable(144) %1306)
          to label %1311 unwind label %1368

1311:                                             ; preds = %1305
  %1312 = load i32, ptr %1310, align 4
  %1313 = and i32 %1312, 255
  %1314 = icmp eq i32 %1313, 11
  br i1 %1314, label %1315, label %1446

1315:                                             ; preds = %1311, %1301, %1291, %1281
  %1316 = load ptr, ptr %31, align 8, !tbaa !5
  %1317 = load ptr, ptr %1316, align 8, !tbaa !9
  %1318 = getelementptr inbounds ptr, ptr %1317, i64 11
  %1319 = load ptr, ptr %1318, align 8
  %1320 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1319(ptr noundef nonnull align 8 dereferenceable(144) %1316)
          to label %1321 unwind label %1368

1321:                                             ; preds = %1315
  %1322 = invoke noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %1320)
          to label %1323 unwind label %1368

1323:                                             ; preds = %1321
  %1324 = icmp ne i32 %1322, 26
  br i1 %1324, label %1325, label %1372

1325:                                             ; preds = %1323
  %1326 = load ptr, ptr %31, align 8, !tbaa !5
  %1327 = load ptr, ptr %1326, align 8, !tbaa !9
  %1328 = getelementptr inbounds ptr, ptr %1327, i64 11
  %1329 = load ptr, ptr %1328, align 8
  %1330 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1329(ptr noundef nonnull align 8 dereferenceable(144) %1326)
          to label %1331 unwind label %1368

1331:                                             ; preds = %1325
  %1332 = invoke noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %1330)
          to label %1333 unwind label %1368

1333:                                             ; preds = %1331
  %1334 = icmp ne i32 %1332, 38
  br i1 %1334, label %1335, label %1372

1335:                                             ; preds = %1333
  %1336 = load ptr, ptr %31, align 8, !tbaa !5
  %1337 = load ptr, ptr %1336, align 8, !tbaa !9
  %1338 = getelementptr inbounds ptr, ptr %1337, i64 11
  %1339 = load ptr, ptr %1338, align 8
  %1340 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1339(ptr noundef nonnull align 8 dereferenceable(144) %1336)
          to label %1341 unwind label %1368

1341:                                             ; preds = %1335
  %1342 = invoke noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %1340)
          to label %1343 unwind label %1368

1343:                                             ; preds = %1341
  %1344 = icmp ne i32 %1342, 33
  br i1 %1344, label %1345, label %1372

1345:                                             ; preds = %1343
  %1346 = load ptr, ptr %31, align 8, !tbaa !5
  %1347 = load ptr, ptr %1346, align 8, !tbaa !9
  %1348 = getelementptr inbounds ptr, ptr %1347, i64 11
  %1349 = load ptr, ptr %1348, align 8
  %1350 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1349(ptr noundef nonnull align 8 dereferenceable(144) %1346)
          to label %1351 unwind label %1368

1351:                                             ; preds = %1345
  %1352 = invoke noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %1350)
          to label %1353 unwind label %1368

1353:                                             ; preds = %1351
  %1354 = icmp ne i32 %1352, 46
  br i1 %1354, label %1355, label %1372

1355:                                             ; preds = %1353
  %1356 = load ptr, ptr %6, align 8, !tbaa !5
  %1357 = load ptr, ptr %7, align 8, !tbaa !5
  %1358 = load ptr, ptr %1357, align 8, !tbaa !9
  %1359 = getelementptr inbounds ptr, ptr %1358, i64 3
  %1360 = load ptr, ptr %1359, align 8
  %1361 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1360(ptr noundef nonnull align 8 dereferenceable(33) %1357)
          to label %1362 unwind label %1368

1362:                                             ; preds = %1355
  %1363 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1361) #7
  %1364 = load ptr, ptr %67, align 8, !tbaa !9
  %1365 = getelementptr inbounds ptr, ptr %1364, i64 42
  %1366 = load ptr, ptr %1365, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1366(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1356, ptr noundef @.str.229, ptr noundef %1363, ptr noundef @.str.2)
          to label %1367 unwind label %1368

1367:                                             ; preds = %1362
  br label %1372

1368:                                             ; preds = %1592, %1585, %1578, %1571, %1568, %1564, %1558, %1550, %1543, %1537, %1530, %1526, %1520, %1516, %1510, %1504, %1497, %1493, %1487, %1483, %1477, %1473, %1467, %1462, %1456, %1446, %1438, %1431, %1427, %1421, %1414, %1408, %1402, %1395, %1391, %1385, %1378, %1372, %1362, %1355, %1351, %1345, %1341, %1335, %1331, %1325, %1321, %1315, %1305, %1295, %1285, %1275, %1269
  %1369 = landingpad { ptr, i32 }
          cleanup
  %1370 = extractvalue { ptr, i32 } %1369, 0
  store ptr %1370, ptr %14, align 8
  %1371 = extractvalue { ptr, i32 } %1369, 1
  store i32 %1371, ptr %15, align 4
  br label %1637

1372:                                             ; preds = %1367, %1353, %1343, %1333, %1323
  %1373 = load ptr, ptr %8, align 8, !tbaa !5
  %1374 = load ptr, ptr %1373, align 8, !tbaa !9
  %1375 = getelementptr inbounds ptr, ptr %1374, i64 30
  %1376 = load ptr, ptr %1375, align 8
  %1377 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1376(ptr noundef nonnull align 8 dereferenceable(176) %1373)
          to label %1378 unwind label %1368

1378:                                             ; preds = %1372
  %1379 = load ptr, ptr %1377, align 8, !tbaa !9
  %1380 = getelementptr inbounds ptr, ptr %1379, i64 7
  %1381 = load ptr, ptr %1380, align 8
  %1382 = invoke noundef i32 %1381(ptr noundef nonnull align 8 dereferenceable(144) %1377)
          to label %1383 unwind label %1368

1383:                                             ; preds = %1378
  %1384 = icmp eq i32 %1382, 10
  br i1 %1384, label %1385, label %1408

1385:                                             ; preds = %1383
  %1386 = load ptr, ptr %31, align 8, !tbaa !5
  %1387 = load ptr, ptr %1386, align 8, !tbaa !9
  %1388 = getelementptr inbounds ptr, ptr %1387, i64 11
  %1389 = load ptr, ptr %1388, align 8
  %1390 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1389(ptr noundef nonnull align 8 dereferenceable(144) %1386)
          to label %1391 unwind label %1368

1391:                                             ; preds = %1385
  %1392 = invoke noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %1390)
          to label %1393 unwind label %1368

1393:                                             ; preds = %1391
  %1394 = icmp ne i32 %1392, 33
  br i1 %1394, label %1395, label %1408

1395:                                             ; preds = %1393
  %1396 = load ptr, ptr %6, align 8, !tbaa !5
  %1397 = load ptr, ptr %7, align 8, !tbaa !5
  %1398 = load ptr, ptr %1397, align 8, !tbaa !9
  %1399 = getelementptr inbounds ptr, ptr %1398, i64 3
  %1400 = load ptr, ptr %1399, align 8
  %1401 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1400(ptr noundef nonnull align 8 dereferenceable(33) %1397)
          to label %1402 unwind label %1368

1402:                                             ; preds = %1395
  %1403 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1401) #7
  %1404 = load ptr, ptr %67, align 8, !tbaa !9
  %1405 = getelementptr inbounds ptr, ptr %1404, i64 42
  %1406 = load ptr, ptr %1405, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1406(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1396, ptr noundef @.str.230, ptr noundef %1403, ptr noundef @.str.2)
          to label %1407 unwind label %1368

1407:                                             ; preds = %1402
  br label %1445

1408:                                             ; preds = %1393, %1383
  %1409 = load ptr, ptr %8, align 8, !tbaa !5
  %1410 = load ptr, ptr %1409, align 8, !tbaa !9
  %1411 = getelementptr inbounds ptr, ptr %1410, i64 30
  %1412 = load ptr, ptr %1411, align 8
  %1413 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1412(ptr noundef nonnull align 8 dereferenceable(176) %1409)
          to label %1414 unwind label %1368

1414:                                             ; preds = %1408
  %1415 = load ptr, ptr %1413, align 8, !tbaa !9
  %1416 = getelementptr inbounds ptr, ptr %1415, i64 7
  %1417 = load ptr, ptr %1416, align 8
  %1418 = invoke noundef i32 %1417(ptr noundef nonnull align 8 dereferenceable(144) %1413)
          to label %1419 unwind label %1368

1419:                                             ; preds = %1414
  %1420 = icmp eq i32 %1418, 11
  br i1 %1420, label %1421, label %1444

1421:                                             ; preds = %1419
  %1422 = load ptr, ptr %31, align 8, !tbaa !5
  %1423 = load ptr, ptr %1422, align 8, !tbaa !9
  %1424 = getelementptr inbounds ptr, ptr %1423, i64 11
  %1425 = load ptr, ptr %1424, align 8
  %1426 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1425(ptr noundef nonnull align 8 dereferenceable(144) %1422)
          to label %1427 unwind label %1368

1427:                                             ; preds = %1421
  %1428 = invoke noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %1426)
          to label %1429 unwind label %1368

1429:                                             ; preds = %1427
  %1430 = icmp ne i32 %1428, 46
  br i1 %1430, label %1431, label %1444

1431:                                             ; preds = %1429
  %1432 = load ptr, ptr %6, align 8, !tbaa !5
  %1433 = load ptr, ptr %7, align 8, !tbaa !5
  %1434 = load ptr, ptr %1433, align 8, !tbaa !9
  %1435 = getelementptr inbounds ptr, ptr %1434, i64 3
  %1436 = load ptr, ptr %1435, align 8
  %1437 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1436(ptr noundef nonnull align 8 dereferenceable(33) %1433)
          to label %1438 unwind label %1368

1438:                                             ; preds = %1431
  %1439 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1437) #7
  %1440 = load ptr, ptr %67, align 8, !tbaa !9
  %1441 = getelementptr inbounds ptr, ptr %1440, i64 42
  %1442 = load ptr, ptr %1441, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1442(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1432, ptr noundef @.str.231, ptr noundef %1439, ptr noundef @.str.2)
          to label %1443 unwind label %1368

1443:                                             ; preds = %1438
  br label %1444

1444:                                             ; preds = %1443, %1429, %1419
  br label %1445

1445:                                             ; preds = %1444, %1407
  br label %1599

1446:                                             ; preds = %1311
  %1447 = load ptr, ptr %31, align 8, !tbaa !5
  %1448 = load ptr, ptr %1447, align 8, !tbaa !9
  %1449 = getelementptr inbounds ptr, ptr %1448, i64 8
  %1450 = load ptr, ptr %1449, align 8
  %1451 = invoke noundef nonnull align 4 dereferenceable(4) ptr %1450(ptr noundef nonnull align 8 dereferenceable(144) %1447)
          to label %1452 unwind label %1368

1452:                                             ; preds = %1446
  %1453 = load i32, ptr %1451, align 4
  %1454 = and i32 %1453, 255
  %1455 = icmp eq i32 %1454, 1
  br i1 %1455, label %1456, label %1585

1456:                                             ; preds = %1452
  %1457 = load ptr, ptr %7, align 8, !tbaa !5
  %1458 = load ptr, ptr %1457, align 8, !tbaa !9
  %1459 = getelementptr inbounds ptr, ptr %1458, i64 3
  %1460 = load ptr, ptr %1459, align 8
  %1461 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1460(ptr noundef nonnull align 8 dereferenceable(33) %1457)
          to label %1462 unwind label %1368

1462:                                             ; preds = %1456
  %1463 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %1461, i64 noundef 0, i64 noundef 19, ptr noundef @.str.232)
          to label %1464 unwind label %1368

1464:                                             ; preds = %1462
  %1465 = icmp eq i32 %1463, 0
  br i1 %1465, label %1466, label %1467

1466:                                             ; preds = %1464
  br label %1558

1467:                                             ; preds = %1464
  %1468 = load ptr, ptr %7, align 8, !tbaa !5
  %1469 = load ptr, ptr %1468, align 8, !tbaa !9
  %1470 = getelementptr inbounds ptr, ptr %1469, i64 3
  %1471 = load ptr, ptr %1470, align 8
  %1472 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1471(ptr noundef nonnull align 8 dereferenceable(33) %1468)
          to label %1473 unwind label %1368

1473:                                             ; preds = %1467
  %1474 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %1472, i64 noundef 0, i64 noundef 14, ptr noundef @.str.233)
          to label %1475 unwind label %1368

1475:                                             ; preds = %1473
  %1476 = icmp eq i32 %1474, 0
  br i1 %1476, label %1497, label %1477

1477:                                             ; preds = %1475
  %1478 = load ptr, ptr %7, align 8, !tbaa !5
  %1479 = load ptr, ptr %1478, align 8, !tbaa !9
  %1480 = getelementptr inbounds ptr, ptr %1479, i64 3
  %1481 = load ptr, ptr %1480, align 8
  %1482 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1481(ptr noundef nonnull align 8 dereferenceable(33) %1478)
          to label %1483 unwind label %1368

1483:                                             ; preds = %1477
  %1484 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %1482, i64 noundef 0, i64 noundef 15, ptr noundef @.str.234)
          to label %1485 unwind label %1368

1485:                                             ; preds = %1483
  %1486 = icmp eq i32 %1484, 0
  br i1 %1486, label %1497, label %1487

1487:                                             ; preds = %1485
  %1488 = load ptr, ptr %7, align 8, !tbaa !5
  %1489 = load ptr, ptr %1488, align 8, !tbaa !9
  %1490 = getelementptr inbounds ptr, ptr %1489, i64 3
  %1491 = load ptr, ptr %1490, align 8
  %1492 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1491(ptr noundef nonnull align 8 dereferenceable(33) %1488)
          to label %1493 unwind label %1368

1493:                                             ; preds = %1487
  %1494 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %1492, i64 noundef 0, i64 noundef 16, ptr noundef @.str.235)
          to label %1495 unwind label %1368

1495:                                             ; preds = %1493
  %1496 = icmp eq i32 %1494, 0
  br i1 %1496, label %1497, label %1510

1497:                                             ; preds = %1495, %1485, %1475
  %1498 = load ptr, ptr %6, align 8, !tbaa !5
  %1499 = load ptr, ptr %7, align 8, !tbaa !5
  %1500 = load ptr, ptr %1499, align 8, !tbaa !9
  %1501 = getelementptr inbounds ptr, ptr %1500, i64 3
  %1502 = load ptr, ptr %1501, align 8
  %1503 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1502(ptr noundef nonnull align 8 dereferenceable(33) %1499)
          to label %1504 unwind label %1368

1504:                                             ; preds = %1497
  %1505 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1503) #7
  %1506 = load ptr, ptr %67, align 8, !tbaa !9
  %1507 = getelementptr inbounds ptr, ptr %1506, i64 5
  %1508 = load ptr, ptr %1507, align 8
  invoke void %1508(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1498, i32 noundef 1, ptr noundef @_ZN7glslangL28E_GL_EXT_shader_atomic_floatE, ptr noundef %1505)
          to label %1509 unwind label %1368

1509:                                             ; preds = %1504
  br label %1557

1510:                                             ; preds = %1495
  %1511 = load ptr, ptr %7, align 8, !tbaa !5
  %1512 = load ptr, ptr %1511, align 8, !tbaa !9
  %1513 = getelementptr inbounds ptr, ptr %1512, i64 3
  %1514 = load ptr, ptr %1513, align 8
  %1515 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1514(ptr noundef nonnull align 8 dereferenceable(33) %1511)
          to label %1516 unwind label %1368

1516:                                             ; preds = %1510
  %1517 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %1515, i64 noundef 0, i64 noundef 14, ptr noundef @.str.236)
          to label %1518 unwind label %1368

1518:                                             ; preds = %1516
  %1519 = icmp eq i32 %1517, 0
  br i1 %1519, label %1530, label %1520

1520:                                             ; preds = %1518
  %1521 = load ptr, ptr %7, align 8, !tbaa !5
  %1522 = load ptr, ptr %1521, align 8, !tbaa !9
  %1523 = getelementptr inbounds ptr, ptr %1522, i64 3
  %1524 = load ptr, ptr %1523, align 8
  %1525 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1524(ptr noundef nonnull align 8 dereferenceable(33) %1521)
          to label %1526 unwind label %1368

1526:                                             ; preds = %1520
  %1527 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %1525, i64 noundef 0, i64 noundef 14, ptr noundef @.str.237)
          to label %1528 unwind label %1368

1528:                                             ; preds = %1526
  %1529 = icmp eq i32 %1527, 0
  br i1 %1529, label %1530, label %1543

1530:                                             ; preds = %1528, %1518
  %1531 = load ptr, ptr %6, align 8, !tbaa !5
  %1532 = load ptr, ptr %7, align 8, !tbaa !5
  %1533 = load ptr, ptr %1532, align 8, !tbaa !9
  %1534 = getelementptr inbounds ptr, ptr %1533, i64 3
  %1535 = load ptr, ptr %1534, align 8
  %1536 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1535(ptr noundef nonnull align 8 dereferenceable(33) %1532)
          to label %1537 unwind label %1368

1537:                                             ; preds = %1530
  %1538 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1536) #7
  %1539 = load ptr, ptr %67, align 8, !tbaa !9
  %1540 = getelementptr inbounds ptr, ptr %1539, i64 5
  %1541 = load ptr, ptr %1540, align 8
  invoke void %1541(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1531, i32 noundef 1, ptr noundef @_ZN7glslangL29E_GL_EXT_shader_atomic_float2E, ptr noundef %1538)
          to label %1542 unwind label %1368

1542:                                             ; preds = %1537
  br label %1556

1543:                                             ; preds = %1528
  %1544 = load ptr, ptr %6, align 8, !tbaa !5
  %1545 = load ptr, ptr %7, align 8, !tbaa !5
  %1546 = load ptr, ptr %1545, align 8, !tbaa !9
  %1547 = getelementptr inbounds ptr, ptr %1546, i64 3
  %1548 = load ptr, ptr %1547, align 8
  %1549 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1548(ptr noundef nonnull align 8 dereferenceable(33) %1545)
          to label %1550 unwind label %1368

1550:                                             ; preds = %1543
  %1551 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1549) #7
  %1552 = load ptr, ptr %67, align 8, !tbaa !9
  %1553 = getelementptr inbounds ptr, ptr %1552, i64 42
  %1554 = load ptr, ptr %1553, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1554(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1544, ptr noundef @.str.238, ptr noundef %1551, ptr noundef @.str.2)
          to label %1555 unwind label %1368

1555:                                             ; preds = %1550
  br label %1556

1556:                                             ; preds = %1555, %1542
  br label %1557

1557:                                             ; preds = %1556, %1509
  br label %1558

1558:                                             ; preds = %1557, %1466
  %1559 = load ptr, ptr %31, align 8, !tbaa !5
  %1560 = load ptr, ptr %1559, align 8, !tbaa !9
  %1561 = getelementptr inbounds ptr, ptr %1560, i64 11
  %1562 = load ptr, ptr %1561, align 8
  %1563 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1562(ptr noundef nonnull align 8 dereferenceable(144) %1559)
          to label %1564 unwind label %1368

1564:                                             ; preds = %1558
  %1565 = invoke noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %1563)
          to label %1566 unwind label %1368

1566:                                             ; preds = %1564
  %1567 = icmp ne i32 %1565, 3
  br i1 %1567, label %1568, label %1584

1568:                                             ; preds = %1566
  %1569 = invoke noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %67)
          to label %1570 unwind label %1368

1570:                                             ; preds = %1568
  br i1 %1569, label %1571, label %1584

1571:                                             ; preds = %1570
  %1572 = load ptr, ptr %6, align 8, !tbaa !5
  %1573 = load ptr, ptr %7, align 8, !tbaa !5
  %1574 = load ptr, ptr %1573, align 8, !tbaa !9
  %1575 = getelementptr inbounds ptr, ptr %1574, i64 3
  %1576 = load ptr, ptr %1575, align 8
  %1577 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1576(ptr noundef nonnull align 8 dereferenceable(33) %1573)
          to label %1578 unwind label %1368

1578:                                             ; preds = %1571
  %1579 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1577) #7
  %1580 = load ptr, ptr %67, align 8, !tbaa !9
  %1581 = getelementptr inbounds ptr, ptr %1580, i64 42
  %1582 = load ptr, ptr %1581, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1582(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1572, ptr noundef @.str.239, ptr noundef %1579, ptr noundef @.str.2)
          to label %1583 unwind label %1368

1583:                                             ; preds = %1578
  br label %1584

1584:                                             ; preds = %1583, %1570, %1566
  br label %1598

1585:                                             ; preds = %1452
  %1586 = load ptr, ptr %6, align 8, !tbaa !5
  %1587 = load ptr, ptr %7, align 8, !tbaa !5
  %1588 = load ptr, ptr %1587, align 8, !tbaa !9
  %1589 = getelementptr inbounds ptr, ptr %1588, i64 3
  %1590 = load ptr, ptr %1589, align 8
  %1591 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1590(ptr noundef nonnull align 8 dereferenceable(33) %1587)
          to label %1592 unwind label %1368

1592:                                             ; preds = %1585
  %1593 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1591) #7
  %1594 = load ptr, ptr %67, align 8, !tbaa !9
  %1595 = getelementptr inbounds ptr, ptr %1594, i64 42
  %1596 = load ptr, ptr %1595, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1596(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1586, ptr noundef @.str.240, ptr noundef %1593, ptr noundef @.str.2)
          to label %1597 unwind label %1368

1597:                                             ; preds = %1592
  br label %1598

1598:                                             ; preds = %1597, %1584
  br label %1599

1599:                                             ; preds = %1598, %1445
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %1600 = load ptr, ptr %31, align 8, !tbaa !5
  %1601 = load ptr, ptr %1600, align 8, !tbaa !9
  %1602 = getelementptr inbounds ptr, ptr %1601, i64 8
  %1603 = load ptr, ptr %1602, align 8
  %1604 = invoke noundef nonnull align 4 dereferenceable(4) ptr %1603(ptr noundef nonnull align 8 dereferenceable(144) %1600)
          to label %1605 unwind label %1632

1605:                                             ; preds = %1599
  %1606 = invoke noundef zeroext i1 @_ZNK7glslang8TSampler13isMultiSampleEv(ptr noundef nonnull align 4 dereferenceable(4) %1604)
          to label %1607 unwind label %1632

1607:                                             ; preds = %1605
  %1608 = zext i1 %1606 to i64
  %1609 = select i1 %1606, i32 5, i32 4
  %1610 = sext i32 %1609 to i64
  store i64 %1610, ptr %32, align 8, !tbaa !122
  %1611 = load ptr, ptr %9, align 8, !tbaa !5
  %1612 = call noundef i64 @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %1611) #7
  %1613 = load i64, ptr %32, align 8, !tbaa !122
  %1614 = icmp ugt i64 %1612, %1613
  br i1 %1614, label %1615, label %1636

1615:                                             ; preds = %1607
  %1616 = load ptr, ptr %6, align 8, !tbaa !5
  %1617 = load ptr, ptr %7, align 8, !tbaa !5
  %1618 = load ptr, ptr %1617, align 8, !tbaa !9
  %1619 = getelementptr inbounds ptr, ptr %1618, i64 3
  %1620 = load ptr, ptr %1619, align 8
  %1621 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1620(ptr noundef nonnull align 8 dereferenceable(33) %1617)
          to label %1622 unwind label %1632

1622:                                             ; preds = %1615
  %1623 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1621) #7
  %1624 = load ptr, ptr %67, align 8, !tbaa !9
  %1625 = getelementptr inbounds ptr, ptr %1624, i64 5
  %1626 = load ptr, ptr %1625, align 8
  invoke void %1626(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1616, i32 noundef 1, ptr noundef @_ZN7glslangL31E_GL_KHR_memory_scope_semanticsE, ptr noundef %1623)
          to label %1627 unwind label %1632

1627:                                             ; preds = %1622
  %1628 = load ptr, ptr %6, align 8, !tbaa !5
  %1629 = load ptr, ptr %7, align 8, !tbaa !5
  %1630 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN7glslang13TParseContext20memorySemanticsCheckERKNS_10TSourceLocERKNS_9TFunctionERKNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912) %67, ptr noundef nonnull align 8 dereferenceable(24) %1628, ptr noundef nonnull align 8 dereferenceable(328) %1629, ptr noundef nonnull align 8 dereferenceable(184) %1630)
          to label %1631 unwind label %1632

1631:                                             ; preds = %1627
  br label %1636

1632:                                             ; preds = %1627, %1622, %1615, %1605, %1599
  %1633 = landingpad { ptr, i32 }
          cleanup
  %1634 = extractvalue { ptr, i32 } %1633, 0
  store ptr %1634, ptr %14, align 8
  %1635 = extractvalue { ptr, i32 } %1633, 1
  store i32 %1635, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %1637

1636:                                             ; preds = %1631, %1607
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %2436

1637:                                             ; preds = %1632, %1368
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %2714

1638:                                             ; preds = %120, %120, %120, %120, %120, %120, %120, %120, %120, %120, %120
  %1639 = load ptr, ptr %9, align 8, !tbaa !5
  %1640 = call noundef i64 @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %1639) #7
  %1641 = icmp ugt i64 %1640, 3
  br i1 %1641, label %1642, label %1774

1642:                                             ; preds = %1638
  %1643 = load ptr, ptr %6, align 8, !tbaa !5
  %1644 = load ptr, ptr %7, align 8, !tbaa !5
  %1645 = load ptr, ptr %1644, align 8, !tbaa !9
  %1646 = getelementptr inbounds ptr, ptr %1645, i64 3
  %1647 = load ptr, ptr %1646, align 8
  %1648 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1647(ptr noundef nonnull align 8 dereferenceable(33) %1644)
          to label %1649 unwind label %121

1649:                                             ; preds = %1642
  %1650 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1648) #7
  %1651 = load ptr, ptr %67, align 8, !tbaa !9
  %1652 = getelementptr inbounds ptr, ptr %1651, i64 5
  %1653 = load ptr, ptr %1652, align 8
  invoke void %1653(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1643, i32 noundef 1, ptr noundef @_ZN7glslangL31E_GL_KHR_memory_scope_semanticsE, ptr noundef %1650)
          to label %1654 unwind label %121

1654:                                             ; preds = %1649
  %1655 = load ptr, ptr %6, align 8, !tbaa !5
  %1656 = load ptr, ptr %7, align 8, !tbaa !5
  %1657 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN7glslang13TParseContext20memorySemanticsCheckERKNS_10TSourceLocERKNS_9TFunctionERKNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912) %67, ptr noundef nonnull align 8 dereferenceable(24) %1655, ptr noundef nonnull align 8 dereferenceable(328) %1656, ptr noundef nonnull align 8 dereferenceable(184) %1657)
          to label %1658 unwind label %121

1658:                                             ; preds = %1654
  %1659 = load ptr, ptr %8, align 8, !tbaa !5
  %1660 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1659)
          to label %1661 unwind label %121

1661:                                             ; preds = %1658
  %1662 = icmp eq i32 %1660, 423
  br i1 %1662, label %1678, label %1663

1663:                                             ; preds = %1661
  %1664 = load ptr, ptr %8, align 8, !tbaa !5
  %1665 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1664)
          to label %1666 unwind label %121

1666:                                             ; preds = %1663
  %1667 = icmp eq i32 %1665, 430
  br i1 %1667, label %1678, label %1668

1668:                                             ; preds = %1666
  %1669 = load ptr, ptr %8, align 8, !tbaa !5
  %1670 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1669)
          to label %1671 unwind label %121

1671:                                             ; preds = %1668
  %1672 = icmp eq i32 %1670, 432
  br i1 %1672, label %1678, label %1673

1673:                                             ; preds = %1671
  %1674 = load ptr, ptr %8, align 8, !tbaa !5
  %1675 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1674)
          to label %1676 unwind label %121

1676:                                             ; preds = %1673
  %1677 = icmp eq i32 %1675, 433
  br i1 %1677, label %1678, label %1717

1678:                                             ; preds = %1676, %1671, %1666, %1661
  %1679 = load ptr, ptr %11, align 8, !tbaa !5
  %1680 = load ptr, ptr %1679, align 8, !tbaa !9
  %1681 = getelementptr inbounds ptr, ptr %1680, i64 30
  %1682 = load ptr, ptr %1681, align 8
  %1683 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1682(ptr noundef nonnull align 8 dereferenceable(176) %1679)
          to label %1684 unwind label %121

1684:                                             ; preds = %1678
  %1685 = load ptr, ptr %1683, align 8, !tbaa !9
  %1686 = getelementptr inbounds ptr, ptr %1685, i64 7
  %1687 = load ptr, ptr %1686, align 8
  %1688 = invoke noundef i32 %1687(ptr noundef nonnull align 8 dereferenceable(144) %1683)
          to label %1689 unwind label %121

1689:                                             ; preds = %1684
  %1690 = icmp eq i32 %1688, 1
  br i1 %1690, label %1704, label %1691

1691:                                             ; preds = %1689
  %1692 = load ptr, ptr %11, align 8, !tbaa !5
  %1693 = load ptr, ptr %1692, align 8, !tbaa !9
  %1694 = getelementptr inbounds ptr, ptr %1693, i64 30
  %1695 = load ptr, ptr %1694, align 8
  %1696 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1695(ptr noundef nonnull align 8 dereferenceable(176) %1692)
          to label %1697 unwind label %121

1697:                                             ; preds = %1691
  %1698 = load ptr, ptr %1696, align 8, !tbaa !9
  %1699 = getelementptr inbounds ptr, ptr %1698, i64 7
  %1700 = load ptr, ptr %1699, align 8
  %1701 = invoke noundef i32 %1700(ptr noundef nonnull align 8 dereferenceable(144) %1696)
          to label %1702 unwind label %121

1702:                                             ; preds = %1697
  %1703 = icmp eq i32 %1701, 2
  br i1 %1703, label %1704, label %1717

1704:                                             ; preds = %1702, %1689
  %1705 = load ptr, ptr %6, align 8, !tbaa !5
  %1706 = load ptr, ptr %7, align 8, !tbaa !5
  %1707 = load ptr, ptr %1706, align 8, !tbaa !9
  %1708 = getelementptr inbounds ptr, ptr %1707, i64 3
  %1709 = load ptr, ptr %1708, align 8
  %1710 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1709(ptr noundef nonnull align 8 dereferenceable(33) %1706)
          to label %1711 unwind label %121

1711:                                             ; preds = %1704
  %1712 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1710) #7
  %1713 = load ptr, ptr %67, align 8, !tbaa !9
  %1714 = getelementptr inbounds ptr, ptr %1713, i64 5
  %1715 = load ptr, ptr %1714, align 8
  invoke void %1715(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1705, i32 noundef 1, ptr noundef @_ZN7glslangL28E_GL_EXT_shader_atomic_floatE, ptr noundef %1712)
          to label %1716 unwind label %121

1716:                                             ; preds = %1711
  br label %1773

1717:                                             ; preds = %1702, %1676
  %1718 = load ptr, ptr %8, align 8, !tbaa !5
  %1719 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1718)
          to label %1720 unwind label %121

1720:                                             ; preds = %1717
  %1721 = icmp eq i32 %1719, 423
  br i1 %1721, label %1747, label %1722

1722:                                             ; preds = %1720
  %1723 = load ptr, ptr %8, align 8, !tbaa !5
  %1724 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1723)
          to label %1725 unwind label %121

1725:                                             ; preds = %1722
  %1726 = icmp eq i32 %1724, 430
  br i1 %1726, label %1747, label %1727

1727:                                             ; preds = %1725
  %1728 = load ptr, ptr %8, align 8, !tbaa !5
  %1729 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1728)
          to label %1730 unwind label %121

1730:                                             ; preds = %1727
  %1731 = icmp eq i32 %1729, 432
  br i1 %1731, label %1747, label %1732

1732:                                             ; preds = %1730
  %1733 = load ptr, ptr %8, align 8, !tbaa !5
  %1734 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1733)
          to label %1735 unwind label %121

1735:                                             ; preds = %1732
  %1736 = icmp eq i32 %1734, 433
  br i1 %1736, label %1747, label %1737

1737:                                             ; preds = %1735
  %1738 = load ptr, ptr %8, align 8, !tbaa !5
  %1739 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1738)
          to label %1740 unwind label %121

1740:                                             ; preds = %1737
  %1741 = icmp eq i32 %1739, 425
  br i1 %1741, label %1747, label %1742

1742:                                             ; preds = %1740
  %1743 = load ptr, ptr %8, align 8, !tbaa !5
  %1744 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1743)
          to label %1745 unwind label %121

1745:                                             ; preds = %1742
  %1746 = icmp eq i32 %1744, 426
  br i1 %1746, label %1747, label %1772

1747:                                             ; preds = %1745, %1740, %1735, %1730, %1725, %1720
  %1748 = load ptr, ptr %11, align 8, !tbaa !5
  %1749 = load ptr, ptr %1748, align 8, !tbaa !9
  %1750 = getelementptr inbounds ptr, ptr %1749, i64 30
  %1751 = load ptr, ptr %1750, align 8
  %1752 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1751(ptr noundef nonnull align 8 dereferenceable(176) %1748)
          to label %1753 unwind label %121

1753:                                             ; preds = %1747
  %1754 = load ptr, ptr %1752, align 8, !tbaa !9
  %1755 = getelementptr inbounds ptr, ptr %1754, i64 36
  %1756 = load ptr, ptr %1755, align 8
  %1757 = invoke noundef zeroext i1 %1756(ptr noundef nonnull align 8 dereferenceable(144) %1752)
          to label %1758 unwind label %121

1758:                                             ; preds = %1753
  br i1 %1757, label %1759, label %1772

1759:                                             ; preds = %1758
  %1760 = load ptr, ptr %6, align 8, !tbaa !5
  %1761 = load ptr, ptr %7, align 8, !tbaa !5
  %1762 = load ptr, ptr %1761, align 8, !tbaa !9
  %1763 = getelementptr inbounds ptr, ptr %1762, i64 3
  %1764 = load ptr, ptr %1763, align 8
  %1765 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1764(ptr noundef nonnull align 8 dereferenceable(33) %1761)
          to label %1766 unwind label %121

1766:                                             ; preds = %1759
  %1767 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1765) #7
  %1768 = load ptr, ptr %67, align 8, !tbaa !9
  %1769 = getelementptr inbounds ptr, ptr %1768, i64 5
  %1770 = load ptr, ptr %1769, align 8
  invoke void %1770(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1760, i32 noundef 1, ptr noundef @_ZN7glslangL29E_GL_EXT_shader_atomic_float2E, ptr noundef %1767)
          to label %1771 unwind label %121

1771:                                             ; preds = %1766
  br label %1772

1772:                                             ; preds = %1771, %1758, %1745
  br label %1773

1773:                                             ; preds = %1772, %1716
  br label %1925

1774:                                             ; preds = %1638
  %1775 = load ptr, ptr %11, align 8, !tbaa !5
  %1776 = load ptr, ptr %1775, align 8, !tbaa !9
  %1777 = getelementptr inbounds ptr, ptr %1776, i64 30
  %1778 = load ptr, ptr %1777, align 8
  %1779 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1778(ptr noundef nonnull align 8 dereferenceable(176) %1775)
          to label %1780 unwind label %121

1780:                                             ; preds = %1774
  %1781 = load ptr, ptr %1779, align 8, !tbaa !9
  %1782 = getelementptr inbounds ptr, ptr %1781, i64 7
  %1783 = load ptr, ptr %1782, align 8
  %1784 = invoke noundef i32 %1783(ptr noundef nonnull align 8 dereferenceable(144) %1779)
          to label %1785 unwind label %121

1785:                                             ; preds = %1780
  %1786 = icmp eq i32 %1784, 10
  br i1 %1786, label %1800, label %1787

1787:                                             ; preds = %1785
  %1788 = load ptr, ptr %11, align 8, !tbaa !5
  %1789 = load ptr, ptr %1788, align 8, !tbaa !9
  %1790 = getelementptr inbounds ptr, ptr %1789, i64 30
  %1791 = load ptr, ptr %1790, align 8
  %1792 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1791(ptr noundef nonnull align 8 dereferenceable(176) %1788)
          to label %1793 unwind label %121

1793:                                             ; preds = %1787
  %1794 = load ptr, ptr %1792, align 8, !tbaa !9
  %1795 = getelementptr inbounds ptr, ptr %1794, i64 7
  %1796 = load ptr, ptr %1795, align 8
  %1797 = invoke noundef i32 %1796(ptr noundef nonnull align 8 dereferenceable(144) %1792)
          to label %1798 unwind label %121

1798:                                             ; preds = %1793
  %1799 = icmp eq i32 %1797, 11
  br i1 %1799, label %1800, label %1818

1800:                                             ; preds = %1798, %1785
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %33, ptr align 16 @__const._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE.extensions, i64 16, i1 false)
  %1801 = load ptr, ptr %6, align 8, !tbaa !5
  %1802 = getelementptr inbounds [2 x ptr], ptr %33, i64 0, i64 0
  %1803 = load ptr, ptr %7, align 8, !tbaa !5
  %1804 = load ptr, ptr %1803, align 8, !tbaa !9
  %1805 = getelementptr inbounds ptr, ptr %1804, i64 3
  %1806 = load ptr, ptr %1805, align 8
  %1807 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1806(ptr noundef nonnull align 8 dereferenceable(33) %1803)
          to label %1808 unwind label %1814

1808:                                             ; preds = %1800
  %1809 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1807) #7
  %1810 = load ptr, ptr %67, align 8, !tbaa !9
  %1811 = getelementptr inbounds ptr, ptr %1810, i64 5
  %1812 = load ptr, ptr %1811, align 8
  invoke void %1812(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1801, i32 noundef 2, ptr noundef %1802, ptr noundef %1809)
          to label %1813 unwind label %1814

1813:                                             ; preds = %1808
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  br label %1924

1814:                                             ; preds = %1808, %1800
  %1815 = landingpad { ptr, i32 }
          cleanup
  %1816 = extractvalue { ptr, i32 } %1815, 0
  store ptr %1816, ptr %14, align 8
  %1817 = extractvalue { ptr, i32 } %1815, 1
  store i32 %1817, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #7
  br label %2714

1818:                                             ; preds = %1798
  %1819 = load ptr, ptr %8, align 8, !tbaa !5
  %1820 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1819)
          to label %1821 unwind label %121

1821:                                             ; preds = %1818
  %1822 = icmp eq i32 %1820, 423
  br i1 %1822, label %1828, label %1823

1823:                                             ; preds = %1821
  %1824 = load ptr, ptr %8, align 8, !tbaa !5
  %1825 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1824)
          to label %1826 unwind label %121

1826:                                             ; preds = %1823
  %1827 = icmp eq i32 %1825, 430
  br i1 %1827, label %1828, label %1867

1828:                                             ; preds = %1826, %1821
  %1829 = load ptr, ptr %11, align 8, !tbaa !5
  %1830 = load ptr, ptr %1829, align 8, !tbaa !9
  %1831 = getelementptr inbounds ptr, ptr %1830, i64 30
  %1832 = load ptr, ptr %1831, align 8
  %1833 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1832(ptr noundef nonnull align 8 dereferenceable(176) %1829)
          to label %1834 unwind label %121

1834:                                             ; preds = %1828
  %1835 = load ptr, ptr %1833, align 8, !tbaa !9
  %1836 = getelementptr inbounds ptr, ptr %1835, i64 7
  %1837 = load ptr, ptr %1836, align 8
  %1838 = invoke noundef i32 %1837(ptr noundef nonnull align 8 dereferenceable(144) %1833)
          to label %1839 unwind label %121

1839:                                             ; preds = %1834
  %1840 = icmp eq i32 %1838, 1
  br i1 %1840, label %1854, label %1841

1841:                                             ; preds = %1839
  %1842 = load ptr, ptr %11, align 8, !tbaa !5
  %1843 = load ptr, ptr %1842, align 8, !tbaa !9
  %1844 = getelementptr inbounds ptr, ptr %1843, i64 30
  %1845 = load ptr, ptr %1844, align 8
  %1846 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1845(ptr noundef nonnull align 8 dereferenceable(176) %1842)
          to label %1847 unwind label %121

1847:                                             ; preds = %1841
  %1848 = load ptr, ptr %1846, align 8, !tbaa !9
  %1849 = getelementptr inbounds ptr, ptr %1848, i64 7
  %1850 = load ptr, ptr %1849, align 8
  %1851 = invoke noundef i32 %1850(ptr noundef nonnull align 8 dereferenceable(144) %1846)
          to label %1852 unwind label %121

1852:                                             ; preds = %1847
  %1853 = icmp eq i32 %1851, 2
  br i1 %1853, label %1854, label %1867

1854:                                             ; preds = %1852, %1839
  %1855 = load ptr, ptr %6, align 8, !tbaa !5
  %1856 = load ptr, ptr %7, align 8, !tbaa !5
  %1857 = load ptr, ptr %1856, align 8, !tbaa !9
  %1858 = getelementptr inbounds ptr, ptr %1857, i64 3
  %1859 = load ptr, ptr %1858, align 8
  %1860 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1859(ptr noundef nonnull align 8 dereferenceable(33) %1856)
          to label %1861 unwind label %121

1861:                                             ; preds = %1854
  %1862 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1860) #7
  %1863 = load ptr, ptr %67, align 8, !tbaa !9
  %1864 = getelementptr inbounds ptr, ptr %1863, i64 5
  %1865 = load ptr, ptr %1864, align 8
  invoke void %1865(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1855, i32 noundef 1, ptr noundef @_ZN7glslangL28E_GL_EXT_shader_atomic_floatE, ptr noundef %1862)
          to label %1866 unwind label %121

1866:                                             ; preds = %1861
  br label %1923

1867:                                             ; preds = %1852, %1826
  %1868 = load ptr, ptr %8, align 8, !tbaa !5
  %1869 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1868)
          to label %1870 unwind label %121

1870:                                             ; preds = %1867
  %1871 = icmp eq i32 %1869, 423
  br i1 %1871, label %1897, label %1872

1872:                                             ; preds = %1870
  %1873 = load ptr, ptr %8, align 8, !tbaa !5
  %1874 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1873)
          to label %1875 unwind label %121

1875:                                             ; preds = %1872
  %1876 = icmp eq i32 %1874, 430
  br i1 %1876, label %1897, label %1877

1877:                                             ; preds = %1875
  %1878 = load ptr, ptr %8, align 8, !tbaa !5
  %1879 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1878)
          to label %1880 unwind label %121

1880:                                             ; preds = %1877
  %1881 = icmp eq i32 %1879, 432
  br i1 %1881, label %1897, label %1882

1882:                                             ; preds = %1880
  %1883 = load ptr, ptr %8, align 8, !tbaa !5
  %1884 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1883)
          to label %1885 unwind label %121

1885:                                             ; preds = %1882
  %1886 = icmp eq i32 %1884, 433
  br i1 %1886, label %1897, label %1887

1887:                                             ; preds = %1885
  %1888 = load ptr, ptr %8, align 8, !tbaa !5
  %1889 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1888)
          to label %1890 unwind label %121

1890:                                             ; preds = %1887
  %1891 = icmp eq i32 %1889, 425
  br i1 %1891, label %1897, label %1892

1892:                                             ; preds = %1890
  %1893 = load ptr, ptr %8, align 8, !tbaa !5
  %1894 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %1893)
          to label %1895 unwind label %121

1895:                                             ; preds = %1892
  %1896 = icmp eq i32 %1894, 426
  br i1 %1896, label %1897, label %1922

1897:                                             ; preds = %1895, %1890, %1885, %1880, %1875, %1870
  %1898 = load ptr, ptr %11, align 8, !tbaa !5
  %1899 = load ptr, ptr %1898, align 8, !tbaa !9
  %1900 = getelementptr inbounds ptr, ptr %1899, i64 30
  %1901 = load ptr, ptr %1900, align 8
  %1902 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1901(ptr noundef nonnull align 8 dereferenceable(176) %1898)
          to label %1903 unwind label %121

1903:                                             ; preds = %1897
  %1904 = load ptr, ptr %1902, align 8, !tbaa !9
  %1905 = getelementptr inbounds ptr, ptr %1904, i64 36
  %1906 = load ptr, ptr %1905, align 8
  %1907 = invoke noundef zeroext i1 %1906(ptr noundef nonnull align 8 dereferenceable(144) %1902)
          to label %1908 unwind label %121

1908:                                             ; preds = %1903
  br i1 %1907, label %1909, label %1922

1909:                                             ; preds = %1908
  %1910 = load ptr, ptr %6, align 8, !tbaa !5
  %1911 = load ptr, ptr %7, align 8, !tbaa !5
  %1912 = load ptr, ptr %1911, align 8, !tbaa !9
  %1913 = getelementptr inbounds ptr, ptr %1912, i64 3
  %1914 = load ptr, ptr %1913, align 8
  %1915 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1914(ptr noundef nonnull align 8 dereferenceable(33) %1911)
          to label %1916 unwind label %121

1916:                                             ; preds = %1909
  %1917 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1915) #7
  %1918 = load ptr, ptr %67, align 8, !tbaa !9
  %1919 = getelementptr inbounds ptr, ptr %1918, i64 5
  %1920 = load ptr, ptr %1919, align 8
  invoke void %1920(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %1910, i32 noundef 1, ptr noundef @_ZN7glslangL29E_GL_EXT_shader_atomic_float2E, ptr noundef %1917)
          to label %1921 unwind label %121

1921:                                             ; preds = %1916
  br label %1922

1922:                                             ; preds = %1921, %1908, %1895
  br label %1923

1923:                                             ; preds = %1922, %1866
  br label %1924

1924:                                             ; preds = %1923, %1813
  br label %1925

1925:                                             ; preds = %1924, %1773
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %1926 = load ptr, ptr %11, align 8, !tbaa !5
  %1927 = invoke noundef ptr @_ZN7glslang13TIntermediate14findLValueBaseEPKNS_12TIntermTypedEbb(ptr noundef %1926, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %1928 unwind label %2001

1928:                                             ; preds = %1925
  store ptr %1927, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %1929 = load ptr, ptr %34, align 8, !tbaa !5
  %1930 = load ptr, ptr %1929, align 8, !tbaa !9
  %1931 = getelementptr inbounds ptr, ptr %1930, i64 30
  %1932 = load ptr, ptr %1931, align 8
  %1933 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1932(ptr noundef nonnull align 8 dereferenceable(176) %1929)
          to label %1934 unwind label %2005

1934:                                             ; preds = %1928
  %1935 = invoke noundef zeroext i1 @_ZNK7glslang5TType11isReferenceEv(ptr noundef nonnull align 8 dereferenceable(144) %1933)
          to label %1936 unwind label %2005

1936:                                             ; preds = %1934
  br i1 %1935, label %1937, label %1949

1937:                                             ; preds = %1936
  %1938 = load ptr, ptr %34, align 8, !tbaa !5
  %1939 = load ptr, ptr %1938, align 8, !tbaa !9
  %1940 = getelementptr inbounds ptr, ptr %1939, i64 30
  %1941 = load ptr, ptr %1940, align 8
  %1942 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1941(ptr noundef nonnull align 8 dereferenceable(176) %1938)
          to label %1943 unwind label %2005

1943:                                             ; preds = %1937
  %1944 = load ptr, ptr %1942, align 8, !tbaa !9
  %1945 = getelementptr inbounds ptr, ptr %1944, i64 21
  %1946 = load ptr, ptr %1945, align 8
  %1947 = invoke noundef ptr %1946(ptr noundef nonnull align 8 dereferenceable(144) %1942)
          to label %1948 unwind label %2005

1948:                                             ; preds = %1943
  br label %1950

1949:                                             ; preds = %1936
  br label %1950

1950:                                             ; preds = %1949, %1948
  %1951 = phi ptr [ %1947, %1948 ], [ null, %1949 ]
  store ptr %1951, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %1952 = load ptr, ptr %35, align 8, !tbaa !5
  %1953 = icmp ne ptr %1952, null
  br i1 %1953, label %1954, label %1961

1954:                                             ; preds = %1950
  %1955 = load ptr, ptr %35, align 8, !tbaa !5
  %1956 = load ptr, ptr %1955, align 8, !tbaa !9
  %1957 = getelementptr inbounds ptr, ptr %1956, i64 11
  %1958 = load ptr, ptr %1957, align 8
  %1959 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1958(ptr noundef nonnull align 8 dereferenceable(144) %1955)
          to label %1960 unwind label %2009

1960:                                             ; preds = %1954
  br label %1973

1961:                                             ; preds = %1950
  %1962 = load ptr, ptr %34, align 8, !tbaa !5
  %1963 = load ptr, ptr %1962, align 8, !tbaa !9
  %1964 = getelementptr inbounds ptr, ptr %1963, i64 30
  %1965 = load ptr, ptr %1964, align 8
  %1966 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1965(ptr noundef nonnull align 8 dereferenceable(176) %1962)
          to label %1967 unwind label %2009

1967:                                             ; preds = %1961
  %1968 = load ptr, ptr %1966, align 8, !tbaa !9
  %1969 = getelementptr inbounds ptr, ptr %1968, i64 11
  %1970 = load ptr, ptr %1969, align 8
  %1971 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1970(ptr noundef nonnull align 8 dereferenceable(144) %1966)
          to label %1972 unwind label %2009

1972:                                             ; preds = %1967
  br label %1973

1973:                                             ; preds = %1972, %1960
  %1974 = phi ptr [ %1959, %1960 ], [ %1971, %1972 ]
  store ptr %1974, ptr %36, align 8, !tbaa !5
  %1975 = load ptr, ptr %36, align 8, !tbaa !5
  %1976 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1975, i32 0, i32 1
  %1977 = load i64, ptr %1976, align 8
  %1978 = and i64 %1977, 63
  %1979 = trunc i64 %1978 to i32
  %1980 = icmp ne i32 %1979, 7
  br i1 %1980, label %1981, label %2013

1981:                                             ; preds = %1973
  %1982 = load ptr, ptr %36, align 8, !tbaa !5
  %1983 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1982, i32 0, i32 1
  %1984 = load i64, ptr %1983, align 8
  %1985 = and i64 %1984, 63
  %1986 = trunc i64 %1985 to i32
  %1987 = icmp ne i32 %1986, 6
  br i1 %1987, label %1988, label %2013

1988:                                             ; preds = %1981
  %1989 = load ptr, ptr %6, align 8, !tbaa !5
  %1990 = load ptr, ptr %7, align 8, !tbaa !5
  %1991 = load ptr, ptr %1990, align 8, !tbaa !9
  %1992 = getelementptr inbounds ptr, ptr %1991, i64 3
  %1993 = load ptr, ptr %1992, align 8
  %1994 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1993(ptr noundef nonnull align 8 dereferenceable(33) %1990)
          to label %1995 unwind label %2009

1995:                                             ; preds = %1988
  %1996 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1994) #7
  %1997 = load ptr, ptr %67, align 8, !tbaa !9
  %1998 = getelementptr inbounds ptr, ptr %1997, i64 42
  %1999 = load ptr, ptr %1998, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1999(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %1989, ptr noundef @.str.243, ptr noundef %1996, ptr noundef @.str.2)
          to label %2000 unwind label %2009

2000:                                             ; preds = %1995
  br label %2013

2001:                                             ; preds = %1925
  %2002 = landingpad { ptr, i32 }
          cleanup
  %2003 = extractvalue { ptr, i32 } %2002, 0
  store ptr %2003, ptr %14, align 8
  %2004 = extractvalue { ptr, i32 } %2002, 1
  store i32 %2004, ptr %15, align 4
  br label %2015

2005:                                             ; preds = %1943, %1937, %1934, %1928
  %2006 = landingpad { ptr, i32 }
          cleanup
  %2007 = extractvalue { ptr, i32 } %2006, 0
  store ptr %2007, ptr %14, align 8
  %2008 = extractvalue { ptr, i32 } %2006, 1
  store i32 %2008, ptr %15, align 4
  br label %2014

2009:                                             ; preds = %1995, %1988, %1967, %1961, %1954
  %2010 = landingpad { ptr, i32 }
          cleanup
  %2011 = extractvalue { ptr, i32 } %2010, 0
  store ptr %2011, ptr %14, align 8
  %2012 = extractvalue { ptr, i32 } %2010, 1
  store i32 %2012, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %2014

2013:                                             ; preds = %2000, %1981, %1973
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %2436

2014:                                             ; preds = %2009, %2005
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  br label %2015

2015:                                             ; preds = %2014, %2001
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %2714

2016:                                             ; preds = %120, %120, %120, %120
  %2017 = load ptr, ptr %11, align 8, !tbaa !5
  %2018 = load ptr, ptr %2017, align 8, !tbaa !9
  %2019 = getelementptr inbounds ptr, ptr %2018, i64 30
  %2020 = load ptr, ptr %2019, align 8
  %2021 = invoke noundef nonnull align 8 dereferenceable(144) ptr %2020(ptr noundef nonnull align 8 dereferenceable(176) %2017)
          to label %2022 unwind label %121

2022:                                             ; preds = %2016
  %2023 = load ptr, ptr %2021, align 8, !tbaa !9
  %2024 = getelementptr inbounds ptr, ptr %2023, i64 11
  %2025 = load ptr, ptr %2024, align 8
  %2026 = invoke noundef nonnull align 8 dereferenceable(72) ptr %2025(ptr noundef nonnull align 8 dereferenceable(144) %2021)
          to label %2027 unwind label %121

2027:                                             ; preds = %2022
  %2028 = getelementptr inbounds %"class.glslang::TQualifier", ptr %2026, i32 0, i32 1
  %2029 = load i64, ptr %2028, align 8
  %2030 = and i64 %2029, 63
  %2031 = trunc i64 %2030 to i32
  %2032 = icmp ne i32 %2031, 3
  br i1 %2032, label %2033, label %2090

2033:                                             ; preds = %2027
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #7
  %2034 = invoke noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %67)
          to label %2035 unwind label %2080

2035:                                             ; preds = %2033
  br i1 %2034, label %2040, label %2036

2036:                                             ; preds = %2035
  %2037 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 4
  %2038 = load i32, ptr %2037, align 8, !tbaa !120
  %2039 = icmp sge i32 %2038, 440
  br label %2040

2040:                                             ; preds = %2036, %2035
  %2041 = phi i1 [ false, %2035 ], [ %2039, %2036 ]
  %2042 = zext i1 %2041 to i8
  store i8 %2042, ptr %37, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %2043 = load ptr, ptr %11, align 8, !tbaa !5
  %2044 = load i8, ptr %37, align 1, !tbaa !15, !range !17, !noundef !18
  %2045 = trunc i8 %2044 to i1
  %2046 = invoke noundef ptr @_ZN7glslang13TIntermediate14findLValueBaseEPKNS_12TIntermTypedEbb(ptr noundef %2043, i1 noundef zeroext %2045, i1 noundef zeroext false)
          to label %2047 unwind label %2084

2047:                                             ; preds = %2040
  store ptr %2046, ptr %38, align 8, !tbaa !5
  %2048 = load ptr, ptr %38, align 8, !tbaa !5
  %2049 = icmp eq ptr %2048, null
  br i1 %2049, label %2067, label %2050

2050:                                             ; preds = %2047
  %2051 = load ptr, ptr %38, align 8, !tbaa !5
  %2052 = load ptr, ptr %2051, align 8, !tbaa !9
  %2053 = getelementptr inbounds ptr, ptr %2052, i64 30
  %2054 = load ptr, ptr %2053, align 8
  %2055 = invoke noundef nonnull align 8 dereferenceable(144) ptr %2054(ptr noundef nonnull align 8 dereferenceable(176) %2051)
          to label %2056 unwind label %2084

2056:                                             ; preds = %2050
  %2057 = load ptr, ptr %2055, align 8, !tbaa !9
  %2058 = getelementptr inbounds ptr, ptr %2057, i64 11
  %2059 = load ptr, ptr %2058, align 8
  %2060 = invoke noundef nonnull align 8 dereferenceable(72) ptr %2059(ptr noundef nonnull align 8 dereferenceable(144) %2055)
          to label %2061 unwind label %2084

2061:                                             ; preds = %2056
  %2062 = getelementptr inbounds %"class.glslang::TQualifier", ptr %2060, i32 0, i32 1
  %2063 = load i64, ptr %2062, align 8
  %2064 = and i64 %2063, 63
  %2065 = trunc i64 %2064 to i32
  %2066 = icmp ne i32 %2065, 3
  br i1 %2066, label %2067, label %2088

2067:                                             ; preds = %2061, %2047
  %2068 = load ptr, ptr %6, align 8, !tbaa !5
  %2069 = load ptr, ptr %7, align 8, !tbaa !5
  %2070 = load ptr, ptr %2069, align 8, !tbaa !9
  %2071 = getelementptr inbounds ptr, ptr %2070, i64 3
  %2072 = load ptr, ptr %2071, align 8
  %2073 = invoke noundef nonnull align 8 dereferenceable(40) ptr %2072(ptr noundef nonnull align 8 dereferenceable(33) %2069)
          to label %2074 unwind label %2084

2074:                                             ; preds = %2067
  %2075 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %2073) #7
  %2076 = load ptr, ptr %67, align 8, !tbaa !9
  %2077 = getelementptr inbounds ptr, ptr %2076, i64 42
  %2078 = load ptr, ptr %2077, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %2078(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %2068, ptr noundef @.str.244, ptr noundef %2075, ptr noundef @.str.2)
          to label %2079 unwind label %2084

2079:                                             ; preds = %2074
  br label %2088

2080:                                             ; preds = %2033
  %2081 = landingpad { ptr, i32 }
          cleanup
  %2082 = extractvalue { ptr, i32 } %2081, 0
  store ptr %2082, ptr %14, align 8
  %2083 = extractvalue { ptr, i32 } %2081, 1
  store i32 %2083, ptr %15, align 4
  br label %2089

2084:                                             ; preds = %2074, %2067, %2056, %2050, %2040
  %2085 = landingpad { ptr, i32 }
          cleanup
  %2086 = extractvalue { ptr, i32 } %2085, 0
  store ptr %2086, ptr %14, align 8
  %2087 = extractvalue { ptr, i32 } %2085, 1
  store i32 %2087, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  br label %2089

2088:                                             ; preds = %2079, %2061
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #7
  br label %2090

2089:                                             ; preds = %2084, %2080
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #7
  br label %2714

2090:                                             ; preds = %2088, %2027
  %2091 = load ptr, ptr %8, align 8, !tbaa !5
  %2092 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %2091)
          to label %2093 unwind label %121

2093:                                             ; preds = %2090
  %2094 = icmp eq i32 %2092, 294
  br i1 %2094, label %2095, label %2161

2095:                                             ; preds = %2093
  %2096 = load ptr, ptr %11, align 8, !tbaa !5
  %2097 = load ptr, ptr %2096, align 8, !tbaa !9
  %2098 = getelementptr inbounds ptr, ptr %2097, i64 30
  %2099 = load ptr, ptr %2098, align 8
  %2100 = invoke noundef nonnull align 8 dereferenceable(144) ptr %2099(ptr noundef nonnull align 8 dereferenceable(176) %2096)
          to label %2101 unwind label %121

2101:                                             ; preds = %2095
  %2102 = load ptr, ptr %2100, align 8, !tbaa !9
  %2103 = getelementptr inbounds ptr, ptr %2102, i64 11
  %2104 = load ptr, ptr %2103, align 8
  %2105 = invoke noundef nonnull align 8 dereferenceable(72) ptr %2104(ptr noundef nonnull align 8 dereferenceable(144) %2100)
          to label %2106 unwind label %121

2106:                                             ; preds = %2101
  %2107 = invoke noundef zeroext i1 @_ZNK7glslang10TQualifier23isExplicitInterpolationEv(ptr noundef nonnull align 8 dereferenceable(72) %2105)
          to label %2108 unwind label %121

2108:                                             ; preds = %2106
  br i1 %2107, label %2115, label %2109

2109:                                             ; preds = %2108
  %2110 = load ptr, ptr %6, align 8, !tbaa !5
  %2111 = load ptr, ptr %67, align 8, !tbaa !9
  %2112 = getelementptr inbounds ptr, ptr %2111, i64 42
  %2113 = load ptr, ptr %2112, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %2113(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %2110, ptr noundef @.str.245, ptr noundef @.str.246, ptr noundef @.str.2)
          to label %2114 unwind label %121

2114:                                             ; preds = %2109
  br label %2160

2115:                                             ; preds = %2108
  %2116 = load ptr, ptr %9, align 8, !tbaa !5
  %2117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2116, i64 noundef 1) #7
  %2118 = load ptr, ptr %2117, align 8, !tbaa !5
  %2119 = load ptr, ptr %2118, align 8, !tbaa !9
  %2120 = getelementptr inbounds ptr, ptr %2119, i64 5
  %2121 = load ptr, ptr %2120, align 8
  %2122 = invoke noundef ptr %2121(ptr noundef nonnull align 8 dereferenceable(32) %2118)
          to label %2123 unwind label %121

2123:                                             ; preds = %2115
  %2124 = icmp ne ptr %2122, null
  br i1 %2124, label %2131, label %2125

2125:                                             ; preds = %2123
  %2126 = load ptr, ptr %6, align 8, !tbaa !5
  %2127 = load ptr, ptr %67, align 8, !tbaa !9
  %2128 = getelementptr inbounds ptr, ptr %2127, i64 42
  %2129 = load ptr, ptr %2128, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %2129(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %2126, ptr noundef @.str.205, ptr noundef @.str.247, ptr noundef @.str.2)
          to label %2130 unwind label %121

2130:                                             ; preds = %2125
  br label %2159

2131:                                             ; preds = %2123
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %2132 = load ptr, ptr %9, align 8, !tbaa !5
  %2133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2132, i64 noundef 1) #7
  %2134 = load ptr, ptr %2133, align 8, !tbaa !5
  %2135 = load ptr, ptr %2134, align 8, !tbaa !9
  %2136 = getelementptr inbounds ptr, ptr %2135, i64 5
  %2137 = load ptr, ptr %2136, align 8
  %2138 = invoke noundef ptr %2137(ptr noundef nonnull align 8 dereferenceable(32) %2134)
          to label %2139 unwind label %2154

2139:                                             ; preds = %2131
  %2140 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %2138)
          to label %2141 unwind label %2154

2141:                                             ; preds = %2139
  %2142 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2140, i64 noundef 0)
          to label %2143 unwind label %2154

2143:                                             ; preds = %2141
  %2144 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2142)
          to label %2145 unwind label %2154

2145:                                             ; preds = %2143
  store i32 %2144, ptr %39, align 4, !tbaa !11
  %2146 = load i32, ptr %39, align 4, !tbaa !11
  %2147 = icmp ugt i32 %2146, 2
  br i1 %2147, label %2148, label %2158

2148:                                             ; preds = %2145
  %2149 = load ptr, ptr %6, align 8, !tbaa !5
  %2150 = load ptr, ptr %67, align 8, !tbaa !9
  %2151 = getelementptr inbounds ptr, ptr %2150, i64 42
  %2152 = load ptr, ptr %2151, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %2152(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %2149, ptr noundef @.str.248, ptr noundef @.str.247, ptr noundef @.str.2)
          to label %2153 unwind label %2154

2153:                                             ; preds = %2148
  br label %2158

2154:                                             ; preds = %2148, %2143, %2141, %2139, %2131
  %2155 = landingpad { ptr, i32 }
          cleanup
  %2156 = extractvalue { ptr, i32 } %2155, 0
  store ptr %2156, ptr %14, align 8
  %2157 = extractvalue { ptr, i32 } %2155, 1
  store i32 %2157, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %2714

2158:                                             ; preds = %2153, %2145
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %2159

2159:                                             ; preds = %2158, %2130
  br label %2160

2160:                                             ; preds = %2159, %2114
  br label %2161

2161:                                             ; preds = %2160, %2093
  br label %2436

2162:                                             ; preds = %120, %120
  %2163 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 4
  %2164 = load i32, ptr %2163, align 8, !tbaa !120
  %2165 = icmp eq i32 %2164, 150
  br i1 %2165, label %2166, label %2172

2166:                                             ; preds = %2162
  %2167 = load ptr, ptr %6, align 8, !tbaa !5
  %2168 = load ptr, ptr %67, align 8, !tbaa !9
  %2169 = getelementptr inbounds ptr, ptr %2168, i64 5
  %2170 = load ptr, ptr %2169, align 8
  invoke void %2170(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %2167, i32 noundef 1, ptr noundef @_ZN7glslangL20E_GL_ARB_gpu_shader5E, ptr noundef @.str.249)
          to label %2171 unwind label %121

2171:                                             ; preds = %2166
  br label %2172

2172:                                             ; preds = %2171, %2162
  %2173 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 7
  %2174 = load ptr, ptr %2173, align 8, !tbaa !121
  invoke void @_ZN7glslang13TIntermediate14setMultiStreamEv(ptr noundef nonnull align 8 dereferenceable(1784) %2174)
          to label %2175 unwind label %121

2175:                                             ; preds = %2172
  br label %2436

2176:                                             ; preds = %120, %120, %120, %120, %120, %120, %120
  %2177 = load ptr, ptr %9, align 8, !tbaa !5
  %2178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2177, i64 noundef 1) #7
  %2179 = load ptr, ptr %2178, align 8, !tbaa !5
  %2180 = load ptr, ptr %2179, align 8, !tbaa !9
  %2181 = getelementptr inbounds ptr, ptr %2180, i64 5
  %2182 = load ptr, ptr %2181, align 8
  %2183 = invoke noundef ptr %2182(ptr noundef nonnull align 8 dereferenceable(32) %2179)
          to label %2184 unwind label %121

2184:                                             ; preds = %2176
  %2185 = icmp eq ptr %2183, null
  br i1 %2185, label %2186, label %2192

2186:                                             ; preds = %2184
  %2187 = load ptr, ptr %6, align 8, !tbaa !5
  %2188 = load ptr, ptr %67, align 8, !tbaa !9
  %2189 = getelementptr inbounds ptr, ptr %2188, i64 42
  %2190 = load ptr, ptr %2189, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %2190(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %2187, ptr noundef @.str.205, ptr noundef @.str.250, ptr noundef @.str.2)
          to label %2191 unwind label %121

2191:                                             ; preds = %2186
  br label %2231

2192:                                             ; preds = %2184
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  %2193 = load ptr, ptr %9, align 8, !tbaa !5
  %2194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2193, i64 noundef 1) #7
  %2195 = load ptr, ptr %2194, align 8, !tbaa !5
  %2196 = load ptr, ptr %2195, align 8, !tbaa !9
  %2197 = getelementptr inbounds ptr, ptr %2196, i64 5
  %2198 = load ptr, ptr %2197, align 8
  %2199 = invoke noundef ptr %2198(ptr noundef nonnull align 8 dereferenceable(32) %2195)
          to label %2200 unwind label %2215

2200:                                             ; preds = %2192
  %2201 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %2199)
          to label %2202 unwind label %2215

2202:                                             ; preds = %2200
  %2203 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2201, i64 noundef 0)
          to label %2204 unwind label %2215

2204:                                             ; preds = %2202
  %2205 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2203)
          to label %2206 unwind label %2215

2206:                                             ; preds = %2204
  store i32 %2205, ptr %40, align 4, !tbaa !11
  %2207 = load i32, ptr %40, align 4, !tbaa !11
  %2208 = icmp slt i32 %2207, 1
  br i1 %2208, label %2209, label %2219

2209:                                             ; preds = %2206
  %2210 = load ptr, ptr %6, align 8, !tbaa !5
  %2211 = load ptr, ptr %67, align 8, !tbaa !9
  %2212 = getelementptr inbounds ptr, ptr %2211, i64 42
  %2213 = load ptr, ptr %2212, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %2213(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %2210, ptr noundef @.str.251, ptr noundef @.str.250, ptr noundef @.str.2)
          to label %2214 unwind label %2215

2214:                                             ; preds = %2209
  br label %2230

2215:                                             ; preds = %2223, %2219, %2209, %2204, %2202, %2200, %2192
  %2216 = landingpad { ptr, i32 }
          cleanup
  %2217 = extractvalue { ptr, i32 } %2216, 0
  store ptr %2217, ptr %14, align 8
  %2218 = extractvalue { ptr, i32 } %2216, 1
  store i32 %2218, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %2714

2219:                                             ; preds = %2206
  %2220 = load i32, ptr %40, align 4, !tbaa !11
  %2221 = invoke noundef zeroext i1 @_ZN7glslang6IsPow2IiEEbT_(i32 noundef %2220)
          to label %2222 unwind label %2215

2222:                                             ; preds = %2219
  br i1 %2221, label %2229, label %2223

2223:                                             ; preds = %2222
  %2224 = load ptr, ptr %6, align 8, !tbaa !5
  %2225 = load ptr, ptr %67, align 8, !tbaa !9
  %2226 = getelementptr inbounds ptr, ptr %2225, i64 42
  %2227 = load ptr, ptr %2226, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %2227(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %2224, ptr noundef @.str.252, ptr noundef @.str.250, ptr noundef @.str.2)
          to label %2228 unwind label %2215

2228:                                             ; preds = %2223
  br label %2229

2229:                                             ; preds = %2228, %2222
  br label %2230

2230:                                             ; preds = %2229, %2214
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %2231

2231:                                             ; preds = %2230, %2191
  br label %2436

2232:                                             ; preds = %120, %120
  %2233 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 6
  %2234 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %2233, i32 0, i32 0
  %2235 = load i32, ptr %2234, align 8, !tbaa !123
  %2236 = icmp ult i32 %2235, 66816
  br i1 %2236, label %2237, label %2254

2237:                                             ; preds = %2232
  %2238 = load ptr, ptr %9, align 8, !tbaa !5
  %2239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2238, i64 noundef 1) #7
  %2240 = load ptr, ptr %2239, align 8, !tbaa !5
  %2241 = load ptr, ptr %2240, align 8, !tbaa !9
  %2242 = getelementptr inbounds ptr, ptr %2241, i64 5
  %2243 = load ptr, ptr %2242, align 8
  %2244 = invoke noundef ptr %2243(ptr noundef nonnull align 8 dereferenceable(32) %2240)
          to label %2245 unwind label %121

2245:                                             ; preds = %2237
  %2246 = icmp eq ptr %2244, null
  br i1 %2246, label %2247, label %2253

2247:                                             ; preds = %2245
  %2248 = load ptr, ptr %6, align 8, !tbaa !5
  %2249 = load ptr, ptr %67, align 8, !tbaa !9
  %2250 = getelementptr inbounds ptr, ptr %2249, i64 42
  %2251 = load ptr, ptr %2250, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %2251(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %2248, ptr noundef @.str.205, ptr noundef @.str.253, ptr noundef @.str.2)
          to label %2252 unwind label %121

2252:                                             ; preds = %2247
  br label %2253

2253:                                             ; preds = %2252, %2245
  br label %2254

2254:                                             ; preds = %2253, %2232
  br label %2436

2255:                                             ; preds = %120, %120
  %2256 = load ptr, ptr %9, align 8, !tbaa !5
  %2257 = call noundef i64 @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %2256) #7
  %2258 = icmp ugt i64 %2257, 0
  br i1 %2258, label %2259, label %2276

2259:                                             ; preds = %2255
  %2260 = load ptr, ptr %6, align 8, !tbaa !5
  %2261 = load ptr, ptr %7, align 8, !tbaa !5
  %2262 = load ptr, ptr %2261, align 8, !tbaa !9
  %2263 = getelementptr inbounds ptr, ptr %2262, i64 3
  %2264 = load ptr, ptr %2263, align 8
  %2265 = invoke noundef nonnull align 8 dereferenceable(40) ptr %2264(ptr noundef nonnull align 8 dereferenceable(33) %2261)
          to label %2266 unwind label %121

2266:                                             ; preds = %2259
  %2267 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %2265) #7
  %2268 = load ptr, ptr %67, align 8, !tbaa !9
  %2269 = getelementptr inbounds ptr, ptr %2268, i64 5
  %2270 = load ptr, ptr %2269, align 8
  invoke void %2270(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %2260, i32 noundef 1, ptr noundef @_ZN7glslangL31E_GL_KHR_memory_scope_semanticsE, ptr noundef %2267)
          to label %2271 unwind label %121

2271:                                             ; preds = %2266
  %2272 = load ptr, ptr %6, align 8, !tbaa !5
  %2273 = load ptr, ptr %7, align 8, !tbaa !5
  %2274 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN7glslang13TParseContext20memorySemanticsCheckERKNS_10TSourceLocERKNS_9TFunctionERKNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912) %67, ptr noundef nonnull align 8 dereferenceable(24) %2272, ptr noundef nonnull align 8 dereferenceable(328) %2273, ptr noundef nonnull align 8 dereferenceable(184) %2274)
          to label %2275 unwind label %121

2275:                                             ; preds = %2271
  br label %2276

2276:                                             ; preds = %2275, %2255
  br label %2436

2277:                                             ; preds = %120
  %2278 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 2
  %2279 = load i32, ptr %2278, align 4, !tbaa !124
  %2280 = icmp eq i32 %2279, 8
  br i1 %2280, label %2281, label %2337

2281:                                             ; preds = %2277
  %2282 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 4
  %2283 = load i32, ptr %2282, align 8, !tbaa !120
  %2284 = icmp slt i32 %2283, 310
  br i1 %2284, label %2285, label %2337

2285:                                             ; preds = %2281
  %2286 = load ptr, ptr %9, align 8, !tbaa !5
  %2287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2286, i64 noundef 0) #7
  %2288 = load ptr, ptr %2287, align 8, !tbaa !5
  %2289 = load ptr, ptr %2288, align 8, !tbaa !9
  %2290 = getelementptr inbounds ptr, ptr %2289, i64 3
  %2291 = load ptr, ptr %2290, align 8
  %2292 = invoke noundef ptr %2291(ptr noundef nonnull align 8 dereferenceable(32) %2288)
          to label %2293 unwind label %121

2293:                                             ; preds = %2285
  %2294 = load ptr, ptr %2292, align 8, !tbaa !9
  %2295 = getelementptr inbounds ptr, ptr %2294, i64 32
  %2296 = load ptr, ptr %2295, align 8
  %2297 = invoke noundef i32 %2296(ptr noundef nonnull align 8 dereferenceable(176) %2292)
          to label %2298 unwind label %121

2298:                                             ; preds = %2293
  %2299 = icmp ne i32 %2297, 1
  br i1 %2299, label %2300, label %2336

2300:                                             ; preds = %2298
  %2301 = load ptr, ptr %9, align 8, !tbaa !5
  %2302 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2301, i64 noundef 1) #7
  %2303 = load ptr, ptr %2302, align 8, !tbaa !5
  %2304 = load ptr, ptr %2303, align 8, !tbaa !9
  %2305 = getelementptr inbounds ptr, ptr %2304, i64 3
  %2306 = load ptr, ptr %2305, align 8
  %2307 = invoke noundef ptr %2306(ptr noundef nonnull align 8 dereferenceable(32) %2303)
          to label %2308 unwind label %121

2308:                                             ; preds = %2300
  %2309 = load ptr, ptr %2307, align 8, !tbaa !9
  %2310 = getelementptr inbounds ptr, ptr %2309, i64 32
  %2311 = load ptr, ptr %2310, align 8
  %2312 = invoke noundef i32 %2311(ptr noundef nonnull align 8 dereferenceable(176) %2307)
          to label %2313 unwind label %121

2313:                                             ; preds = %2308
  %2314 = icmp ne i32 %2312, 1
  br i1 %2314, label %2315, label %2336

2315:                                             ; preds = %2313
  %2316 = load ptr, ptr %9, align 8, !tbaa !5
  %2317 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2316, i64 noundef 2) #7
  %2318 = load ptr, ptr %2317, align 8, !tbaa !5
  %2319 = load ptr, ptr %2318, align 8, !tbaa !9
  %2320 = getelementptr inbounds ptr, ptr %2319, i64 3
  %2321 = load ptr, ptr %2320, align 8
  %2322 = invoke noundef ptr %2321(ptr noundef nonnull align 8 dereferenceable(32) %2318)
          to label %2323 unwind label %121

2323:                                             ; preds = %2315
  %2324 = load ptr, ptr %2322, align 8, !tbaa !9
  %2325 = getelementptr inbounds ptr, ptr %2324, i64 32
  %2326 = load ptr, ptr %2325, align 8
  %2327 = invoke noundef i32 %2326(ptr noundef nonnull align 8 dereferenceable(176) %2322)
          to label %2328 unwind label %121

2328:                                             ; preds = %2323
  %2329 = icmp eq i32 %2327, 12
  br i1 %2329, label %2330, label %2336

2330:                                             ; preds = %2328
  %2331 = load ptr, ptr %6, align 8, !tbaa !5
  %2332 = load ptr, ptr %67, align 8, !tbaa !9
  %2333 = getelementptr inbounds ptr, ptr %2332, i64 5
  %2334 = load ptr, ptr %2333, align 8
  invoke void %2334(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %2331, i32 noundef 1, ptr noundef @_ZN7glslangL27E_GL_EXT_shader_integer_mixE, ptr noundef @.str.254)
          to label %2335 unwind label %121

2335:                                             ; preds = %2330
  br label %2336

2336:                                             ; preds = %2335, %2328, %2313, %2298
  br label %2337

2337:                                             ; preds = %2336, %2281, %2277
  %2338 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 2
  %2339 = load i32, ptr %2338, align 4, !tbaa !124
  %2340 = icmp ne i32 %2339, 8
  br i1 %2340, label %2341, label %2434

2341:                                             ; preds = %2337
  %2342 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 4
  %2343 = load i32, ptr %2342, align 8, !tbaa !120
  %2344 = icmp slt i32 %2343, 450
  br i1 %2344, label %2345, label %2434

2345:                                             ; preds = %2341
  %2346 = load ptr, ptr %9, align 8, !tbaa !5
  %2347 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2346, i64 noundef 0) #7
  %2348 = load ptr, ptr %2347, align 8, !tbaa !5
  %2349 = load ptr, ptr %2348, align 8, !tbaa !9
  %2350 = getelementptr inbounds ptr, ptr %2349, i64 3
  %2351 = load ptr, ptr %2350, align 8
  %2352 = invoke noundef ptr %2351(ptr noundef nonnull align 8 dereferenceable(32) %2348)
          to label %2353 unwind label %121

2353:                                             ; preds = %2345
  %2354 = load ptr, ptr %2352, align 8, !tbaa !9
  %2355 = getelementptr inbounds ptr, ptr %2354, i64 32
  %2356 = load ptr, ptr %2355, align 8
  %2357 = invoke noundef i32 %2356(ptr noundef nonnull align 8 dereferenceable(176) %2352)
          to label %2358 unwind label %121

2358:                                             ; preds = %2353
  %2359 = icmp ne i32 %2357, 1
  br i1 %2359, label %2360, label %2433

2360:                                             ; preds = %2358
  %2361 = load ptr, ptr %9, align 8, !tbaa !5
  %2362 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2361, i64 noundef 0) #7
  %2363 = load ptr, ptr %2362, align 8, !tbaa !5
  %2364 = load ptr, ptr %2363, align 8, !tbaa !9
  %2365 = getelementptr inbounds ptr, ptr %2364, i64 3
  %2366 = load ptr, ptr %2365, align 8
  %2367 = invoke noundef ptr %2366(ptr noundef nonnull align 8 dereferenceable(32) %2363)
          to label %2368 unwind label %121

2368:                                             ; preds = %2360
  %2369 = load ptr, ptr %2367, align 8, !tbaa !9
  %2370 = getelementptr inbounds ptr, ptr %2369, i64 32
  %2371 = load ptr, ptr %2370, align 8
  %2372 = invoke noundef i32 %2371(ptr noundef nonnull align 8 dereferenceable(176) %2367)
          to label %2373 unwind label %121

2373:                                             ; preds = %2368
  %2374 = icmp ne i32 %2372, 2
  br i1 %2374, label %2375, label %2433

2375:                                             ; preds = %2373
  %2376 = load ptr, ptr %9, align 8, !tbaa !5
  %2377 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2376, i64 noundef 1) #7
  %2378 = load ptr, ptr %2377, align 8, !tbaa !5
  %2379 = load ptr, ptr %2378, align 8, !tbaa !9
  %2380 = getelementptr inbounds ptr, ptr %2379, i64 3
  %2381 = load ptr, ptr %2380, align 8
  %2382 = invoke noundef ptr %2381(ptr noundef nonnull align 8 dereferenceable(32) %2378)
          to label %2383 unwind label %121

2383:                                             ; preds = %2375
  %2384 = load ptr, ptr %2382, align 8, !tbaa !9
  %2385 = getelementptr inbounds ptr, ptr %2384, i64 32
  %2386 = load ptr, ptr %2385, align 8
  %2387 = invoke noundef i32 %2386(ptr noundef nonnull align 8 dereferenceable(176) %2382)
          to label %2388 unwind label %121

2388:                                             ; preds = %2383
  %2389 = icmp ne i32 %2387, 1
  br i1 %2389, label %2390, label %2433

2390:                                             ; preds = %2388
  %2391 = load ptr, ptr %9, align 8, !tbaa !5
  %2392 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2391, i64 noundef 1) #7
  %2393 = load ptr, ptr %2392, align 8, !tbaa !5
  %2394 = load ptr, ptr %2393, align 8, !tbaa !9
  %2395 = getelementptr inbounds ptr, ptr %2394, i64 3
  %2396 = load ptr, ptr %2395, align 8
  %2397 = invoke noundef ptr %2396(ptr noundef nonnull align 8 dereferenceable(32) %2393)
          to label %2398 unwind label %121

2398:                                             ; preds = %2390
  %2399 = load ptr, ptr %2397, align 8, !tbaa !9
  %2400 = getelementptr inbounds ptr, ptr %2399, i64 32
  %2401 = load ptr, ptr %2400, align 8
  %2402 = invoke noundef i32 %2401(ptr noundef nonnull align 8 dereferenceable(176) %2397)
          to label %2403 unwind label %121

2403:                                             ; preds = %2398
  %2404 = icmp ne i32 %2402, 2
  br i1 %2404, label %2405, label %2433

2405:                                             ; preds = %2403
  %2406 = load ptr, ptr %9, align 8, !tbaa !5
  %2407 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %2406, i64 noundef 2) #7
  %2408 = load ptr, ptr %2407, align 8, !tbaa !5
  %2409 = load ptr, ptr %2408, align 8, !tbaa !9
  %2410 = getelementptr inbounds ptr, ptr %2409, i64 3
  %2411 = load ptr, ptr %2410, align 8
  %2412 = invoke noundef ptr %2411(ptr noundef nonnull align 8 dereferenceable(32) %2408)
          to label %2413 unwind label %121

2413:                                             ; preds = %2405
  %2414 = load ptr, ptr %2412, align 8, !tbaa !9
  %2415 = getelementptr inbounds ptr, ptr %2414, i64 32
  %2416 = load ptr, ptr %2415, align 8
  %2417 = invoke noundef i32 %2416(ptr noundef nonnull align 8 dereferenceable(176) %2412)
          to label %2418 unwind label %121

2418:                                             ; preds = %2413
  %2419 = icmp eq i32 %2417, 12
  br i1 %2419, label %2420, label %2433

2420:                                             ; preds = %2418
  %2421 = load ptr, ptr %6, align 8, !tbaa !5
  %2422 = load ptr, ptr %7, align 8, !tbaa !5
  %2423 = load ptr, ptr %2422, align 8, !tbaa !9
  %2424 = getelementptr inbounds ptr, ptr %2423, i64 3
  %2425 = load ptr, ptr %2424, align 8
  %2426 = invoke noundef nonnull align 8 dereferenceable(40) ptr %2425(ptr noundef nonnull align 8 dereferenceable(33) %2422)
          to label %2427 unwind label %121

2427:                                             ; preds = %2420
  %2428 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %2426) #7
  %2429 = load ptr, ptr %67, align 8, !tbaa !9
  %2430 = getelementptr inbounds ptr, ptr %2429, i64 5
  %2431 = load ptr, ptr %2430, align 8
  invoke void %2431(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %2421, i32 noundef 1, ptr noundef @_ZN7glslangL27E_GL_EXT_shader_integer_mixE, ptr noundef %2428)
          to label %2432 unwind label %121

2432:                                             ; preds = %2427
  br label %2433

2433:                                             ; preds = %2432, %2418, %2403, %2388, %2373, %2358
  br label %2434

2434:                                             ; preds = %2433, %2341, %2337
  br label %2436

2435:                                             ; preds = %120
  br label %2436

2436:                                             ; preds = %2435, %2434, %2276, %2254, %2231, %2175, %2161, %2013, %1636, %1268, %1265, %1248, %1187, %1170, %1109, %1092, %1074, %825, %740, %636, %622, %513
  %2437 = load ptr, ptr %8, align 8, !tbaa !5
  %2438 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %2437)
          to label %2439 unwind label %121

2439:                                             ; preds = %2436
  switch i32 %2438, label %2522 [
    i32 614, label %2440
    i32 616, label %2440
    i32 617, label %2440
    i32 623, label %2440
    i32 624, label %2440
  ]

2440:                                             ; preds = %2439, %2439, %2439, %2439, %2439
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %2441 = load ptr, ptr %7, align 8, !tbaa !5
  %2442 = load ptr, ptr %2441, align 8, !tbaa !9
  %2443 = getelementptr inbounds ptr, ptr %2442, i64 40
  %2444 = load ptr, ptr %2443, align 8
  %2445 = invoke noundef nonnull align 8 dereferenceable(24) ptr %2444(ptr noundef nonnull align 8 dereferenceable(328) %2441, i32 noundef 0)
          to label %2446 unwind label %2502

2446:                                             ; preds = %2440
  %2447 = getelementptr inbounds %"struct.glslang::TParameter", ptr %2445, i32 0, i32 1
  %2448 = load ptr, ptr %2447, align 8, !tbaa !13
  %2449 = load ptr, ptr %2448, align 8, !tbaa !9
  %2450 = getelementptr inbounds ptr, ptr %2449, i64 9
  %2451 = load ptr, ptr %2450, align 8
  %2452 = invoke noundef nonnull align 4 dereferenceable(4) ptr %2451(ptr noundef nonnull align 8 dereferenceable(144) %2448)
          to label %2453 unwind label %2502

2453:                                             ; preds = %2446
  store ptr %2452, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #7
  %2454 = load ptr, ptr %41, align 8, !tbaa !5
  %2455 = invoke noundef zeroext i1 @_ZNK7glslang8TSampler9isTextureEv(ptr noundef nonnull align 4 dereferenceable(4) %2454)
          to label %2456 unwind label %2506

2456:                                             ; preds = %2453
  br i1 %2455, label %2457, label %2462

2457:                                             ; preds = %2456
  %2458 = load ptr, ptr %41, align 8, !tbaa !5
  %2459 = invoke noundef zeroext i1 @_ZNK7glslang8TSampler10isCombinedEv(ptr noundef nonnull align 4 dereferenceable(4) %2458)
          to label %2460 unwind label %2506

2460:                                             ; preds = %2457
  %2461 = xor i1 %2459, true
  br label %2462

2462:                                             ; preds = %2460, %2456
  %2463 = phi i1 [ false, %2456 ], [ %2461, %2460 ]
  %2464 = zext i1 %2463 to i8
  store i8 %2464, ptr %42, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  %2465 = load ptr, ptr %41, align 8, !tbaa !5
  %2466 = invoke noundef zeroext i1 @_ZNK7glslang8TSampler8isBufferEv(ptr noundef nonnull align 4 dereferenceable(4) %2465)
          to label %2467 unwind label %2510

2467:                                             ; preds = %2462
  %2468 = zext i1 %2466 to i8
  store i8 %2468, ptr %43, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #7
  %2469 = load ptr, ptr %8, align 8, !tbaa !5
  %2470 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %2469)
          to label %2471 unwind label %2514

2471:                                             ; preds = %2467
  %2472 = icmp eq i32 %2470, 623
  br i1 %2472, label %2478, label %2473

2473:                                             ; preds = %2471
  %2474 = load ptr, ptr %8, align 8, !tbaa !5
  %2475 = invoke noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %2474)
          to label %2476 unwind label %2514

2476:                                             ; preds = %2473
  %2477 = icmp eq i32 %2475, 624
  br label %2478

2478:                                             ; preds = %2476, %2471
  %2479 = phi i1 [ true, %2471 ], [ %2477, %2476 ]
  %2480 = zext i1 %2479 to i8
  store i8 %2480, ptr %44, align 1, !tbaa !15
  %2481 = load i8, ptr %42, align 1, !tbaa !15, !range !17, !noundef !18
  %2482 = trunc i8 %2481 to i1
  br i1 %2482, label %2483, label %2518

2483:                                             ; preds = %2478
  %2484 = load i8, ptr %43, align 1, !tbaa !15, !range !17, !noundef !18
  %2485 = trunc i8 %2484 to i1
  br i1 %2485, label %2486, label %2489

2486:                                             ; preds = %2483
  %2487 = load i8, ptr %44, align 1, !tbaa !15, !range !17, !noundef !18
  %2488 = trunc i8 %2487 to i1
  br i1 %2488, label %2518, label %2489

2489:                                             ; preds = %2486, %2483
  %2490 = load ptr, ptr %6, align 8, !tbaa !5
  %2491 = load ptr, ptr %7, align 8, !tbaa !5
  %2492 = load ptr, ptr %2491, align 8, !tbaa !9
  %2493 = getelementptr inbounds ptr, ptr %2492, i64 3
  %2494 = load ptr, ptr %2493, align 8
  %2495 = invoke noundef nonnull align 8 dereferenceable(40) ptr %2494(ptr noundef nonnull align 8 dereferenceable(33) %2491)
          to label %2496 unwind label %2514

2496:                                             ; preds = %2489
  %2497 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %2495) #7
  %2498 = load ptr, ptr %67, align 8, !tbaa !9
  %2499 = getelementptr inbounds ptr, ptr %2498, i64 5
  %2500 = load ptr, ptr %2499, align 8
  invoke void %2500(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %2490, i32 noundef 1, ptr noundef @_ZN7glslangL38E_GL_EXT_samplerless_texture_functionsE, ptr noundef %2497)
          to label %2501 unwind label %2514

2501:                                             ; preds = %2496
  br label %2518

2502:                                             ; preds = %2446, %2440
  %2503 = landingpad { ptr, i32 }
          cleanup
  %2504 = extractvalue { ptr, i32 } %2503, 0
  store ptr %2504, ptr %14, align 8
  %2505 = extractvalue { ptr, i32 } %2503, 1
  store i32 %2505, ptr %15, align 4
  br label %2521

2506:                                             ; preds = %2457, %2453
  %2507 = landingpad { ptr, i32 }
          cleanup
  %2508 = extractvalue { ptr, i32 } %2507, 0
  store ptr %2508, ptr %14, align 8
  %2509 = extractvalue { ptr, i32 } %2507, 1
  store i32 %2509, ptr %15, align 4
  br label %2520

2510:                                             ; preds = %2462
  %2511 = landingpad { ptr, i32 }
          cleanup
  %2512 = extractvalue { ptr, i32 } %2511, 0
  store ptr %2512, ptr %14, align 8
  %2513 = extractvalue { ptr, i32 } %2511, 1
  store i32 %2513, ptr %15, align 4
  br label %2519

2514:                                             ; preds = %2496, %2489, %2473, %2467
  %2515 = landingpad { ptr, i32 }
          cleanup
  %2516 = extractvalue { ptr, i32 } %2515, 0
  store ptr %2516, ptr %14, align 8
  %2517 = extractvalue { ptr, i32 } %2515, 1
  store i32 %2517, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #7
  br label %2519

2518:                                             ; preds = %2501, %2486, %2478
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %2523

2519:                                             ; preds = %2514, %2510
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  br label %2520

2520:                                             ; preds = %2519, %2506
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #7
  br label %2521

2521:                                             ; preds = %2520, %2502
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %2714

2522:                                             ; preds = %2439
  br label %2523

2523:                                             ; preds = %2522, %2518
  %2524 = load ptr, ptr %8, align 8, !tbaa !5
  %2525 = invoke noundef zeroext i1 @_ZNK7glslang15TIntermOperator10isSubgroupEv(ptr noundef nonnull align 8 dereferenceable(184) %2524)
          to label %2526 unwind label %121

2526:                                             ; preds = %2523
  br i1 %2525, label %2527, label %2713

2527:                                             ; preds = %2526
  %2528 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 6
  %2529 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %2528, i32 0, i32 0
  %2530 = load i32, ptr %2529, align 8, !tbaa !123
  %2531 = icmp ugt i32 %2530, 0
  br i1 %2531, label %2532, label %2543

2532:                                             ; preds = %2527
  %2533 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 6
  %2534 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %2533, i32 0, i32 0
  %2535 = load i32, ptr %2534, align 8, !tbaa !123
  %2536 = icmp ult i32 %2535, 66304
  br i1 %2536, label %2537, label %2543

2537:                                             ; preds = %2532
  %2538 = load ptr, ptr %6, align 8, !tbaa !5
  %2539 = load ptr, ptr %67, align 8, !tbaa !9
  %2540 = getelementptr inbounds ptr, ptr %2539, i64 42
  %2541 = load ptr, ptr %2540, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %2541(ptr noundef nonnull align 8 dereferenceable(1176) %67, ptr noundef nonnull align 8 dereferenceable(24) %2538, ptr noundef @.str.27, ptr noundef @.str.255, ptr noundef @.str.2)
          to label %2542 unwind label %121

2542:                                             ; preds = %2537
  br label %2543

2543:                                             ; preds = %2542, %2532, %2527
  %2544 = load ptr, ptr %11, align 8, !tbaa !5
  %2545 = icmp ne ptr %2544, null
  br i1 %2545, label %2546, label %2712

2546:                                             ; preds = %2543
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %2547 = load ptr, ptr %11, align 8, !tbaa !5
  %2548 = load ptr, ptr %2547, align 8, !tbaa !9
  %2549 = getelementptr inbounds ptr, ptr %2548, i64 30
  %2550 = load ptr, ptr %2549, align 8
  %2551 = invoke noundef nonnull align 8 dereferenceable(144) ptr %2550(ptr noundef nonnull align 8 dereferenceable(176) %2547)
          to label %2552 unwind label %2564

2552:                                             ; preds = %2546
  store ptr %2551, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #7
  %2553 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %67, i32 0, i32 7
  %2554 = load ptr, ptr %2553, align 8, !tbaa !121
  %2555 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate15getEnhancedMsgsEv(ptr noundef nonnull align 8 dereferenceable(1784) %2554)
          to label %2556 unwind label %2568

2556:                                             ; preds = %2552
  %2557 = zext i1 %2555 to i8
  store i8 %2557, ptr %46, align 1, !tbaa !15
  %2558 = load ptr, ptr %45, align 8, !tbaa !5
  %2559 = load ptr, ptr %2558, align 8, !tbaa !9
  %2560 = getelementptr inbounds ptr, ptr %2559, i64 7
  %2561 = load ptr, ptr %2560, align 8
  %2562 = invoke noundef i32 %2561(ptr noundef nonnull align 8 dereferenceable(144) %2558)
          to label %2563 unwind label %2568

2563:                                             ; preds = %2556
  switch i32 %2562, label %2572 [
    i32 4, label %2573
    i32 5, label %2573
    i32 6, label %2607
    i32 7, label %2607
    i32 10, label %2641
    i32 11, label %2641
    i32 3, label %2675
  ]

2564:                                             ; preds = %2546
  %2565 = landingpad { ptr, i32 }
          cleanup
  %2566 = extractvalue { ptr, i32 } %2565, 0
  store ptr %2566, ptr %14, align 8
  %2567 = extractvalue { ptr, i32 } %2565, 1
  store i32 %2567, ptr %15, align 4
  br label %2711

2568:                                             ; preds = %2556, %2552
  %2569 = landingpad { ptr, i32 }
          cleanup
  %2570 = extractvalue { ptr, i32 } %2569, 0
  store ptr %2570, ptr %14, align 8
  %2571 = extractvalue { ptr, i32 } %2569, 1
  store i32 %2571, ptr %15, align 4
  br label %2710

2572:                                             ; preds = %2563
  br label %2709

2573:                                             ; preds = %2563, %2563
  %2574 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %47) #7
  %2575 = load ptr, ptr %45, align 8, !tbaa !5
  %2576 = load i8, ptr %46, align 1, !tbaa !15, !range !17, !noundef !18
  %2577 = trunc i8 %2576 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %2578 unwind label %2588

2578:                                             ; preds = %2573
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %48, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %2579 unwind label %2588

2579:                                             ; preds = %2578
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %2580 unwind label %2592

2580:                                             ; preds = %2579
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %50, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %2581 unwind label %2592

2581:                                             ; preds = %2580
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(144) %2575, i1 noundef zeroext %2577, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, ptr noundef %48, ptr noundef %50)
          to label %2582 unwind label %2596

2582:                                             ; preds = %2581
  %2583 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %47) #7
  %2584 = load ptr, ptr %67, align 8, !tbaa !9
  %2585 = getelementptr inbounds ptr, ptr %2584, i64 5
  %2586 = load ptr, ptr %2585, align 8
  invoke void %2586(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %2574, i32 noundef 1, ptr noundef @_ZN7glslangL44E_GL_EXT_shader_subgroup_extended_types_int8E, ptr noundef %2583)
          to label %2587 unwind label %2600

2587:                                             ; preds = %2582
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %47) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %47) #7
  br label %2709

2588:                                             ; preds = %2578, %2573
  %2589 = landingpad { ptr, i32 }
          cleanup
  %2590 = extractvalue { ptr, i32 } %2589, 0
  store ptr %2590, ptr %14, align 8
  %2591 = extractvalue { ptr, i32 } %2589, 1
  store i32 %2591, ptr %15, align 4
  br label %2606

2592:                                             ; preds = %2580, %2579
  %2593 = landingpad { ptr, i32 }
          cleanup
  %2594 = extractvalue { ptr, i32 } %2593, 0
  store ptr %2594, ptr %14, align 8
  %2595 = extractvalue { ptr, i32 } %2593, 1
  store i32 %2595, ptr %15, align 4
  br label %2605

2596:                                             ; preds = %2581
  %2597 = landingpad { ptr, i32 }
          cleanup
  %2598 = extractvalue { ptr, i32 } %2597, 0
  store ptr %2598, ptr %14, align 8
  %2599 = extractvalue { ptr, i32 } %2597, 1
  store i32 %2599, ptr %15, align 4
  br label %2604

2600:                                             ; preds = %2582
  %2601 = landingpad { ptr, i32 }
          cleanup
  %2602 = extractvalue { ptr, i32 } %2601, 0
  store ptr %2602, ptr %14, align 8
  %2603 = extractvalue { ptr, i32 } %2601, 1
  store i32 %2603, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %47) #7
  br label %2604

2604:                                             ; preds = %2600, %2596
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #7
  br label %2605

2605:                                             ; preds = %2604, %2592
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #7
  br label %2606

2606:                                             ; preds = %2605, %2588
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %47) #7
  br label %2710

2607:                                             ; preds = %2563, %2563
  %2608 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %52) #7
  %2609 = load ptr, ptr %45, align 8, !tbaa !5
  %2610 = load i8, ptr %46, align 1, !tbaa !15, !range !17, !noundef !18
  %2611 = trunc i8 %2610 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %2612 unwind label %2622

2612:                                             ; preds = %2607
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %53, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %2613 unwind label %2622

2613:                                             ; preds = %2612
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %2614 unwind label %2626

2614:                                             ; preds = %2613
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %55, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %2615 unwind label %2626

2615:                                             ; preds = %2614
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(144) %2609, i1 noundef zeroext %2611, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, ptr noundef %53, ptr noundef %55)
          to label %2616 unwind label %2630

2616:                                             ; preds = %2615
  %2617 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %52) #7
  %2618 = load ptr, ptr %67, align 8, !tbaa !9
  %2619 = getelementptr inbounds ptr, ptr %2618, i64 5
  %2620 = load ptr, ptr %2619, align 8
  invoke void %2620(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %2608, i32 noundef 1, ptr noundef @_ZN7glslangL45E_GL_EXT_shader_subgroup_extended_types_int16E, ptr noundef %2617)
          to label %2621 unwind label %2634

2621:                                             ; preds = %2616
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #7
  br label %2709

2622:                                             ; preds = %2612, %2607
  %2623 = landingpad { ptr, i32 }
          cleanup
  %2624 = extractvalue { ptr, i32 } %2623, 0
  store ptr %2624, ptr %14, align 8
  %2625 = extractvalue { ptr, i32 } %2623, 1
  store i32 %2625, ptr %15, align 4
  br label %2640

2626:                                             ; preds = %2614, %2613
  %2627 = landingpad { ptr, i32 }
          cleanup
  %2628 = extractvalue { ptr, i32 } %2627, 0
  store ptr %2628, ptr %14, align 8
  %2629 = extractvalue { ptr, i32 } %2627, 1
  store i32 %2629, ptr %15, align 4
  br label %2639

2630:                                             ; preds = %2615
  %2631 = landingpad { ptr, i32 }
          cleanup
  %2632 = extractvalue { ptr, i32 } %2631, 0
  store ptr %2632, ptr %14, align 8
  %2633 = extractvalue { ptr, i32 } %2631, 1
  store i32 %2633, ptr %15, align 4
  br label %2638

2634:                                             ; preds = %2616
  %2635 = landingpad { ptr, i32 }
          cleanup
  %2636 = extractvalue { ptr, i32 } %2635, 0
  store ptr %2636, ptr %14, align 8
  %2637 = extractvalue { ptr, i32 } %2635, 1
  store i32 %2637, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #7
  br label %2638

2638:                                             ; preds = %2634, %2630
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #7
  br label %2639

2639:                                             ; preds = %2638, %2626
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %53) #7
  br label %2640

2640:                                             ; preds = %2639, %2622
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #7
  br label %2710

2641:                                             ; preds = %2563, %2563
  %2642 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %57) #7
  %2643 = load ptr, ptr %45, align 8, !tbaa !5
  %2644 = load i8, ptr %46, align 1, !tbaa !15, !range !17, !noundef !18
  %2645 = trunc i8 %2644 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %2646 unwind label %2656

2646:                                             ; preds = %2641
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %58, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %2647 unwind label %2656

2647:                                             ; preds = %2646
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %2648 unwind label %2660

2648:                                             ; preds = %2647
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %60, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %2649 unwind label %2660

2649:                                             ; preds = %2648
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(144) %2643, i1 noundef zeroext %2645, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, ptr noundef %58, ptr noundef %60)
          to label %2650 unwind label %2664

2650:                                             ; preds = %2649
  %2651 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %57) #7
  %2652 = load ptr, ptr %67, align 8, !tbaa !9
  %2653 = getelementptr inbounds ptr, ptr %2652, i64 5
  %2654 = load ptr, ptr %2653, align 8
  invoke void %2654(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %2642, i32 noundef 1, ptr noundef @_ZN7glslangL45E_GL_EXT_shader_subgroup_extended_types_int64E, ptr noundef %2651)
          to label %2655 unwind label %2668

2655:                                             ; preds = %2650
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %57) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %57) #7
  br label %2709

2656:                                             ; preds = %2646, %2641
  %2657 = landingpad { ptr, i32 }
          cleanup
  %2658 = extractvalue { ptr, i32 } %2657, 0
  store ptr %2658, ptr %14, align 8
  %2659 = extractvalue { ptr, i32 } %2657, 1
  store i32 %2659, ptr %15, align 4
  br label %2674

2660:                                             ; preds = %2648, %2647
  %2661 = landingpad { ptr, i32 }
          cleanup
  %2662 = extractvalue { ptr, i32 } %2661, 0
  store ptr %2662, ptr %14, align 8
  %2663 = extractvalue { ptr, i32 } %2661, 1
  store i32 %2663, ptr %15, align 4
  br label %2673

2664:                                             ; preds = %2649
  %2665 = landingpad { ptr, i32 }
          cleanup
  %2666 = extractvalue { ptr, i32 } %2665, 0
  store ptr %2666, ptr %14, align 8
  %2667 = extractvalue { ptr, i32 } %2665, 1
  store i32 %2667, ptr %15, align 4
  br label %2672

2668:                                             ; preds = %2650
  %2669 = landingpad { ptr, i32 }
          cleanup
  %2670 = extractvalue { ptr, i32 } %2669, 0
  store ptr %2670, ptr %14, align 8
  %2671 = extractvalue { ptr, i32 } %2669, 1
  store i32 %2671, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %57) #7
  br label %2672

2672:                                             ; preds = %2668, %2664
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #7
  br label %2673

2673:                                             ; preds = %2672, %2660
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %58) #7
  br label %2674

2674:                                             ; preds = %2673, %2656
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %57) #7
  br label %2710

2675:                                             ; preds = %2563
  %2676 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %62) #7
  %2677 = load ptr, ptr %45, align 8, !tbaa !5
  %2678 = load i8, ptr %46, align 1, !tbaa !15, !range !17, !noundef !18
  %2679 = trunc i8 %2678 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %2680 unwind label %2690

2680:                                             ; preds = %2675
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %63, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %2681 unwind label %2690

2681:                                             ; preds = %2680
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %2682 unwind label %2694

2682:                                             ; preds = %2681
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %65, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %2683 unwind label %2694

2683:                                             ; preds = %2682
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(144) %2677, i1 noundef zeroext %2679, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, ptr noundef %63, ptr noundef %65)
          to label %2684 unwind label %2698

2684:                                             ; preds = %2683
  %2685 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %62) #7
  %2686 = load ptr, ptr %67, align 8, !tbaa !9
  %2687 = getelementptr inbounds ptr, ptr %2686, i64 5
  %2688 = load ptr, ptr %2687, align 8
  invoke void %2688(ptr noundef nonnull align 8 dereferenceable(192) %67, ptr noundef nonnull align 8 dereferenceable(24) %2676, i32 noundef 1, ptr noundef @_ZN7glslangL47E_GL_EXT_shader_subgroup_extended_types_float16E, ptr noundef %2685)
          to label %2689 unwind label %2702

2689:                                             ; preds = %2684
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %65) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %62) #7
  br label %2709

2690:                                             ; preds = %2680, %2675
  %2691 = landingpad { ptr, i32 }
          cleanup
  %2692 = extractvalue { ptr, i32 } %2691, 0
  store ptr %2692, ptr %14, align 8
  %2693 = extractvalue { ptr, i32 } %2691, 1
  store i32 %2693, ptr %15, align 4
  br label %2708

2694:                                             ; preds = %2682, %2681
  %2695 = landingpad { ptr, i32 }
          cleanup
  %2696 = extractvalue { ptr, i32 } %2695, 0
  store ptr %2696, ptr %14, align 8
  %2697 = extractvalue { ptr, i32 } %2695, 1
  store i32 %2697, ptr %15, align 4
  br label %2707

2698:                                             ; preds = %2683
  %2699 = landingpad { ptr, i32 }
          cleanup
  %2700 = extractvalue { ptr, i32 } %2699, 0
  store ptr %2700, ptr %14, align 8
  %2701 = extractvalue { ptr, i32 } %2699, 1
  store i32 %2701, ptr %15, align 4
  br label %2706

2702:                                             ; preds = %2684
  %2703 = landingpad { ptr, i32 }
          cleanup
  %2704 = extractvalue { ptr, i32 } %2703, 0
  store ptr %2704, ptr %14, align 8
  %2705 = extractvalue { ptr, i32 } %2703, 1
  store i32 %2705, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #7
  br label %2706

2706:                                             ; preds = %2702, %2698
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %65) #7
  br label %2707

2707:                                             ; preds = %2706, %2694
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %63) #7
  br label %2708

2708:                                             ; preds = %2707, %2690
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %62) #7
  br label %2710

2709:                                             ; preds = %2689, %2655, %2621, %2587, %2572
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %2712

2710:                                             ; preds = %2708, %2674, %2640, %2606, %2568
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #7
  br label %2711

2711:                                             ; preds = %2710, %2564
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %2714

2712:                                             ; preds = %2709, %2543
  br label %2713

2713:                                             ; preds = %2712, %2526
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  ret void

2714:                                             ; preds = %2711, %2521, %2215, %2154, %2089, %2015, %1814, %1637, %1243, %1165, %1075, %820, %735, %623, %514, %121
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  br label %2715

2715:                                             ; preds = %2714
  %2716 = load ptr, ptr %14, align 8
  %2717 = load i32, ptr %15, align 4
  %2718 = insertvalue { ptr, i32 } poison, ptr %2716, 0
  %2719 = insertvalue { ptr, i32 } %2718, i32 %2717, 1
  resume { ptr, i32 } %2719
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang13TParseContext20memorySemanticsCheckERKNS_10TSourceLocERKNS_9TFunctionERKNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(328), ptr noundef nonnull align 8 dereferenceable(184)) #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler13isMultiSampleEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler6isRectEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler4is2DEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler9isArrayedEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler8isShadowEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

declare noundef i32 @_ZN7glslang13TIntermediate15checkLocationRTEii(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef, i32 noundef) #5

; 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) #0 align 2

declare noundef ptr @_ZN7glslang13TIntermediate14findLValueBaseEPKNS_12TIntermTypedEbb(ptr noundef, i1 noundef zeroext, i1 noundef zeroext) #5

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler9isTextureEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler10isCombinedEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler8isBufferEv(ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

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

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

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

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


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char, 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] }
%"struct.glslang::TSampler" = type { i32 }

@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [113 x i8], align 1
@_ZN7glslangL15AEP_gpu_shader5E = external hidden constant [2 x ptr], align 16
@.str.88 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [26 x i8], align 1
@__PRETTY_FUNCTION__._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE = external hidden unnamed_addr constant [102 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [19 x i8], align 1
@_ZN7glslangL32E_GL_AMD_texture_gather_bias_lodE = external hidden constant ptr, align 8
@.str.205 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZN7glslangL24E_GL_ARB_sparse_texture2E = external hidden constant ptr, align 8
@.str.207 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZN7glslangL28E_GL_EXT_shader_atomic_floatE = external hidden constant ptr, align 8
@.str.236 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZN7glslangL29E_GL_EXT_shader_atomic_float2E = external hidden constant ptr, align 8
@.str.238 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZN7glslangL31E_GL_KHR_memory_scope_semanticsE = external hidden constant ptr, align 8
@__const._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE.extensions = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.243 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [28 x i8], align 1
@_ZN7glslangL20E_GL_ARB_gpu_shader5E = external hidden constant ptr, align 8
@.str.249 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZN7glslangL27E_GL_EXT_shader_integer_mixE = external hidden constant ptr, align 8
@.str.254 = external hidden unnamed_addr constant [34 x i8], align 1
@_ZN7glslangL38E_GL_EXT_samplerless_texture_functionsE = external hidden constant ptr, align 8
@.str.255 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN7glslangL44E_GL_EXT_shader_subgroup_extended_types_int8E = external hidden constant ptr, align 8
@_ZN7glslangL45E_GL_EXT_shader_subgroup_extended_types_int16E = external hidden constant ptr, align 8
@_ZN7glslangL45E_GL_EXT_shader_subgroup_extended_types_int64E = external hidden constant ptr, align 8
@_ZN7glslangL47E_GL_EXT_shader_subgroup_extended_types_float16E = external hidden constant ptr, align 8

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192)) local_unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #0 align 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 #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang5TType11isReferenceEv(ptr noundef nonnull align 8 dereferenceable(144)) 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 #1 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 #1 align 2

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #4

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 #5

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 #5

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(144), i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(328) %2, ptr noundef nonnull align 8 dereferenceable(184) %3) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"struct.glslang::TSampler", align 4
  %7 = alloca [2 x ptr], align 16
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.glslang::pool_allocator.14", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.glslang::pool_allocator.14", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.glslang::pool_allocator.14", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.glslang::pool_allocator.14", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.glslang::pool_allocator.14", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.glslang::pool_allocator.14", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.glslang::pool_allocator.14", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.glslang::pool_allocator.14", align 8
  %28 = load ptr, ptr %3, align 8, !tbaa !5
  %29 = getelementptr inbounds i8, ptr %28, i64 48
  %30 = load ptr, ptr %29, align 8
  %31 = tail call noundef ptr %30(ptr noundef nonnull align 8 dereferenceable(32) %3)
  %.not = icmp eq ptr %31, null
  %32 = load ptr, ptr %3, align 8, !tbaa !5
  br i1 %.not, label %49, label %33

33:                                               ; preds = %4
  %34 = getelementptr inbounds i8, ptr %32, i64 48
  %35 = load ptr, ptr %34, align 8
  %36 = tail call noundef ptr %35(ptr noundef nonnull align 8 dereferenceable(32) %3)
  %37 = load ptr, ptr %36, align 8, !tbaa !5
  %38 = getelementptr inbounds i8, ptr %37, i64 400
  %39 = load ptr, ptr %38, align 8
  %40 = tail call noundef nonnull align 8 dereferenceable(32) ptr %39(ptr noundef nonnull align 8 dereferenceable(352) %36)
  %41 = tail call noundef i64 @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  %.not371 = icmp eq i64 %41, 0
  br i1 %.not371, label %63, label %42

42:                                               ; preds = %33
  %43 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %40, i64 noundef 0) #6
  %44 = load ptr, ptr %43, align 8, !tbaa !8
  %45 = load ptr, ptr %44, align 8, !tbaa !5
  %46 = getelementptr inbounds i8, ptr %45, i64 24
  %47 = load ptr, ptr %46, align 8
  %48 = tail call noundef ptr %47(ptr noundef nonnull align 8 dereferenceable(32) %44)
  br label %63

49:                                               ; preds = %4
  %50 = getelementptr inbounds i8, ptr %32, i64 56
  %51 = load ptr, ptr %50, align 8
  %52 = tail call noundef ptr %51(ptr noundef nonnull align 8 dereferenceable(32) %3)
  %.not370 = icmp eq ptr %52, null
  br i1 %.not370, label %53, label %54

53:                                               ; preds = %49
  tail call void @__assert_fail(ptr noundef nonnull @.str.195, ptr noundef nonnull @.str.68, i32 noundef 2107, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE) #7
  unreachable

54:                                               ; preds = %49
  %55 = load ptr, ptr %3, align 8, !tbaa !5
  %56 = getelementptr inbounds i8, ptr %55, i64 56
  %57 = load ptr, ptr %56, align 8
  %58 = tail call noundef ptr %57(ptr noundef nonnull align 8 dereferenceable(32) %3)
  %59 = load ptr, ptr %58, align 8, !tbaa !5
  %60 = getelementptr inbounds i8, ptr %59, i64 392
  %61 = load ptr, ptr %60, align 8
  %62 = tail call noundef ptr %61(ptr noundef nonnull align 8 dereferenceable(240) %58)
  br label %63

63:                                               ; preds = %33, %42, %54
  %.0330 = phi ptr [ %48, %42 ], [ null, %33 ], [ %62, %54 ]
  %.0 = phi ptr [ %40, %42 ], [ %40, %33 ], [ null, %54 ]
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5)
  %64 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  switch i32 %64, label %.critedge [
    i32 633, label %67
    i32 634, label %67
    i32 635, label %67
    i32 654, label %334
    i32 655, label %334
    i32 656, label %334
    i32 662, label %403
    i32 663, label %403
    i32 664, label %403
    i32 416, label %408
    i32 417, label %466
    i32 622, label %513
    i32 624, label %513
    i32 625, label %513
    i32 626, label %513
    i32 628, label %513
    i32 630, label %513
    i32 632, label %513
    i32 693, label %673
    i32 694, label %681
    i32 695, label %689
    i32 699, label %730
    i32 700, label %738
    i32 707, label %779
    i32 710, label %779
    i32 711, label %779
    i32 712, label %779
    i32 713, label %779
    i32 714, label %779
    i32 715, label %779
    i32 716, label %779
    i32 717, label %779
    i32 719, label %779
    i32 720, label %779
    i32 723, label %779
    i32 724, label %779
    i32 617, label %787
    i32 593, label %787
    i32 598, label %788
    i32 599, label %788
    i32 600, label %788
    i32 601, label %788
    i32 602, label %788
    i32 603, label %788
    i32 604, label %788
    i32 605, label %788
    i32 606, label %788
    i32 607, label %788
    i32 423, label %1049
    i32 424, label %1049
    i32 425, label %1049
    i32 426, label %1049
    i32 427, label %1049
    i32 428, label %1049
    i32 429, label %1049
    i32 430, label %1049
    i32 431, label %1049
    i32 432, label %1049
    i32 433, label %1049
    i32 291, label %1286
    i32 292, label %1286
    i32 293, label %1286
    i32 294, label %1286
    i32 304, label %1376
    i32 305, label %1376
    i32 364, label %1387
    i32 365, label %1387
    i32 366, label %1387
    i32 367, label %1387
    i32 368, label %1387
    i32 369, label %1387
    i32 370, label %1387
    i32 329, label %1416
    i32 371, label %1416
    i32 306, label %1435
    i32 307, label %1435
    i32 219, label %1448
  ]

65:                                               ; preds = %.invoke509, %.invoke508, %.invoke483, %.invoke482, %.invoke, %1625, %1569, %1562, %1555, %1549, %1542, %1536, %1529, %1523, %1516, %1510, %1503, %1495, %1488, %1481, %1475, %1468, %1462, %1455, %1447, %1442, %1437, %1420, %1387, %1380, %1350, %1343, %1338, %1291, %1286, %1222, %1217, %1188, %1183, %1176, %1171, %1145, %1140, %1133, %1128, %1122, %1117, %1092, %1087, %1080, %1075, %1062, %1057, %1052, %787, %779, %738, %730, %689, %681, %673, %466, %408, %403, %76, %74, %72, %67
  %66 = landingpad { ptr, i32 }
          cleanup
  br label %1738

67:                                               ; preds = %63, %63, %63
  %68 = load ptr, ptr %2, align 8, !tbaa !5
  %69 = getelementptr inbounds i8, ptr %68, i64 24
  %70 = load ptr, ptr %69, align 8
  %71 = invoke noundef nonnull align 8 dereferenceable(40) ptr %70(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %72 unwind label %65

72:                                               ; preds = %67
  %73 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef nonnull align 8 dereferenceable(40) %71)
          to label %74 unwind label %65

74:                                               ; preds = %72
  %75 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef nonnull @.str.196)
          to label %76 unwind label %65

76:                                               ; preds = %74
  %77 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %5) #6
  invoke 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 %77)
          to label %78 unwind label %65

78:                                               ; preds = %76
  %79 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  switch i32 %79, label %.thread [
    i32 633, label %82
    i32 634, label %137
    i32 635, label %216
  ]

80:                                               ; preds = %.invoke484, %291, %265, %.thread470, %254, %243, %236, %229, %222, %217, %216, %206, %201, %200, %189, %182, %177, %168, %158, %153, %142, %137, %136, %126, %121, %120, %110, %105, %94, %89, %82
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %1738

82:                                               ; preds = %78
  %83 = load ptr, ptr %2, align 8, !tbaa !5
  %84 = getelementptr inbounds i8, ptr %83, i64 288
  %85 = load ptr, ptr %84, align 8
  %86 = invoke noundef i32 %85(ptr noundef nonnull align 8 dereferenceable(328) %2)
          to label %87 unwind label %80

87:                                               ; preds = %82
  %88 = icmp sgt i32 %86, 2
  br i1 %88, label %120, label %89

89:                                               ; preds = %87
  %90 = load ptr, ptr %2, align 8, !tbaa !5
  %91 = getelementptr inbounds i8, ptr %90, i64 320
  %92 = load ptr, ptr %91, align 8
  %93 = invoke noundef nonnull align 8 dereferenceable(24) ptr %92(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %94 unwind label %80

94:                                               ; preds = %89
  %95 = getelementptr inbounds i8, ptr %93, i64 8
  %96 = load ptr, ptr %95, align 8, !tbaa !11
  %97 = load ptr, ptr %96, align 8, !tbaa !5
  %98 = getelementptr inbounds i8, ptr %97, i64 72
  %99 = load ptr, ptr %98, align 8
  %100 = invoke noundef nonnull align 4 dereferenceable(4) ptr %99(ptr noundef nonnull align 8 dereferenceable(144) %96)
          to label %101 unwind label %80

101:                                              ; preds = %94
  %102 = load i32, ptr %100, align 4
  %103 = and i32 %102, 65280
  %104 = icmp eq i32 %103, 1280
  br i1 %104, label %120, label %105

105:                                              ; preds = %101
  %106 = load ptr, ptr %2, align 8, !tbaa !5
  %107 = getelementptr inbounds i8, ptr %106, i64 320
  %108 = load ptr, ptr %107, align 8
  %109 = invoke noundef nonnull align 8 dereferenceable(24) ptr %108(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %110 unwind label %80

110:                                              ; preds = %105
  %111 = getelementptr inbounds i8, ptr %109, i64 8
  %112 = load ptr, ptr %111, align 8, !tbaa !11
  %113 = load ptr, ptr %112, align 8, !tbaa !5
  %114 = getelementptr inbounds i8, ptr %113, i64 72
  %115 = load ptr, ptr %114, align 8
  %116 = invoke noundef nonnull align 4 dereferenceable(4) ptr %115(ptr noundef nonnull align 8 dereferenceable(144) %112)
          to label %117 unwind label %80

117:                                              ; preds = %110
  %118 = load i32, ptr %116, align 4
  %119 = and i32 %118, 131072
  %.not422 = icmp eq i32 %119, 0
  br i1 %.not422, label %136, label %120

120:                                              ; preds = %117, %101, %87
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 400, ptr noundef nonnull @.str.197, ptr noundef %77)
          to label %121 unwind label %80

121:                                              ; preds = %120
  %122 = load ptr, ptr %2, align 8, !tbaa !5
  %123 = getelementptr inbounds i8, ptr %122, i64 320
  %124 = load ptr, ptr %123, align 8
  %125 = invoke noundef nonnull align 8 dereferenceable(24) ptr %124(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %126 unwind label %80

126:                                              ; preds = %121
  %127 = getelementptr inbounds i8, ptr %125, i64 8
  %128 = load ptr, ptr %127, align 8, !tbaa !11
  %129 = load ptr, ptr %128, align 8, !tbaa !5
  %130 = getelementptr inbounds i8, ptr %129, i64 72
  %131 = load ptr, ptr %130, align 8
  %132 = invoke noundef nonnull align 4 dereferenceable(4) ptr %131(ptr noundef nonnull align 8 dereferenceable(144) %128)
          to label %133 unwind label %80

133:                                              ; preds = %126
  %134 = load i32, ptr %132, align 4
  %135 = and i32 %134, 131072
  %.not423 = icmp eq i32 %135, 0
  br i1 %.not423, label %.thread470, label %.thread

136:                                              ; preds = %117
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 400, ptr noundef nonnull @.str.198, ptr noundef %77)
          to label %.thread unwind label %80

137:                                              ; preds = %78
  %138 = load ptr, ptr %2, align 8, !tbaa !5
  %139 = getelementptr inbounds i8, ptr %138, i64 320
  %140 = load ptr, ptr %139, align 8
  %141 = invoke noundef nonnull align 8 dereferenceable(24) ptr %140(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %142 unwind label %80

142:                                              ; preds = %137
  %143 = getelementptr inbounds i8, ptr %141, i64 8
  %144 = load ptr, ptr %143, align 8, !tbaa !11
  %145 = load ptr, ptr %144, align 8, !tbaa !5
  %146 = getelementptr inbounds i8, ptr %145, i64 72
  %147 = load ptr, ptr %146, align 8
  %148 = invoke noundef nonnull align 4 dereferenceable(4) ptr %147(ptr noundef nonnull align 8 dereferenceable(144) %144)
          to label %149 unwind label %80

149:                                              ; preds = %142
  %150 = load i32, ptr %148, align 4
  %151 = and i32 %150, 65280
  %152 = icmp eq i32 %151, 512
  br i1 %152, label %153, label %175

153:                                              ; preds = %149
  %154 = load ptr, ptr %2, align 8, !tbaa !5
  %155 = getelementptr inbounds i8, ptr %154, i64 320
  %156 = load ptr, ptr %155, align 8
  %157 = invoke noundef nonnull align 8 dereferenceable(24) ptr %156(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %158 unwind label %80

158:                                              ; preds = %153
  %159 = getelementptr inbounds i8, ptr %157, i64 8
  %160 = load ptr, ptr %159, align 8, !tbaa !11
  %161 = load ptr, ptr %160, align 8, !tbaa !5
  %162 = getelementptr inbounds i8, ptr %161, i64 72
  %163 = load ptr, ptr %162, align 8
  %164 = invoke noundef nonnull align 4 dereferenceable(4) ptr %163(ptr noundef nonnull align 8 dereferenceable(144) %160)
          to label %165 unwind label %80

165:                                              ; preds = %158
  %166 = load i32, ptr %164, align 4
  %167 = and i32 %166, 131072
  %.not418 = icmp eq i32 %167, 0
  br i1 %.not418, label %168, label %175

168:                                              ; preds = %165
  %169 = load ptr, ptr %2, align 8, !tbaa !5
  %170 = getelementptr inbounds i8, ptr %169, i64 288
  %171 = load ptr, ptr %170, align 8
  %172 = invoke noundef i32 %171(ptr noundef nonnull align 8 dereferenceable(328) %2)
          to label %173 unwind label %80

173:                                              ; preds = %168
  %174 = icmp eq i32 %172, 3
  br i1 %174, label %.invoke484, label %175

175:                                              ; preds = %173, %165, %149
  br label %.invoke484

.invoke484:                                       ; preds = %173, %175
  %176 = phi ptr [ @.str.197, %175 ], [ @.str.198, %173 ]
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 400, ptr noundef nonnull %176, ptr noundef %77)
          to label %177 unwind label %80

177:                                              ; preds = %.invoke484
  %178 = load ptr, ptr %2, align 8, !tbaa !5
  %179 = getelementptr inbounds i8, ptr %178, i64 320
  %180 = load ptr, ptr %179, align 8
  %181 = invoke noundef nonnull align 8 dereferenceable(24) ptr %180(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %182 unwind label %80

182:                                              ; preds = %177
  %183 = getelementptr inbounds i8, ptr %181, i64 8
  %184 = load ptr, ptr %183, align 8, !tbaa !11
  %185 = load ptr, ptr %184, align 8, !tbaa !5
  %186 = getelementptr inbounds i8, ptr %185, i64 72
  %187 = load ptr, ptr %186, align 8
  %188 = invoke noundef nonnull align 4 dereferenceable(4) ptr %187(ptr noundef nonnull align 8 dereferenceable(144) %184)
          to label %189 unwind label %80

189:                                              ; preds = %182
  %190 = load i32, ptr %188, align 4
  %191 = and i32 %190, 131072
  %.not419 = icmp eq i32 %191, 0
  %192 = select i1 %.not419, i64 2, i64 3
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef %192) #6
  %194 = load ptr, ptr %193, align 8, !tbaa !8
  %195 = load ptr, ptr %194, align 8, !tbaa !5
  %196 = getelementptr inbounds i8, ptr %195, i64 40
  %197 = load ptr, ptr %196, align 8
  %198 = invoke noundef ptr %197(ptr noundef nonnull align 8 dereferenceable(32) %194)
          to label %199 unwind label %80

199:                                              ; preds = %189
  %.not420 = icmp eq ptr %198, null
  br i1 %.not420, label %200, label %201

200:                                              ; preds = %199
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 320, i32 noundef 2, ptr noundef nonnull @_ZN7glslangL15AEP_gpu_shader5E, ptr noundef nonnull @.str.199)
          to label %201 unwind label %80

201:                                              ; preds = %200, %199
  %202 = load ptr, ptr %2, align 8, !tbaa !5
  %203 = getelementptr inbounds i8, ptr %202, i64 320
  %204 = load ptr, ptr %203, align 8
  %205 = invoke noundef nonnull align 8 dereferenceable(24) ptr %204(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %206 unwind label %80

206:                                              ; preds = %201
  %207 = getelementptr inbounds i8, ptr %205, i64 8
  %208 = load ptr, ptr %207, align 8, !tbaa !11
  %209 = load ptr, ptr %208, align 8, !tbaa !5
  %210 = getelementptr inbounds i8, ptr %209, i64 72
  %211 = load ptr, ptr %210, align 8
  %212 = invoke noundef nonnull align 4 dereferenceable(4) ptr %211(ptr noundef nonnull align 8 dereferenceable(144) %208)
          to label %213 unwind label %80

213:                                              ; preds = %206
  %214 = load i32, ptr %212, align 4
  %215 = and i32 %214, 131072
  %.not421 = icmp eq i32 %215, 0
  br i1 %.not421, label %.thread470, label %.thread

216:                                              ; preds = %78
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 400, ptr noundef nonnull @.str.197, ptr noundef %77)
          to label %217 unwind label %80

217:                                              ; preds = %216
  %218 = load ptr, ptr %2, align 8, !tbaa !5
  %219 = getelementptr inbounds i8, ptr %218, i64 320
  %220 = load ptr, ptr %219, align 8
  %221 = invoke noundef nonnull align 8 dereferenceable(24) ptr %220(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %222 unwind label %80

222:                                              ; preds = %217
  %223 = getelementptr inbounds i8, ptr %221, i64 8
  %224 = load ptr, ptr %223, align 8, !tbaa !11
  %225 = load ptr, ptr %224, align 8, !tbaa !5
  %226 = getelementptr inbounds i8, ptr %225, i64 72
  %227 = load ptr, ptr %226, align 8
  %228 = invoke noundef nonnull align 4 dereferenceable(4) ptr %227(ptr noundef nonnull align 8 dereferenceable(144) %224)
          to label %229 unwind label %80

229:                                              ; preds = %222
  %230 = load i32, ptr %228, align 4
  %231 = and i32 %230, 131072
  %.not415 = icmp eq i32 %231, 0
  %232 = load ptr, ptr %2, align 8, !tbaa !5
  %233 = getelementptr inbounds i8, ptr %232, i64 320
  %234 = load ptr, ptr %233, align 8
  %235 = invoke noundef nonnull align 8 dereferenceable(24) ptr %234(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %236 unwind label %80

236:                                              ; preds = %229
  %237 = getelementptr inbounds i8, ptr %235, i64 8
  %238 = load ptr, ptr %237, align 8, !tbaa !11
  %239 = load ptr, ptr %238, align 8, !tbaa !5
  %240 = getelementptr inbounds i8, ptr %239, i64 72
  %241 = load ptr, ptr %240, align 8
  %242 = invoke noundef nonnull align 4 dereferenceable(4) ptr %241(ptr noundef nonnull align 8 dereferenceable(144) %238)
          to label %243 unwind label %80

243:                                              ; preds = %236
  %244 = load i32, ptr %242, align 4
  %245 = and i32 %244, 131072
  %.not416 = icmp eq i32 %245, 0
  %246 = select i1 %.not416, i64 2, i64 3
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef %246) #6
  %248 = load ptr, ptr %247, align 8, !tbaa !8
  %249 = load ptr, ptr %248, align 8, !tbaa !5
  %250 = getelementptr inbounds i8, ptr %249, i64 40
  %251 = load ptr, ptr %250, align 8
  %252 = invoke noundef ptr %251(ptr noundef nonnull align 8 dereferenceable(32) %248)
          to label %253 unwind label %80

253:                                              ; preds = %243
  %.not417 = icmp eq ptr %252, null
  br i1 %.not417, label %254, label %258

254:                                              ; preds = %253
  %255 = load ptr, ptr %0, align 8, !tbaa !5
  %256 = getelementptr inbounds i8, ptr %255, i64 336
  %257 = load ptr, ptr %256, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %257(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.200, ptr noundef %77, ptr noundef nonnull @.str.201)
          to label %258 unwind label %80

258:                                              ; preds = %253, %254
  br i1 %.not415, label %.thread470, label %.thread

.thread470:                                       ; preds = %213, %133, %258
  %.1358472 = phi i32 [ 3, %258 ], [ 2, %133 ], [ 3, %213 ]
  %259 = load ptr, ptr %2, align 8, !tbaa !5
  %260 = getelementptr inbounds i8, ptr %259, i64 288
  %261 = load ptr, ptr %260, align 8
  %262 = invoke noundef i32 %261(ptr noundef nonnull align 8 dereferenceable(328) %2)
          to label %263 unwind label %80

263:                                              ; preds = %.thread470
  %264 = icmp slt i32 %.1358472, %262
  br i1 %264, label %265, label %.thread

265:                                              ; preds = %263
  %266 = zext nneg i32 %.1358472 to i64
  %267 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef %266) #6
  %268 = load ptr, ptr %267, align 8, !tbaa !8
  %269 = load ptr, ptr %268, align 8, !tbaa !5
  %270 = getelementptr inbounds i8, ptr %269, i64 40
  %271 = load ptr, ptr %270, align 8
  %272 = invoke noundef ptr %271(ptr noundef nonnull align 8 dereferenceable(32) %268)
          to label %273 unwind label %80

273:                                              ; preds = %265
  %.not424 = icmp eq ptr %272, null
  br i1 %.not424, label %291, label %274

274:                                              ; preds = %273
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef %266) #6
  %276 = load ptr, ptr %275, align 8, !tbaa !8
  %277 = load ptr, ptr %276, align 8, !tbaa !5
  %278 = getelementptr inbounds i8, ptr %277, i64 40
  %279 = load ptr, ptr %278, align 8
  %280 = invoke noundef ptr %279(ptr noundef nonnull align 8 dereferenceable(32) %276)
          to label %281 unwind label %289

281:                                              ; preds = %274
  %282 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %280)
  %283 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %282, i64 noundef 0)
  %284 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %283)
  %or.cond = icmp ugt i32 %284, 3
  br i1 %or.cond, label %285, label %.thread

285:                                              ; preds = %281
  %286 = load ptr, ptr %0, align 8, !tbaa !5
  %287 = getelementptr inbounds i8, ptr %286, i64 336
  %288 = load ptr, ptr %287, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %288(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.202, ptr noundef %77, ptr noundef nonnull @.str.203)
          to label %.thread unwind label %289

289:                                              ; preds = %285, %274
  %290 = landingpad { ptr, i32 }
          cleanup
  br label %1738

291:                                              ; preds = %273
  %292 = load ptr, ptr %0, align 8, !tbaa !5
  %293 = getelementptr inbounds i8, ptr %292, i64 336
  %294 = load ptr, ptr %293, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %294(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.200, ptr noundef %77, ptr noundef nonnull @.str.203)
          to label %.thread unwind label %80

.thread:                                          ; preds = %213, %133, %136, %78, %281, %285, %291, %263, %258
  %295 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %296 = icmp eq i32 %295, 633
  br i1 %296, label %297, label %306

297:                                              ; preds = %.thread
  %298 = load ptr, ptr %2, align 8, !tbaa !5
  %299 = getelementptr inbounds i8, ptr %298, i64 288
  %300 = load ptr, ptr %299, align 8
  %301 = invoke noundef i32 %300(ptr noundef nonnull align 8 dereferenceable(328) %2)
          to label %302 unwind label %304

302:                                              ; preds = %297
  %303 = icmp sgt i32 %301, 3
  br i1 %303, label %319, label %.critedge

304:                                              ; preds = %330, %328, %326, %324, %319, %312, %297
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %1738

306:                                              ; preds = %.thread
  %307 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %308 = icmp eq i32 %307, 634
  br i1 %308, label %312, label %309

309:                                              ; preds = %306
  %310 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %311 = icmp eq i32 %310, 635
  br i1 %311, label %312, label %.critedge

312:                                              ; preds = %309, %306
  %313 = load ptr, ptr %2, align 8, !tbaa !5
  %314 = getelementptr inbounds i8, ptr %313, i64 288
  %315 = load ptr, ptr %314, align 8
  %316 = invoke noundef i32 %315(ptr noundef nonnull align 8 dereferenceable(328) %2)
          to label %317 unwind label %304

317:                                              ; preds = %312
  %318 = icmp sgt i32 %316, 4
  br i1 %318, label %319, label %.critedge

319:                                              ; preds = %302, %317
  %320 = load ptr, ptr %2, align 8, !tbaa !5
  %321 = getelementptr inbounds i8, ptr %320, i64 24
  %322 = load ptr, ptr %321, align 8
  %323 = invoke noundef nonnull align 8 dereferenceable(40) ptr %322(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %324 unwind label %304

324:                                              ; preds = %319
  %325 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef nonnull align 8 dereferenceable(40) %323)
          to label %326 unwind label %304

326:                                              ; preds = %324
  %327 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef nonnull @.str.204)
          to label %328 unwind label %304

328:                                              ; preds = %326
  %329 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %5) #6
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 450, ptr noundef null, ptr noundef %329)
          to label %330 unwind label %304

330:                                              ; preds = %328
  %331 = load ptr, ptr %0, align 8, !tbaa !5
  %332 = getelementptr inbounds i8, ptr %331, i64 40
  %333 = load ptr, ptr %332, align 8
  invoke void %333(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL32E_GL_AMD_texture_gather_bias_lodE, ptr noundef %329)
          to label %.critedge unwind label %304

334:                                              ; preds = %63, %63, %63
  %335 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %336 = icmp eq i32 %335, 654
  br i1 %336, label %337, label %346

337:                                              ; preds = %334
  %338 = load ptr, ptr %2, align 8, !tbaa !5
  %339 = getelementptr inbounds i8, ptr %338, i64 288
  %340 = load ptr, ptr %339, align 8
  %341 = invoke noundef i32 %340(ptr noundef nonnull align 8 dereferenceable(328) %2)
          to label %342 unwind label %344

342:                                              ; preds = %337
  %343 = icmp sgt i32 %341, 4
  br i1 %343, label %359, label %.critedge453

344:                                              ; preds = %370, %368, %366, %364, %359, %352, %337
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %1738

346:                                              ; preds = %334
  %347 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %348 = icmp eq i32 %347, 655
  br i1 %348, label %352, label %349

349:                                              ; preds = %346
  %350 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %351 = icmp eq i32 %350, 656
  br i1 %351, label %352, label %.critedge453

352:                                              ; preds = %349, %346
  %353 = load ptr, ptr %2, align 8, !tbaa !5
  %354 = getelementptr inbounds i8, ptr %353, i64 288
  %355 = load ptr, ptr %354, align 8
  %356 = invoke noundef i32 %355(ptr noundef nonnull align 8 dereferenceable(328) %2)
          to label %357 unwind label %344

357:                                              ; preds = %352
  %358 = icmp sgt i32 %356, 5
  br i1 %358, label %359, label %.critedge453

359:                                              ; preds = %342, %357
  %360 = load ptr, ptr %2, align 8, !tbaa !5
  %361 = getelementptr inbounds i8, ptr %360, i64 24
  %362 = load ptr, ptr %361, align 8
  %363 = invoke noundef nonnull align 8 dereferenceable(40) ptr %362(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %364 unwind label %344

364:                                              ; preds = %359
  %365 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEaSERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef nonnull align 8 dereferenceable(40) %363)
          to label %366 unwind label %344

366:                                              ; preds = %364
  %367 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef nonnull @.str.204)
          to label %368 unwind label %344

368:                                              ; preds = %366
  %369 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %5) #6
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 450, ptr noundef null, ptr noundef %369)
          to label %370 unwind label %344

370:                                              ; preds = %368
  %371 = load ptr, ptr %0, align 8, !tbaa !5
  %372 = getelementptr inbounds i8, ptr %371, i64 40
  %373 = load ptr, ptr %372, align 8
  invoke void %373(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL32E_GL_AMD_texture_gather_bias_lodE, ptr noundef %369)
          to label %.critedge453 unwind label %344

.critedge453:                                     ; preds = %342, %349, %370, %357
  %374 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %375 = icmp eq i32 %374, 656
  br i1 %375, label %376, label %.critedge

376:                                              ; preds = %.critedge453
  %377 = load ptr, ptr %.0330, align 8, !tbaa !5
  %378 = getelementptr inbounds i8, ptr %377, i64 240
  %379 = load ptr, ptr %378, align 8
  %380 = invoke noundef nonnull align 8 dereferenceable(144) ptr %379(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %381 unwind label %401

381:                                              ; preds = %376
  %382 = load ptr, ptr %380, align 8, !tbaa !5
  %383 = getelementptr inbounds i8, ptr %382, i64 64
  %384 = load ptr, ptr %383, align 8
  %385 = invoke noundef nonnull align 4 dereferenceable(4) ptr %384(ptr noundef nonnull align 8 dereferenceable(144) %380)
          to label %386 unwind label %401

386:                                              ; preds = %381
  %387 = load i32, ptr %385, align 4
  %388 = and i32 %387, 131072
  %.not411 = icmp eq i32 %388, 0
  %389 = select i1 %.not411, i64 2, i64 3
  %390 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef %389) #6
  %391 = load ptr, ptr %390, align 8, !tbaa !8
  %392 = load ptr, ptr %391, align 8, !tbaa !5
  %393 = getelementptr inbounds i8, ptr %392, i64 40
  %394 = load ptr, ptr %393, align 8
  %395 = invoke noundef ptr %394(ptr noundef nonnull align 8 dereferenceable(32) %391)
          to label %396 unwind label %401

396:                                              ; preds = %386
  %.not412 = icmp eq ptr %395, null
  br i1 %.not412, label %397, label %.critedge

397:                                              ; preds = %396
  %398 = load ptr, ptr %0, align 8, !tbaa !5
  %399 = getelementptr inbounds i8, ptr %398, i64 336
  %400 = load ptr, ptr %399, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %400(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.205, ptr noundef nonnull @.str.206, ptr noundef nonnull @.str.2)
          to label %.critedge unwind label %401

401:                                              ; preds = %397, %386, %381, %376
  %402 = landingpad { ptr, i32 }
          cleanup
  br label %1738

403:                                              ; preds = %63, %63, %63
  %404 = load ptr, ptr %2, align 8, !tbaa !5
  %405 = getelementptr inbounds i8, ptr %404, i64 24
  %406 = load ptr, ptr %405, align 8
  %407 = invoke noundef nonnull align 8 dereferenceable(40) ptr %406(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke unwind label %65

408:                                              ; preds = %63
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %410 = load ptr, ptr %409, align 8, !tbaa !8
  %411 = load ptr, ptr %410, align 8, !tbaa !5
  %412 = getelementptr inbounds i8, ptr %411, i64 40
  %413 = load ptr, ptr %412, align 8
  %414 = invoke noundef ptr %413(ptr noundef nonnull align 8 dereferenceable(32) %410)
          to label %415 unwind label %65

415:                                              ; preds = %408
  %.not410 = icmp eq ptr %414, null
  br i1 %.not410, label %.invoke482, label %416

416:                                              ; preds = %415
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %418 = load ptr, ptr %417, align 8, !tbaa !8
  %419 = load ptr, ptr %418, align 8, !tbaa !5
  %420 = getelementptr inbounds i8, ptr %419, i64 40
  %421 = load ptr, ptr %420, align 8
  %422 = invoke noundef ptr %421(ptr noundef nonnull align 8 dereferenceable(32) %418)
          to label %423 unwind label %464

423:                                              ; preds = %416
  %424 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %422)
  %425 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %424, i64 noundef 0)
  %426 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %425)
  %427 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %428 = load ptr, ptr %427, align 8, !tbaa !8
  %429 = load ptr, ptr %428, align 8, !tbaa !5
  %430 = getelementptr inbounds i8, ptr %429, i64 40
  %431 = load ptr, ptr %430, align 8
  %432 = invoke noundef ptr %431(ptr noundef nonnull align 8 dereferenceable(32) %428)
          to label %433 unwind label %464

433:                                              ; preds = %423
  %434 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %432)
  %435 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %434, i64 noundef 1)
  %436 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %435)
  %437 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %438 = load ptr, ptr %437, align 8, !tbaa !8
  %439 = load ptr, ptr %438, align 8, !tbaa !5
  %440 = getelementptr inbounds i8, ptr %439, i64 40
  %441 = load ptr, ptr %440, align 8
  %442 = invoke noundef ptr %441(ptr noundef nonnull align 8 dereferenceable(32) %438)
          to label %443 unwind label %464

443:                                              ; preds = %433
  %444 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %442)
  %445 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %444, i64 noundef 2)
  %446 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %445)
  %447 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %448 = load ptr, ptr %447, align 8, !tbaa !8
  %449 = load ptr, ptr %448, align 8, !tbaa !5
  %450 = getelementptr inbounds i8, ptr %449, i64 40
  %451 = load ptr, ptr %450, align 8
  %452 = invoke noundef ptr %451(ptr noundef nonnull align 8 dereferenceable(32) %448)
          to label %453 unwind label %464

453:                                              ; preds = %443
  %454 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %452)
  %455 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %454, i64 noundef 3)
  %456 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %455)
  %457 = or i32 %436, %426
  %458 = or i32 %457, %446
  %459 = or i32 %458, %456
  %or.cond10.not = icmp ult i32 %459, 4
  br i1 %or.cond10.not, label %.critedge, label %460

460:                                              ; preds = %453
  %461 = load ptr, ptr %0, align 8, !tbaa !5
  %462 = getelementptr inbounds i8, ptr %461, i64 336
  %463 = load ptr, ptr %462, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %463(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.208, ptr noundef nonnull @.str.207, ptr noundef nonnull @.str.2)
          to label %.critedge unwind label %464

464:                                              ; preds = %460, %443, %433, %423, %416
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %1738

466:                                              ; preds = %63
  %467 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %468 = load ptr, ptr %467, align 8, !tbaa !8
  %469 = load ptr, ptr %468, align 8, !tbaa !5
  %470 = getelementptr inbounds i8, ptr %469, i64 40
  %471 = load ptr, ptr %470, align 8
  %472 = invoke noundef ptr %471(ptr noundef nonnull align 8 dereferenceable(32) %468)
          to label %473 unwind label %65

473:                                              ; preds = %466
  %.not409 = icmp eq ptr %472, null
  br i1 %.not409, label %.invoke482, label %474

474:                                              ; preds = %473
  %475 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %476 = load ptr, ptr %475, align 8, !tbaa !8
  %477 = load ptr, ptr %476, align 8, !tbaa !5
  %478 = getelementptr inbounds i8, ptr %477, i64 40
  %479 = load ptr, ptr %478, align 8
  %480 = invoke noundef ptr %479(ptr noundef nonnull align 8 dereferenceable(32) %476)
          to label %481 unwind label %511

481:                                              ; preds = %474
  %482 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %480)
  %483 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %482, i64 noundef 0)
  %484 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %483)
  %485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %486 = load ptr, ptr %485, align 8, !tbaa !8
  %487 = load ptr, ptr %486, align 8, !tbaa !5
  %488 = getelementptr inbounds i8, ptr %487, i64 40
  %489 = load ptr, ptr %488, align 8
  %490 = invoke noundef ptr %489(ptr noundef nonnull align 8 dereferenceable(32) %486)
          to label %491 unwind label %511

491:                                              ; preds = %481
  %492 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %490)
  %493 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %492, i64 noundef 1)
  %494 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %493)
  %495 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %496 = load ptr, ptr %495, align 8, !tbaa !8
  %497 = load ptr, ptr %496, align 8, !tbaa !5
  %498 = getelementptr inbounds i8, ptr %497, i64 40
  %499 = load ptr, ptr %498, align 8
  %500 = invoke noundef ptr %499(ptr noundef nonnull align 8 dereferenceable(32) %496)
          to label %501 unwind label %511

501:                                              ; preds = %491
  %502 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %500)
  %503 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %502, i64 noundef 2)
  %504 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %503)
  %505 = or i32 %494, %484
  %506 = or i32 %505, %504
  %or.cond16.not = icmp ult i32 %506, 32
  br i1 %or.cond16.not, label %.critedge, label %507

507:                                              ; preds = %501
  %508 = load ptr, ptr %0, align 8, !tbaa !5
  %509 = getelementptr inbounds i8, ptr %508, i64 336
  %510 = load ptr, ptr %509, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %510(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.210, ptr noundef nonnull @.str.209, ptr noundef nonnull @.str.2)
          to label %.critedge unwind label %511

511:                                              ; preds = %507, %491, %481, %474
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %1738

513:                                              ; preds = %63, %63, %63, %63, %63, %63, %63
  %514 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  switch i32 %514, label %534 [
    i32 622, label %535
    i32 624, label %517
    i32 625, label %535
    i32 626, label %530
    i32 628, label %531
    i32 630, label %532
    i32 632, label %533
  ]

515:                                              ; preds = %522, %517
  %516 = landingpad { ptr, i32 }
          cleanup
  br label %1738

517:                                              ; preds = %513
  %518 = load ptr, ptr %.0330, align 8, !tbaa !5
  %519 = getelementptr inbounds i8, ptr %518, i64 240
  %520 = load ptr, ptr %519, align 8
  %521 = invoke noundef nonnull align 8 dereferenceable(144) ptr %520(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %522 unwind label %515

522:                                              ; preds = %517
  %523 = load ptr, ptr %521, align 8, !tbaa !5
  %524 = getelementptr inbounds i8, ptr %523, i64 64
  %525 = load ptr, ptr %524, align 8
  %526 = invoke noundef nonnull align 4 dereferenceable(4) ptr %525(ptr noundef nonnull align 8 dereferenceable(144) %521)
          to label %527 unwind label %515

527:                                              ; preds = %522
  %528 = call noundef zeroext i1 @_ZNK7glslang8TSampler6isRectEv(ptr noundef nonnull align 4 dereferenceable(4) %526)
  %529 = select i1 %528, i32 2, i32 3
  br label %535

530:                                              ; preds = %513
  br label %535

531:                                              ; preds = %513
  br label %535

532:                                              ; preds = %513
  br label %535

533:                                              ; preds = %513
  br label %535

534:                                              ; preds = %513
  call void @__assert_fail(ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.68, i32 noundef 2278, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE) #7
  unreachable

535:                                              ; preds = %527, %530, %531, %532, %533, %513, %513
  %.0361 = phi i32 [ 4, %533 ], [ 4, %532 ], [ 3, %531 ], [ 3, %530 ], [ %529, %527 ], [ 2, %513 ], [ 2, %513 ]
  %536 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %537 = load ptr, ptr %536, align 8, !tbaa !8
  %538 = load ptr, ptr %537, align 8, !tbaa !5
  %539 = getelementptr inbounds i8, ptr %538, i64 24
  %540 = load ptr, ptr %539, align 8
  %541 = invoke noundef ptr %540(ptr noundef nonnull align 8 dereferenceable(32) %537)
          to label %542 unwind label %571

542:                                              ; preds = %535
  %543 = load ptr, ptr %541, align 8, !tbaa !5
  %544 = getelementptr inbounds i8, ptr %543, i64 256
  %545 = load ptr, ptr %544, align 8
  %546 = invoke noundef i32 %545(ptr noundef nonnull align 8 dereferenceable(176) %541)
          to label %547 unwind label %571

547:                                              ; preds = %542
  %548 = icmp eq i32 %546, 3
  br i1 %548, label %549, label %.thread473

549:                                              ; preds = %547
  %550 = load ptr, ptr %.0330, align 8, !tbaa !5
  %551 = getelementptr inbounds i8, ptr %550, i64 240
  %552 = load ptr, ptr %551, align 8
  %553 = invoke noundef nonnull align 8 dereferenceable(144) ptr %552(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %554 unwind label %571

554:                                              ; preds = %549
  %555 = load ptr, ptr %553, align 8, !tbaa !5
  %556 = getelementptr inbounds i8, ptr %555, i64 64
  %557 = load ptr, ptr %556, align 8
  %558 = invoke noundef nonnull align 4 dereferenceable(4) ptr %557(ptr noundef nonnull align 8 dereferenceable(144) %553)
          to label %559 unwind label %571

559:                                              ; preds = %554
  %560 = load i32, ptr %558, align 4
  %.fr477 = freeze i32 %560
  %561 = lshr i32 %.fr477, 17
  %562 = and i32 %561, 1
  %spec.select = add nuw nsw i32 %562, %.0361
  br label %.thread473

.thread473:                                       ; preds = %559, %547
  %563 = phi i32 [ %.0361, %547 ], [ %spec.select, %559 ]
  %564 = zext nneg i32 %563 to i64
  %565 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef %564) #6
  %566 = load ptr, ptr %565, align 8, !tbaa !8
  %567 = load ptr, ptr %566, align 8, !tbaa !5
  %568 = getelementptr inbounds i8, ptr %567, i64 24
  %569 = load ptr, ptr %568, align 8
  %570 = invoke noundef ptr %569(ptr noundef nonnull align 8 dereferenceable(32) %566)
          to label %573 unwind label %571

571:                                              ; preds = %585, %581, %578, %573, %.thread473, %554, %549, %542, %535
  %572 = landingpad { ptr, i32 }
          cleanup
  br label %1738

573:                                              ; preds = %.thread473
  %574 = load ptr, ptr %570, align 8, !tbaa !5
  %575 = getelementptr inbounds i8, ptr %574, i64 264
  %576 = load ptr, ptr %575, align 8
  %577 = invoke noundef nonnull align 8 dereferenceable(72) ptr %576(ptr noundef nonnull align 8 dereferenceable(176) %570)
          to label %578 unwind label %571

578:                                              ; preds = %573
  %579 = invoke noundef zeroext i1 @_ZNK7glslang10TQualifier10isConstantEv(ptr noundef nonnull align 8 dereferenceable(72) %577)
          to label %580 unwind label %571

580:                                              ; preds = %578
  br i1 %579, label %585, label %581

581:                                              ; preds = %580
  %582 = load ptr, ptr %0, align 8, !tbaa !5
  %583 = getelementptr inbounds i8, ptr %582, i64 336
  %584 = load ptr, ptr %583, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %584(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.205, ptr noundef nonnull @.str.211, ptr noundef nonnull @.str.2)
          to label %.loopexit unwind label %571

585:                                              ; preds = %580
  %586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef %564) #6
  %587 = load ptr, ptr %586, align 8, !tbaa !8
  %588 = load ptr, ptr %587, align 8, !tbaa !5
  %589 = getelementptr inbounds i8, ptr %588, i64 40
  %590 = load ptr, ptr %589, align 8
  %591 = invoke noundef ptr %590(ptr noundef nonnull align 8 dereferenceable(32) %587)
          to label %592 unwind label %571

592:                                              ; preds = %585
  %.not403 = icmp eq ptr %591, null
  br i1 %.not403, label %.loopexit, label %593

593:                                              ; preds = %592
  %594 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef %564) #6
  %595 = load ptr, ptr %594, align 8, !tbaa !8
  %596 = load ptr, ptr %595, align 8, !tbaa !5
  %597 = getelementptr inbounds i8, ptr %596, i64 24
  %598 = load ptr, ptr %597, align 8
  %599 = invoke noundef ptr %598(ptr noundef nonnull align 8 dereferenceable(32) %595)
          to label %600 unwind label %615

600:                                              ; preds = %593
  %601 = load ptr, ptr %599, align 8, !tbaa !5
  %602 = getelementptr inbounds i8, ptr %601, i64 240
  %603 = load ptr, ptr %602, align 8
  %604 = invoke noundef nonnull align 8 dereferenceable(144) ptr %603(ptr noundef nonnull align 8 dereferenceable(176) %599)
          to label %.preheader unwind label %615

.preheader:                                       ; preds = %600
  %605 = getelementptr inbounds i8, ptr %0, i64 1424
  %606 = getelementptr inbounds i8, ptr %0, i64 1420
  br label %607

607:                                              ; preds = %.preheader, %640
  %indvars.iv = phi i64 [ 0, %.preheader ], [ %indvars.iv.next, %640 ]
  %608 = load ptr, ptr %604, align 8, !tbaa !5
  %609 = getelementptr inbounds i8, ptr %608, i64 96
  %610 = load ptr, ptr %609, align 8
  %611 = invoke noundef i32 %610(ptr noundef nonnull align 8 dereferenceable(144) %604)
          to label %612 unwind label %617

612:                                              ; preds = %607
  %613 = sext i32 %611 to i64
  %614 = icmp slt i64 %indvars.iv, %613
  br i1 %614, label %619, label %.loopexit

615:                                              ; preds = %600, %593
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %1738

617:                                              ; preds = %607
  %618 = landingpad { ptr, i32 }
          cleanup
  br label %1738

619:                                              ; preds = %612
  %620 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef %564) #6
  %621 = load ptr, ptr %620, align 8, !tbaa !8
  %622 = load ptr, ptr %621, align 8, !tbaa !5
  %623 = getelementptr inbounds i8, ptr %622, i64 40
  %624 = load ptr, ptr %623, align 8
  %625 = invoke noundef ptr %624(ptr noundef nonnull align 8 dereferenceable(32) %621)
          to label %626 unwind label %638

626:                                              ; preds = %619
  %627 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %625)
  %628 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %627, i64 noundef %indvars.iv)
  %629 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %628)
  %630 = load i32, ptr %605, align 8, !tbaa !13
  %631 = icmp sgt i32 %629, %630
  %632 = load i32, ptr %606, align 4
  %633 = icmp slt i32 %629, %632
  %or.cond457 = select i1 %631, i1 true, i1 %633
  br i1 %or.cond457, label %634, label %640

634:                                              ; preds = %626
  %635 = load ptr, ptr %0, align 8, !tbaa !5
  %636 = getelementptr inbounds i8, ptr %635, i64 336
  %637 = load ptr, ptr %636, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %637(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.212, ptr noundef nonnull @.str.211, ptr noundef nonnull @.str.213)
          to label %640 unwind label %638

638:                                              ; preds = %634, %619
  %639 = landingpad { ptr, i32 }
          cleanup
  br label %1738

640:                                              ; preds = %626, %634
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  br label %607, !llvm.loop !111

.loopexit:                                        ; preds = %612, %592, %581
  %641 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %642 = icmp eq i32 %641, 622
  br i1 %642, label %643, label %.critedge

643:                                              ; preds = %.loopexit
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  %644 = load ptr, ptr %.0330, align 8, !tbaa !5
  %645 = getelementptr inbounds i8, ptr %644, i64 240
  %646 = load ptr, ptr %645, align 8
  %647 = invoke noundef nonnull align 8 dereferenceable(144) ptr %646(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %648 unwind label %662

648:                                              ; preds = %643
  %649 = load ptr, ptr %647, align 8, !tbaa !5
  %650 = getelementptr inbounds i8, ptr %649, i64 64
  %651 = load ptr, ptr %650, align 8
  %652 = invoke noundef nonnull align 4 dereferenceable(4) ptr %651(ptr noundef nonnull align 8 dereferenceable(144) %647)
          to label %653 unwind label %662

653:                                              ; preds = %648
  %654 = load i32, ptr %652, align 4, !tbaa !113
  store i32 %654, ptr %6, align 4, !tbaa !113
  %655 = call noundef zeroext i1 @_ZNK7glslang8TSampler4is2DEv(ptr noundef nonnull align 4 dereferenceable(4) %6)
  br i1 %655, label %656, label %672

656:                                              ; preds = %653
  %657 = call noundef zeroext i1 @_ZNK7glslang8TSampler9isArrayedEv(ptr noundef nonnull align 4 dereferenceable(4) %6)
  br i1 %657, label %658, label %672

658:                                              ; preds = %656
  %659 = call noundef zeroext i1 @_ZNK7glslang8TSampler8isShadowEv(ptr noundef nonnull align 4 dereferenceable(4) %6)
  br i1 %659, label %660, label %672

660:                                              ; preds = %658
  %661 = call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %0)
  br i1 %661, label %.invoke485, label %664

662:                                              ; preds = %.invoke485, %648, %643
  %663 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  br label %1738

664:                                              ; preds = %660
  %665 = getelementptr inbounds i8, ptr %0, i64 24
  %666 = load i32, ptr %665, align 8, !tbaa !114
  %667 = icmp slt i32 %666, 421
  br i1 %667, label %.invoke485, label %672

.invoke485:                                       ; preds = %664, %660
  %668 = phi ptr [ @.str.216, %660 ], [ @.str.217, %664 ]
  %669 = load ptr, ptr %0, align 8, !tbaa !5
  %670 = getelementptr inbounds i8, ptr %669, i64 336
  %671 = load ptr, ptr %670, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %671(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.214, ptr noundef nonnull @.str.215, ptr noundef nonnull %668)
          to label %672 unwind label %662

672:                                              ; preds = %.invoke485, %664, %658, %656, %653
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  br label %.critedge

673:                                              ; preds = %63
  %674 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 10) #6
  %675 = load ptr, ptr %674, align 8, !tbaa !8
  %676 = load ptr, ptr %675, align 8, !tbaa !5
  %677 = getelementptr inbounds i8, ptr %676, i64 40
  %678 = load ptr, ptr %677, align 8
  %679 = invoke noundef ptr %678(ptr noundef nonnull align 8 dereferenceable(32) %675)
          to label %680 unwind label %65

680:                                              ; preds = %673
  %.not402 = icmp eq ptr %679, null
  br i1 %.not402, label %.invoke482, label %.critedge

681:                                              ; preds = %63
  %682 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 11) #6
  %683 = load ptr, ptr %682, align 8, !tbaa !8
  %684 = load ptr, ptr %683, align 8, !tbaa !5
  %685 = getelementptr inbounds i8, ptr %684, i64 40
  %686 = load ptr, ptr %685, align 8
  %687 = invoke noundef ptr %686(ptr noundef nonnull align 8 dereferenceable(32) %683)
          to label %688 unwind label %65

688:                                              ; preds = %681
  %.not401 = icmp eq ptr %687, null
  br i1 %.not401, label %.invoke482, label %.critedge

689:                                              ; preds = %63
  %690 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 10) #6
  %691 = load ptr, ptr %690, align 8, !tbaa !8
  %692 = load ptr, ptr %691, align 8, !tbaa !5
  %693 = getelementptr inbounds i8, ptr %692, i64 40
  %694 = load ptr, ptr %693, align 8
  %695 = invoke noundef ptr %694(ptr noundef nonnull align 8 dereferenceable(32) %691)
          to label %696 unwind label %65

696:                                              ; preds = %689
  %.not400 = icmp eq ptr %695, null
  br i1 %.not400, label %.invoke482, label %697

697:                                              ; preds = %696
  %698 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 10) #6
  %699 = load ptr, ptr %698, align 8, !tbaa !8
  %700 = load ptr, ptr %699, align 8, !tbaa !5
  %701 = getelementptr inbounds i8, ptr %700, i64 40
  %702 = load ptr, ptr %701, align 8
  %703 = invoke noundef ptr %702(ptr noundef nonnull align 8 dereferenceable(32) %699)
          to label %704 unwind label %728

704:                                              ; preds = %697
  %705 = load ptr, ptr %703, align 8, !tbaa !5
  %706 = getelementptr inbounds i8, ptr %705, i64 40
  %707 = load ptr, ptr %706, align 8
  %708 = invoke noundef ptr %707(ptr noundef nonnull align 8 dereferenceable(193) %703)
          to label %709 unwind label %728

709:                                              ; preds = %704
  %710 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %708)
  %711 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %710, i64 noundef 0)
  %712 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %711)
  %713 = load ptr, ptr %0, align 8, !tbaa !5
  %714 = getelementptr inbounds i8, ptr %713, i64 64
  %715 = load ptr, ptr %714, align 8
  %716 = invoke noundef zeroext i1 %715(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull @.str.220)
          to label %717 unwind label %728

717:                                              ; preds = %709
  br i1 %716, label %.critedge, label %718

718:                                              ; preds = %717
  %719 = getelementptr inbounds i8, ptr %0, i64 56
  %720 = load ptr, ptr %719, align 8, !tbaa !115
  %721 = invoke noundef i32 @_ZN7glslang13TIntermediate15checkLocationRTEii(ptr noundef nonnull align 8 dereferenceable(1784) %720, i32 noundef 0, i32 noundef %712)
          to label %722 unwind label %728

722:                                              ; preds = %718
  %723 = icmp slt i32 %721, 0
  br i1 %723, label %724, label %.critedge

724:                                              ; preds = %722
  %725 = load ptr, ptr %0, align 8, !tbaa !5
  %726 = getelementptr inbounds i8, ptr %725, i64 336
  %727 = load ptr, ptr %726, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %727(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.221, ptr noundef nonnull @.str.222, ptr noundef nonnull @.str.223, i32 noundef %712)
          to label %.critedge unwind label %728

728:                                              ; preds = %724, %718, %709, %704, %697
  %729 = landingpad { ptr, i32 }
          cleanup
  br label %1738

730:                                              ; preds = %63
  %731 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %732 = load ptr, ptr %731, align 8, !tbaa !8
  %733 = load ptr, ptr %732, align 8, !tbaa !5
  %734 = getelementptr inbounds i8, ptr %733, i64 40
  %735 = load ptr, ptr %734, align 8
  %736 = invoke noundef ptr %735(ptr noundef nonnull align 8 dereferenceable(32) %732)
          to label %737 unwind label %65

737:                                              ; preds = %730
  %.not399 = icmp eq ptr %736, null
  br i1 %.not399, label %.invoke482, label %.critedge

738:                                              ; preds = %63
  %739 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %740 = load ptr, ptr %739, align 8, !tbaa !8
  %741 = load ptr, ptr %740, align 8, !tbaa !5
  %742 = getelementptr inbounds i8, ptr %741, i64 40
  %743 = load ptr, ptr %742, align 8
  %744 = invoke noundef ptr %743(ptr noundef nonnull align 8 dereferenceable(32) %740)
          to label %745 unwind label %65

745:                                              ; preds = %738
  %.not398 = icmp eq ptr %744, null
  br i1 %.not398, label %.invoke482, label %746

746:                                              ; preds = %745
  %747 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %748 = load ptr, ptr %747, align 8, !tbaa !8
  %749 = load ptr, ptr %748, align 8, !tbaa !5
  %750 = getelementptr inbounds i8, ptr %749, i64 40
  %751 = load ptr, ptr %750, align 8
  %752 = invoke noundef ptr %751(ptr noundef nonnull align 8 dereferenceable(32) %748)
          to label %753 unwind label %777

753:                                              ; preds = %746
  %754 = load ptr, ptr %752, align 8, !tbaa !5
  %755 = getelementptr inbounds i8, ptr %754, i64 40
  %756 = load ptr, ptr %755, align 8
  %757 = invoke noundef ptr %756(ptr noundef nonnull align 8 dereferenceable(193) %752)
          to label %758 unwind label %777

758:                                              ; preds = %753
  %759 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %757)
  %760 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %759, i64 noundef 0)
  %761 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %760)
  %762 = load ptr, ptr %0, align 8, !tbaa !5
  %763 = getelementptr inbounds i8, ptr %762, i64 64
  %764 = load ptr, ptr %763, align 8
  %765 = invoke noundef zeroext i1 %764(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull @.str.220)
          to label %766 unwind label %777

766:                                              ; preds = %758
  br i1 %765, label %.critedge, label %767

767:                                              ; preds = %766
  %768 = getelementptr inbounds i8, ptr %0, i64 56
  %769 = load ptr, ptr %768, align 8, !tbaa !115
  %770 = invoke noundef i32 @_ZN7glslang13TIntermediate15checkLocationRTEii(ptr noundef nonnull align 8 dereferenceable(1784) %769, i32 noundef 1, i32 noundef %761)
          to label %771 unwind label %777

771:                                              ; preds = %767
  %772 = icmp slt i32 %770, 0
  br i1 %772, label %773, label %.critedge

773:                                              ; preds = %771
  %774 = load ptr, ptr %0, align 8, !tbaa !5
  %775 = getelementptr inbounds i8, ptr %774, i64 336
  %776 = load ptr, ptr %775, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %776(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.221, ptr noundef nonnull @.str.225, ptr noundef nonnull @.str.223, i32 noundef %761)
          to label %.critedge unwind label %777

777:                                              ; preds = %773, %767, %758, %753, %746
  %778 = landingpad { ptr, i32 }
          cleanup
  br label %1738

779:                                              ; preds = %63, %63, %63, %63, %63, %63, %63, %63, %63, %63, %63, %63, %63
  %780 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %781 = load ptr, ptr %780, align 8, !tbaa !8
  %782 = load ptr, ptr %781, align 8, !tbaa !5
  %783 = getelementptr inbounds i8, ptr %782, i64 40
  %784 = load ptr, ptr %783, align 8
  %785 = invoke noundef ptr %784(ptr noundef nonnull align 8 dereferenceable(32) %781)
          to label %786 unwind label %65

786:                                              ; preds = %779
  %.not397 = icmp eq ptr %785, null
  br i1 %.not397, label %.invoke482, label %.critedge

787:                                              ; preds = %63, %63
  invoke void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 450, ptr noundef nonnull @.str.227, ptr noundef nonnull @.str.228)
          to label %.critedge unwind label %65

788:                                              ; preds = %63, %63, %63, %63, %63, %63, %63, %63, %63, %63
  %789 = load ptr, ptr %.0330, align 8, !tbaa !5
  %790 = getelementptr inbounds i8, ptr %789, i64 240
  %791 = load ptr, ptr %790, align 8
  %792 = invoke noundef nonnull align 8 dereferenceable(144) ptr %791(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %793 unwind label %867

793:                                              ; preds = %788
  %794 = load ptr, ptr %792, align 8, !tbaa !5
  %795 = getelementptr inbounds i8, ptr %794, i64 64
  %796 = load ptr, ptr %795, align 8
  %797 = invoke noundef nonnull align 4 dereferenceable(4) ptr %796(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %798 unwind label %867

798:                                              ; preds = %793
  %799 = load i32, ptr %797, align 4
  %800 = and i32 %799, 255
  %801 = icmp eq i32 %800, 8
  br i1 %801, label %829, label %802

802:                                              ; preds = %798
  %803 = load ptr, ptr %792, align 8, !tbaa !5
  %804 = getelementptr inbounds i8, ptr %803, i64 64
  %805 = load ptr, ptr %804, align 8
  %806 = invoke noundef nonnull align 4 dereferenceable(4) ptr %805(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %807 unwind label %867

807:                                              ; preds = %802
  %808 = load i32, ptr %806, align 4
  %809 = and i32 %808, 255
  %810 = icmp eq i32 %809, 9
  br i1 %810, label %829, label %811

811:                                              ; preds = %807
  %812 = load ptr, ptr %792, align 8, !tbaa !5
  %813 = getelementptr inbounds i8, ptr %812, i64 64
  %814 = load ptr, ptr %813, align 8
  %815 = invoke noundef nonnull align 4 dereferenceable(4) ptr %814(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %816 unwind label %867

816:                                              ; preds = %811
  %817 = load i32, ptr %815, align 4
  %818 = and i32 %817, 255
  %819 = icmp eq i32 %818, 10
  br i1 %819, label %829, label %820

820:                                              ; preds = %816
  %821 = load ptr, ptr %792, align 8, !tbaa !5
  %822 = getelementptr inbounds i8, ptr %821, i64 64
  %823 = load ptr, ptr %822, align 8
  %824 = invoke noundef nonnull align 4 dereferenceable(4) ptr %823(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %825 unwind label %867

825:                                              ; preds = %820
  %826 = load i32, ptr %824, align 4
  %827 = and i32 %826, 255
  %828 = icmp eq i32 %827, 11
  br i1 %828, label %829, label %917

829:                                              ; preds = %825, %816, %807, %798
  %830 = load ptr, ptr %792, align 8, !tbaa !5
  %831 = getelementptr inbounds i8, ptr %830, i64 88
  %832 = load ptr, ptr %831, align 8
  %833 = invoke noundef nonnull align 8 dereferenceable(72) ptr %832(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %834 unwind label %867

834:                                              ; preds = %829
  %835 = call noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %833)
  %.not389 = icmp eq i32 %835, 26
  br i1 %.not389, label %869, label %836

836:                                              ; preds = %834
  %837 = load ptr, ptr %792, align 8, !tbaa !5
  %838 = getelementptr inbounds i8, ptr %837, i64 88
  %839 = load ptr, ptr %838, align 8
  %840 = invoke noundef nonnull align 8 dereferenceable(72) ptr %839(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %841 unwind label %867

841:                                              ; preds = %836
  %842 = call noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %840)
  %.not390 = icmp eq i32 %842, 38
  br i1 %.not390, label %869, label %843

843:                                              ; preds = %841
  %844 = load ptr, ptr %792, align 8, !tbaa !5
  %845 = getelementptr inbounds i8, ptr %844, i64 88
  %846 = load ptr, ptr %845, align 8
  %847 = invoke noundef nonnull align 8 dereferenceable(72) ptr %846(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %848 unwind label %867

848:                                              ; preds = %843
  %849 = call noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %847)
  %.not391 = icmp eq i32 %849, 33
  br i1 %.not391, label %869, label %850

850:                                              ; preds = %848
  %851 = load ptr, ptr %792, align 8, !tbaa !5
  %852 = getelementptr inbounds i8, ptr %851, i64 88
  %853 = load ptr, ptr %852, align 8
  %854 = invoke noundef nonnull align 8 dereferenceable(72) ptr %853(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %855 unwind label %867

855:                                              ; preds = %850
  %856 = call noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %854)
  %.not392 = icmp eq i32 %856, 46
  br i1 %.not392, label %869, label %857

857:                                              ; preds = %855
  %858 = load ptr, ptr %2, align 8, !tbaa !5
  %859 = getelementptr inbounds i8, ptr %858, i64 24
  %860 = load ptr, ptr %859, align 8
  %861 = invoke noundef nonnull align 8 dereferenceable(40) ptr %860(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %862 unwind label %867

862:                                              ; preds = %857
  %863 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %861) #6
  %864 = load ptr, ptr %0, align 8, !tbaa !5
  %865 = getelementptr inbounds i8, ptr %864, i64 336
  %866 = load ptr, ptr %865, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %866(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.229, ptr noundef %863, ptr noundef nonnull @.str.2)
          to label %869 unwind label %867

867:                                              ; preds = %.invoke488, %.invoke487, %1019, %1014, %1005, %1000, %995, %985, %981, %976, %972, %967, %962, %958, %953, %949, %944, %940, %935, %931, %929, %917, %912, %905, %898, %893, %888, %881, %874, %869, %862, %857, %850, %843, %836, %829, %820, %811, %802, %793, %788
  %868 = landingpad { ptr, i32 }
          cleanup
  br label %1738

869:                                              ; preds = %862, %855, %848, %841, %834
  %870 = load ptr, ptr %3, align 8, !tbaa !5
  %871 = getelementptr inbounds i8, ptr %870, i64 240
  %872 = load ptr, ptr %871, align 8
  %873 = invoke noundef nonnull align 8 dereferenceable(144) ptr %872(ptr noundef nonnull align 8 dereferenceable(176) %3)
          to label %874 unwind label %867

874:                                              ; preds = %869
  %875 = load ptr, ptr %873, align 8, !tbaa !5
  %876 = getelementptr inbounds i8, ptr %875, i64 56
  %877 = load ptr, ptr %876, align 8
  %878 = invoke noundef i32 %877(ptr noundef nonnull align 8 dereferenceable(144) %873)
          to label %879 unwind label %867

879:                                              ; preds = %874
  %880 = icmp eq i32 %878, 10
  br i1 %880, label %881, label %893

881:                                              ; preds = %879
  %882 = load ptr, ptr %792, align 8, !tbaa !5
  %883 = getelementptr inbounds i8, ptr %882, i64 88
  %884 = load ptr, ptr %883, align 8
  %885 = invoke noundef nonnull align 8 dereferenceable(72) ptr %884(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %886 unwind label %867

886:                                              ; preds = %881
  %887 = call noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %885)
  %.not393 = icmp eq i32 %887, 33
  br i1 %.not393, label %893, label %888

888:                                              ; preds = %886
  %889 = load ptr, ptr %2, align 8, !tbaa !5
  %890 = getelementptr inbounds i8, ptr %889, i64 24
  %891 = load ptr, ptr %890, align 8
  %892 = invoke noundef nonnull align 8 dereferenceable(40) ptr %891(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke487 unwind label %867

893:                                              ; preds = %886, %879
  %894 = load ptr, ptr %3, align 8, !tbaa !5
  %895 = getelementptr inbounds i8, ptr %894, i64 240
  %896 = load ptr, ptr %895, align 8
  %897 = invoke noundef nonnull align 8 dereferenceable(144) ptr %896(ptr noundef nonnull align 8 dereferenceable(176) %3)
          to label %898 unwind label %867

898:                                              ; preds = %893
  %899 = load ptr, ptr %897, align 8, !tbaa !5
  %900 = getelementptr inbounds i8, ptr %899, i64 56
  %901 = load ptr, ptr %900, align 8
  %902 = invoke noundef i32 %901(ptr noundef nonnull align 8 dereferenceable(144) %897)
          to label %903 unwind label %867

903:                                              ; preds = %898
  %904 = icmp eq i32 %902, 11
  br i1 %904, label %905, label %1026

905:                                              ; preds = %903
  %906 = load ptr, ptr %792, align 8, !tbaa !5
  %907 = getelementptr inbounds i8, ptr %906, i64 88
  %908 = load ptr, ptr %907, align 8
  %909 = invoke noundef nonnull align 8 dereferenceable(72) ptr %908(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %910 unwind label %867

910:                                              ; preds = %905
  %911 = call noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %909)
  %.not394 = icmp eq i32 %911, 46
  br i1 %.not394, label %1026, label %912

912:                                              ; preds = %910
  %913 = load ptr, ptr %2, align 8, !tbaa !5
  %914 = getelementptr inbounds i8, ptr %913, i64 24
  %915 = load ptr, ptr %914, align 8
  %916 = invoke noundef nonnull align 8 dereferenceable(40) ptr %915(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke487 unwind label %867

917:                                              ; preds = %825
  %918 = load ptr, ptr %792, align 8, !tbaa !5
  %919 = getelementptr inbounds i8, ptr %918, i64 64
  %920 = load ptr, ptr %919, align 8
  %921 = invoke noundef nonnull align 4 dereferenceable(4) ptr %920(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %922 unwind label %867

922:                                              ; preds = %917
  %923 = load i32, ptr %921, align 4
  %924 = and i32 %923, 255
  %925 = icmp eq i32 %924, 1
  %926 = load ptr, ptr %2, align 8, !tbaa !5
  %927 = getelementptr inbounds i8, ptr %926, i64 24
  %928 = load ptr, ptr %927, align 8
  br i1 %925, label %929, label %1019

929:                                              ; preds = %922
  %930 = invoke noundef nonnull align 8 dereferenceable(40) ptr %928(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %931 unwind label %867

931:                                              ; preds = %929
  %932 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %930, i64 noundef 0, i64 noundef 19, ptr noundef nonnull @.str.232)
          to label %933 unwind label %867

933:                                              ; preds = %931
  %934 = icmp eq i32 %932, 0
  br i1 %934, label %1005, label %935

935:                                              ; preds = %933
  %936 = load ptr, ptr %2, align 8, !tbaa !5
  %937 = getelementptr inbounds i8, ptr %936, i64 24
  %938 = load ptr, ptr %937, align 8
  %939 = invoke noundef nonnull align 8 dereferenceable(40) ptr %938(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %940 unwind label %867

940:                                              ; preds = %935
  %941 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %939, i64 noundef 0, i64 noundef 14, ptr noundef nonnull @.str.233)
          to label %942 unwind label %867

942:                                              ; preds = %940
  %943 = icmp eq i32 %941, 0
  br i1 %943, label %962, label %944

944:                                              ; preds = %942
  %945 = load ptr, ptr %2, align 8, !tbaa !5
  %946 = getelementptr inbounds i8, ptr %945, i64 24
  %947 = load ptr, ptr %946, align 8
  %948 = invoke noundef nonnull align 8 dereferenceable(40) ptr %947(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %949 unwind label %867

949:                                              ; preds = %944
  %950 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %948, i64 noundef 0, i64 noundef 15, ptr noundef nonnull @.str.234)
          to label %951 unwind label %867

951:                                              ; preds = %949
  %952 = icmp eq i32 %950, 0
  br i1 %952, label %962, label %953

953:                                              ; preds = %951
  %954 = load ptr, ptr %2, align 8, !tbaa !5
  %955 = getelementptr inbounds i8, ptr %954, i64 24
  %956 = load ptr, ptr %955, align 8
  %957 = invoke noundef nonnull align 8 dereferenceable(40) ptr %956(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %958 unwind label %867

958:                                              ; preds = %953
  %959 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %957, i64 noundef 0, i64 noundef 16, ptr noundef nonnull @.str.235)
          to label %960 unwind label %867

960:                                              ; preds = %958
  %961 = icmp eq i32 %959, 0
  br i1 %961, label %962, label %967

962:                                              ; preds = %960, %951, %942
  %963 = load ptr, ptr %2, align 8, !tbaa !5
  %964 = getelementptr inbounds i8, ptr %963, i64 24
  %965 = load ptr, ptr %964, align 8
  %966 = invoke noundef nonnull align 8 dereferenceable(40) ptr %965(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke488 unwind label %867

967:                                              ; preds = %960
  %968 = load ptr, ptr %2, align 8, !tbaa !5
  %969 = getelementptr inbounds i8, ptr %968, i64 24
  %970 = load ptr, ptr %969, align 8
  %971 = invoke noundef nonnull align 8 dereferenceable(40) ptr %970(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %972 unwind label %867

972:                                              ; preds = %967
  %973 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %971, i64 noundef 0, i64 noundef 14, ptr noundef nonnull @.str.236)
          to label %974 unwind label %867

974:                                              ; preds = %972
  %975 = icmp eq i32 %973, 0
  br i1 %975, label %985, label %976

976:                                              ; preds = %974
  %977 = load ptr, ptr %2, align 8, !tbaa !5
  %978 = getelementptr inbounds i8, ptr %977, i64 24
  %979 = load ptr, ptr %978, align 8
  %980 = invoke noundef nonnull align 8 dereferenceable(40) ptr %979(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %981 unwind label %867

981:                                              ; preds = %976
  %982 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %980, i64 noundef 0, i64 noundef 14, ptr noundef nonnull @.str.237)
          to label %983 unwind label %867

983:                                              ; preds = %981
  %984 = icmp eq i32 %982, 0
  br i1 %984, label %985, label %995

985:                                              ; preds = %983, %974
  %986 = load ptr, ptr %2, align 8, !tbaa !5
  %987 = getelementptr inbounds i8, ptr %986, i64 24
  %988 = load ptr, ptr %987, align 8
  %989 = invoke noundef nonnull align 8 dereferenceable(40) ptr %988(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke488 unwind label %867

.invoke488:                                       ; preds = %985, %962
  %.sink = phi ptr [ %966, %962 ], [ %989, %985 ]
  %990 = phi ptr [ @_ZN7glslangL28E_GL_EXT_shader_atomic_floatE, %962 ], [ @_ZN7glslangL29E_GL_EXT_shader_atomic_float2E, %985 ]
  %991 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %.sink) #6
  %992 = load ptr, ptr %0, align 8, !tbaa !5
  %993 = getelementptr inbounds i8, ptr %992, i64 40
  %994 = load ptr, ptr %993, align 8
  invoke void %994(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull %990, ptr noundef %991)
          to label %1005 unwind label %867

995:                                              ; preds = %983
  %996 = load ptr, ptr %2, align 8, !tbaa !5
  %997 = getelementptr inbounds i8, ptr %996, i64 24
  %998 = load ptr, ptr %997, align 8
  %999 = invoke noundef nonnull align 8 dereferenceable(40) ptr %998(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %1000 unwind label %867

1000:                                             ; preds = %995
  %1001 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %999) #6
  %1002 = load ptr, ptr %0, align 8, !tbaa !5
  %1003 = getelementptr inbounds i8, ptr %1002, i64 336
  %1004 = load ptr, ptr %1003, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1004(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.238, ptr noundef %1001, ptr noundef nonnull @.str.2)
          to label %1005 unwind label %867

1005:                                             ; preds = %.invoke488, %1000, %933
  %1006 = load ptr, ptr %792, align 8, !tbaa !5
  %1007 = getelementptr inbounds i8, ptr %1006, i64 88
  %1008 = load ptr, ptr %1007, align 8
  %1009 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1008(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %1010 unwind label %867

1010:                                             ; preds = %1005
  %1011 = call noundef i32 @_ZNK7glslang10TQualifier9getFormatEv(ptr noundef nonnull align 8 dereferenceable(72) %1009)
  %.not388 = icmp eq i32 %1011, 3
  br i1 %.not388, label %1026, label %1012

1012:                                             ; preds = %1010
  %1013 = call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %0)
  br i1 %1013, label %1014, label %1026

1014:                                             ; preds = %1012
  %1015 = load ptr, ptr %2, align 8, !tbaa !5
  %1016 = getelementptr inbounds i8, ptr %1015, i64 24
  %1017 = load ptr, ptr %1016, align 8
  %1018 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1017(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke487 unwind label %867

1019:                                             ; preds = %922
  %1020 = invoke noundef nonnull align 8 dereferenceable(40) ptr %928(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke487 unwind label %867

.invoke487:                                       ; preds = %1019, %1014, %912, %888
  %.sink492 = phi ptr [ %892, %888 ], [ %916, %912 ], [ %1018, %1014 ], [ %1020, %1019 ]
  %1021 = phi ptr [ @.str.230, %888 ], [ @.str.231, %912 ], [ @.str.239, %1014 ], [ @.str.240, %1019 ]
  %1022 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %.sink492) #6
  %1023 = load ptr, ptr %0, align 8, !tbaa !5
  %1024 = getelementptr inbounds i8, ptr %1023, i64 336
  %1025 = load ptr, ptr %1024, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1025(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull %1021, ptr noundef %1022, ptr noundef nonnull @.str.2)
          to label %1026 unwind label %867

1026:                                             ; preds = %.invoke487, %1012, %1010, %910, %903
  %1027 = load ptr, ptr %792, align 8, !tbaa !5
  %1028 = getelementptr inbounds i8, ptr %1027, i64 64
  %1029 = load ptr, ptr %1028, align 8
  %1030 = invoke noundef nonnull align 4 dereferenceable(4) ptr %1029(ptr noundef nonnull align 8 dereferenceable(144) %792)
          to label %1031 unwind label %1047

1031:                                             ; preds = %1026
  %1032 = call noundef zeroext i1 @_ZNK7glslang8TSampler13isMultiSampleEv(ptr noundef nonnull align 4 dereferenceable(4) %1030)
  %1033 = select i1 %1032, i64 5, i64 4
  %1034 = call noundef i64 @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %.0) #6
  %1035 = icmp ugt i64 %1034, %1033
  br i1 %1035, label %1036, label %.critedge

1036:                                             ; preds = %1031
  %1037 = load ptr, ptr %2, align 8, !tbaa !5
  %1038 = getelementptr inbounds i8, ptr %1037, i64 24
  %1039 = load ptr, ptr %1038, align 8
  %1040 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1039(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %1041 unwind label %1047

1041:                                             ; preds = %1036
  %1042 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1040) #6
  %1043 = load ptr, ptr %0, align 8, !tbaa !5
  %1044 = getelementptr inbounds i8, ptr %1043, i64 40
  %1045 = load ptr, ptr %1044, align 8
  invoke void %1045(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL31E_GL_KHR_memory_scope_semanticsE, ptr noundef %1042)
          to label %1046 unwind label %1047

1046:                                             ; preds = %1041
  invoke void @_ZN7glslang13TParseContext20memorySemanticsCheckERKNS_10TSourceLocERKNS_9TFunctionERKNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(328) %2, ptr noundef nonnull align 8 dereferenceable(184) %3)
          to label %.critedge unwind label %1047

1047:                                             ; preds = %1046, %1041, %1036, %1026
  %1048 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1049:                                             ; preds = %63, %63, %63, %63, %63, %63, %63, %63, %63, %63, %63
  %1050 = call noundef i64 @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %.0) #6
  %1051 = icmp ugt i64 %1050, 3
  br i1 %1051, label %1052, label %1128

1052:                                             ; preds = %1049
  %1053 = load ptr, ptr %2, align 8, !tbaa !5
  %1054 = getelementptr inbounds i8, ptr %1053, i64 24
  %1055 = load ptr, ptr %1054, align 8
  %1056 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1055(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %1057 unwind label %65

1057:                                             ; preds = %1052
  %1058 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1056) #6
  %1059 = load ptr, ptr %0, align 8, !tbaa !5
  %1060 = getelementptr inbounds i8, ptr %1059, i64 40
  %1061 = load ptr, ptr %1060, align 8
  invoke void %1061(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL31E_GL_KHR_memory_scope_semanticsE, ptr noundef %1058)
          to label %1062 unwind label %65

1062:                                             ; preds = %1057
  invoke void @_ZN7glslang13TParseContext20memorySemanticsCheckERKNS_10TSourceLocERKNS_9TFunctionERKNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(328) %2, ptr noundef nonnull align 8 dereferenceable(184) %3)
          to label %1063 unwind label %65

1063:                                             ; preds = %1062
  %1064 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1065 = icmp eq i32 %1064, 423
  br i1 %1065, label %1075, label %1066

1066:                                             ; preds = %1063
  %1067 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1068 = icmp eq i32 %1067, 430
  br i1 %1068, label %1075, label %1069

1069:                                             ; preds = %1066
  %1070 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1071 = icmp eq i32 %1070, 432
  br i1 %1071, label %1075, label %1072

1072:                                             ; preds = %1069
  %1073 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1074 = icmp eq i32 %1073, 433
  br i1 %1074, label %1075, label %1099

1075:                                             ; preds = %1072, %1069, %1066, %1063
  %1076 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1077 = getelementptr inbounds i8, ptr %1076, i64 240
  %1078 = load ptr, ptr %1077, align 8
  %1079 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1078(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1080 unwind label %65

1080:                                             ; preds = %1075
  %1081 = load ptr, ptr %1079, align 8, !tbaa !5
  %1082 = getelementptr inbounds i8, ptr %1081, i64 56
  %1083 = load ptr, ptr %1082, align 8
  %1084 = invoke noundef i32 %1083(ptr noundef nonnull align 8 dereferenceable(144) %1079)
          to label %1085 unwind label %65

1085:                                             ; preds = %1080
  %1086 = icmp eq i32 %1084, 1
  br i1 %1086, label %.invoke509, label %1087

1087:                                             ; preds = %1085
  %1088 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1089 = getelementptr inbounds i8, ptr %1088, i64 240
  %1090 = load ptr, ptr %1089, align 8
  %1091 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1090(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1092 unwind label %65

1092:                                             ; preds = %1087
  %1093 = load ptr, ptr %1091, align 8, !tbaa !5
  %1094 = getelementptr inbounds i8, ptr %1093, i64 56
  %1095 = load ptr, ptr %1094, align 8
  %1096 = invoke noundef i32 %1095(ptr noundef nonnull align 8 dereferenceable(144) %1091)
          to label %1097 unwind label %65

1097:                                             ; preds = %1092
  %1098 = icmp eq i32 %1096, 2
  br i1 %1098, label %.invoke509, label %1099

1099:                                             ; preds = %1097, %1072
  %1100 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1101 = icmp eq i32 %1100, 423
  br i1 %1101, label %1117, label %1102

1102:                                             ; preds = %1099
  %1103 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1104 = icmp eq i32 %1103, 430
  br i1 %1104, label %1117, label %1105

1105:                                             ; preds = %1102
  %1106 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1107 = icmp eq i32 %1106, 432
  br i1 %1107, label %1117, label %1108

1108:                                             ; preds = %1105
  %1109 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1110 = icmp eq i32 %1109, 433
  br i1 %1110, label %1117, label %1111

1111:                                             ; preds = %1108
  %1112 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1113 = icmp eq i32 %1112, 425
  br i1 %1113, label %1117, label %1114

1114:                                             ; preds = %1111
  %1115 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1116 = icmp eq i32 %1115, 426
  br i1 %1116, label %1117, label %1237

1117:                                             ; preds = %1114, %1111, %1108, %1105, %1102, %1099
  %1118 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1119 = getelementptr inbounds i8, ptr %1118, i64 240
  %1120 = load ptr, ptr %1119, align 8
  %1121 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1120(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1122 unwind label %65

1122:                                             ; preds = %1117
  %1123 = load ptr, ptr %1121, align 8, !tbaa !5
  %1124 = getelementptr inbounds i8, ptr %1123, i64 288
  %1125 = load ptr, ptr %1124, align 8
  %1126 = invoke noundef zeroext i1 %1125(ptr noundef nonnull align 8 dereferenceable(144) %1121)
          to label %1127 unwind label %65

1127:                                             ; preds = %1122
  br i1 %1126, label %.invoke508, label %1237

1128:                                             ; preds = %1049
  %1129 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1130 = getelementptr inbounds i8, ptr %1129, i64 240
  %1131 = load ptr, ptr %1130, align 8
  %1132 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1131(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1133 unwind label %65

1133:                                             ; preds = %1128
  %1134 = load ptr, ptr %1132, align 8, !tbaa !5
  %1135 = getelementptr inbounds i8, ptr %1134, i64 56
  %1136 = load ptr, ptr %1135, align 8
  %1137 = invoke noundef i32 %1136(ptr noundef nonnull align 8 dereferenceable(144) %1132)
          to label %1138 unwind label %65

1138:                                             ; preds = %1133
  %1139 = icmp eq i32 %1137, 10
  br i1 %1139, label %1152, label %1140

1140:                                             ; preds = %1138
  %1141 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1142 = getelementptr inbounds i8, ptr %1141, i64 240
  %1143 = load ptr, ptr %1142, align 8
  %1144 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1143(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1145 unwind label %65

1145:                                             ; preds = %1140
  %1146 = load ptr, ptr %1144, align 8, !tbaa !5
  %1147 = getelementptr inbounds i8, ptr %1146, i64 56
  %1148 = load ptr, ptr %1147, align 8
  %1149 = invoke noundef i32 %1148(ptr noundef nonnull align 8 dereferenceable(144) %1144)
          to label %1150 unwind label %65

1150:                                             ; preds = %1145
  %1151 = icmp eq i32 %1149, 11
  br i1 %1151, label %1152, label %1165

1152:                                             ; preds = %1150, %1138
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %7, ptr noundef nonnull align 16 dereferenceable(16) @__const._ZN7glslang13TParseContext14builtInOpCheckERKNS_10TSourceLocERKNS_9TFunctionERNS_15TIntermOperatorE.extensions, i64 16, i1 false)
  %1153 = load ptr, ptr %2, align 8, !tbaa !5
  %1154 = getelementptr inbounds i8, ptr %1153, i64 24
  %1155 = load ptr, ptr %1154, align 8
  %1156 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1155(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %1157 unwind label %1163

1157:                                             ; preds = %1152
  %1158 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1156) #6
  %1159 = load ptr, ptr %0, align 8, !tbaa !5
  %1160 = getelementptr inbounds i8, ptr %1159, i64 40
  %1161 = load ptr, ptr %1160, align 8
  invoke void %1161(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 2, ptr noundef nonnull %7, ptr noundef %1158)
          to label %1162 unwind label %1163

1162:                                             ; preds = %1157
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #6
  br label %1237

1163:                                             ; preds = %1157, %1152
  %1164 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #6
  br label %1738

1165:                                             ; preds = %1150
  %1166 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1167 = icmp eq i32 %1166, 423
  br i1 %1167, label %1171, label %1168

1168:                                             ; preds = %1165
  %1169 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1170 = icmp eq i32 %1169, 430
  br i1 %1170, label %1171, label %1199

1171:                                             ; preds = %1168, %1165
  %1172 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1173 = getelementptr inbounds i8, ptr %1172, i64 240
  %1174 = load ptr, ptr %1173, align 8
  %1175 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1174(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1176 unwind label %65

1176:                                             ; preds = %1171
  %1177 = load ptr, ptr %1175, align 8, !tbaa !5
  %1178 = getelementptr inbounds i8, ptr %1177, i64 56
  %1179 = load ptr, ptr %1178, align 8
  %1180 = invoke noundef i32 %1179(ptr noundef nonnull align 8 dereferenceable(144) %1175)
          to label %1181 unwind label %65

1181:                                             ; preds = %1176
  %1182 = icmp eq i32 %1180, 1
  br i1 %1182, label %.invoke509, label %1183

1183:                                             ; preds = %1181
  %1184 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1185 = getelementptr inbounds i8, ptr %1184, i64 240
  %1186 = load ptr, ptr %1185, align 8
  %1187 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1186(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1188 unwind label %65

1188:                                             ; preds = %1183
  %1189 = load ptr, ptr %1187, align 8, !tbaa !5
  %1190 = getelementptr inbounds i8, ptr %1189, i64 56
  %1191 = load ptr, ptr %1190, align 8
  %1192 = invoke noundef i32 %1191(ptr noundef nonnull align 8 dereferenceable(144) %1187)
          to label %1193 unwind label %65

1193:                                             ; preds = %1188
  %1194 = icmp eq i32 %1192, 2
  br i1 %1194, label %.invoke509, label %1199

.invoke509:                                       ; preds = %1181, %1193, %1085, %1097
  %1195 = load ptr, ptr %2, align 8, !tbaa !5
  %1196 = getelementptr inbounds i8, ptr %1195, i64 24
  %1197 = load ptr, ptr %1196, align 8
  %1198 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1197(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke483 unwind label %65

1199:                                             ; preds = %1193, %1168
  %1200 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1201 = icmp eq i32 %1200, 423
  br i1 %1201, label %1217, label %1202

1202:                                             ; preds = %1199
  %1203 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1204 = icmp eq i32 %1203, 430
  br i1 %1204, label %1217, label %1205

1205:                                             ; preds = %1202
  %1206 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1207 = icmp eq i32 %1206, 432
  br i1 %1207, label %1217, label %1208

1208:                                             ; preds = %1205
  %1209 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1210 = icmp eq i32 %1209, 433
  br i1 %1210, label %1217, label %1211

1211:                                             ; preds = %1208
  %1212 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1213 = icmp eq i32 %1212, 425
  br i1 %1213, label %1217, label %1214

1214:                                             ; preds = %1211
  %1215 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1216 = icmp eq i32 %1215, 426
  br i1 %1216, label %1217, label %1237

1217:                                             ; preds = %1214, %1211, %1208, %1205, %1202, %1199
  %1218 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1219 = getelementptr inbounds i8, ptr %1218, i64 240
  %1220 = load ptr, ptr %1219, align 8
  %1221 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1220(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1222 unwind label %65

1222:                                             ; preds = %1217
  %1223 = load ptr, ptr %1221, align 8, !tbaa !5
  %1224 = getelementptr inbounds i8, ptr %1223, i64 288
  %1225 = load ptr, ptr %1224, align 8
  %1226 = invoke noundef zeroext i1 %1225(ptr noundef nonnull align 8 dereferenceable(144) %1221)
          to label %1227 unwind label %65

1227:                                             ; preds = %1222
  br i1 %1226, label %.invoke508, label %1237

.invoke508:                                       ; preds = %1227, %1127
  %1228 = load ptr, ptr %2, align 8, !tbaa !5
  %1229 = getelementptr inbounds i8, ptr %1228, i64 24
  %1230 = load ptr, ptr %1229, align 8
  %1231 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1230(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke483 unwind label %65

.invoke483:                                       ; preds = %.invoke509, %.invoke508
  %.sink495 = phi ptr [ %1231, %.invoke508 ], [ %1198, %.invoke509 ]
  %1232 = phi ptr [ @_ZN7glslangL29E_GL_EXT_shader_atomic_float2E, %.invoke508 ], [ @_ZN7glslangL28E_GL_EXT_shader_atomic_floatE, %.invoke509 ]
  %1233 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %.sink495) #6
  %1234 = load ptr, ptr %0, align 8, !tbaa !5
  %1235 = getelementptr inbounds i8, ptr %1234, i64 40
  %1236 = load ptr, ptr %1235, align 8
  invoke void %1236(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull %1232, ptr noundef %1233)
          to label %1237 unwind label %65

1237:                                             ; preds = %.invoke483, %1162, %1214, %1227, %1127, %1114
  %1238 = invoke noundef ptr @_ZN7glslang13TIntermediate14findLValueBaseEPKNS_12TIntermTypedEbb(ptr noundef %.0330, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %1239 unwind label %1280

1239:                                             ; preds = %1237
  %1240 = load ptr, ptr %1238, align 8, !tbaa !5
  %1241 = getelementptr inbounds i8, ptr %1240, i64 240
  %1242 = load ptr, ptr %1241, align 8
  %1243 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1242(ptr noundef nonnull align 8 dereferenceable(176) %1238)
          to label %1244 unwind label %1282

1244:                                             ; preds = %1239
  %1245 = invoke noundef zeroext i1 @_ZNK7glslang5TType11isReferenceEv(ptr noundef nonnull align 8 dereferenceable(144) %1243)
          to label %1246 unwind label %1282

1246:                                             ; preds = %1244
  br i1 %1245, label %1247, label %.thread475

1247:                                             ; preds = %1246
  %1248 = load ptr, ptr %1238, align 8, !tbaa !5
  %1249 = getelementptr inbounds i8, ptr %1248, i64 240
  %1250 = load ptr, ptr %1249, align 8
  %1251 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1250(ptr noundef nonnull align 8 dereferenceable(176) %1238)
          to label %1252 unwind label %1282

1252:                                             ; preds = %1247
  %1253 = load ptr, ptr %1251, align 8, !tbaa !5
  %1254 = getelementptr inbounds i8, ptr %1253, i64 168
  %1255 = load ptr, ptr %1254, align 8
  %1256 = invoke noundef ptr %1255(ptr noundef nonnull align 8 dereferenceable(144) %1251)
          to label %1257 unwind label %1282

1257:                                             ; preds = %1252
  %.not383 = icmp eq ptr %1256, null
  br i1 %.not383, label %.thread475, label %.invoke496

.thread475:                                       ; preds = %1246, %1257
  %1258 = load ptr, ptr %1238, align 8, !tbaa !5
  %1259 = getelementptr inbounds i8, ptr %1258, i64 240
  %1260 = load ptr, ptr %1259, align 8
  %1261 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1260(ptr noundef nonnull align 8 dereferenceable(176) %1238)
          to label %.invoke496 unwind label %1284

.invoke496:                                       ; preds = %.thread475, %1257
  %.sink507 = phi ptr [ %1256, %1257 ], [ %1261, %.thread475 ]
  %1262 = load ptr, ptr %.sink507, align 8, !tbaa !5
  %1263 = getelementptr inbounds i8, ptr %1262, i64 88
  %1264 = load ptr, ptr %1263, align 8
  %1265 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1264(ptr noundef nonnull align 8 dereferenceable(144) %.sink507)
          to label %1266 unwind label %1284

1266:                                             ; preds = %.invoke496
  %1267 = getelementptr inbounds i8, ptr %1265, i64 8
  %1268 = load i64, ptr %1267, align 8
  %1269 = and i64 %1268, 62
  %switch = icmp eq i64 %1269, 6
  br i1 %switch, label %.critedge, label %1270

1270:                                             ; preds = %1266
  %1271 = load ptr, ptr %2, align 8, !tbaa !5
  %1272 = getelementptr inbounds i8, ptr %1271, i64 24
  %1273 = load ptr, ptr %1272, align 8
  %1274 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1273(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %1275 unwind label %1284

1275:                                             ; preds = %1270
  %1276 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1274) #6
  %1277 = load ptr, ptr %0, align 8, !tbaa !5
  %1278 = getelementptr inbounds i8, ptr %1277, i64 336
  %1279 = load ptr, ptr %1278, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1279(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.243, ptr noundef %1276, ptr noundef nonnull @.str.2)
          to label %.critedge unwind label %1284

1280:                                             ; preds = %1237
  %1281 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1282:                                             ; preds = %1252, %1247, %1244, %1239
  %1283 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1284:                                             ; preds = %.invoke496, %1275, %1270, %.thread475
  %1285 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1286:                                             ; preds = %63, %63, %63, %63
  %1287 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1288 = getelementptr inbounds i8, ptr %1287, i64 240
  %1289 = load ptr, ptr %1288, align 8
  %1290 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1289(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1291 unwind label %65

1291:                                             ; preds = %1286
  %1292 = load ptr, ptr %1290, align 8, !tbaa !5
  %1293 = getelementptr inbounds i8, ptr %1292, i64 88
  %1294 = load ptr, ptr %1293, align 8
  %1295 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1294(ptr noundef nonnull align 8 dereferenceable(144) %1290)
          to label %1296 unwind label %65

1296:                                             ; preds = %1291
  %1297 = getelementptr inbounds i8, ptr %1295, i64 8
  %1298 = load i64, ptr %1297, align 8
  %1299 = and i64 %1298, 63
  %.not380 = icmp eq i64 %1299, 3
  br i1 %.not380, label %1335, label %1300

1300:                                             ; preds = %1296
  %1301 = call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %0)
  %1302 = getelementptr inbounds i8, ptr %0, i64 24
  %1303 = load i32, ptr %1302, align 8
  %1304 = icmp sgt i32 %1303, 439
  %not. = xor i1 %1301, true
  %1305 = select i1 %not., i1 %1304, i1 false
  %1306 = invoke noundef ptr @_ZN7glslang13TIntermediate14findLValueBaseEPKNS_12TIntermTypedEbb(ptr noundef nonnull %.0330, i1 noundef zeroext %1305, i1 noundef zeroext false)
          to label %1307 unwind label %1333

1307:                                             ; preds = %1300
  %1308 = icmp eq ptr %1306, null
  br i1 %1308, label %1323, label %1309

1309:                                             ; preds = %1307
  %1310 = load ptr, ptr %1306, align 8, !tbaa !5
  %1311 = getelementptr inbounds i8, ptr %1310, i64 240
  %1312 = load ptr, ptr %1311, align 8
  %1313 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1312(ptr noundef nonnull align 8 dereferenceable(176) %1306)
          to label %1314 unwind label %1333

1314:                                             ; preds = %1309
  %1315 = load ptr, ptr %1313, align 8, !tbaa !5
  %1316 = getelementptr inbounds i8, ptr %1315, i64 88
  %1317 = load ptr, ptr %1316, align 8
  %1318 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1317(ptr noundef nonnull align 8 dereferenceable(144) %1313)
          to label %1319 unwind label %1333

1319:                                             ; preds = %1314
  %1320 = getelementptr inbounds i8, ptr %1318, i64 8
  %1321 = load i64, ptr %1320, align 8
  %1322 = and i64 %1321, 63
  %.not381 = icmp eq i64 %1322, 3
  br i1 %.not381, label %1335, label %1323

1323:                                             ; preds = %1319, %1307
  %1324 = load ptr, ptr %2, align 8, !tbaa !5
  %1325 = getelementptr inbounds i8, ptr %1324, i64 24
  %1326 = load ptr, ptr %1325, align 8
  %1327 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1326(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %1328 unwind label %1333

1328:                                             ; preds = %1323
  %1329 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1327) #6
  %1330 = load ptr, ptr %0, align 8, !tbaa !5
  %1331 = getelementptr inbounds i8, ptr %1330, i64 336
  %1332 = load ptr, ptr %1331, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1332(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.244, ptr noundef %1329, ptr noundef nonnull @.str.2)
          to label %1335 unwind label %1333

1333:                                             ; preds = %1328, %1323, %1314, %1309, %1300
  %1334 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1335:                                             ; preds = %1319, %1328, %1296
  %1336 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1337 = icmp eq i32 %1336, 294
  br i1 %1337, label %1338, label %.critedge

1338:                                             ; preds = %1335
  %1339 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1340 = getelementptr inbounds i8, ptr %1339, i64 240
  %1341 = load ptr, ptr %1340, align 8
  %1342 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1341(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1343 unwind label %65

1343:                                             ; preds = %1338
  %1344 = load ptr, ptr %1342, align 8, !tbaa !5
  %1345 = getelementptr inbounds i8, ptr %1344, i64 88
  %1346 = load ptr, ptr %1345, align 8
  %1347 = invoke noundef nonnull align 8 dereferenceable(72) ptr %1346(ptr noundef nonnull align 8 dereferenceable(144) %1342)
          to label %1348 unwind label %65

1348:                                             ; preds = %1343
  %1349 = call noundef zeroext i1 @_ZNK7glslang10TQualifier23isExplicitInterpolationEv(ptr noundef nonnull align 8 dereferenceable(72) %1347)
  br i1 %1349, label %1350, label %.invoke482

1350:                                             ; preds = %1348
  %1351 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %1352 = load ptr, ptr %1351, align 8, !tbaa !8
  %1353 = load ptr, ptr %1352, align 8, !tbaa !5
  %1354 = getelementptr inbounds i8, ptr %1353, i64 40
  %1355 = load ptr, ptr %1354, align 8
  %1356 = invoke noundef ptr %1355(ptr noundef nonnull align 8 dereferenceable(32) %1352)
          to label %1357 unwind label %65

1357:                                             ; preds = %1350
  %.not382 = icmp eq ptr %1356, null
  br i1 %.not382, label %.invoke482, label %1358

1358:                                             ; preds = %1357
  %1359 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %1360 = load ptr, ptr %1359, align 8, !tbaa !8
  %1361 = load ptr, ptr %1360, align 8, !tbaa !5
  %1362 = getelementptr inbounds i8, ptr %1361, i64 40
  %1363 = load ptr, ptr %1362, align 8
  %1364 = invoke noundef ptr %1363(ptr noundef nonnull align 8 dereferenceable(32) %1360)
          to label %1365 unwind label %1374

1365:                                             ; preds = %1358
  %1366 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %1364)
  %1367 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1366, i64 noundef 0)
  %1368 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1367)
  %1369 = icmp ugt i32 %1368, 2
  br i1 %1369, label %1370, label %.critedge

1370:                                             ; preds = %1365
  %1371 = load ptr, ptr %0, align 8, !tbaa !5
  %1372 = getelementptr inbounds i8, ptr %1371, i64 336
  %1373 = load ptr, ptr %1372, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1373(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.248, ptr noundef nonnull @.str.247, ptr noundef nonnull @.str.2)
          to label %.critedge unwind label %1374

1374:                                             ; preds = %1370, %1358
  %1375 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1376:                                             ; preds = %63, %63
  %1377 = getelementptr inbounds i8, ptr %0, i64 24
  %1378 = load i32, ptr %1377, align 8, !tbaa !114
  %1379 = icmp eq i32 %1378, 150
  br i1 %1379, label %1380, label %1384

1380:                                             ; preds = %1376
  %1381 = load ptr, ptr %0, align 8, !tbaa !5
  %1382 = getelementptr inbounds i8, ptr %1381, i64 40
  %1383 = load ptr, ptr %1382, align 8
  invoke void %1383(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL20E_GL_ARB_gpu_shader5E, ptr noundef nonnull @.str.249)
          to label %1384 unwind label %65

1384:                                             ; preds = %1380, %1376
  %1385 = getelementptr inbounds i8, ptr %0, i64 56
  %1386 = load ptr, ptr %1385, align 8, !tbaa !115
  call void @_ZN7glslang13TIntermediate14setMultiStreamEv(ptr noundef nonnull align 8 dereferenceable(1784) %1386)
  br label %.critedge

1387:                                             ; preds = %63, %63, %63, %63, %63, %63, %63
  %1388 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %1389 = load ptr, ptr %1388, align 8, !tbaa !8
  %1390 = load ptr, ptr %1389, align 8, !tbaa !5
  %1391 = getelementptr inbounds i8, ptr %1390, i64 40
  %1392 = load ptr, ptr %1391, align 8
  %1393 = invoke noundef ptr %1392(ptr noundef nonnull align 8 dereferenceable(32) %1389)
          to label %1394 unwind label %65

1394:                                             ; preds = %1387
  %1395 = icmp eq ptr %1393, null
  br i1 %1395, label %.invoke482, label %1396

1396:                                             ; preds = %1394
  %1397 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %1398 = load ptr, ptr %1397, align 8, !tbaa !8
  %1399 = load ptr, ptr %1398, align 8, !tbaa !5
  %1400 = getelementptr inbounds i8, ptr %1399, i64 40
  %1401 = load ptr, ptr %1400, align 8
  %1402 = invoke noundef ptr %1401(ptr noundef nonnull align 8 dereferenceable(32) %1398)
          to label %1403 unwind label %1408

1403:                                             ; preds = %1396
  %1404 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %1402)
  %1405 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1404, i64 noundef 0)
  %1406 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1405)
  %1407 = icmp slt i32 %1406, 1
  br i1 %1407, label %.invoke497, label %1410

1408:                                             ; preds = %.invoke497, %1396
  %1409 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1410:                                             ; preds = %1403
  %1411 = call noundef zeroext i1 @_ZN7glslang6IsPow2IiEEbT_(i32 noundef %1406)
  br i1 %1411, label %.critedge, label %.invoke497

.invoke497:                                       ; preds = %1410, %1403
  %1412 = phi ptr [ @.str.251, %1403 ], [ @.str.252, %1410 ]
  %1413 = load ptr, ptr %0, align 8, !tbaa !5
  %1414 = getelementptr inbounds i8, ptr %1413, i64 336
  %1415 = load ptr, ptr %1414, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1415(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull %1412, ptr noundef nonnull @.str.250, ptr noundef nonnull @.str.2)
          to label %.critedge unwind label %1408

1416:                                             ; preds = %63, %63
  %1417 = getelementptr inbounds i8, ptr %0, i64 32
  %1418 = load i32, ptr %1417, align 8, !tbaa !116
  %1419 = icmp ult i32 %1418, 66816
  br i1 %1419, label %1420, label %.critedge

1420:                                             ; preds = %1416
  %1421 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %1422 = load ptr, ptr %1421, align 8, !tbaa !8
  %1423 = load ptr, ptr %1422, align 8, !tbaa !5
  %1424 = getelementptr inbounds i8, ptr %1423, i64 40
  %1425 = load ptr, ptr %1424, align 8
  %1426 = invoke noundef ptr %1425(ptr noundef nonnull align 8 dereferenceable(32) %1422)
          to label %1427 unwind label %65

1427:                                             ; preds = %1420
  %1428 = icmp eq ptr %1426, null
  br i1 %1428, label %.invoke482, label %.critedge

.invoke482:                                       ; preds = %1427, %1394, %1357, %1348, %786, %745, %737, %696, %688, %680, %473, %415
  %1429 = phi ptr [ @.str.205, %415 ], [ @.str.205, %473 ], [ @.str.205, %680 ], [ @.str.205, %688 ], [ @.str.205, %696 ], [ @.str.205, %737 ], [ @.str.205, %745 ], [ @.str.205, %786 ], [ @.str.245, %1348 ], [ @.str.205, %1357 ], [ @.str.205, %1394 ], [ @.str.205, %1427 ]
  %1430 = phi ptr [ @.str.207, %415 ], [ @.str.209, %473 ], [ @.str.218, %680 ], [ @.str.218, %688 ], [ @.str.218, %696 ], [ @.str.224, %737 ], [ @.str.224, %745 ], [ @.str.226, %786 ], [ @.str.246, %1348 ], [ @.str.247, %1357 ], [ @.str.250, %1394 ], [ @.str.253, %1427 ]
  %1431 = phi ptr [ @.str.2, %415 ], [ @.str.2, %473 ], [ @.str.219, %680 ], [ @.str.219, %688 ], [ @.str.219, %696 ], [ @.str.2, %737 ], [ @.str.2, %745 ], [ @.str.2, %786 ], [ @.str.2, %1348 ], [ @.str.2, %1357 ], [ @.str.2, %1394 ], [ @.str.2, %1427 ]
  %1432 = load ptr, ptr %0, align 8, !tbaa !5
  %1433 = getelementptr inbounds i8, ptr %1432, i64 336
  %1434 = load ptr, ptr %1433, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1434(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull %1429, ptr noundef nonnull %1430, ptr noundef nonnull %1431)
          to label %.critedge unwind label %65

1435:                                             ; preds = %63, %63
  %1436 = call noundef i64 @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %.0) #6
  %.not379 = icmp eq i64 %1436, 0
  br i1 %.not379, label %.critedge, label %1437

1437:                                             ; preds = %1435
  %1438 = load ptr, ptr %2, align 8, !tbaa !5
  %1439 = getelementptr inbounds i8, ptr %1438, i64 24
  %1440 = load ptr, ptr %1439, align 8
  %1441 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1440(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %1442 unwind label %65

1442:                                             ; preds = %1437
  %1443 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1441) #6
  %1444 = load ptr, ptr %0, align 8, !tbaa !5
  %1445 = getelementptr inbounds i8, ptr %1444, i64 40
  %1446 = load ptr, ptr %1445, align 8
  invoke void %1446(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL31E_GL_KHR_memory_scope_semanticsE, ptr noundef %1443)
          to label %1447 unwind label %65

1447:                                             ; preds = %1442
  invoke void @_ZN7glslang13TParseContext20memorySemanticsCheckERKNS_10TSourceLocERKNS_9TFunctionERKNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(328) %2, ptr noundef nonnull align 8 dereferenceable(184) %3)
          to label %.critedge unwind label %65

1448:                                             ; preds = %63
  %1449 = getelementptr inbounds i8, ptr %0, i64 12
  %1450 = load i32, ptr %1449, align 4, !tbaa !117
  %1451 = icmp eq i32 %1450, 8
  %1452 = getelementptr inbounds i8, ptr %0, i64 24
  %1453 = load i32, ptr %1452, align 8
  %1454 = icmp slt i32 %1453, 310
  %or.cond460 = select i1 %1451, i1 %1454, i1 false
  br i1 %or.cond460, label %1455, label %1499

1455:                                             ; preds = %1448
  %1456 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 0) #6
  %1457 = load ptr, ptr %1456, align 8, !tbaa !8
  %1458 = load ptr, ptr %1457, align 8, !tbaa !5
  %1459 = getelementptr inbounds i8, ptr %1458, i64 24
  %1460 = load ptr, ptr %1459, align 8
  %1461 = invoke noundef ptr %1460(ptr noundef nonnull align 8 dereferenceable(32) %1457)
          to label %1462 unwind label %65

1462:                                             ; preds = %1455
  %1463 = load ptr, ptr %1461, align 8, !tbaa !5
  %1464 = getelementptr inbounds i8, ptr %1463, i64 256
  %1465 = load ptr, ptr %1464, align 8
  %1466 = invoke noundef i32 %1465(ptr noundef nonnull align 8 dereferenceable(176) %1461)
          to label %1467 unwind label %65

1467:                                             ; preds = %1462
  %.not372 = icmp eq i32 %1466, 1
  br i1 %.not372, label %1499, label %1468

1468:                                             ; preds = %1467
  %1469 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %1470 = load ptr, ptr %1469, align 8, !tbaa !8
  %1471 = load ptr, ptr %1470, align 8, !tbaa !5
  %1472 = getelementptr inbounds i8, ptr %1471, i64 24
  %1473 = load ptr, ptr %1472, align 8
  %1474 = invoke noundef ptr %1473(ptr noundef nonnull align 8 dereferenceable(32) %1470)
          to label %1475 unwind label %65

1475:                                             ; preds = %1468
  %1476 = load ptr, ptr %1474, align 8, !tbaa !5
  %1477 = getelementptr inbounds i8, ptr %1476, i64 256
  %1478 = load ptr, ptr %1477, align 8
  %1479 = invoke noundef i32 %1478(ptr noundef nonnull align 8 dereferenceable(176) %1474)
          to label %1480 unwind label %65

1480:                                             ; preds = %1475
  %.not373 = icmp eq i32 %1479, 1
  br i1 %.not373, label %1499, label %1481

1481:                                             ; preds = %1480
  %1482 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 2) #6
  %1483 = load ptr, ptr %1482, align 8, !tbaa !8
  %1484 = load ptr, ptr %1483, align 8, !tbaa !5
  %1485 = getelementptr inbounds i8, ptr %1484, i64 24
  %1486 = load ptr, ptr %1485, align 8
  %1487 = invoke noundef ptr %1486(ptr noundef nonnull align 8 dereferenceable(32) %1483)
          to label %1488 unwind label %65

1488:                                             ; preds = %1481
  %1489 = load ptr, ptr %1487, align 8, !tbaa !5
  %1490 = getelementptr inbounds i8, ptr %1489, i64 256
  %1491 = load ptr, ptr %1490, align 8
  %1492 = invoke noundef i32 %1491(ptr noundef nonnull align 8 dereferenceable(176) %1487)
          to label %1493 unwind label %65

1493:                                             ; preds = %1488
  %1494 = icmp eq i32 %1492, 12
  br i1 %1494, label %1495, label %1499

1495:                                             ; preds = %1493
  %1496 = load ptr, ptr %0, align 8, !tbaa !5
  %1497 = getelementptr inbounds i8, ptr %1496, i64 40
  %1498 = load ptr, ptr %1497, align 8
  invoke void %1498(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL27E_GL_EXT_shader_integer_mixE, ptr noundef nonnull @.str.254)
          to label %1499 unwind label %65

1499:                                             ; preds = %1467, %1480, %1493, %1495, %1448
  %1500 = load i32, ptr %1449, align 4, !tbaa !117
  %.not374 = icmp ne i32 %1500, 8
  %1501 = load i32, ptr %1452, align 8
  %1502 = icmp slt i32 %1501, 450
  %or.cond463 = select i1 %.not374, i1 %1502, i1 false
  br i1 %or.cond463, label %1503, label %.critedge

1503:                                             ; preds = %1499
  %1504 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 0) #6
  %1505 = load ptr, ptr %1504, align 8, !tbaa !8
  %1506 = load ptr, ptr %1505, align 8, !tbaa !5
  %1507 = getelementptr inbounds i8, ptr %1506, i64 24
  %1508 = load ptr, ptr %1507, align 8
  %1509 = invoke noundef ptr %1508(ptr noundef nonnull align 8 dereferenceable(32) %1505)
          to label %1510 unwind label %65

1510:                                             ; preds = %1503
  %1511 = load ptr, ptr %1509, align 8, !tbaa !5
  %1512 = getelementptr inbounds i8, ptr %1511, i64 256
  %1513 = load ptr, ptr %1512, align 8
  %1514 = invoke noundef i32 %1513(ptr noundef nonnull align 8 dereferenceable(176) %1509)
          to label %1515 unwind label %65

1515:                                             ; preds = %1510
  %.not375 = icmp eq i32 %1514, 1
  br i1 %.not375, label %.critedge, label %1516

1516:                                             ; preds = %1515
  %1517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 0) #6
  %1518 = load ptr, ptr %1517, align 8, !tbaa !8
  %1519 = load ptr, ptr %1518, align 8, !tbaa !5
  %1520 = getelementptr inbounds i8, ptr %1519, i64 24
  %1521 = load ptr, ptr %1520, align 8
  %1522 = invoke noundef ptr %1521(ptr noundef nonnull align 8 dereferenceable(32) %1518)
          to label %1523 unwind label %65

1523:                                             ; preds = %1516
  %1524 = load ptr, ptr %1522, align 8, !tbaa !5
  %1525 = getelementptr inbounds i8, ptr %1524, i64 256
  %1526 = load ptr, ptr %1525, align 8
  %1527 = invoke noundef i32 %1526(ptr noundef nonnull align 8 dereferenceable(176) %1522)
          to label %1528 unwind label %65

1528:                                             ; preds = %1523
  %.not376 = icmp eq i32 %1527, 2
  br i1 %.not376, label %.critedge, label %1529

1529:                                             ; preds = %1528
  %1530 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %1531 = load ptr, ptr %1530, align 8, !tbaa !8
  %1532 = load ptr, ptr %1531, align 8, !tbaa !5
  %1533 = getelementptr inbounds i8, ptr %1532, i64 24
  %1534 = load ptr, ptr %1533, align 8
  %1535 = invoke noundef ptr %1534(ptr noundef nonnull align 8 dereferenceable(32) %1531)
          to label %1536 unwind label %65

1536:                                             ; preds = %1529
  %1537 = load ptr, ptr %1535, align 8, !tbaa !5
  %1538 = getelementptr inbounds i8, ptr %1537, i64 256
  %1539 = load ptr, ptr %1538, align 8
  %1540 = invoke noundef i32 %1539(ptr noundef nonnull align 8 dereferenceable(176) %1535)
          to label %1541 unwind label %65

1541:                                             ; preds = %1536
  %.not377 = icmp eq i32 %1540, 1
  br i1 %.not377, label %.critedge, label %1542

1542:                                             ; preds = %1541
  %1543 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 1) #6
  %1544 = load ptr, ptr %1543, align 8, !tbaa !8
  %1545 = load ptr, ptr %1544, align 8, !tbaa !5
  %1546 = getelementptr inbounds i8, ptr %1545, i64 24
  %1547 = load ptr, ptr %1546, align 8
  %1548 = invoke noundef ptr %1547(ptr noundef nonnull align 8 dereferenceable(32) %1544)
          to label %1549 unwind label %65

1549:                                             ; preds = %1542
  %1550 = load ptr, ptr %1548, align 8, !tbaa !5
  %1551 = getelementptr inbounds i8, ptr %1550, i64 256
  %1552 = load ptr, ptr %1551, align 8
  %1553 = invoke noundef i32 %1552(ptr noundef nonnull align 8 dereferenceable(176) %1548)
          to label %1554 unwind label %65

1554:                                             ; preds = %1549
  %.not378 = icmp eq i32 %1553, 2
  br i1 %.not378, label %.critedge, label %1555

1555:                                             ; preds = %1554
  %1556 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP11TIntermNodeN7glslang14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.0, i64 noundef 2) #6
  %1557 = load ptr, ptr %1556, align 8, !tbaa !8
  %1558 = load ptr, ptr %1557, align 8, !tbaa !5
  %1559 = getelementptr inbounds i8, ptr %1558, i64 24
  %1560 = load ptr, ptr %1559, align 8
  %1561 = invoke noundef ptr %1560(ptr noundef nonnull align 8 dereferenceable(32) %1557)
          to label %1562 unwind label %65

1562:                                             ; preds = %1555
  %1563 = load ptr, ptr %1561, align 8, !tbaa !5
  %1564 = getelementptr inbounds i8, ptr %1563, i64 256
  %1565 = load ptr, ptr %1564, align 8
  %1566 = invoke noundef i32 %1565(ptr noundef nonnull align 8 dereferenceable(176) %1561)
          to label %1567 unwind label %65

1567:                                             ; preds = %1562
  %1568 = icmp eq i32 %1566, 12
  br i1 %1568, label %1569, label %.critedge

1569:                                             ; preds = %1567
  %1570 = load ptr, ptr %2, align 8, !tbaa !5
  %1571 = getelementptr inbounds i8, ptr %1570, i64 24
  %1572 = load ptr, ptr %1571, align 8
  %1573 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1572(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %.invoke unwind label %65

.invoke:                                          ; preds = %1569, %403
  %.sink504 = phi ptr [ %407, %403 ], [ %1573, %1569 ]
  %1574 = phi ptr [ @_ZN7glslangL24E_GL_ARB_sparse_texture2E, %403 ], [ @_ZN7glslangL27E_GL_EXT_shader_integer_mixE, %1569 ]
  %1575 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %.sink504) #6
  %1576 = load ptr, ptr %0, align 8, !tbaa !5
  %1577 = getelementptr inbounds i8, ptr %1576, i64 40
  %1578 = load ptr, ptr %1577, align 8
  invoke void %1578(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull %1574, ptr noundef %1575)
          to label %.critedge unwind label %65

.critedge:                                        ; preds = %.invoke497, %.invoke482, %.invoke, %302, %1266, %1410, %1365, %1370, %1275, %1031, %1046, %766, %771, %773, %717, %722, %724, %672, %.loopexit, %501, %507, %453, %460, %.critedge453, %397, %396, %317, %330, %309, %63, %1499, %1567, %1554, %1541, %1528, %1515, %1435, %1447, %1416, %1427, %1335, %787, %786, %737, %688, %680, %1384
  %1579 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  switch i32 %1579, label %1619 [
    i32 614, label %1580
    i32 616, label %1580
    i32 617, label %1580
    i32 623, label %1580
    i32 624, label %1580
  ]

1580:                                             ; preds = %.critedge, %.critedge, %.critedge, %.critedge, %.critedge
  %1581 = load ptr, ptr %2, align 8, !tbaa !5
  %1582 = getelementptr inbounds i8, ptr %1581, i64 320
  %1583 = load ptr, ptr %1582, align 8
  %1584 = invoke noundef nonnull align 8 dereferenceable(24) ptr %1583(ptr noundef nonnull align 8 dereferenceable(328) %2, i32 noundef 0)
          to label %1585 unwind label %1615

1585:                                             ; preds = %1580
  %1586 = getelementptr inbounds i8, ptr %1584, i64 8
  %1587 = load ptr, ptr %1586, align 8, !tbaa !11
  %1588 = load ptr, ptr %1587, align 8, !tbaa !5
  %1589 = getelementptr inbounds i8, ptr %1588, i64 72
  %1590 = load ptr, ptr %1589, align 8
  %1591 = invoke noundef nonnull align 4 dereferenceable(4) ptr %1590(ptr noundef nonnull align 8 dereferenceable(144) %1587)
          to label %1592 unwind label %1615

1592:                                             ; preds = %1585
  %1593 = call noundef zeroext i1 @_ZNK7glslang8TSampler9isTextureEv(ptr noundef nonnull align 4 dereferenceable(4) %1591)
  br i1 %1593, label %1594, label %1596

1594:                                             ; preds = %1592
  %1595 = call noundef zeroext i1 @_ZNK7glslang8TSampler10isCombinedEv(ptr noundef nonnull align 4 dereferenceable(4) %1591)
  br label %1596

1596:                                             ; preds = %1594, %1592
  %.not479 = phi i1 [ true, %1592 ], [ %1595, %1594 ]
  %1597 = call noundef zeroext i1 @_ZNK7glslang8TSampler8isBufferEv(ptr noundef nonnull align 4 dereferenceable(4) %1591)
  %1598 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1599 = icmp eq i32 %1598, 623
  br i1 %1599, label %1603, label %1600

1600:                                             ; preds = %1596
  %1601 = call noundef i32 @_ZNK7glslang15TIntermOperator5getOpEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  %1602 = icmp eq i32 %1601, 624
  br label %1603

1603:                                             ; preds = %1600, %1596
  %1604 = phi i1 [ true, %1596 ], [ %1602, %1600 ]
  %brmerge.demorgan = and i1 %1597, %1604
  %or.cond480 = or i1 %.not479, %brmerge.demorgan
  br i1 %or.cond480, label %1619, label %1605

1605:                                             ; preds = %1603
  %1606 = load ptr, ptr %2, align 8, !tbaa !5
  %1607 = getelementptr inbounds i8, ptr %1606, i64 24
  %1608 = load ptr, ptr %1607, align 8
  %1609 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1608(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %1610 unwind label %1617

1610:                                             ; preds = %1605
  %1611 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %1609) #6
  %1612 = load ptr, ptr %0, align 8, !tbaa !5
  %1613 = getelementptr inbounds i8, ptr %1612, i64 40
  %1614 = load ptr, ptr %1613, align 8
  invoke void %1614(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL38E_GL_EXT_samplerless_texture_functionsE, ptr noundef %1611)
          to label %1619 unwind label %1617

1615:                                             ; preds = %1585, %1580
  %1616 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1617:                                             ; preds = %1610, %1605
  %1618 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1619:                                             ; preds = %1603, %1610, %.critedge
  %1620 = call noundef zeroext i1 @_ZNK7glslang15TIntermOperator10isSubgroupEv(ptr noundef nonnull align 8 dereferenceable(184) %3)
  br i1 %1620, label %1621, label %1737

1621:                                             ; preds = %1619
  %1622 = getelementptr inbounds i8, ptr %0, i64 32
  %1623 = load i32, ptr %1622, align 8, !tbaa !116
  %1624 = add i32 %1623, -1
  %or.cond466 = icmp ult i32 %1624, 66303
  br i1 %or.cond466, label %1625, label %1629

1625:                                             ; preds = %1621
  %1626 = load ptr, ptr %0, align 8, !tbaa !5
  %1627 = getelementptr inbounds i8, ptr %1626, i64 336
  %1628 = load ptr, ptr %1627, align 8
  invoke void (ptr, ptr, ptr, ptr, ptr, ...) %1628(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.2)
          to label %1629 unwind label %65

1629:                                             ; preds = %1625, %1621
  %.not430 = icmp eq ptr %.0330, null
  br i1 %.not430, label %1737, label %1630

1630:                                             ; preds = %1629
  %1631 = load ptr, ptr %.0330, align 8, !tbaa !5
  %1632 = getelementptr inbounds i8, ptr %1631, i64 240
  %1633 = load ptr, ptr %1632, align 8
  %1634 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1633(ptr noundef nonnull align 8 dereferenceable(176) %.0330)
          to label %1635 unwind label %1645

1635:                                             ; preds = %1630
  %1636 = getelementptr inbounds i8, ptr %0, i64 56
  %1637 = load ptr, ptr %1636, align 8, !tbaa !115
  %1638 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate15getEnhancedMsgsEv(ptr noundef nonnull align 8 dereferenceable(1784) %1637)
          to label %1639 unwind label %1647

1639:                                             ; preds = %1635
  %1640 = load ptr, ptr %1634, align 8, !tbaa !5
  %1641 = getelementptr inbounds i8, ptr %1640, i64 56
  %1642 = load ptr, ptr %1641, align 8
  %1643 = invoke noundef i32 %1642(ptr noundef nonnull align 8 dereferenceable(144) %1634)
          to label %1644 unwind label %1647

1644:                                             ; preds = %1639
  switch i32 %1643, label %1737 [
    i32 4, label %1649
    i32 5, label %1649
    i32 6, label %1671
    i32 7, label %1671
    i32 10, label %1693
    i32 11, label %1693
    i32 3, label %1715
  ]

1645:                                             ; preds = %1630
  %1646 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1647:                                             ; preds = %1639, %1635
  %1648 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1649:                                             ; preds = %1644, %1644
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %1650 unwind label %1660

1650:                                             ; preds = %1649
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %1651 unwind label %1660

1651:                                             ; preds = %1650
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %1652 unwind label %1662

1652:                                             ; preds = %1651
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %11, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %1653 unwind label %1662

1653:                                             ; preds = %1652
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(144) %1634, i1 noundef zeroext %1638, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, ptr noundef nonnull %9, ptr noundef nonnull %11)
          to label %1654 unwind label %1664

1654:                                             ; preds = %1653
  %1655 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %8) #6
  %1656 = load ptr, ptr %0, align 8, !tbaa !5
  %1657 = getelementptr inbounds i8, ptr %1656, i64 40
  %1658 = load ptr, ptr %1657, align 8
  invoke void %1658(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL44E_GL_EXT_shader_subgroup_extended_types_int8E, ptr noundef %1655)
          to label %1659 unwind label %1666

1659:                                             ; preds = %1654
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #6
  br label %1737

1660:                                             ; preds = %1650, %1649
  %1661 = landingpad { ptr, i32 }
          cleanup
  br label %1670

1662:                                             ; preds = %1652, %1651
  %1663 = landingpad { ptr, i32 }
          cleanup
  br label %1669

1664:                                             ; preds = %1653
  %1665 = landingpad { ptr, i32 }
          cleanup
  br label %1668

1666:                                             ; preds = %1654
  %1667 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #6
  br label %1668

1668:                                             ; preds = %1666, %1664
  %.pn443 = phi { ptr, i32 } [ %1667, %1666 ], [ %1665, %1664 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #6
  br label %1669

1669:                                             ; preds = %1668, %1662
  %.pn443.pn = phi { ptr, i32 } [ %.pn443, %1668 ], [ %1663, %1662 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #6
  br label %1670

1670:                                             ; preds = %1669, %1660
  %.pn443.pn.pn = phi { ptr, i32 } [ %.pn443.pn, %1669 ], [ %1661, %1660 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #6
  br label %1738

1671:                                             ; preds = %1644, %1644
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %1672 unwind label %1682

1672:                                             ; preds = %1671
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %14, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %1673 unwind label %1682

1673:                                             ; preds = %1672
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %1674 unwind label %1684

1674:                                             ; preds = %1673
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %1675 unwind label %1684

1675:                                             ; preds = %1674
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(144) %1634, i1 noundef zeroext %1638, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, ptr noundef nonnull %14, ptr noundef nonnull %16)
          to label %1676 unwind label %1686

1676:                                             ; preds = %1675
  %1677 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %13) #6
  %1678 = load ptr, ptr %0, align 8, !tbaa !5
  %1679 = getelementptr inbounds i8, ptr %1678, i64 40
  %1680 = load ptr, ptr %1679, align 8
  invoke void %1680(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL45E_GL_EXT_shader_subgroup_extended_types_int16E, ptr noundef %1677)
          to label %1681 unwind label %1688

1681:                                             ; preds = %1676
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #6
  br label %1737

1682:                                             ; preds = %1672, %1671
  %1683 = landingpad { ptr, i32 }
          cleanup
  br label %1692

1684:                                             ; preds = %1674, %1673
  %1685 = landingpad { ptr, i32 }
          cleanup
  br label %1691

1686:                                             ; preds = %1675
  %1687 = landingpad { ptr, i32 }
          cleanup
  br label %1690

1688:                                             ; preds = %1676
  %1689 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #6
  br label %1690

1690:                                             ; preds = %1688, %1686
  %.pn439 = phi { ptr, i32 } [ %1689, %1688 ], [ %1687, %1686 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #6
  br label %1691

1691:                                             ; preds = %1690, %1684
  %.pn439.pn = phi { ptr, i32 } [ %.pn439, %1690 ], [ %1685, %1684 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #6
  br label %1692

1692:                                             ; preds = %1691, %1682
  %.pn439.pn.pn = phi { ptr, i32 } [ %.pn439.pn, %1691 ], [ %1683, %1682 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #6
  br label %1738

1693:                                             ; preds = %1644, %1644
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %1694 unwind label %1704

1694:                                             ; preds = %1693
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %19, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %1695 unwind label %1704

1695:                                             ; preds = %1694
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %1696 unwind label %1706

1696:                                             ; preds = %1695
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %21, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %1697 unwind label %1706

1697:                                             ; preds = %1696
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(144) %1634, i1 noundef zeroext %1638, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, ptr noundef nonnull %19, ptr noundef nonnull %21)
          to label %1698 unwind label %1708

1698:                                             ; preds = %1697
  %1699 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %18) #6
  %1700 = load ptr, ptr %0, align 8, !tbaa !5
  %1701 = getelementptr inbounds i8, ptr %1700, i64 40
  %1702 = load ptr, ptr %1701, align 8
  invoke void %1702(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL45E_GL_EXT_shader_subgroup_extended_types_int64E, ptr noundef %1699)
          to label %1703 unwind label %1710

1703:                                             ; preds = %1698
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #6
  br label %1737

1704:                                             ; preds = %1694, %1693
  %1705 = landingpad { ptr, i32 }
          cleanup
  br label %1714

1706:                                             ; preds = %1696, %1695
  %1707 = landingpad { ptr, i32 }
          cleanup
  br label %1713

1708:                                             ; preds = %1697
  %1709 = landingpad { ptr, i32 }
          cleanup
  br label %1712

1710:                                             ; preds = %1698
  %1711 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #6
  br label %1712

1712:                                             ; preds = %1710, %1708
  %.pn435 = phi { ptr, i32 } [ %1711, %1710 ], [ %1709, %1708 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #6
  br label %1713

1713:                                             ; preds = %1712, %1706
  %.pn435.pn = phi { ptr, i32 } [ %.pn435, %1712 ], [ %1707, %1706 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %19) #6
  br label %1714

1714:                                             ; preds = %1713, %1704
  %.pn435.pn.pn = phi { ptr, i32 } [ %.pn435.pn, %1713 ], [ %1705, %1704 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #6
  br label %1738

1715:                                             ; preds = %1644
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %1716 unwind label %1726

1716:                                             ; preds = %1715
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %24, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %1717 unwind label %1726

1717:                                             ; preds = %1716
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %1718 unwind label %1728

1718:                                             ; preds = %1717
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %26, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %1719 unwind label %1728

1719:                                             ; preds = %1718
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(144) %1634, i1 noundef zeroext %1638, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, ptr noundef nonnull %24, ptr noundef nonnull %26)
          to label %1720 unwind label %1730

1720:                                             ; preds = %1719
  %1721 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %23) #6
  %1722 = load ptr, ptr %0, align 8, !tbaa !5
  %1723 = getelementptr inbounds i8, ptr %1722, i64 40
  %1724 = load ptr, ptr %1723, align 8
  invoke void %1724(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL47E_GL_EXT_shader_subgroup_extended_types_float16E, ptr noundef %1721)
          to label %1725 unwind label %1732

1725:                                             ; preds = %1720
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #6
  br label %1737

1726:                                             ; preds = %1716, %1715
  %1727 = landingpad { ptr, i32 }
          cleanup
  br label %1736

1728:                                             ; preds = %1718, %1717
  %1729 = landingpad { ptr, i32 }
          cleanup
  br label %1735

1730:                                             ; preds = %1719
  %1731 = landingpad { ptr, i32 }
          cleanup
  br label %1734

1732:                                             ; preds = %1720
  %1733 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #6
  br label %1734

1734:                                             ; preds = %1732, %1730
  %.pn431 = phi { ptr, i32 } [ %1733, %1732 ], [ %1731, %1730 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #6
  br label %1735

1735:                                             ; preds = %1734, %1728
  %.pn431.pn = phi { ptr, i32 } [ %.pn431, %1734 ], [ %1729, %1728 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #6
  br label %1736

1736:                                             ; preds = %1735, %1726
  %.pn431.pn.pn = phi { ptr, i32 } [ %.pn431.pn, %1735 ], [ %1727, %1726 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #6
  br label %1738

1737:                                             ; preds = %1659, %1681, %1703, %1725, %1644, %1629, %1619
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #6
  ret void

1738:                                             ; preds = %1645, %1736, %1714, %1692, %1670, %1647, %1615, %1617, %1280, %1284, %1282, %867, %1047, %515, %615, %638, %617, %662, %571, %344, %401, %80, %289, %304, %1408, %1374, %1333, %1163, %777, %728, %511, %464, %65
  %.pn431.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %66, %65 ], [ %1409, %1408 ], [ %1375, %1374 ], [ %1334, %1333 ], [ %1164, %1163 ], [ %778, %777 ], [ %729, %728 ], [ %512, %511 ], [ %465, %464 ], [ %305, %304 ], [ %290, %289 ], [ %81, %80 ], [ %402, %401 ], [ %345, %344 ], [ %516, %515 ], [ %663, %662 ], [ %572, %571 ], [ %616, %615 ], [ %639, %638 ], [ %618, %617 ], [ %1048, %1047 ], [ %868, %867 ], [ %1281, %1280 ], [ %1285, %1284 ], [ %1283, %1282 ], [ %1618, %1617 ], [ %1616, %1615 ], [ %1646, %1645 ], [ %.pn431.pn.pn, %1736 ], [ %.pn435.pn.pn, %1714 ], [ %.pn439.pn.pn, %1692 ], [ %.pn443.pn.pn, %1670 ], [ %1648, %1647 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #6
  resume { ptr, i32 } %.pn431.pn.pn.pn.pn.pn
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang13TParseContext20memorySemanticsCheckERKNS_10TSourceLocERKNS_9TFunctionERKNS_15TIntermOperatorE(ptr noundef nonnull align 8 dereferenceable(24912), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(328), ptr noundef nonnull align 8 dereferenceable(184)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler13isMultiSampleEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler6isRectEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler4is2DEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler9isArrayedEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler8isShadowEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

declare noundef i32 @_ZN7glslang13TIntermediate15checkLocationRTEii(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef, i32 noundef) local_unnamed_addr #5

; 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 #0 align 2

declare noundef ptr @_ZN7glslang13TIntermediate14findLValueBaseEPKNS_12TIntermTypedEbb(ptr noundef, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang10TQualifier23isExplicitInterpolationEv(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler9isTextureEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler10isCombinedEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang8TSampler8isBufferEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang15TIntermOperator10isSubgroupEv(ptr noundef nonnull align 8 dereferenceable(184)) local_unnamed_addr #1 align 2

attributes #0 = { 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 #1 = { 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 #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { noreturn nounwind "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 = { "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 }
attributes #7 = { noreturn nounwind }

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

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


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass