; 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] }
%"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.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 }
%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.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 }
%"class.glslang::TQualifier" = type <{ ptr, i64, i8, [3 x i8], i32, i32, i64, i64, i8, i8, i8, i8, i8, [3 x i8], i32, i8, [3 x i8], i32, ptr }>
%"struct.glslang::TShaderQualifiers" = type { i32, i8, i8, i32, i32, i32, i32, i8, [3 x i32], [3 x i8], [3 x i32], i8, i8, i32, i8, i32, i32, i8, i8, i8, i32, i8 }

@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZN7glslangL20AEP_shader_io_blocksE = external hidden constant [2 x ptr], align 16
@.str.468 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [81 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(40)) #2 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)) #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang13TParseContext11builtInNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(24912), ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN7glslang13TParseContext24redeclareBuiltinVariableERKNS_10TSourceLocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEERKNS_10TQualifierERKNS_17TShaderQualifiersE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull align 8 dereferenceable(72) %3, ptr noundef nonnull align 4 dereferenceable(88) %4) #2 align 2 personality ptr @__gxx_personality_v0 {
  %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 i8, align 1
  %13 = alloca i8, align 1
  %14 = alloca i32, align 4
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca i1, align 1
  %21 = alloca %"class.glslang::pool_allocator.14", align 8
  %22 = alloca i1, align 1
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.glslang::pool_allocator.14", align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store ptr %2, ptr %9, align 8, !tbaa !5
  store ptr %3, ptr %10, align 8, !tbaa !5
  store ptr %4, ptr %11, align 8, !tbaa !5
  %27 = load ptr, ptr %7, align 8
  %28 = load ptr, ptr %9, align 8, !tbaa !5
  %29 = call noundef zeroext i1 @_ZN7glslang13TParseContext11builtInNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(24912) %27, ptr noundef nonnull align 8 dereferenceable(40) %28)
  br i1 %29, label %30, label %38

30:                                               ; preds = %5
  %31 = getelementptr inbounds %"class.glslang::TParseContextBase", ptr %27, i32 0, i32 2
  %32 = load ptr, ptr %31, align 8, !tbaa !9
  %33 = call noundef zeroext i1 @_ZN7glslang12TSymbolTable14atBuiltInLevelEv(ptr noundef nonnull align 8 dereferenceable(40) %32)
  br i1 %33, label %38, label %34

34:                                               ; preds = %30
  %35 = getelementptr inbounds %"class.glslang::TParseContextBase", ptr %27, i32 0, i32 2
  %36 = load ptr, ptr %35, align 8, !tbaa !9
  %37 = call noundef zeroext i1 @_ZN7glslang12TSymbolTable13atGlobalLevelEv(ptr noundef nonnull align 8 dereferenceable(40) %36)
  br i1 %37, label %39, label %38

38:                                               ; preds = %34, %30, %5
  store ptr null, ptr %6, align 8
  br label %866

39:                                               ; preds = %34
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #4
  %40 = call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %27)
  br i1 %40, label %50, label %41

41:                                               ; preds = %39
  %42 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 4
  %43 = load i32, ptr %42, align 8, !tbaa !82
  %44 = icmp sge i32 %43, 130
  br i1 %44, label %48, label %45

45:                                               ; preds = %41
  %46 = load ptr, ptr %9, align 8, !tbaa !5
  %47 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %46, ptr noundef @.str.51)
  br label %48

48:                                               ; preds = %45, %41
  %49 = phi i1 [ true, %41 ], [ %47, %45 ]
  br label %50

50:                                               ; preds = %48, %39
  %51 = phi i1 [ false, %39 ], [ %49, %48 ]
  %52 = zext i1 %51 to i8
  store i8 %52, ptr %12, align 1, !tbaa !83
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #4
  %53 = call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %27)
  br i1 %53, label %54, label %65

54:                                               ; preds = %50
  %55 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 4
  %56 = load i32, ptr %55, align 8, !tbaa !82
  %57 = icmp sge i32 %56, 320
  br i1 %57, label %63, label %58

58:                                               ; preds = %54
  %59 = load ptr, ptr %27, align 8, !tbaa !84
  %60 = getelementptr inbounds ptr, ptr %59, i64 9
  %61 = load ptr, ptr %60, align 8
  %62 = call noundef zeroext i1 %61(ptr noundef nonnull align 8 dereferenceable(192) %27, i32 noundef 2, ptr noundef @_ZN7glslangL20AEP_shader_io_blocksE)
  br label %63

63:                                               ; preds = %58, %54
  %64 = phi i1 [ true, %54 ], [ %62, %58 ]
  br label %65

65:                                               ; preds = %63, %50
  %66 = phi i1 [ false, %50 ], [ %64, %63 ]
  %67 = zext i1 %66 to i8
  store i8 %67, ptr %13, align 1, !tbaa !83
  %68 = load i8, ptr %13, align 1, !tbaa !83, !range !86, !noundef !87
  %69 = trunc i8 %68 to i1
  br i1 %69, label %74, label %70

70:                                               ; preds = %65
  %71 = load i8, ptr %12, align 1, !tbaa !83, !range !86, !noundef !87
  %72 = trunc i8 %71 to i1
  br i1 %72, label %74, label %73

73:                                               ; preds = %70
  store ptr null, ptr %6, align 8
  store i32 1, ptr %14, align 4
  br label %865

74:                                               ; preds = %70, %65
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #4
  store i8 0, ptr %15, align 1, !tbaa !83
  %75 = call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %27)
  br i1 %75, label %99, label %76

76:                                               ; preds = %74
  %77 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 4
  %78 = load i32, ptr %77, align 8, !tbaa !82
  %79 = icmp sle i32 %78, 140
  br i1 %79, label %80, label %99

80:                                               ; preds = %76
  %81 = load ptr, ptr %27, align 8, !tbaa !84
  %82 = getelementptr inbounds ptr, ptr %81, i64 8
  %83 = load ptr, ptr %82, align 8
  %84 = call noundef zeroext i1 %83(ptr noundef nonnull align 8 dereferenceable(192) %27, ptr noundef @.str.468)
  br i1 %84, label %85, label %99

85:                                               ; preds = %80
  %86 = load ptr, ptr %9, align 8, !tbaa !5
  %87 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %86, ptr noundef @.str.35)
  br i1 %87, label %97, label %88

88:                                               ; preds = %85
  %89 = load ptr, ptr %9, align 8, !tbaa !5
  %90 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %89, ptr noundef @.str.36)
  br i1 %90, label %97, label %91

91:                                               ; preds = %88
  %92 = load ptr, ptr %9, align 8, !tbaa !5
  %93 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %92, ptr noundef @.str.46)
  br i1 %93, label %97, label %94

94:                                               ; preds = %91
  %95 = load ptr, ptr %9, align 8, !tbaa !5
  %96 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %95, ptr noundef @.str.52)
  br i1 %96, label %97, label %98

97:                                               ; preds = %94, %91, %88, %85
  store i8 1, ptr %15, align 1, !tbaa !83
  br label %98

98:                                               ; preds = %97, %94
  br label %99

99:                                               ; preds = %98, %80, %76, %74
  %100 = load i8, ptr %15, align 1, !tbaa !83, !range !86, !noundef !87
  %101 = trunc i8 %100 to i1
  br i1 %101, label %188, label %102

102:                                              ; preds = %99
  %103 = load ptr, ptr %9, align 8, !tbaa !5
  %104 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %103, ptr noundef @.str.44)
  br i1 %104, label %105, label %115

105:                                              ; preds = %102
  %106 = load i8, ptr %12, align 1, !tbaa !83, !range !86, !noundef !87
  %107 = trunc i8 %106 to i1
  br i1 %107, label %108, label %112

108:                                              ; preds = %105
  %109 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 4
  %110 = load i32, ptr %109, align 8, !tbaa !82
  %111 = icmp sge i32 %110, 420
  br i1 %111, label %188, label %112

112:                                              ; preds = %108, %105
  %113 = load i8, ptr %13, align 1, !tbaa !83, !range !86, !noundef !87
  %114 = trunc i8 %113 to i1
  br i1 %114, label %188, label %115

115:                                              ; preds = %112, %102
  %116 = load ptr, ptr %9, align 8, !tbaa !5
  %117 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %116, ptr noundef @.str.469)
  br i1 %117, label %118, label %128

118:                                              ; preds = %115
  %119 = load i8, ptr %12, align 1, !tbaa !83, !range !86, !noundef !87
  %120 = trunc i8 %119 to i1
  br i1 %120, label %121, label %125

121:                                              ; preds = %118
  %122 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 4
  %123 = load i32, ptr %122, align 8, !tbaa !82
  %124 = icmp sge i32 %123, 140
  br i1 %124, label %188, label %125

125:                                              ; preds = %121, %118
  %126 = load i8, ptr %13, align 1, !tbaa !83, !range !86, !noundef !87
  %127 = trunc i8 %126 to i1
  br i1 %127, label %188, label %128

128:                                              ; preds = %125, %115
  %129 = load ptr, ptr %9, align 8, !tbaa !5
  %130 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %129, ptr noundef @.str.37)
  br i1 %130, label %188, label %131

131:                                              ; preds = %128
  %132 = load ptr, ptr %9, align 8, !tbaa !5
  %133 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %132, ptr noundef @.str.38)
  br i1 %133, label %188, label %134

134:                                              ; preds = %131
  %135 = load ptr, ptr %9, align 8, !tbaa !5
  %136 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %135, ptr noundef @.str.470)
  br i1 %136, label %188, label %137

137:                                              ; preds = %134
  %138 = load ptr, ptr %9, align 8, !tbaa !5
  %139 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %138, ptr noundef @.str.471)
  br i1 %139, label %188, label %140

140:                                              ; preds = %137
  %141 = load ptr, ptr %9, align 8, !tbaa !5
  %142 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %141, ptr noundef @.str.47)
  br i1 %142, label %188, label %143

143:                                              ; preds = %140
  %144 = load ptr, ptr %9, align 8, !tbaa !5
  %145 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %144, ptr noundef @.str.48)
  br i1 %145, label %188, label %146

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

149:                                              ; preds = %146
  %150 = load ptr, ptr %9, align 8, !tbaa !5
  %151 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %150, ptr noundef @.str.50)
  br i1 %151, label %188, label %152

152:                                              ; preds = %149
  %153 = load ptr, ptr %9, align 8, !tbaa !5
  %154 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %153, ptr noundef @.str.472)
  br i1 %154, label %188, label %155

155:                                              ; preds = %152
  %156 = load ptr, ptr %9, align 8, !tbaa !5
  %157 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %156, ptr noundef @.str.473)
  br i1 %157, label %158, label %162

158:                                              ; preds = %155
  %159 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %160 = load i32, ptr %159, align 4, !tbaa !88
  %161 = icmp eq i32 %160, 4
  br i1 %161, label %188, label %162

162:                                              ; preds = %158, %155
  %163 = load ptr, ptr %9, align 8, !tbaa !5
  %164 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %163, ptr noundef @.str.474)
  br i1 %164, label %165, label %176

165:                                              ; preds = %162
  %166 = load i8, ptr %12, align 1, !tbaa !83, !range !86, !noundef !87
  %167 = trunc i8 %166 to i1
  br i1 %167, label %168, label %176

168:                                              ; preds = %165
  %169 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 4
  %170 = load i32, ptr %169, align 8, !tbaa !82
  %171 = icmp sge i32 %170, 140
  br i1 %171, label %172, label %176

172:                                              ; preds = %168
  %173 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %174 = load i32, ptr %173, align 4, !tbaa !88
  %175 = icmp eq i32 %174, 4
  br i1 %175, label %188, label %176

176:                                              ; preds = %172, %168, %165, %162
  %177 = load ptr, ptr %9, align 8, !tbaa !5
  %178 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %177, ptr noundef @.str.45)
  br i1 %178, label %188, label %179

179:                                              ; preds = %176
  %180 = load ptr, ptr %9, align 8, !tbaa !5
  %181 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %180, ptr noundef @.str.42)
  br i1 %181, label %188, label %182

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

185:                                              ; preds = %182
  %186 = load ptr, ptr %9, align 8, !tbaa !5
  %187 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %186, ptr noundef @.str.51)
  br i1 %187, label %188, label %863

188:                                              ; preds = %185, %182, %179, %176, %172, %158, %152, %149, %146, %143, %140, %137, %134, %131, %128, %125, %121, %112, %108, %99
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #4
  %189 = getelementptr inbounds %"class.glslang::TParseContextBase", ptr %27, i32 0, i32 2
  %190 = load ptr, ptr %189, align 8, !tbaa !9
  %191 = load ptr, ptr %9, align 8, !tbaa !5
  %192 = call noundef ptr @_ZN7glslang12TSymbolTable4findERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPbSA_Pi(ptr noundef nonnull align 8 dereferenceable(40) %190, ptr noundef nonnull align 8 dereferenceable(40) %191, ptr noundef %16, ptr noundef null, ptr noundef null)
  store ptr %192, ptr %17, align 8, !tbaa !5
  %193 = load ptr, ptr %17, align 8, !tbaa !5
  %194 = icmp ne ptr %193, null
  br i1 %194, label %196, label %195

195:                                              ; preds = %188
  store ptr null, ptr %6, align 8
  store i32 1, ptr %14, align 4
  br label %862

196:                                              ; preds = %188
  %197 = load i8, ptr %16, align 1, !tbaa !83, !range !86, !noundef !87
  %198 = trunc i8 %197 to i1
  br i1 %198, label %199, label %206

199:                                              ; preds = %196
  %200 = load ptr, ptr %27, align 8, !tbaa !84
  %201 = getelementptr inbounds ptr, ptr %200, i64 75
  %202 = load ptr, ptr %201, align 8
  call void %202(ptr noundef nonnull align 8 dereferenceable(24912) %27, ptr noundef nonnull align 8 dereferenceable(8) %17)
  %203 = getelementptr inbounds %"class.glslang::TParseContextBase", ptr %27, i32 0, i32 2
  %204 = load ptr, ptr %203, align 8, !tbaa !9
  %205 = load ptr, ptr %17, align 8, !tbaa !5
  call void @_ZN7glslang12TSymbolTable18amendSymbolIdLevelERNS_7TSymbolE(ptr noundef nonnull align 8 dereferenceable(40) %204, ptr noundef nonnull align 8 dereferenceable(33) %205)
  br label %206

206:                                              ; preds = %199, %196
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  %207 = load ptr, ptr %17, align 8, !tbaa !5
  %208 = load ptr, ptr %207, align 8, !tbaa !84
  %209 = getelementptr inbounds ptr, ptr %208, i64 13
  %210 = load ptr, ptr %209, align 8
  %211 = call noundef nonnull align 8 dereferenceable(144) ptr %210(ptr noundef nonnull align 8 dereferenceable(33) %207)
  %212 = load ptr, ptr %211, align 8, !tbaa !84
  %213 = getelementptr inbounds ptr, ptr %212, i64 10
  %214 = load ptr, ptr %213, align 8
  %215 = call noundef nonnull align 8 dereferenceable(72) ptr %214(ptr noundef nonnull align 8 dereferenceable(144) %211)
  store ptr %215, ptr %18, align 8, !tbaa !5
  %216 = load i8, ptr %15, align 1, !tbaa !83, !range !86, !noundef !87
  %217 = trunc i8 %216 to i1
  br i1 %217, label %218, label %302

218:                                              ; preds = %206
  %219 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %220 = load ptr, ptr %219, align 8, !tbaa !89
  %221 = load ptr, ptr %9, align 8, !tbaa !5
  %222 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %220, ptr noundef nonnull align 8 dereferenceable(40) %221)
  br i1 %222, label %223, label %230

223:                                              ; preds = %218
  %224 = load ptr, ptr %8, align 8, !tbaa !5
  %225 = load ptr, ptr %9, align 8, !tbaa !5
  %226 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %225) #4
  %227 = load ptr, ptr %27, align 8, !tbaa !84
  %228 = getelementptr inbounds ptr, ptr %227, i64 42
  %229 = load ptr, ptr %228, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %229(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %224, ptr noundef @.str.476, ptr noundef %226, ptr noundef @.str.2)
  br label %230

230:                                              ; preds = %223, %218
  %231 = load ptr, ptr %10, align 8, !tbaa !5
  %232 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %231)
  br i1 %232, label %233, label %244

233:                                              ; preds = %230
  %234 = load ptr, ptr %8, align 8, !tbaa !5
  %235 = load ptr, ptr %17, align 8, !tbaa !5
  %236 = load ptr, ptr %235, align 8, !tbaa !84
  %237 = getelementptr inbounds ptr, ptr %236, i64 3
  %238 = load ptr, ptr %237, align 8
  %239 = call noundef nonnull align 8 dereferenceable(40) ptr %238(ptr noundef nonnull align 8 dereferenceable(33) %235)
  %240 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %239) #4
  %241 = load ptr, ptr %27, align 8, !tbaa !84
  %242 = getelementptr inbounds ptr, ptr %241, i64 42
  %243 = load ptr, ptr %242, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %243(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %234, ptr noundef @.str.477, ptr noundef @.str.478, ptr noundef %240)
  br label %244

244:                                              ; preds = %233, %230
  %245 = load ptr, ptr %10, align 8, !tbaa !5
  %246 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %245)
  br i1 %246, label %272, label %247

247:                                              ; preds = %244
  %248 = load ptr, ptr %10, align 8, !tbaa !5
  %249 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %248)
  br i1 %249, label %272, label %250

250:                                              ; preds = %247
  %251 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %252 = load i32, ptr %251, align 4, !tbaa !88
  %253 = icmp eq i32 %252, 0
  br i1 %253, label %254, label %261

254:                                              ; preds = %250
  %255 = load ptr, ptr %10, align 8, !tbaa !5
  %256 = getelementptr inbounds %"class.glslang::TQualifier", ptr %255, i32 0, i32 1
  %257 = load i64, ptr %256, align 8
  %258 = and i64 %257, 63
  %259 = trunc i64 %258 to i32
  %260 = icmp ne i32 %259, 4
  br i1 %260, label %272, label %261

261:                                              ; preds = %254, %250
  %262 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 5
  %263 = load i32, ptr %262, align 4, !tbaa !88
  %264 = icmp eq i32 %263, 4
  br i1 %264, label %265, label %283

265:                                              ; preds = %261
  %266 = load ptr, ptr %10, align 8, !tbaa !5
  %267 = getelementptr inbounds %"class.glslang::TQualifier", ptr %266, i32 0, i32 1
  %268 = load i64, ptr %267, align 8
  %269 = and i64 %268, 63
  %270 = trunc i64 %269 to i32
  %271 = icmp ne i32 %270, 3
  br i1 %271, label %272, label %283

272:                                              ; preds = %265, %254, %247, %244
  %273 = load ptr, ptr %8, align 8, !tbaa !5
  %274 = load ptr, ptr %17, align 8, !tbaa !5
  %275 = load ptr, ptr %274, align 8, !tbaa !84
  %276 = getelementptr inbounds ptr, ptr %275, i64 3
  %277 = load ptr, ptr %276, align 8
  %278 = call noundef nonnull align 8 dereferenceable(40) ptr %277(ptr noundef nonnull align 8 dereferenceable(33) %274)
  %279 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %278) #4
  %280 = load ptr, ptr %27, align 8, !tbaa !84
  %281 = getelementptr inbounds ptr, ptr %280, i64 42
  %282 = load ptr, ptr %281, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %282(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %273, ptr noundef @.str.479, ptr noundef @.str.478, ptr noundef %279)
  br label %283

283:                                              ; preds = %272, %265, %261
  %284 = load ptr, ptr %10, align 8, !tbaa !5
  %285 = getelementptr inbounds %"class.glslang::TQualifier", ptr %284, i32 0, i32 1
  %286 = load i64, ptr %285, align 8
  %287 = lshr i64 %286, 29
  %288 = and i64 %287, 1
  %289 = trunc i64 %288 to i1
  br i1 %289, label %301, label %290

290:                                              ; preds = %283
  %291 = load ptr, ptr %8, align 8, !tbaa !5
  %292 = load ptr, ptr %17, align 8, !tbaa !5
  %293 = load ptr, ptr %292, align 8, !tbaa !84
  %294 = getelementptr inbounds ptr, ptr %293, i64 3
  %295 = load ptr, ptr %294, align 8
  %296 = call noundef nonnull align 8 dereferenceable(40) ptr %295(ptr noundef nonnull align 8 dereferenceable(33) %292)
  %297 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %296) #4
  %298 = load ptr, ptr %27, align 8, !tbaa !84
  %299 = getelementptr inbounds ptr, ptr %298, i64 42
  %300 = load ptr, ptr %299, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %300(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %291, ptr noundef @.str.480, ptr noundef @.str.478, ptr noundef %297)
  br label %301

301:                                              ; preds = %290, %283
  br label %859

302:                                              ; preds = %206
  %303 = load ptr, ptr %9, align 8, !tbaa !5
  %304 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %303, ptr noundef @.str.47)
  br i1 %304, label %320, label %305

305:                                              ; preds = %302
  %306 = load ptr, ptr %9, align 8, !tbaa !5
  %307 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %306, ptr noundef @.str.48)
  br i1 %307, label %320, label %308

308:                                              ; preds = %305
  %309 = load ptr, ptr %9, align 8, !tbaa !5
  %310 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %309, ptr noundef @.str.49)
  br i1 %310, label %320, label %311

311:                                              ; preds = %308
  %312 = load ptr, ptr %9, align 8, !tbaa !5
  %313 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %312, ptr noundef @.str.50)
  br i1 %313, label %320, label %314

314:                                              ; preds = %311
  %315 = load ptr, ptr %9, align 8, !tbaa !5
  %316 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %315, ptr noundef @.str.472)
  br i1 %316, label %320, label %317

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

320:                                              ; preds = %317, %314, %311, %308, %305, %302
  %321 = load ptr, ptr %10, align 8, !tbaa !5
  %322 = getelementptr inbounds %"class.glslang::TQualifier", ptr %321, i32 0, i32 1
  %323 = load i64, ptr %322, align 8
  %324 = lshr i64 %323, 30
  %325 = and i64 %324, 1
  %326 = trunc i64 %325 to i1
  %327 = icmp ne i1 %326, false
  %328 = load ptr, ptr %18, align 8, !tbaa !5
  %329 = getelementptr inbounds %"class.glslang::TQualifier", ptr %328, i32 0, i32 1
  %330 = zext i1 %327 to i64
  %331 = load i64, ptr %329, align 8
  %332 = shl i64 %330, 30
  %333 = and i64 %331, -1073741825
  %334 = or i64 %333, %332
  store i64 %334, ptr %329, align 8
  %335 = load ptr, ptr %10, align 8, !tbaa !5
  %336 = getelementptr inbounds %"class.glslang::TQualifier", ptr %335, i32 0, i32 1
  %337 = load i64, ptr %336, align 8
  %338 = lshr i64 %337, 29
  %339 = and i64 %338, 1
  %340 = trunc i64 %339 to i1
  %341 = icmp ne i1 %340, false
  %342 = load ptr, ptr %18, align 8, !tbaa !5
  %343 = getelementptr inbounds %"class.glslang::TQualifier", ptr %342, i32 0, i32 1
  %344 = zext i1 %341 to i64
  %345 = load i64, ptr %343, align 8
  %346 = shl i64 %344, 29
  %347 = and i64 %345, -536870913
  %348 = or i64 %347, %346
  store i64 %348, ptr %343, align 8
  %349 = load ptr, ptr %10, align 8, !tbaa !5
  %350 = getelementptr inbounds %"class.glslang::TQualifier", ptr %349, i32 0, i32 1
  %351 = load i64, ptr %350, align 8
  %352 = lshr i64 %351, 36
  %353 = and i64 %352, 1
  %354 = trunc i64 %353 to i1
  %355 = icmp ne i1 %354, false
  %356 = load ptr, ptr %18, align 8, !tbaa !5
  %357 = getelementptr inbounds %"class.glslang::TQualifier", ptr %356, i32 0, i32 1
  %358 = zext i1 %355 to i64
  %359 = load i64, ptr %357, align 8
  %360 = shl i64 %358, 36
  %361 = and i64 %359, -68719476737
  %362 = or i64 %361, %360
  store i64 %362, ptr %357, align 8
  %363 = load ptr, ptr %10, align 8, !tbaa !5
  %364 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %363)
  br i1 %364, label %365, label %376

365:                                              ; preds = %320
  %366 = load ptr, ptr %8, align 8, !tbaa !5
  %367 = load ptr, ptr %17, align 8, !tbaa !5
  %368 = load ptr, ptr %367, align 8, !tbaa !84
  %369 = getelementptr inbounds ptr, ptr %368, i64 3
  %370 = load ptr, ptr %369, align 8
  %371 = call noundef nonnull align 8 dereferenceable(40) ptr %370(ptr noundef nonnull align 8 dereferenceable(33) %367)
  %372 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %371) #4
  %373 = load ptr, ptr %27, align 8, !tbaa !84
  %374 = getelementptr inbounds ptr, ptr %373, i64 42
  %375 = load ptr, ptr %374, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %375(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %366, ptr noundef @.str.477, ptr noundef @.str.478, ptr noundef %372)
  br label %376

376:                                              ; preds = %365, %320
  %377 = load ptr, ptr %10, align 8, !tbaa !5
  %378 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %377)
  br i1 %378, label %402, label %379

379:                                              ; preds = %376
  %380 = load ptr, ptr %10, align 8, !tbaa !5
  %381 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %380)
  br i1 %381, label %402, label %382

382:                                              ; preds = %379
  %383 = load ptr, ptr %17, align 8, !tbaa !5
  %384 = load ptr, ptr %383, align 8, !tbaa !84
  %385 = getelementptr inbounds ptr, ptr %384, i64 12
  %386 = load ptr, ptr %385, align 8
  %387 = call noundef nonnull align 8 dereferenceable(144) ptr %386(ptr noundef nonnull align 8 dereferenceable(33) %383)
  %388 = load ptr, ptr %387, align 8, !tbaa !84
  %389 = getelementptr inbounds ptr, ptr %388, i64 11
  %390 = load ptr, ptr %389, align 8
  %391 = call noundef nonnull align 8 dereferenceable(72) ptr %390(ptr noundef nonnull align 8 dereferenceable(144) %387)
  %392 = getelementptr inbounds %"class.glslang::TQualifier", ptr %391, i32 0, i32 1
  %393 = load i64, ptr %392, align 8
  %394 = and i64 %393, 63
  %395 = trunc i64 %394 to i32
  %396 = load ptr, ptr %10, align 8, !tbaa !5
  %397 = getelementptr inbounds %"class.glslang::TQualifier", ptr %396, i32 0, i32 1
  %398 = load i64, ptr %397, align 8
  %399 = and i64 %398, 63
  %400 = trunc i64 %399 to i32
  %401 = icmp ne i32 %395, %400
  br i1 %401, label %402, label %413

402:                                              ; preds = %382, %379, %376
  %403 = load ptr, ptr %8, align 8, !tbaa !5
  %404 = load ptr, ptr %17, align 8, !tbaa !5
  %405 = load ptr, ptr %404, align 8, !tbaa !84
  %406 = getelementptr inbounds ptr, ptr %405, i64 3
  %407 = load ptr, ptr %406, align 8
  %408 = call noundef nonnull align 8 dereferenceable(40) ptr %407(ptr noundef nonnull align 8 dereferenceable(33) %404)
  %409 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %408) #4
  %410 = load ptr, ptr %27, align 8, !tbaa !84
  %411 = getelementptr inbounds ptr, ptr %410, i64 42
  %412 = load ptr, ptr %411, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %412(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %403, ptr noundef @.str.479, ptr noundef @.str.478, ptr noundef %409)
  br label %413

413:                                              ; preds = %402, %382
  br label %858

414:                                              ; preds = %317
  %415 = load ptr, ptr %9, align 8, !tbaa !5
  %416 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %415, ptr noundef @.str.51)
  br i1 %416, label %423, label %417

417:                                              ; preds = %414
  %418 = load ptr, ptr %9, align 8, !tbaa !5
  %419 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %418, ptr noundef @.str.37)
  br i1 %419, label %423, label %420

420:                                              ; preds = %417
  %421 = load ptr, ptr %9, align 8, !tbaa !5
  %422 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %421, ptr noundef @.str.38)
  br i1 %422, label %423, label %488

423:                                              ; preds = %420, %417, %414
  %424 = load ptr, ptr %10, align 8, !tbaa !5
  %425 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %424)
  br i1 %425, label %476, label %426

426:                                              ; preds = %423
  %427 = load ptr, ptr %10, align 8, !tbaa !5
  %428 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %427)
  br i1 %428, label %476, label %429

429:                                              ; preds = %426
  %430 = load ptr, ptr %10, align 8, !tbaa !5
  %431 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %430)
  br i1 %431, label %476, label %432

432:                                              ; preds = %429
  %433 = load ptr, ptr %10, align 8, !tbaa !5
  %434 = getelementptr inbounds %"class.glslang::TQualifier", ptr %433, i32 0, i32 1
  %435 = load i64, ptr %434, align 8
  %436 = lshr i64 %435, 36
  %437 = and i64 %436, 1
  %438 = trunc i64 %437 to i1
  %439 = zext i1 %438 to i32
  %440 = load ptr, ptr %18, align 8, !tbaa !5
  %441 = getelementptr inbounds %"class.glslang::TQualifier", ptr %440, i32 0, i32 1
  %442 = load i64, ptr %441, align 8
  %443 = lshr i64 %442, 36
  %444 = and i64 %443, 1
  %445 = trunc i64 %444 to i1
  %446 = zext i1 %445 to i32
  %447 = icmp ne i32 %439, %446
  br i1 %447, label %476, label %448

448:                                              ; preds = %432
  %449 = load ptr, ptr %10, align 8, !tbaa !5
  %450 = getelementptr inbounds %"class.glslang::TQualifier", ptr %449, i32 0, i32 1
  %451 = load i64, ptr %450, align 8
  %452 = lshr i64 %451, 30
  %453 = and i64 %452, 1
  %454 = trunc i64 %453 to i1
  %455 = zext i1 %454 to i32
  %456 = load ptr, ptr %18, align 8, !tbaa !5
  %457 = getelementptr inbounds %"class.glslang::TQualifier", ptr %456, i32 0, i32 1
  %458 = load i64, ptr %457, align 8
  %459 = lshr i64 %458, 30
  %460 = and i64 %459, 1
  %461 = trunc i64 %460 to i1
  %462 = zext i1 %461 to i32
  %463 = icmp ne i32 %455, %462
  br i1 %463, label %476, label %464

464:                                              ; preds = %448
  %465 = load ptr, ptr %18, align 8, !tbaa !5
  %466 = getelementptr inbounds %"class.glslang::TQualifier", ptr %465, i32 0, i32 1
  %467 = load i64, ptr %466, align 8
  %468 = and i64 %467, 63
  %469 = trunc i64 %468 to i32
  %470 = load ptr, ptr %10, align 8, !tbaa !5
  %471 = getelementptr inbounds %"class.glslang::TQualifier", ptr %470, i32 0, i32 1
  %472 = load i64, ptr %471, align 8
  %473 = and i64 %472, 63
  %474 = trunc i64 %473 to i32
  %475 = icmp ne i32 %469, %474
  br i1 %475, label %476, label %487

476:                                              ; preds = %464, %448, %432, %429, %426, %423
  %477 = load ptr, ptr %8, align 8, !tbaa !5
  %478 = load ptr, ptr %17, align 8, !tbaa !5
  %479 = load ptr, ptr %478, align 8, !tbaa !84
  %480 = getelementptr inbounds ptr, ptr %479, i64 3
  %481 = load ptr, ptr %480, align 8
  %482 = call noundef nonnull align 8 dereferenceable(40) ptr %481(ptr noundef nonnull align 8 dereferenceable(33) %478)
  %483 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %482) #4
  %484 = load ptr, ptr %27, align 8, !tbaa !84
  %485 = getelementptr inbounds ptr, ptr %484, i64 42
  %486 = load ptr, ptr %485, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %486(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %477, ptr noundef @.str.481, ptr noundef @.str.478, ptr noundef %483)
  br label %487

487:                                              ; preds = %476, %464
  br label %857

488:                                              ; preds = %420
  %489 = load ptr, ptr %9, align 8, !tbaa !5
  %490 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %489, ptr noundef @.str.469)
  br i1 %490, label %491, label %645

491:                                              ; preds = %488
  %492 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %493 = load ptr, ptr %492, align 8, !tbaa !89
  %494 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate21getTexCoordRedeclaredEv(ptr noundef nonnull align 8 dereferenceable(1784) %493)
  store i1 false, ptr %20, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  store i1 false, ptr %22, align 1
  br i1 %494, label %500, label %495

495:                                              ; preds = %491
  %496 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %497 = load ptr, ptr %496, align 8, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 40, ptr %19) #4
  store i1 true, ptr %20, align 1
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %19, ptr noundef @.str.469, ptr noundef nonnull align 8 dereferenceable(8) %21)
  store i1 true, ptr %22, align 1
  %498 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %497, ptr noundef nonnull align 8 dereferenceable(40) %19)
          to label %499 unwind label %513

499:                                              ; preds = %495
  br label %500

500:                                              ; preds = %499, %491
  %501 = phi i1 [ false, %491 ], [ %498, %499 ]
  %502 = load i1, ptr %22, align 1
  br i1 %502, label %503, label %504

503:                                              ; preds = %500
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %19) #4
  br label %504

504:                                              ; preds = %503, %500
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  %505 = load i1, ptr %20, align 1
  br i1 %505, label %506, label %507

506:                                              ; preds = %504
  call void @llvm.lifetime.end.p0(i64 40, ptr %19) #4
  br label %507

507:                                              ; preds = %506, %504
  br i1 %501, label %508, label %523

508:                                              ; preds = %507
  %509 = load ptr, ptr %8, align 8, !tbaa !5
  %510 = load ptr, ptr %27, align 8, !tbaa !84
  %511 = getelementptr inbounds ptr, ptr %510, i64 42
  %512 = load ptr, ptr %511, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %512(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %509, ptr noundef @.str.476, ptr noundef @.str.469, ptr noundef @.str.2)
  br label %523

513:                                              ; preds = %495
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %23, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %24, align 4
  %517 = load i1, ptr %22, align 1
  br i1 %517, label %518, label %519

518:                                              ; preds = %513
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %19) #4
  br label %519

519:                                              ; preds = %518, %513
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  %520 = load i1, ptr %20, align 1
  br i1 %520, label %521, label %522

521:                                              ; preds = %519
  call void @llvm.lifetime.end.p0(i64 40, ptr %19) #4
  br label %522

522:                                              ; preds = %521, %519
  br label %861

523:                                              ; preds = %508, %507
  %524 = load ptr, ptr %10, align 8, !tbaa !5
  %525 = getelementptr inbounds %"class.glslang::TQualifier", ptr %524, i32 0, i32 1
  %526 = load i64, ptr %525, align 8
  %527 = lshr i64 %526, 36
  %528 = and i64 %527, 1
  %529 = trunc i64 %528 to i1
  %530 = zext i1 %529 to i32
  %531 = load ptr, ptr %18, align 8, !tbaa !5
  %532 = getelementptr inbounds %"class.glslang::TQualifier", ptr %531, i32 0, i32 1
  %533 = load i64, ptr %532, align 8
  %534 = lshr i64 %533, 36
  %535 = and i64 %534, 1
  %536 = trunc i64 %535 to i1
  %537 = zext i1 %536 to i32
  %538 = icmp ne i32 %530, %537
  br i1 %538, label %561, label %539

539:                                              ; preds = %523
  %540 = load ptr, ptr %10, align 8, !tbaa !5
  %541 = getelementptr inbounds %"class.glslang::TQualifier", ptr %540, i32 0, i32 1
  %542 = load i64, ptr %541, align 8
  %543 = lshr i64 %542, 30
  %544 = and i64 %543, 1
  %545 = trunc i64 %544 to i1
  %546 = zext i1 %545 to i32
  %547 = load ptr, ptr %18, align 8, !tbaa !5
  %548 = getelementptr inbounds %"class.glslang::TQualifier", ptr %547, i32 0, i32 1
  %549 = load i64, ptr %548, align 8
  %550 = lshr i64 %549, 30
  %551 = and i64 %550, 1
  %552 = trunc i64 %551 to i1
  %553 = zext i1 %552 to i32
  %554 = icmp ne i32 %546, %553
  br i1 %554, label %561, label %555

555:                                              ; preds = %539
  %556 = load ptr, ptr %10, align 8, !tbaa !5
  %557 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %556)
  br i1 %557, label %561, label %558

558:                                              ; preds = %555
  %559 = load ptr, ptr %10, align 8, !tbaa !5
  %560 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %559)
  br i1 %560, label %561, label %572

561:                                              ; preds = %558, %555, %539, %523
  %562 = load ptr, ptr %8, align 8, !tbaa !5
  %563 = load ptr, ptr %17, align 8, !tbaa !5
  %564 = load ptr, ptr %563, align 8, !tbaa !84
  %565 = getelementptr inbounds ptr, ptr %564, i64 3
  %566 = load ptr, ptr %565, align 8
  %567 = call noundef nonnull align 8 dereferenceable(40) ptr %566(ptr noundef nonnull align 8 dereferenceable(33) %563)
  %568 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %567) #4
  %569 = load ptr, ptr %27, align 8, !tbaa !84
  %570 = getelementptr inbounds ptr, ptr %569, i64 42
  %571 = load ptr, ptr %570, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %571(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %562, ptr noundef @.str.482, ptr noundef @.str.478, ptr noundef %568)
  br label %572

572:                                              ; preds = %561, %558
  %573 = load ptr, ptr %10, align 8, !tbaa !5
  %574 = getelementptr inbounds %"class.glslang::TQualifier", ptr %573, i32 0, i32 1
  %575 = load i64, ptr %574, align 8
  %576 = and i64 %575, 63
  %577 = trunc i64 %576 to i32
  %578 = icmp ne i32 %577, 3
  br i1 %578, label %579, label %590

579:                                              ; preds = %572
  %580 = load ptr, ptr %8, align 8, !tbaa !5
  %581 = load ptr, ptr %17, align 8, !tbaa !5
  %582 = load ptr, ptr %581, align 8, !tbaa !84
  %583 = getelementptr inbounds ptr, ptr %582, i64 3
  %584 = load ptr, ptr %583, align 8
  %585 = call noundef nonnull align 8 dereferenceable(40) ptr %584(ptr noundef nonnull align 8 dereferenceable(33) %581)
  %586 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %585) #4
  %587 = load ptr, ptr %27, align 8, !tbaa !84
  %588 = getelementptr inbounds ptr, ptr %587, i64 42
  %589 = load ptr, ptr %588, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %589(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef @.str.483, ptr noundef @.str.478, ptr noundef %586)
  br label %590

590:                                              ; preds = %579, %572
  %591 = load i8, ptr %16, align 1, !tbaa !83, !range !86, !noundef !87
  %592 = trunc i8 %591 to i1
  br i1 %592, label %626, label %593

593:                                              ; preds = %590
  %594 = load ptr, ptr %11, align 8, !tbaa !5
  %595 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %594, i32 0, i32 1
  %596 = load i8, ptr %595, align 4, !tbaa !90, !range !86, !noundef !87
  %597 = trunc i8 %596 to i1
  %598 = zext i1 %597 to i32
  %599 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %600 = load ptr, ptr %599, align 8, !tbaa !89
  %601 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate21getPixelCenterIntegerEv(ptr noundef nonnull align 8 dereferenceable(1784) %600)
  %602 = zext i1 %601 to i32
  %603 = icmp ne i32 %598, %602
  br i1 %603, label %615, label %604

604:                                              ; preds = %593
  %605 = load ptr, ptr %11, align 8, !tbaa !5
  %606 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %605, i32 0, i32 2
  %607 = load i8, ptr %606, align 1, !tbaa !97, !range !86, !noundef !87
  %608 = trunc i8 %607 to i1
  %609 = zext i1 %608 to i32
  %610 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %611 = load ptr, ptr %610, align 8, !tbaa !89
  %612 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate18getOriginUpperLeftEv(ptr noundef nonnull align 8 dereferenceable(1784) %611)
  %613 = zext i1 %612 to i32
  %614 = icmp ne i32 %609, %613
  br i1 %614, label %615, label %626

615:                                              ; preds = %604, %593
  %616 = load ptr, ptr %8, align 8, !tbaa !5
  %617 = load ptr, ptr %17, align 8, !tbaa !5
  %618 = load ptr, ptr %617, align 8, !tbaa !84
  %619 = getelementptr inbounds ptr, ptr %618, i64 3
  %620 = load ptr, ptr %619, align 8
  %621 = call noundef nonnull align 8 dereferenceable(40) ptr %620(ptr noundef nonnull align 8 dereferenceable(33) %617)
  %622 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %621) #4
  %623 = load ptr, ptr %27, align 8, !tbaa !84
  %624 = getelementptr inbounds ptr, ptr %623, i64 42
  %625 = load ptr, ptr %624, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %625(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %616, ptr noundef @.str.484, ptr noundef @.str.478, ptr noundef %622)
  br label %626

626:                                              ; preds = %615, %604, %590
  %627 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %628 = load ptr, ptr %627, align 8, !tbaa !89
  call void @_ZN7glslang13TIntermediate21setTexCoordRedeclaredEv(ptr noundef nonnull align 8 dereferenceable(1784) %628)
  %629 = load ptr, ptr %11, align 8, !tbaa !5
  %630 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %629, i32 0, i32 1
  %631 = load i8, ptr %630, align 4, !tbaa !90, !range !86, !noundef !87
  %632 = trunc i8 %631 to i1
  br i1 %632, label %633, label %636

633:                                              ; preds = %626
  %634 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %635 = load ptr, ptr %634, align 8, !tbaa !89
  call void @_ZN7glslang13TIntermediate21setPixelCenterIntegerEv(ptr noundef nonnull align 8 dereferenceable(1784) %635)
  br label %636

636:                                              ; preds = %633, %626
  %637 = load ptr, ptr %11, align 8, !tbaa !5
  %638 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %637, i32 0, i32 2
  %639 = load i8, ptr %638, align 1, !tbaa !97, !range !86, !noundef !87
  %640 = trunc i8 %639 to i1
  br i1 %640, label %641, label %644

641:                                              ; preds = %636
  %642 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %643 = load ptr, ptr %642, align 8, !tbaa !89
  call void @_ZN7glslang13TIntermediate18setOriginUpperLeftEv(ptr noundef nonnull align 8 dereferenceable(1784) %643)
  br label %644

644:                                              ; preds = %641, %636
  br label %856

645:                                              ; preds = %488
  %646 = load ptr, ptr %9, align 8, !tbaa !5
  %647 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %646, ptr noundef @.str.44)
  br i1 %647, label %648, label %754

648:                                              ; preds = %645
  %649 = load ptr, ptr %10, align 8, !tbaa !5
  %650 = getelementptr inbounds %"class.glslang::TQualifier", ptr %649, i32 0, i32 1
  %651 = load i64, ptr %650, align 8
  %652 = lshr i64 %651, 36
  %653 = and i64 %652, 1
  %654 = trunc i64 %653 to i1
  %655 = zext i1 %654 to i32
  %656 = load ptr, ptr %18, align 8, !tbaa !5
  %657 = getelementptr inbounds %"class.glslang::TQualifier", ptr %656, i32 0, i32 1
  %658 = load i64, ptr %657, align 8
  %659 = lshr i64 %658, 36
  %660 = and i64 %659, 1
  %661 = trunc i64 %660 to i1
  %662 = zext i1 %661 to i32
  %663 = icmp ne i32 %655, %662
  br i1 %663, label %686, label %664

664:                                              ; preds = %648
  %665 = load ptr, ptr %10, align 8, !tbaa !5
  %666 = getelementptr inbounds %"class.glslang::TQualifier", ptr %665, i32 0, i32 1
  %667 = load i64, ptr %666, align 8
  %668 = lshr i64 %667, 30
  %669 = and i64 %668, 1
  %670 = trunc i64 %669 to i1
  %671 = zext i1 %670 to i32
  %672 = load ptr, ptr %18, align 8, !tbaa !5
  %673 = getelementptr inbounds %"class.glslang::TQualifier", ptr %672, i32 0, i32 1
  %674 = load i64, ptr %673, align 8
  %675 = lshr i64 %674, 30
  %676 = and i64 %675, 1
  %677 = trunc i64 %676 to i1
  %678 = zext i1 %677 to i32
  %679 = icmp ne i32 %671, %678
  br i1 %679, label %686, label %680

680:                                              ; preds = %664
  %681 = load ptr, ptr %10, align 8, !tbaa !5
  %682 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %681)
  br i1 %682, label %686, label %683

683:                                              ; preds = %680
  %684 = load ptr, ptr %10, align 8, !tbaa !5
  %685 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %684)
  br i1 %685, label %686, label %697

686:                                              ; preds = %683, %680, %664, %648
  %687 = load ptr, ptr %8, align 8, !tbaa !5
  %688 = load ptr, ptr %17, align 8, !tbaa !5
  %689 = load ptr, ptr %688, align 8, !tbaa !84
  %690 = getelementptr inbounds ptr, ptr %689, i64 3
  %691 = load ptr, ptr %690, align 8
  %692 = call noundef nonnull align 8 dereferenceable(40) ptr %691(ptr noundef nonnull align 8 dereferenceable(33) %688)
  %693 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %692) #4
  %694 = load ptr, ptr %27, align 8, !tbaa !84
  %695 = getelementptr inbounds ptr, ptr %694, i64 42
  %696 = load ptr, ptr %695, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %696(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %687, ptr noundef @.str.482, ptr noundef @.str.478, ptr noundef %693)
  br label %697

697:                                              ; preds = %686, %683
  %698 = load ptr, ptr %10, align 8, !tbaa !5
  %699 = getelementptr inbounds %"class.glslang::TQualifier", ptr %698, i32 0, i32 1
  %700 = load i64, ptr %699, align 8
  %701 = and i64 %700, 63
  %702 = trunc i64 %701 to i32
  %703 = icmp ne i32 %702, 4
  br i1 %703, label %704, label %715

704:                                              ; preds = %697
  %705 = load ptr, ptr %8, align 8, !tbaa !5
  %706 = load ptr, ptr %17, align 8, !tbaa !5
  %707 = load ptr, ptr %706, align 8, !tbaa !84
  %708 = getelementptr inbounds ptr, ptr %707, i64 3
  %709 = load ptr, ptr %708, align 8
  %710 = call noundef nonnull align 8 dereferenceable(40) ptr %709(ptr noundef nonnull align 8 dereferenceable(33) %706)
  %711 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %710) #4
  %712 = load ptr, ptr %27, align 8, !tbaa !84
  %713 = getelementptr inbounds ptr, ptr %712, i64 42
  %714 = load ptr, ptr %713, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %714(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %705, ptr noundef @.str.485, ptr noundef @.str.478, ptr noundef %711)
  br label %715

715:                                              ; preds = %704, %697
  %716 = load ptr, ptr %11, align 8, !tbaa !5
  %717 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %716, i32 0, i32 13
  %718 = load i32, ptr %717, align 4, !tbaa !98
  %719 = icmp ne i32 %718, 0
  br i1 %719, label %720, label %753

720:                                              ; preds = %715
  %721 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %722 = load ptr, ptr %721, align 8, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 40, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %25, ptr noundef @.str.44, ptr noundef nonnull align 8 dereferenceable(8) %26)
  %723 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %722, ptr noundef nonnull align 8 dereferenceable(40) %25)
          to label %724 unwind label %730

724:                                              ; preds = %720
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 40, ptr %25) #4
  br i1 %723, label %725, label %734

725:                                              ; preds = %724
  %726 = load ptr, ptr %8, align 8, !tbaa !5
  %727 = load ptr, ptr %27, align 8, !tbaa !84
  %728 = getelementptr inbounds ptr, ptr %727, i64 42
  %729 = load ptr, ptr %728, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %729(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %726, ptr noundef @.str.476, ptr noundef @.str.44, ptr noundef @.str.2)
  br label %734

730:                                              ; preds = %720
  %731 = landingpad { ptr, i32 }
          cleanup
  %732 = extractvalue { ptr, i32 } %731, 0
  store ptr %732, ptr %23, align 8
  %733 = extractvalue { ptr, i32 } %731, 1
  store i32 %733, ptr %24, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 40, ptr %25) #4
  br label %861

734:                                              ; preds = %725, %724
  %735 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %736 = load ptr, ptr %735, align 8, !tbaa !89
  %737 = load ptr, ptr %11, align 8, !tbaa !5
  %738 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %737, i32 0, i32 13
  %739 = load i32, ptr %738, align 4, !tbaa !98
  %740 = call noundef zeroext i1 @_ZN7glslang13TIntermediate8setDepthENS_12TLayoutDepthE(ptr noundef nonnull align 8 dereferenceable(1784) %736, i32 noundef %739)
  br i1 %740, label %752, label %741

741:                                              ; preds = %734
  %742 = load ptr, ptr %8, align 8, !tbaa !5
  %743 = load ptr, ptr %17, align 8, !tbaa !5
  %744 = load ptr, ptr %743, align 8, !tbaa !84
  %745 = getelementptr inbounds ptr, ptr %744, i64 3
  %746 = load ptr, ptr %745, align 8
  %747 = call noundef nonnull align 8 dereferenceable(40) ptr %746(ptr noundef nonnull align 8 dereferenceable(33) %743)
  %748 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %747) #4
  %749 = load ptr, ptr %27, align 8, !tbaa !84
  %750 = getelementptr inbounds ptr, ptr %749, i64 42
  %751 = load ptr, ptr %750, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %751(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %742, ptr noundef @.str.486, ptr noundef @.str.478, ptr noundef %748)
  br label %752

752:                                              ; preds = %741, %734
  br label %753

753:                                              ; preds = %752, %715
  br label %855

754:                                              ; preds = %645
  %755 = load ptr, ptr %9, align 8, !tbaa !5
  %756 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %755, ptr noundef @.str.475)
  br i1 %756, label %760, label %757

757:                                              ; preds = %754
  %758 = load ptr, ptr %9, align 8, !tbaa !5
  %759 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %758, ptr noundef @.str.474)
  br i1 %759, label %760, label %793

760:                                              ; preds = %757, %754
  %761 = load ptr, ptr %10, align 8, !tbaa !5
  %762 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %761)
  br i1 %762, label %763, label %774

763:                                              ; preds = %760
  %764 = load ptr, ptr %8, align 8, !tbaa !5
  %765 = load ptr, ptr %17, align 8, !tbaa !5
  %766 = load ptr, ptr %765, align 8, !tbaa !84
  %767 = getelementptr inbounds ptr, ptr %766, i64 3
  %768 = load ptr, ptr %767, align 8
  %769 = call noundef nonnull align 8 dereferenceable(40) ptr %768(ptr noundef nonnull align 8 dereferenceable(33) %765)
  %770 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %769) #4
  %771 = load ptr, ptr %27, align 8, !tbaa !84
  %772 = getelementptr inbounds ptr, ptr %771, i64 42
  %773 = load ptr, ptr %772, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %773(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %764, ptr noundef @.str.477, ptr noundef @.str.478, ptr noundef %770)
  br label %774

774:                                              ; preds = %763, %760
  %775 = load ptr, ptr %10, align 8, !tbaa !5
  %776 = getelementptr inbounds %"class.glslang::TQualifier", ptr %775, i32 0, i32 1
  %777 = load i64, ptr %776, align 8
  %778 = and i64 %777, 63
  %779 = trunc i64 %778 to i32
  %780 = icmp ne i32 %779, 4
  br i1 %780, label %781, label %792

781:                                              ; preds = %774
  %782 = load ptr, ptr %8, align 8, !tbaa !5
  %783 = load ptr, ptr %17, align 8, !tbaa !5
  %784 = load ptr, ptr %783, align 8, !tbaa !84
  %785 = getelementptr inbounds ptr, ptr %784, i64 3
  %786 = load ptr, ptr %785, align 8
  %787 = call noundef nonnull align 8 dereferenceable(40) ptr %786(ptr noundef nonnull align 8 dereferenceable(33) %783)
  %788 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %787) #4
  %789 = load ptr, ptr %27, align 8, !tbaa !84
  %790 = getelementptr inbounds ptr, ptr %789, i64 42
  %791 = load ptr, ptr %790, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %791(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %782, ptr noundef @.str.485, ptr noundef @.str.478, ptr noundef %788)
  br label %792

792:                                              ; preds = %781, %774
  br label %854

793:                                              ; preds = %757
  %794 = load ptr, ptr %9, align 8, !tbaa !5
  %795 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %794, ptr noundef @.str.45)
  br i1 %795, label %796, label %815

796:                                              ; preds = %793
  %797 = load ptr, ptr %11, align 8, !tbaa !5
  %798 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %797, i32 0, i32 17
  %799 = load i8, ptr %798, align 4, !tbaa !99, !range !86, !noundef !87
  %800 = trunc i8 %799 to i1
  br i1 %800, label %812, label %801

801:                                              ; preds = %796
  %802 = load ptr, ptr %8, align 8, !tbaa !5
  %803 = load ptr, ptr %17, align 8, !tbaa !5
  %804 = load ptr, ptr %803, align 8, !tbaa !84
  %805 = getelementptr inbounds ptr, ptr %804, i64 3
  %806 = load ptr, ptr %805, align 8
  %807 = call noundef nonnull align 8 dereferenceable(40) ptr %806(ptr noundef nonnull align 8 dereferenceable(33) %803)
  %808 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %807) #4
  %809 = load ptr, ptr %27, align 8, !tbaa !84
  %810 = getelementptr inbounds ptr, ptr %809, i64 42
  %811 = load ptr, ptr %810, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %811(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %802, ptr noundef @.str.487, ptr noundef @.str.478, ptr noundef %808)
  br label %812

812:                                              ; preds = %801, %796
  %813 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %27, i32 0, i32 7
  %814 = load ptr, ptr %813, align 8, !tbaa !89
  call void @_ZN7glslang13TIntermediate25setLayoutOverrideCoverageEv(ptr noundef nonnull align 8 dereferenceable(1784) %814)
  br label %853

815:                                              ; preds = %793
  %816 = load ptr, ptr %9, align 8, !tbaa !5
  %817 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %816, ptr noundef @.str.42)
  br i1 %817, label %818, label %852

818:                                              ; preds = %815
  %819 = load ptr, ptr %10, align 8, !tbaa !5
  %820 = getelementptr inbounds %"class.glslang::TQualifier", ptr %819, i32 0, i32 12
  %821 = load i8, ptr %820, align 8, !tbaa !100, !range !86, !noundef !87
  %822 = trunc i8 %821 to i1
  br i1 %822, label %839, label %823

823:                                              ; preds = %818
  %824 = load ptr, ptr %10, align 8, !tbaa !5
  %825 = getelementptr inbounds %"class.glslang::TQualifier", ptr %824, i32 0, i32 14
  %826 = load i32, ptr %825, align 4, !tbaa !108
  %827 = icmp eq i32 %826, -2048
  br i1 %827, label %828, label %839

828:                                              ; preds = %823
  %829 = load ptr, ptr %8, align 8, !tbaa !5
  %830 = load ptr, ptr %17, align 8, !tbaa !5
  %831 = load ptr, ptr %830, align 8, !tbaa !84
  %832 = getelementptr inbounds ptr, ptr %831, i64 3
  %833 = load ptr, ptr %832, align 8
  %834 = call noundef nonnull align 8 dereferenceable(40) ptr %833(ptr noundef nonnull align 8 dereferenceable(33) %830)
  %835 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %834) #4
  %836 = load ptr, ptr %27, align 8, !tbaa !84
  %837 = getelementptr inbounds ptr, ptr %836, i64 42
  %838 = load ptr, ptr %837, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %838(ptr noundef nonnull align 8 dereferenceable(1176) %27, ptr noundef nonnull align 8 dereferenceable(24) %829, ptr noundef @.str.488, ptr noundef @.str.478, ptr noundef %835)
  br label %839

839:                                              ; preds = %828, %823, %818
  %840 = load ptr, ptr %10, align 8, !tbaa !5
  %841 = getelementptr inbounds %"class.glslang::TQualifier", ptr %840, i32 0, i32 12
  %842 = load i8, ptr %841, align 8, !tbaa !100, !range !86, !noundef !87
  %843 = trunc i8 %842 to i1
  %844 = load ptr, ptr %18, align 8, !tbaa !5
  %845 = getelementptr inbounds %"class.glslang::TQualifier", ptr %844, i32 0, i32 12
  %846 = zext i1 %843 to i8
  store i8 %846, ptr %845, align 8, !tbaa !100
  %847 = load ptr, ptr %10, align 8, !tbaa !5
  %848 = getelementptr inbounds %"class.glslang::TQualifier", ptr %847, i32 0, i32 14
  %849 = load i32, ptr %848, align 4, !tbaa !108
  %850 = load ptr, ptr %18, align 8, !tbaa !5
  %851 = getelementptr inbounds %"class.glslang::TQualifier", ptr %850, i32 0, i32 14
  store i32 %849, ptr %851, align 4, !tbaa !108
  br label %852

852:                                              ; preds = %839, %815
  br label %853

853:                                              ; preds = %852, %812
  br label %854

854:                                              ; preds = %853, %792
  br label %855

855:                                              ; preds = %854, %753
  br label %856

856:                                              ; preds = %855, %644
  br label %857

857:                                              ; preds = %856, %487
  br label %858

858:                                              ; preds = %857, %413
  br label %859

859:                                              ; preds = %858, %301
  %860 = load ptr, ptr %17, align 8, !tbaa !5
  store ptr %860, ptr %6, align 8
  store i32 1, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  br label %862

861:                                              ; preds = %730, %522
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #4
  br label %868

862:                                              ; preds = %859, %195
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #4
  br label %864

863:                                              ; preds = %185
  store ptr null, ptr %6, align 8
  store i32 1, ptr %14, align 4
  br label %864

864:                                              ; preds = %863, %862
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  br label %865

865:                                              ; preds = %864, %73
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #4
  br label %866

866:                                              ; preds = %865, %38
  %867 = load ptr, ptr %6, align 8
  ret ptr %867

868:                                              ; preds = %861
  %869 = load ptr, ptr %23, align 8
  %870 = load i32, ptr %24, align 4
  %871 = insertvalue { ptr, i32 } poison, ptr %869, 0
  %872 = insertvalue { ptr, i32 } %871, i32 %870, 1
  resume { ptr, i32 } %872
}

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

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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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, !6, i64 200}
!10 = !{!"_ZTSN7glslang17TParseContextBaseE", !11, i64 0, !6, i64 192, !6, i64 200, !14, i64 208, !14, i64 212, !14, i64 216, !14, i64 220, !14, i64 224, !6, i64 232, !12, i64 240, !12, i64 241, !34, i64 248, !41, i64 280, !46, i64 312, !14, i64 376, !14, i64 380, !12, i64 384, !53, i64 392, !6, i64 424, !6, i64 432, !59, i64 440, !6, i64 824, !61, i64 832, !64, i64 872, !66, i64 904, !67, i64 936, !68, i64 968, !69, i64 1000, !6, i64 1032, !14, i64 1040, !14, i64 1044, !14, i64 1048, !70, i64 1056, !14, i64 1112, !77, i64 1120}
!11 = !{!"_ZTSN7glslang14TParseVersionsE", !12, i64 8, !13, i64 12, !6, i64 16, !14, i64 24, !15, i64 28, !16, i64 32, !6, i64 56, !17, i64 64, !28, i64 120, !33, i64 176, !14, i64 180, !6, i64 184}
!12 = !{!"bool", !7, i64 0}
!13 = !{!"_ZTS8EProfile", !7, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!"_ZTS11EShLanguage", !7, i64 0}
!16 = !{!"_ZTSN7glslang10SpvVersionE", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !12, i64 16}
!17 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_18TExtensionBehaviorESt4lessIS7_EEE", !18, i64 0}
!18 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_18TExtensionBehaviorESt4lessIS7_ENS5_ISt4pairIKS7_S8_EEEE", !19, i64 0}
!19 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE", !20, i64 0}
!20 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE13_Rb_tree_implISF_Lb1EEE", !21, i64 0, !22, i64 8, !24, i64 16}
!21 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEENS_18TExtensionBehaviorEEEEE", !6, i64 0}
!22 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEE", !23, i64 0}
!23 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEE"}
!24 = !{!"_ZTSSt15_Rb_tree_header", !25, i64 0, !27, i64 32}
!25 = !{!"_ZTSSt18_Rb_tree_node_base", !26, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!26 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEjSt4lessIS7_EEE", !29, i64 0}
!29 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEjSt4lessIS7_ENS5_ISt4pairIKS7_jEEEE", !30, i64 0}
!30 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !31, i64 0}
!31 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !32, i64 0, !22, i64 8, !24, i64 16}
!32 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEEjEEEE", !6, i64 0}
!33 = !{!"_ZTS11EShMessages", !7, i64 0}
!34 = !{!"_ZTSN7glslang5TListIPNS_7TVectorIP11TIntermNodeEEEE", !35, i64 0}
!35 = !{!"_ZTSNSt7__cxx114listIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEEE", !36, i64 0}
!36 = !{!"_ZTSNSt7__cxx1110_List_baseIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEEE", !37, i64 0}
!37 = !{!"_ZTSNSt7__cxx1110_List_baseIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEE10_List_implE", !38, i64 0, !39, i64 8}
!38 = !{!"_ZTSN7glslang14pool_allocatorISt10_List_nodeIPNS_7TVectorIP11TIntermNodeEEEEE", !6, i64 0}
!39 = !{!"_ZTSNSt8__detail17_List_node_headerE", !40, i64 0, !27, i64 16}
!40 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!41 = !{!"_ZTSN7glslang5TListIiEE", !42, i64 0}
!42 = !{!"_ZTSNSt7__cxx114listIiN7glslang14pool_allocatorIiEEEE", !43, i64 0}
!43 = !{!"_ZTSNSt7__cxx1110_List_baseIiN7glslang14pool_allocatorIiEEEE", !44, i64 0}
!44 = !{!"_ZTSNSt7__cxx1110_List_baseIiN7glslang14pool_allocatorIiEEE10_List_implE", !45, i64 0, !39, i64 8}
!45 = !{!"_ZTSN7glslang14pool_allocatorISt10_List_nodeIiEEE", !6, i64 0}
!46 = !{!"_ZTSN7glslang7TPragmaE", !12, i64 0, !12, i64 1, !47, i64 8}
!47 = !{!"_ZTSN7glslang12TPragmaTableE", !48, i64 0}
!48 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_St4lessIS7_EEE", !49, i64 0}
!49 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEES7_St4lessIS7_ENS5_ISt4pairIKS7_S7_EEEE", !50, i64 0}
!50 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_S7_ESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !51, i64 0}
!51 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_S7_ESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !52, i64 0, !22, i64 8, !24, i64 16}
!52 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEES8_EEEE", !6, i64 0}
!53 = !{!"_ZTSN7glslang7TVectorIPNS_7TSymbolEEE", !54, i64 0}
!54 = !{!"_ZTSSt6vectorIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE12_Vector_implE", !57, i64 0, !58, i64 8}
!57 = !{!"_ZTSN7glslang14pool_allocatorIPNS_7TSymbolEEE", !6, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!59 = !{!"_ZTS16TBuiltInResource", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !14, i64 36, !14, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56, !14, i64 60, !14, i64 64, !14, i64 68, !14, i64 72, !14, i64 76, !14, i64 80, !14, i64 84, !14, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !14, i64 136, !14, i64 140, !14, i64 144, !14, i64 148, !14, i64 152, !14, i64 156, !14, i64 160, !14, i64 164, !14, i64 168, !14, i64 172, !14, i64 176, !14, i64 180, !14, i64 184, !14, i64 188, !14, i64 192, !14, i64 196, !14, i64 200, !14, i64 204, !14, i64 208, !14, i64 212, !14, i64 216, !14, i64 220, !14, i64 224, !14, i64 228, !14, i64 232, !14, i64 236, !14, i64 240, !14, i64 244, !14, i64 248, !14, i64 252, !14, i64 256, !14, i64 260, !14, i64 264, !14, i64 268, !14, i64 272, !14, i64 276, !14, i64 280, !14, i64 284, !14, i64 288, !14, i64 292, !14, i64 296, !14, i64 300, !14, i64 304, !14, i64 308, !14, i64 312, !14, i64 316, !14, i64 320, !14, i64 324, !14, i64 328, !14, i64 332, !14, i64 336, !14, i64 340, !14, i64 344, !14, i64 348, !14, i64 352, !14, i64 356, !14, i64 360, !14, i64 364, !14, i64 368, !60, i64 372}
!60 = !{!"_ZTS7TLimits", !12, i64 0, !12, i64 1, !12, i64 2, !12, i64 3, !12, i64 4, !12, i64 5, !12, i64 6, !12, i64 7, !12, i64 8}
!61 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEE", !62, i64 0, !27, i64 16, !7, i64 24}
!62 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE12_Alloc_hiderE", !63, i64 0, !6, i64 8}
!63 = !{!"_ZTSN7glslang14pool_allocatorIcEE", !6, i64 0}
!64 = !{!"_ZTSSt8functionIFviibiPKcEE", !65, i64 0, !6, i64 24}
!65 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!66 = !{!"_ZTSSt8functionIFviRKN7glslang7TVectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_14pool_allocatorIcEEEEEEEE", !65, i64 0, !6, i64 24}
!67 = !{!"_ZTSSt8functionIFviiPKcEE", !65, i64 0, !6, i64 24}
!68 = !{!"_ZTSSt8functionIFviPKcS1_EE", !65, i64 0, !6, i64 24}
!69 = !{!"_ZTSSt8functionIFviPKcEE", !65, i64 0, !6, i64 24}
!70 = !{!"_ZTSN7glslang4TMapIiPNS_9TVariableESt4lessIiEEE", !71, i64 0}
!71 = !{!"_ZTSSt3mapIiPN7glslang9TVariableESt4lessIiENS0_14pool_allocatorISt4pairIKiS2_EEEE", !72, i64 0}
!72 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiPN7glslang9TVariableEESt10_Select1stIS5_ESt4lessIiENS2_14pool_allocatorIS5_EEE", !73, i64 0}
!73 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiPN7glslang9TVariableEESt10_Select1stIS5_ESt4lessIiENS2_14pool_allocatorIS5_EEE13_Rb_tree_implIS9_Lb1EEE", !74, i64 0, !75, i64 8, !24, i64 16}
!74 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKiPNS_9TVariableEEEEE", !6, i64 0}
!75 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !76, i64 0}
!76 = !{!"_ZTSSt4lessIiE"}
!77 = !{!"_ZTSN7glslang4TMapIiiSt4lessIiEEE", !78, i64 0}
!78 = !{!"_ZTSSt3mapIiiSt4lessIiEN7glslang14pool_allocatorISt4pairIKiiEEEE", !79, i64 0}
!79 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiEN7glslang14pool_allocatorIS2_EEE", !80, i64 0}
!80 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiEN7glslang14pool_allocatorIS2_EEE13_Rb_tree_implIS6_Lb1EEE", !81, i64 0, !75, i64 8, !24, i64 16}
!81 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKiiEEEE", !6, i64 0}
!82 = !{!11, !14, i64 24}
!83 = !{!12, !12, i64 0}
!84 = !{!85, !85, i64 0}
!85 = !{!"vtable pointer", !8, i64 0}
!86 = !{i8 0, i8 2}
!87 = !{}
!88 = !{!11, !15, i64 28}
!89 = !{!11, !6, i64 56}
!90 = !{!91, !12, i64 4}
!91 = !{!"_ZTSN7glslang17TShaderQualifiersE", !92, i64 0, !12, i64 4, !12, i64 5, !14, i64 8, !14, i64 12, !93, i64 16, !94, i64 20, !12, i64 24, !7, i64 28, !7, i64 40, !7, i64 44, !12, i64 56, !12, i64 57, !95, i64 60, !12, i64 64, !14, i64 68, !96, i64 72, !12, i64 76, !12, i64 77, !12, i64 78, !14, i64 80, !12, i64 84}
!92 = !{!"_ZTSN7glslang15TLayoutGeometryE", !7, i64 0}
!93 = !{!"_ZTSN7glslang14TVertexSpacingE", !7, i64 0}
!94 = !{!"_ZTSN7glslang12TVertexOrderE", !7, i64 0}
!95 = !{!"_ZTSN7glslang12TLayoutDepthE", !7, i64 0}
!96 = !{!"_ZTSN7glslang18TInterlockOrderingE", !7, i64 0}
!97 = !{!91, !12, i64 5}
!98 = !{!91, !95, i64 60}
!99 = !{!91, !12, i64 76}
!100 = !{!101, !12, i64 48}
!101 = !{!"_ZTSN7glslang10TQualifierE", !6, i64 0, !102, i64 8, !103, i64 8, !103, i64 9, !104, i64 11, !12, i64 11, !12, i64 11, !12, i64 11, !12, i64 11, !12, i64 11, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 15, !12, i64 15, !12, i64 15, !105, i64 15, !106, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 29, !14, i64 29, !14, i64 32, !14, i64 34, !14, i64 35, !14, i64 36, !14, i64 36, !14, i64 38, !14, i64 40, !14, i64 41, !14, i64 42, !107, i64 44, !12, i64 45, !12, i64 46, !12, i64 47, !12, i64 48, !14, i64 52, !12, i64 56, !14, i64 60, !6, i64 64}
!102 = !{!"_ZTSN7glslang17TStorageQualifierE", !7, i64 0}
!103 = !{!"_ZTSN7glslang16TBuiltInVariableE", !7, i64 0}
!104 = !{!"_ZTSN7glslang19TPrecisionQualifierE", !7, i64 0}
!105 = !{!"_ZTSN7glslang13TLayoutMatrixE", !7, i64 0}
!106 = !{!"_ZTSN7glslang14TLayoutPackingE", !7, i64 0}
!107 = !{!"_ZTSN7glslang13TLayoutFormatE", !7, i64 0}
!108 = !{!101, !14, i64 52}


; 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] }

@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZN7glslangL20AEP_shader_io_blocksE = external hidden constant [2 x ptr], align 16
@.str.468 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [81 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192)) local_unnamed_addr #0 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 #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 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 #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang13TParseContext11builtInNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(24912), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN7glslang13TParseContext24redeclareBuiltinVariableERKNS_10TSourceLocERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEERKNS_10TQualifierERKNS_17TShaderQualifiersE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull align 8 dereferenceable(72) %3, ptr nocapture noundef nonnull readonly align 4 dereferenceable(88) %4) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca i8, align 1
  %7 = alloca ptr, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.glslang::pool_allocator.14", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.glslang::pool_allocator.14", align 8
  %12 = tail call noundef zeroext i1 @_ZN7glslang13TParseContext11builtInNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(40) %2)
  br i1 %12, label %13, label %511

13:                                               ; preds = %5
  %14 = getelementptr inbounds i8, ptr %0, i64 200
  %15 = load ptr, ptr %14, align 8, !tbaa !5
  %16 = tail call noundef zeroext i1 @_ZN7glslang12TSymbolTable14atBuiltInLevelEv(ptr noundef nonnull align 8 dereferenceable(40) %15)
  br i1 %16, label %511, label %17

17:                                               ; preds = %13
  %18 = load ptr, ptr %14, align 8, !tbaa !5
  %19 = tail call noundef zeroext i1 @_ZN7glslang12TSymbolTable13atGlobalLevelEv(ptr noundef nonnull align 8 dereferenceable(40) %18)
  br i1 %19, label %20, label %511

20:                                               ; preds = %17
  %21 = tail call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %0)
  br i1 %21, label %28, label %22

22:                                               ; preds = %20
  %23 = getelementptr inbounds i8, ptr %0, i64 24
  %24 = load i32, ptr %23, align 8, !tbaa !81
  %25 = icmp sgt i32 %24, 129
  br i1 %25, label %28, label %26

26:                                               ; preds = %22
  %27 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.51)
  br label %28

28:                                               ; preds = %22, %26, %20
  %29 = phi i1 [ false, %20 ], [ true, %22 ], [ %27, %26 ]
  %30 = tail call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %0)
  br i1 %30, label %31, label %40

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

35:                                               ; preds = %31
  %36 = load ptr, ptr %0, align 8, !tbaa !82
  %37 = getelementptr inbounds i8, ptr %36, i64 72
  %38 = load ptr, ptr %37, align 8
  %39 = tail call noundef zeroext i1 %38(ptr noundef nonnull align 8 dereferenceable(192) %0, i32 noundef 2, ptr noundef nonnull @_ZN7glslangL20AEP_shader_io_blocksE)
  br label %40

40:                                               ; preds = %35, %28
  %41 = phi i1 [ false, %28 ], [ %39, %35 ]
  %brmerge = or i1 %29, %41
  br i1 %brmerge, label %.thread, label %511

.thread:                                          ; preds = %31, %40
  %42 = phi i1 [ %41, %40 ], [ true, %31 ]
  %43 = tail call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %0)
  %44 = getelementptr inbounds i8, ptr %0, i64 24
  %45 = load i32, ptr %44, align 8
  %46 = icmp sgt i32 %45, 140
  %or.cond.not = select i1 %43, i1 true, i1 %46
  br i1 %or.cond.not, label %60, label %47

47:                                               ; preds = %.thread
  %48 = load ptr, ptr %0, align 8, !tbaa !82
  %49 = getelementptr inbounds i8, ptr %48, i64 64
  %50 = load ptr, ptr %49, align 8
  %51 = tail call noundef zeroext i1 %50(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull @.str.468)
  br i1 %51, label %52, label %60

52:                                               ; preds = %47
  %53 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.35)
  br i1 %53, label %107, label %54

54:                                               ; preds = %52
  %55 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.36)
  br i1 %55, label %107, label %56

56:                                               ; preds = %54
  %57 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.46)
  br i1 %57, label %107, label %58

58:                                               ; preds = %56
  %59 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.52)
  br i1 %59, label %107, label %60

60:                                               ; preds = %.thread, %58, %47
  %61 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.44)
  br i1 %61, label %62, label %65

62:                                               ; preds = %60
  %63 = load i32, ptr %44, align 8
  %64 = icmp sgt i32 %63, 419
  %or.cond160 = select i1 %29, i1 %64, i1 false
  %brmerge161 = or i1 %42, %or.cond160
  br i1 %brmerge161, label %107, label %65

65:                                               ; preds = %62, %60
  %66 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.469)
  br i1 %66, label %67, label %70

67:                                               ; preds = %65
  %68 = load i32, ptr %44, align 8
  %69 = icmp sgt i32 %68, 139
  %or.cond164 = select i1 %29, i1 %69, i1 false
  %brmerge165 = or i1 %42, %or.cond164
  br i1 %brmerge165, label %107, label %70

70:                                               ; preds = %67, %65
  %71 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.37)
  br i1 %71, label %107, label %72

72:                                               ; preds = %70
  %73 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.38)
  br i1 %73, label %107, label %74

74:                                               ; preds = %72
  %75 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.470)
  br i1 %75, label %107, label %76

76:                                               ; preds = %74
  %77 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.471)
  br i1 %77, label %107, label %78

78:                                               ; preds = %76
  %79 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.47)
  br i1 %79, label %107, label %80

80:                                               ; preds = %78
  %81 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.48)
  br i1 %81, label %107, label %82

82:                                               ; preds = %80
  %83 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.49)
  br i1 %83, label %107, label %84

84:                                               ; preds = %82
  %85 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.50)
  br i1 %85, label %107, label %86

86:                                               ; preds = %84
  %87 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.472)
  br i1 %87, label %107, label %88

88:                                               ; preds = %86
  %89 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.473)
  %90 = getelementptr inbounds i8, ptr %0, i64 28
  %91 = load i32, ptr %90, align 4
  %92 = icmp eq i32 %91, 4
  %or.cond168 = select i1 %89, i1 %92, i1 false
  br i1 %or.cond168, label %107, label %93

93:                                               ; preds = %88
  %94 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.474)
  %brmerge171.demorgan = and i1 %29, %94
  %95 = load i32, ptr %44, align 8
  %96 = icmp sgt i32 %95, 139
  %or.cond174 = select i1 %brmerge171.demorgan, i1 %96, i1 false
  %97 = load i32, ptr %90, align 4
  %98 = icmp eq i32 %97, 4
  %or.cond177 = select i1 %or.cond174, i1 %98, i1 false
  br i1 %or.cond177, label %107, label %99

99:                                               ; preds = %93
  %100 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.45)
  br i1 %100, label %107, label %101

101:                                              ; preds = %99
  %102 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.42)
  br i1 %102, label %107, label %103

103:                                              ; preds = %101
  %104 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.475)
  br i1 %104, label %107, label %105

105:                                              ; preds = %103
  %106 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.51)
  br i1 %106, label %107, label %511

107:                                              ; preds = %58, %56, %54, %52, %93, %88, %67, %62, %105, %103, %101, %99, %86, %84, %82, %80, %78, %76, %74, %72, %70
  %.0134186 = phi i1 [ false, %93 ], [ false, %88 ], [ false, %67 ], [ false, %62 ], [ false, %105 ], [ false, %103 ], [ false, %101 ], [ false, %99 ], [ false, %86 ], [ false, %84 ], [ false, %82 ], [ false, %80 ], [ false, %78 ], [ false, %76 ], [ false, %74 ], [ false, %72 ], [ false, %70 ], [ true, %52 ], [ true, %54 ], [ true, %56 ], [ true, %58 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #4
  %108 = load ptr, ptr %14, align 8, !tbaa !5
  %109 = call noundef ptr @_ZN7glslang12TSymbolTable4findERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEPbSA_Pi(ptr noundef nonnull align 8 dereferenceable(40) %108, ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull %6, ptr noundef null, ptr noundef null)
  store ptr %109, ptr %7, align 8, !tbaa !84
  %.not = icmp eq ptr %109, null
  br i1 %.not, label %510, label %110

110:                                              ; preds = %107
  %111 = load i8, ptr %6, align 1, !tbaa !85, !range !86, !noundef !87
  %112 = trunc nuw i8 %111 to i1
  br i1 %112, label %113, label %119

113:                                              ; preds = %110
  %114 = load ptr, ptr %0, align 8, !tbaa !82
  %115 = getelementptr inbounds i8, ptr %114, i64 600
  %116 = load ptr, ptr %115, align 8
  call void %116(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(8) %7)
  %117 = load ptr, ptr %14, align 8, !tbaa !5
  %118 = load ptr, ptr %7, align 8, !tbaa !84
  call void @_ZN7glslang12TSymbolTable18amendSymbolIdLevelERNS_7TSymbolE(ptr noundef nonnull align 8 dereferenceable(40) %117, ptr noundef nonnull align 8 dereferenceable(33) %118)
  %.pre = load ptr, ptr %7, align 8, !tbaa !84
  br label %119

119:                                              ; preds = %113, %110
  %120 = phi ptr [ %.pre, %113 ], [ %109, %110 ]
  %121 = load ptr, ptr %120, align 8, !tbaa !82
  %122 = getelementptr inbounds i8, ptr %121, i64 104
  %123 = load ptr, ptr %122, align 8
  %124 = call noundef nonnull align 8 dereferenceable(144) ptr %123(ptr noundef nonnull align 8 dereferenceable(33) %120)
  %125 = load ptr, ptr %124, align 8, !tbaa !82
  %126 = getelementptr inbounds i8, ptr %125, i64 80
  %127 = load ptr, ptr %126, align 8
  %128 = call noundef nonnull align 8 dereferenceable(72) ptr %127(ptr noundef nonnull align 8 dereferenceable(144) %124)
  br i1 %.0134186, label %129, label %188

129:                                              ; preds = %119
  %130 = getelementptr inbounds i8, ptr %0, i64 56
  %131 = load ptr, ptr %130, align 8, !tbaa !88
  %132 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %131, ptr noundef nonnull align 8 dereferenceable(40) %2)
  br i1 %132, label %133, label %138

133:                                              ; preds = %129
  %134 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %2) #4
  %135 = load ptr, ptr %0, align 8, !tbaa !82
  %136 = getelementptr inbounds i8, ptr %135, i64 336
  %137 = load ptr, ptr %136, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %137(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.476, ptr noundef %134, ptr noundef nonnull @.str.2)
  br label %138

138:                                              ; preds = %133, %129
  %139 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %139, label %140, label %150

140:                                              ; preds = %138
  %141 = load ptr, ptr %7, align 8, !tbaa !84
  %142 = load ptr, ptr %141, align 8, !tbaa !82
  %143 = getelementptr inbounds i8, ptr %142, i64 24
  %144 = load ptr, ptr %143, align 8
  %145 = call noundef nonnull align 8 dereferenceable(40) ptr %144(ptr noundef nonnull align 8 dereferenceable(33) %141)
  %146 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %145) #4
  %147 = load ptr, ptr %0, align 8, !tbaa !82
  %148 = getelementptr inbounds i8, ptr %147, i64 336
  %149 = load ptr, ptr %148, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %149(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.477, ptr noundef nonnull @.str.478, ptr noundef %146)
  br label %150

150:                                              ; preds = %140, %138
  %151 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %151, label %165, label %152

152:                                              ; preds = %150
  %153 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %153, label %165, label %154

154:                                              ; preds = %152
  %155 = getelementptr inbounds i8, ptr %0, i64 28
  %156 = load i32, ptr %155, align 4, !tbaa !89
  switch i32 %156, label %.thread187 [
    i32 0, label %157
    i32 4, label %161
  ]

157:                                              ; preds = %154
  %158 = getelementptr inbounds i8, ptr %3, i64 8
  %159 = load i64, ptr %158, align 8
  %160 = and i64 %159, 63
  %.not152 = icmp eq i64 %160, 4
  br i1 %.not152, label %.thread187, label %165

161:                                              ; preds = %154
  %162 = getelementptr inbounds i8, ptr %3, i64 8
  %163 = load i64, ptr %162, align 8
  %164 = and i64 %163, 63
  %.not153 = icmp eq i64 %164, 3
  br i1 %.not153, label %.thread187, label %165

165:                                              ; preds = %161, %157, %152, %150
  %166 = load ptr, ptr %7, align 8, !tbaa !84
  %167 = load ptr, ptr %166, align 8, !tbaa !82
  %168 = getelementptr inbounds i8, ptr %167, i64 24
  %169 = load ptr, ptr %168, align 8
  %170 = call noundef nonnull align 8 dereferenceable(40) ptr %169(ptr noundef nonnull align 8 dereferenceable(33) %166)
  %171 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %170) #4
  %172 = load ptr, ptr %0, align 8, !tbaa !82
  %173 = getelementptr inbounds i8, ptr %172, i64 336
  %174 = load ptr, ptr %173, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %174(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.479, ptr noundef nonnull @.str.478, ptr noundef %171)
  br label %.thread187

.thread187:                                       ; preds = %154, %157, %165, %161
  %175 = getelementptr inbounds i8, ptr %3, i64 8
  %176 = load i64, ptr %175, align 8
  %177 = and i64 %176, 536870912
  %.not154 = icmp eq i64 %177, 0
  br i1 %.not154, label %178, label %507

178:                                              ; preds = %.thread187
  %179 = load ptr, ptr %7, align 8, !tbaa !84
  %180 = load ptr, ptr %179, align 8, !tbaa !82
  %181 = getelementptr inbounds i8, ptr %180, i64 24
  %182 = load ptr, ptr %181, align 8
  %183 = call noundef nonnull align 8 dereferenceable(40) ptr %182(ptr noundef nonnull align 8 dereferenceable(33) %179)
  %184 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %183) #4
  %185 = load ptr, ptr %0, align 8, !tbaa !82
  %186 = getelementptr inbounds i8, ptr %185, i64 336
  %187 = load ptr, ptr %186, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %187(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.480, ptr noundef nonnull @.str.478, ptr noundef %184)
  br label %507

188:                                              ; preds = %119
  %189 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.47)
  br i1 %189, label %200, label %190

190:                                              ; preds = %188
  %191 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.48)
  br i1 %191, label %200, label %192

192:                                              ; preds = %190
  %193 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.49)
  br i1 %193, label %200, label %194

194:                                              ; preds = %192
  %195 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.50)
  br i1 %195, label %200, label %196

196:                                              ; preds = %194
  %197 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.472)
  br i1 %197, label %200, label %198

198:                                              ; preds = %196
  %199 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.473)
  br i1 %199, label %200, label %253

200:                                              ; preds = %198, %196, %194, %192, %190, %188
  %201 = getelementptr inbounds i8, ptr %3, i64 8
  %202 = load i64, ptr %201, align 8
  %203 = getelementptr inbounds i8, ptr %128, i64 8
  %.lobit = and i64 %202, 1073741824
  %204 = load i64, ptr %203, align 8
  %205 = and i64 %204, -1073741825
  %206 = or disjoint i64 %205, %.lobit
  store i64 %206, ptr %203, align 8
  %207 = load i64, ptr %201, align 8
  %.lobit149 = and i64 %207, 536870912
  %208 = and i64 %206, -536870913
  %209 = or disjoint i64 %208, %.lobit149
  store i64 %209, ptr %203, align 8
  %210 = load i64, ptr %201, align 8
  %.lobit150 = and i64 %210, 68719476736
  %211 = and i64 %209, -68719476737
  %212 = or disjoint i64 %211, %.lobit150
  store i64 %212, ptr %203, align 8
  %213 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %213, label %214, label %224

214:                                              ; preds = %200
  %215 = load ptr, ptr %7, align 8, !tbaa !84
  %216 = load ptr, ptr %215, align 8, !tbaa !82
  %217 = getelementptr inbounds i8, ptr %216, i64 24
  %218 = load ptr, ptr %217, align 8
  %219 = call noundef nonnull align 8 dereferenceable(40) ptr %218(ptr noundef nonnull align 8 dereferenceable(33) %215)
  %220 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %219) #4
  %221 = load ptr, ptr %0, align 8, !tbaa !82
  %222 = getelementptr inbounds i8, ptr %221, i64 336
  %223 = load ptr, ptr %222, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %223(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.477, ptr noundef nonnull @.str.478, ptr noundef %220)
  br label %224

224:                                              ; preds = %214, %200
  %225 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %225, label %243, label %226

226:                                              ; preds = %224
  %227 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %227, label %243, label %228

228:                                              ; preds = %226
  %229 = load ptr, ptr %7, align 8, !tbaa !84
  %230 = load ptr, ptr %229, align 8, !tbaa !82
  %231 = getelementptr inbounds i8, ptr %230, i64 96
  %232 = load ptr, ptr %231, align 8
  %233 = call noundef nonnull align 8 dereferenceable(144) ptr %232(ptr noundef nonnull align 8 dereferenceable(33) %229)
  %234 = load ptr, ptr %233, align 8, !tbaa !82
  %235 = getelementptr inbounds i8, ptr %234, i64 88
  %236 = load ptr, ptr %235, align 8
  %237 = call noundef nonnull align 8 dereferenceable(72) ptr %236(ptr noundef nonnull align 8 dereferenceable(144) %233)
  %238 = getelementptr inbounds i8, ptr %237, i64 8
  %239 = load i64, ptr %238, align 8
  %240 = load i64, ptr %201, align 8
  %241 = xor i64 %240, %239
  %242 = and i64 %241, 63
  %.not151 = icmp eq i64 %242, 0
  br i1 %.not151, label %507, label %243

243:                                              ; preds = %228, %226, %224
  %244 = load ptr, ptr %7, align 8, !tbaa !84
  %245 = load ptr, ptr %244, align 8, !tbaa !82
  %246 = getelementptr inbounds i8, ptr %245, i64 24
  %247 = load ptr, ptr %246, align 8
  %248 = call noundef nonnull align 8 dereferenceable(40) ptr %247(ptr noundef nonnull align 8 dereferenceable(33) %244)
  %249 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %248) #4
  %250 = load ptr, ptr %0, align 8, !tbaa !82
  %251 = getelementptr inbounds i8, ptr %250, i64 336
  %252 = load ptr, ptr %251, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %252(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.479, ptr noundef nonnull @.str.478, ptr noundef %249)
  br label %507

253:                                              ; preds = %198
  %254 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.51)
  br i1 %254, label %259, label %255

255:                                              ; preds = %253
  %256 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.37)
  br i1 %256, label %259, label %257

257:                                              ; preds = %255
  %258 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.38)
  br i1 %258, label %259, label %282

259:                                              ; preds = %257, %255, %253
  %260 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %260, label %272, label %261

261:                                              ; preds = %259
  %262 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %262, label %272, label %263

263:                                              ; preds = %261
  %264 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %264, label %272, label %265

265:                                              ; preds = %263
  %266 = getelementptr inbounds i8, ptr %3, i64 8
  %267 = load i64, ptr %266, align 8
  %268 = getelementptr inbounds i8, ptr %128, i64 8
  %269 = load i64, ptr %268, align 8
  %270 = xor i64 %269, %267
  %271 = and i64 %270, 69793218623
  %or.cond191 = icmp eq i64 %271, 0
  br i1 %or.cond191, label %507, label %272

272:                                              ; preds = %265, %263, %261, %259
  %273 = load ptr, ptr %7, align 8, !tbaa !84
  %274 = load ptr, ptr %273, align 8, !tbaa !82
  %275 = getelementptr inbounds i8, ptr %274, i64 24
  %276 = load ptr, ptr %275, align 8
  %277 = call noundef nonnull align 8 dereferenceable(40) ptr %276(ptr noundef nonnull align 8 dereferenceable(33) %273)
  %278 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %277) #4
  %279 = load ptr, ptr %0, align 8, !tbaa !82
  %280 = getelementptr inbounds i8, ptr %279, i64 336
  %281 = load ptr, ptr %280, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %281(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.481, ptr noundef nonnull @.str.478, ptr noundef %278)
  br label %507

282:                                              ; preds = %257
  %283 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.469)
  br i1 %283, label %284, label %370

284:                                              ; preds = %282
  %285 = getelementptr inbounds i8, ptr %0, i64 56
  %286 = load ptr, ptr %285, align 8, !tbaa !88
  %287 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate21getTexCoordRedeclaredEv(ptr noundef nonnull align 8 dereferenceable(1784) %286)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #4
  br i1 %287, label %.thread189, label %288

288:                                              ; preds = %284
  %289 = load ptr, ptr %285, align 8, !tbaa !88
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #4
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %8, ptr noundef nonnull @.str.469, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %290 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %289, ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %291 unwind label %296

.thread189:                                       ; preds = %284
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #4
  br label %298

291:                                              ; preds = %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #4
  br i1 %290, label %292, label %298

292:                                              ; preds = %291
  %293 = load ptr, ptr %0, align 8, !tbaa !82
  %294 = getelementptr inbounds i8, ptr %293, i64 336
  %295 = load ptr, ptr %294, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %295(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.476, ptr noundef nonnull @.str.469, ptr noundef nonnull @.str.2)
  br label %298

296:                                              ; preds = %288
  %297 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #4
  br label %509

298:                                              ; preds = %.thread189, %292, %291
  %299 = getelementptr inbounds i8, ptr %3, i64 8
  %300 = load i64, ptr %299, align 8
  %301 = getelementptr inbounds i8, ptr %128, i64 8
  %302 = load i64, ptr %301, align 8
  %303 = xor i64 %302, %300
  %304 = and i64 %303, 69793218560
  %or.cond192 = icmp eq i64 %304, 0
  br i1 %or.cond192, label %305, label %309

305:                                              ; preds = %298
  %306 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %306, label %309, label %307

307:                                              ; preds = %305
  %308 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %308, label %309, label %319

309:                                              ; preds = %307, %305, %298
  %310 = load ptr, ptr %7, align 8, !tbaa !84
  %311 = load ptr, ptr %310, align 8, !tbaa !82
  %312 = getelementptr inbounds i8, ptr %311, i64 24
  %313 = load ptr, ptr %312, align 8
  %314 = call noundef nonnull align 8 dereferenceable(40) ptr %313(ptr noundef nonnull align 8 dereferenceable(33) %310)
  %315 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %314) #4
  %316 = load ptr, ptr %0, align 8, !tbaa !82
  %317 = getelementptr inbounds i8, ptr %316, i64 336
  %318 = load ptr, ptr %317, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %318(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.482, ptr noundef nonnull @.str.478, ptr noundef %315)
  br label %319

319:                                              ; preds = %309, %307
  %320 = load i64, ptr %299, align 8
  %321 = and i64 %320, 63
  %.not143 = icmp eq i64 %321, 3
  br i1 %.not143, label %332, label %322

322:                                              ; preds = %319
  %323 = load ptr, ptr %7, align 8, !tbaa !84
  %324 = load ptr, ptr %323, align 8, !tbaa !82
  %325 = getelementptr inbounds i8, ptr %324, i64 24
  %326 = load ptr, ptr %325, align 8
  %327 = call noundef nonnull align 8 dereferenceable(40) ptr %326(ptr noundef nonnull align 8 dereferenceable(33) %323)
  %328 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %327) #4
  %329 = load ptr, ptr %0, align 8, !tbaa !82
  %330 = getelementptr inbounds i8, ptr %329, i64 336
  %331 = load ptr, ptr %330, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %331(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.483, ptr noundef nonnull @.str.478, ptr noundef %328)
  br label %332

332:                                              ; preds = %322, %319
  %333 = load i8, ptr %6, align 1, !tbaa !85, !range !86, !noundef !87
  %334 = trunc nuw i8 %333 to i1
  br i1 %334, label %357, label %335

335:                                              ; preds = %332
  %336 = getelementptr inbounds i8, ptr %4, i64 4
  %337 = load i8, ptr %336, align 4, !tbaa !90, !range !86, !noundef !87
  %338 = load ptr, ptr %285, align 8, !tbaa !88
  %339 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate21getPixelCenterIntegerEv(ptr noundef nonnull align 8 dereferenceable(1784) %338)
  %340 = zext i1 %339 to i8
  %.not144 = icmp eq i8 %337, %340
  br i1 %.not144, label %341, label %347

341:                                              ; preds = %335
  %342 = getelementptr inbounds i8, ptr %4, i64 5
  %343 = load i8, ptr %342, align 1, !tbaa !97, !range !86, !noundef !87
  %344 = load ptr, ptr %285, align 8, !tbaa !88
  %345 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate18getOriginUpperLeftEv(ptr noundef nonnull align 8 dereferenceable(1784) %344)
  %346 = zext i1 %345 to i8
  %.not145 = icmp eq i8 %343, %346
  br i1 %.not145, label %357, label %347

347:                                              ; preds = %341, %335
  %348 = load ptr, ptr %7, align 8, !tbaa !84
  %349 = load ptr, ptr %348, align 8, !tbaa !82
  %350 = getelementptr inbounds i8, ptr %349, i64 24
  %351 = load ptr, ptr %350, align 8
  %352 = call noundef nonnull align 8 dereferenceable(40) ptr %351(ptr noundef nonnull align 8 dereferenceable(33) %348)
  %353 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %352) #4
  %354 = load ptr, ptr %0, align 8, !tbaa !82
  %355 = getelementptr inbounds i8, ptr %354, i64 336
  %356 = load ptr, ptr %355, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %356(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.484, ptr noundef nonnull @.str.478, ptr noundef %353)
  br label %357

357:                                              ; preds = %347, %341, %332
  %358 = load ptr, ptr %285, align 8, !tbaa !88
  call void @_ZN7glslang13TIntermediate21setTexCoordRedeclaredEv(ptr noundef nonnull align 8 dereferenceable(1784) %358)
  %359 = getelementptr inbounds i8, ptr %4, i64 4
  %360 = load i8, ptr %359, align 4, !tbaa !90, !range !86, !noundef !87
  %361 = trunc nuw i8 %360 to i1
  br i1 %361, label %362, label %364

362:                                              ; preds = %357
  %363 = load ptr, ptr %285, align 8, !tbaa !88
  call void @_ZN7glslang13TIntermediate21setPixelCenterIntegerEv(ptr noundef nonnull align 8 dereferenceable(1784) %363)
  br label %364

364:                                              ; preds = %362, %357
  %365 = getelementptr inbounds i8, ptr %4, i64 5
  %366 = load i8, ptr %365, align 1, !tbaa !97, !range !86, !noundef !87
  %367 = trunc nuw i8 %366 to i1
  br i1 %367, label %368, label %507

368:                                              ; preds = %364
  %369 = load ptr, ptr %285, align 8, !tbaa !88
  call void @_ZN7glslang13TIntermediate18setOriginUpperLeftEv(ptr noundef nonnull align 8 dereferenceable(1784) %369)
  br label %507

370:                                              ; preds = %282
  %371 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.44)
  br i1 %371, label %372, label %434

372:                                              ; preds = %370
  %373 = getelementptr inbounds i8, ptr %3, i64 8
  %374 = load i64, ptr %373, align 8
  %375 = getelementptr inbounds i8, ptr %128, i64 8
  %376 = load i64, ptr %375, align 8
  %377 = xor i64 %376, %374
  %378 = and i64 %377, 69793218560
  %or.cond193 = icmp eq i64 %378, 0
  br i1 %or.cond193, label %379, label %383

379:                                              ; preds = %372
  %380 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %380, label %383, label %381

381:                                              ; preds = %379
  %382 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11isAuxiliaryEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %382, label %383, label %393

383:                                              ; preds = %381, %379, %372
  %384 = load ptr, ptr %7, align 8, !tbaa !84
  %385 = load ptr, ptr %384, align 8, !tbaa !82
  %386 = getelementptr inbounds i8, ptr %385, i64 24
  %387 = load ptr, ptr %386, align 8
  %388 = call noundef nonnull align 8 dereferenceable(40) ptr %387(ptr noundef nonnull align 8 dereferenceable(33) %384)
  %389 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %388) #4
  %390 = load ptr, ptr %0, align 8, !tbaa !82
  %391 = getelementptr inbounds i8, ptr %390, i64 336
  %392 = load ptr, ptr %391, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %392(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.482, ptr noundef nonnull @.str.478, ptr noundef %389)
  br label %393

393:                                              ; preds = %383, %381
  %394 = load i64, ptr %373, align 8
  %395 = and i64 %394, 63
  %.not138 = icmp eq i64 %395, 4
  br i1 %.not138, label %406, label %396

396:                                              ; preds = %393
  %397 = load ptr, ptr %7, align 8, !tbaa !84
  %398 = load ptr, ptr %397, align 8, !tbaa !82
  %399 = getelementptr inbounds i8, ptr %398, i64 24
  %400 = load ptr, ptr %399, align 8
  %401 = call noundef nonnull align 8 dereferenceable(40) ptr %400(ptr noundef nonnull align 8 dereferenceable(33) %397)
  %402 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %401) #4
  %403 = load ptr, ptr %0, align 8, !tbaa !82
  %404 = getelementptr inbounds i8, ptr %403, i64 336
  %405 = load ptr, ptr %404, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %405(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.485, ptr noundef nonnull @.str.478, ptr noundef %402)
  br label %406

406:                                              ; preds = %396, %393
  %407 = getelementptr inbounds i8, ptr %4, i64 60
  %408 = load i32, ptr %407, align 4, !tbaa !98
  %.not139 = icmp eq i32 %408, 0
  br i1 %.not139, label %507, label %409

409:                                              ; preds = %406
  %410 = getelementptr inbounds i8, ptr %0, i64 56
  %411 = load ptr, ptr %410, align 8, !tbaa !88
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #4
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %10, ptr noundef nonnull @.str.44, ptr noundef nonnull align 8 dereferenceable(8) %11)
  %412 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %411, ptr noundef nonnull align 8 dereferenceable(40) %10)
          to label %413 unwind label %418

413:                                              ; preds = %409
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #4
  br i1 %412, label %414, label %420

414:                                              ; preds = %413
  %415 = load ptr, ptr %0, align 8, !tbaa !82
  %416 = getelementptr inbounds i8, ptr %415, i64 336
  %417 = load ptr, ptr %416, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %417(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.476, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2)
  br label %420

418:                                              ; preds = %409
  %419 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #4
  br label %509

420:                                              ; preds = %414, %413
  %421 = load ptr, ptr %410, align 8, !tbaa !88
  %422 = load i32, ptr %407, align 4, !tbaa !98
  %423 = call noundef zeroext i1 @_ZN7glslang13TIntermediate8setDepthENS_12TLayoutDepthE(ptr noundef nonnull align 8 dereferenceable(1784) %421, i32 noundef %422)
  br i1 %423, label %507, label %424

424:                                              ; preds = %420
  %425 = load ptr, ptr %7, align 8, !tbaa !84
  %426 = load ptr, ptr %425, align 8, !tbaa !82
  %427 = getelementptr inbounds i8, ptr %426, i64 24
  %428 = load ptr, ptr %427, align 8
  %429 = call noundef nonnull align 8 dereferenceable(40) ptr %428(ptr noundef nonnull align 8 dereferenceable(33) %425)
  %430 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %429) #4
  %431 = load ptr, ptr %0, align 8, !tbaa !82
  %432 = getelementptr inbounds i8, ptr %431, i64 336
  %433 = load ptr, ptr %432, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %433(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.486, ptr noundef nonnull @.str.478, ptr noundef %430)
  br label %507

434:                                              ; preds = %370
  %435 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.475)
  br i1 %435, label %438, label %436

436:                                              ; preds = %434
  %437 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.474)
  br i1 %437, label %438, label %464

438:                                              ; preds = %436, %434
  %439 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %3)
  br i1 %439, label %440, label %450

440:                                              ; preds = %438
  %441 = load ptr, ptr %7, align 8, !tbaa !84
  %442 = load ptr, ptr %441, align 8, !tbaa !82
  %443 = getelementptr inbounds i8, ptr %442, i64 24
  %444 = load ptr, ptr %443, align 8
  %445 = call noundef nonnull align 8 dereferenceable(40) ptr %444(ptr noundef nonnull align 8 dereferenceable(33) %441)
  %446 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %445) #4
  %447 = load ptr, ptr %0, align 8, !tbaa !82
  %448 = getelementptr inbounds i8, ptr %447, i64 336
  %449 = load ptr, ptr %448, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %449(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.477, ptr noundef nonnull @.str.478, ptr noundef %446)
  br label %450

450:                                              ; preds = %440, %438
  %451 = getelementptr inbounds i8, ptr %3, i64 8
  %452 = load i64, ptr %451, align 8
  %453 = and i64 %452, 63
  %.not135 = icmp eq i64 %453, 4
  br i1 %.not135, label %507, label %454

454:                                              ; preds = %450
  %455 = load ptr, ptr %7, align 8, !tbaa !84
  %456 = load ptr, ptr %455, align 8, !tbaa !82
  %457 = getelementptr inbounds i8, ptr %456, i64 24
  %458 = load ptr, ptr %457, align 8
  %459 = call noundef nonnull align 8 dereferenceable(40) ptr %458(ptr noundef nonnull align 8 dereferenceable(33) %455)
  %460 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %459) #4
  %461 = load ptr, ptr %0, align 8, !tbaa !82
  %462 = getelementptr inbounds i8, ptr %461, i64 336
  %463 = load ptr, ptr %462, align 8
  call 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.485, ptr noundef nonnull @.str.478, ptr noundef %460)
  br label %507

464:                                              ; preds = %436
  %465 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.45)
  br i1 %465, label %466, label %483

466:                                              ; preds = %464
  %467 = getelementptr inbounds i8, ptr %4, i64 76
  %468 = load i8, ptr %467, align 4, !tbaa !99, !range !86, !noundef !87
  %469 = trunc nuw i8 %468 to i1
  br i1 %469, label %480, label %470

470:                                              ; preds = %466
  %471 = load ptr, ptr %7, align 8, !tbaa !84
  %472 = load ptr, ptr %471, align 8, !tbaa !82
  %473 = getelementptr inbounds i8, ptr %472, i64 24
  %474 = load ptr, ptr %473, align 8
  %475 = call noundef nonnull align 8 dereferenceable(40) ptr %474(ptr noundef nonnull align 8 dereferenceable(33) %471)
  %476 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %475) #4
  %477 = load ptr, ptr %0, align 8, !tbaa !82
  %478 = getelementptr inbounds i8, ptr %477, i64 336
  %479 = load ptr, ptr %478, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %479(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.487, ptr noundef nonnull @.str.478, ptr noundef %476)
  br label %480

480:                                              ; preds = %470, %466
  %481 = getelementptr inbounds i8, ptr %0, i64 56
  %482 = load ptr, ptr %481, align 8, !tbaa !88
  call void @_ZN7glslang13TIntermediate25setLayoutOverrideCoverageEv(ptr noundef nonnull align 8 dereferenceable(1784) %482)
  br label %507

483:                                              ; preds = %464
  %484 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull @.str.42)
  br i1 %484, label %485, label %507

485:                                              ; preds = %483
  %486 = getelementptr inbounds i8, ptr %3, i64 48
  %487 = load i8, ptr %486, align 8, !tbaa !100, !range !86, !noundef !87
  %488 = trunc nuw i8 %487 to i1
  %489 = getelementptr inbounds i8, ptr %3, i64 52
  %490 = load i32, ptr %489, align 4
  %491 = icmp ne i32 %490, -2048
  %or.cond181.not = select i1 %488, i1 true, i1 %491
  br i1 %or.cond181.not, label %502, label %492

492:                                              ; preds = %485
  %493 = load ptr, ptr %7, align 8, !tbaa !84
  %494 = load ptr, ptr %493, align 8, !tbaa !82
  %495 = getelementptr inbounds i8, ptr %494, i64 24
  %496 = load ptr, ptr %495, align 8
  %497 = call noundef nonnull align 8 dereferenceable(40) ptr %496(ptr noundef nonnull align 8 dereferenceable(33) %493)
  %498 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %497) #4
  %499 = load ptr, ptr %0, align 8, !tbaa !82
  %500 = getelementptr inbounds i8, ptr %499, i64 336
  %501 = load ptr, ptr %500, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %501(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.488, ptr noundef nonnull @.str.478, ptr noundef %498)
  %.pre196 = load i8, ptr %486, align 8, !tbaa !100, !range !86
  %.pre197 = load i32, ptr %489, align 4, !tbaa !108
  br label %502

502:                                              ; preds = %492, %485
  %503 = phi i32 [ %.pre197, %492 ], [ %490, %485 ]
  %504 = phi i8 [ %.pre196, %492 ], [ %487, %485 ]
  %505 = getelementptr inbounds i8, ptr %128, i64 48
  store i8 %504, ptr %505, align 8, !tbaa !100
  %506 = getelementptr inbounds i8, ptr %128, i64 52
  store i32 %503, ptr %506, align 4, !tbaa !108
  br label %507

507:                                              ; preds = %265, %243, %228, %368, %364, %454, %450, %483, %502, %480, %406, %424, %420, %272, %.thread187, %178
  %508 = load ptr, ptr %7, align 8, !tbaa !84
  br label %510

509:                                              ; preds = %296, %418
  %.pn = phi { ptr, i32 } [ %297, %296 ], [ %419, %418 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #4
  resume { ptr, i32 } %.pn

510:                                              ; preds = %107, %507
  %.0133 = phi ptr [ %508, %507 ], [ null, %107 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #4
  br label %511

511:                                              ; preds = %40, %105, %510, %5, %13, %17
  %.3 = phi ptr [ null, %17 ], [ null, %13 ], [ null, %5 ], [ null, %40 ], [ %.0133, %510 ], [ null, %105 ]
  ret ptr %.3
}

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

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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress 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 #4 = { 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, !12, i64 200}
!6 = !{!"_ZTSN7glslang17TParseContextBaseE", !7, i64 0, !12, i64 192, !12, i64 200, !13, i64 208, !13, i64 212, !13, i64 216, !13, i64 220, !13, i64 224, !12, i64 232, !8, i64 240, !8, i64 241, !33, i64 248, !40, i64 280, !45, i64 312, !13, i64 376, !13, i64 380, !8, i64 384, !52, i64 392, !12, i64 424, !12, i64 432, !58, i64 440, !12, i64 824, !60, i64 832, !63, i64 872, !65, i64 904, !66, i64 936, !67, i64 968, !68, i64 1000, !12, i64 1032, !13, i64 1040, !13, i64 1044, !13, i64 1048, !69, i64 1056, !13, i64 1112, !76, i64 1120}
!7 = !{!"_ZTSN7glslang14TParseVersionsE", !8, i64 8, !11, i64 12, !12, i64 16, !13, i64 24, !14, i64 28, !15, i64 32, !12, i64 56, !16, i64 64, !27, i64 120, !32, i64 176, !13, i64 180, !12, i64 184}
!8 = !{!"bool", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"_ZTS8EProfile", !9, i64 0}
!12 = !{!"any pointer", !9, i64 0}
!13 = !{!"int", !9, i64 0}
!14 = !{!"_ZTS11EShLanguage", !9, i64 0}
!15 = !{!"_ZTSN7glslang10SpvVersionE", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !8, i64 16}
!16 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_18TExtensionBehaviorESt4lessIS7_EEE", !17, i64 0}
!17 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_18TExtensionBehaviorESt4lessIS7_ENS5_ISt4pairIKS7_S8_EEEE", !18, i64 0}
!18 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE", !19, i64 0}
!19 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE13_Rb_tree_implISF_Lb1EEE", !20, i64 0, !21, i64 8, !23, i64 16}
!20 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEENS_18TExtensionBehaviorEEEEE", !12, i64 0}
!21 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEE", !22, i64 0}
!22 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEE"}
!23 = !{!"_ZTSSt15_Rb_tree_header", !24, i64 0, !26, i64 32}
!24 = !{!"_ZTSSt18_Rb_tree_node_base", !25, i64 0, !12, i64 8, !12, i64 16, !12, i64 24}
!25 = !{!"_ZTSSt14_Rb_tree_color", !9, i64 0}
!26 = !{!"long", !9, i64 0}
!27 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEjSt4lessIS7_EEE", !28, i64 0}
!28 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEjSt4lessIS7_ENS5_ISt4pairIKS7_jEEEE", !29, i64 0}
!29 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !30, i64 0}
!30 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !31, i64 0, !21, i64 8, !23, i64 16}
!31 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEEjEEEE", !12, i64 0}
!32 = !{!"_ZTS11EShMessages", !9, i64 0}
!33 = !{!"_ZTSN7glslang5TListIPNS_7TVectorIP11TIntermNodeEEEE", !34, i64 0}
!34 = !{!"_ZTSNSt7__cxx114listIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEEE", !35, i64 0}
!35 = !{!"_ZTSNSt7__cxx1110_List_baseIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEEE", !36, i64 0}
!36 = !{!"_ZTSNSt7__cxx1110_List_baseIPN7glslang7TVectorIP11TIntermNodeEENS1_14pool_allocatorIS6_EEE10_List_implE", !37, i64 0, !38, i64 8}
!37 = !{!"_ZTSN7glslang14pool_allocatorISt10_List_nodeIPNS_7TVectorIP11TIntermNodeEEEEE", !12, i64 0}
!38 = !{!"_ZTSNSt8__detail17_List_node_headerE", !39, i64 0, !26, i64 16}
!39 = !{!"_ZTSNSt8__detail15_List_node_baseE", !12, i64 0, !12, i64 8}
!40 = !{!"_ZTSN7glslang5TListIiEE", !41, i64 0}
!41 = !{!"_ZTSNSt7__cxx114listIiN7glslang14pool_allocatorIiEEEE", !42, i64 0}
!42 = !{!"_ZTSNSt7__cxx1110_List_baseIiN7glslang14pool_allocatorIiEEEE", !43, i64 0}
!43 = !{!"_ZTSNSt7__cxx1110_List_baseIiN7glslang14pool_allocatorIiEEE10_List_implE", !44, i64 0, !38, i64 8}
!44 = !{!"_ZTSN7glslang14pool_allocatorISt10_List_nodeIiEEE", !12, i64 0}
!45 = !{!"_ZTSN7glslang7TPragmaE", !8, i64 0, !8, i64 1, !46, i64 8}
!46 = !{!"_ZTSN7glslang12TPragmaTableE", !47, i64 0}
!47 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_St4lessIS7_EEE", !48, i64 0}
!48 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEES7_St4lessIS7_ENS5_ISt4pairIKS7_S7_EEEE", !49, i64 0}
!49 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_S7_ESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !50, i64 0}
!50 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_S7_ESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !51, i64 0, !21, i64 8, !23, i64 16}
!51 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEES8_EEEE", !12, i64 0}
!52 = !{!"_ZTSN7glslang7TVectorIPNS_7TSymbolEEE", !53, i64 0}
!53 = !{!"_ZTSSt6vectorIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE12_Vector_implE", !56, i64 0, !57, i64 8}
!56 = !{!"_ZTSN7glslang14pool_allocatorIPNS_7TSymbolEEE", !12, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseIPN7glslang7TSymbolENS0_14pool_allocatorIS2_EEE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!58 = !{!"_ZTS16TBuiltInResource", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !13, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !13, i64 56, !13, i64 60, !13, i64 64, !13, i64 68, !13, i64 72, !13, i64 76, !13, i64 80, !13, i64 84, !13, i64 88, !13, i64 92, !13, i64 96, !13, i64 100, !13, i64 104, !13, i64 108, !13, i64 112, !13, i64 116, !13, i64 120, !13, i64 124, !13, i64 128, !13, i64 132, !13, i64 136, !13, i64 140, !13, i64 144, !13, i64 148, !13, i64 152, !13, i64 156, !13, i64 160, !13, i64 164, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !13, i64 184, !13, i64 188, !13, i64 192, !13, i64 196, !13, i64 200, !13, i64 204, !13, i64 208, !13, i64 212, !13, i64 216, !13, i64 220, !13, i64 224, !13, i64 228, !13, i64 232, !13, i64 236, !13, i64 240, !13, i64 244, !13, i64 248, !13, i64 252, !13, i64 256, !13, i64 260, !13, i64 264, !13, i64 268, !13, i64 272, !13, i64 276, !13, i64 280, !13, i64 284, !13, i64 288, !13, i64 292, !13, i64 296, !13, i64 300, !13, i64 304, !13, i64 308, !13, i64 312, !13, i64 316, !13, i64 320, !13, i64 324, !13, i64 328, !13, i64 332, !13, i64 336, !13, i64 340, !13, i64 344, !13, i64 348, !13, i64 352, !13, i64 356, !13, i64 360, !13, i64 364, !13, i64 368, !59, i64 372}
!59 = !{!"_ZTS7TLimits", !8, i64 0, !8, i64 1, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 5, !8, i64 6, !8, i64 7, !8, i64 8}
!60 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEE", !61, i64 0, !26, i64 16, !9, i64 24}
!61 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE12_Alloc_hiderE", !62, i64 0, !12, i64 8}
!62 = !{!"_ZTSN7glslang14pool_allocatorIcEE", !12, i64 0}
!63 = !{!"_ZTSSt8functionIFviibiPKcEE", !64, i64 0, !12, i64 24}
!64 = !{!"_ZTSSt14_Function_base", !9, i64 0, !12, i64 16}
!65 = !{!"_ZTSSt8functionIFviRKN7glslang7TVectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_14pool_allocatorIcEEEEEEEE", !64, i64 0, !12, i64 24}
!66 = !{!"_ZTSSt8functionIFviiPKcEE", !64, i64 0, !12, i64 24}
!67 = !{!"_ZTSSt8functionIFviPKcS1_EE", !64, i64 0, !12, i64 24}
!68 = !{!"_ZTSSt8functionIFviPKcEE", !64, i64 0, !12, i64 24}
!69 = !{!"_ZTSN7glslang4TMapIiPNS_9TVariableESt4lessIiEEE", !70, i64 0}
!70 = !{!"_ZTSSt3mapIiPN7glslang9TVariableESt4lessIiENS0_14pool_allocatorISt4pairIKiS2_EEEE", !71, i64 0}
!71 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiPN7glslang9TVariableEESt10_Select1stIS5_ESt4lessIiENS2_14pool_allocatorIS5_EEE", !72, i64 0}
!72 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiPN7glslang9TVariableEESt10_Select1stIS5_ESt4lessIiENS2_14pool_allocatorIS5_EEE13_Rb_tree_implIS9_Lb1EEE", !73, i64 0, !74, i64 8, !23, i64 16}
!73 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKiPNS_9TVariableEEEEE", !12, i64 0}
!74 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !75, i64 0}
!75 = !{!"_ZTSSt4lessIiE"}
!76 = !{!"_ZTSN7glslang4TMapIiiSt4lessIiEEE", !77, i64 0}
!77 = !{!"_ZTSSt3mapIiiSt4lessIiEN7glslang14pool_allocatorISt4pairIKiiEEEE", !78, i64 0}
!78 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiEN7glslang14pool_allocatorIS2_EEE", !79, i64 0}
!79 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiEN7glslang14pool_allocatorIS2_EEE13_Rb_tree_implIS6_Lb1EEE", !80, i64 0, !74, i64 8, !23, i64 16}
!80 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKiiEEEE", !12, i64 0}
!81 = !{!7, !13, i64 24}
!82 = !{!83, !83, i64 0}
!83 = !{!"vtable pointer", !10, i64 0}
!84 = !{!12, !12, i64 0}
!85 = !{!8, !8, i64 0}
!86 = !{i8 0, i8 2}
!87 = !{}
!88 = !{!7, !12, i64 56}
!89 = !{!7, !14, i64 28}
!90 = !{!91, !8, i64 4}
!91 = !{!"_ZTSN7glslang17TShaderQualifiersE", !92, i64 0, !8, i64 4, !8, i64 5, !13, i64 8, !13, i64 12, !93, i64 16, !94, i64 20, !8, i64 24, !9, i64 28, !9, i64 40, !9, i64 44, !8, i64 56, !8, i64 57, !95, i64 60, !8, i64 64, !13, i64 68, !96, i64 72, !8, i64 76, !8, i64 77, !8, i64 78, !13, i64 80, !8, i64 84}
!92 = !{!"_ZTSN7glslang15TLayoutGeometryE", !9, i64 0}
!93 = !{!"_ZTSN7glslang14TVertexSpacingE", !9, i64 0}
!94 = !{!"_ZTSN7glslang12TVertexOrderE", !9, i64 0}
!95 = !{!"_ZTSN7glslang12TLayoutDepthE", !9, i64 0}
!96 = !{!"_ZTSN7glslang18TInterlockOrderingE", !9, i64 0}
!97 = !{!91, !8, i64 5}
!98 = !{!91, !95, i64 60}
!99 = !{!91, !8, i64 76}
!100 = !{!101, !8, i64 48}
!101 = !{!"_ZTSN7glslang10TQualifierE", !12, i64 0, !102, i64 8, !103, i64 8, !103, i64 9, !104, i64 11, !8, i64 11, !8, i64 11, !8, i64 11, !8, i64 11, !8, i64 11, !8, i64 12, !8, i64 12, !8, i64 12, !8, i64 12, !8, i64 12, !8, i64 12, !8, i64 12, !8, i64 12, !8, i64 13, !8, i64 13, !8, i64 13, !8, i64 13, !8, i64 13, !8, i64 13, !8, i64 13, !8, i64 13, !8, i64 14, !8, i64 14, !8, i64 14, !8, i64 14, !8, i64 14, !8, i64 14, !8, i64 14, !8, i64 14, !8, i64 15, !8, i64 15, !8, i64 15, !105, i64 15, !106, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 29, !13, i64 29, !13, i64 32, !13, i64 34, !13, i64 35, !13, i64 36, !13, i64 36, !13, i64 38, !13, i64 40, !13, i64 41, !13, i64 42, !107, i64 44, !8, i64 45, !8, i64 46, !8, i64 47, !8, i64 48, !13, i64 52, !8, i64 56, !13, i64 60, !12, i64 64}
!102 = !{!"_ZTSN7glslang17TStorageQualifierE", !9, i64 0}
!103 = !{!"_ZTSN7glslang16TBuiltInVariableE", !9, i64 0}
!104 = !{!"_ZTSN7glslang19TPrecisionQualifierE", !9, i64 0}
!105 = !{!"_ZTSN7glslang13TLayoutMatrixE", !9, i64 0}
!106 = !{!"_ZTSN7glslang14TLayoutPackingE", !9, i64 0}
!107 = !{!"_ZTSN7glslang13TLayoutFormatE", !9, i64 0}
!108 = !{!101, !13, i64 52}


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