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

; 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.91" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider", i64, %union.anon.93 }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider" = type { %"class.glslang::pool_allocator.92", ptr }
%"class.glslang::pool_allocator.92" = type { ptr }
%union.anon.93 = type { i64, [8 x i8] }
%class.TFinalLinkTraverser = type { %"class.glslang::TIntermTraverser" }
%"class.glslang::TIntermTraverser" = type { ptr, i8, i8, i8, i8, i32, i32, %"class.glslang::TVector" }
%"class.glslang::TVector" = type { %"class.std::vector.85" }
%"class.std::vector.85" = type { %"struct.std::_Vector_base.86" }
%"struct.std::_Vector_base.86" = type { %"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl" }
%"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl" = type { %"class.glslang::pool_allocator", %"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl_data" }
%"class.glslang::pool_allocator" = type { ptr }
%"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.glslang::TIntermediate" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::list", i32, i32, %"struct.glslang::SpvVersion", ptr, %"class.std::set", %"class.glslang::MustBeAssigned", i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i32], [3 x i8], [3 x i32], i64, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, i32, ptr, ptr, i32, i8, i32, i32, i32, i32, i8, i8, i8, i32, i32, i32, i8, i8, i8, i32, i8, i32, i8, %"class.std::vector", i8, i8, i8, i32, i32, i32, i32, i8, %"struct.std::array", %"struct.std::array.9", %"class.std::vector.15", i8, i8, i8, i8, i8, i8, i8, %"class.std::set.20", i32, i8, i8, i8, i8, ptr, ptr, %"class.std::unordered_map", i32, %"class.glslang::TNumericFeatures", %"class.std::unordered_map.31", %"class.std::unordered_set", %"class.std::vector.64", [4 x %"class.std::vector.69"], [2 x %"class.std::vector.74"], %"class.std::set.20", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::map.79", %"class.glslang::TProcesses" }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<glslang::TCall, std::allocator<glslang::TCall>>::_List_impl" }
%"struct.std::__cxx11::_List_base<glslang::TCall, std::allocator<glslang::TCall>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"struct.glslang::SpvVersion" = type <{ i32, i32, i32, i32, i8, [3 x i8] }>
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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::MustBeAssigned" = type <{ %struct.TBuiltInResource, i8, [3 x i8] }>
%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::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<glslang::TXfbBuffer, std::allocator<glslang::TXfbBuffer>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TXfbBuffer, std::allocator<glslang::TXfbBuffer>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TXfbBuffer, std::allocator<glslang::TXfbBuffer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TXfbBuffer, std::allocator<glslang::TXfbBuffer>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::array" = type { [6 x i32] }
%"struct.std::array.9" = type { [6 x %"class.std::map"] }
%"class.std::map" = type { %"class.std::_Rb_tree.10" }
%"class.std::_Rb_tree.10" = type { %"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int>>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int>>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.glslang::TNumericFeatures" = type { i32 }
%"class.std::unordered_map.31" = type { %"class.std::_Hashtable.32" }
%"class.std::_Hashtable.32" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.45" }
%"class.std::_Hashtable.45" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.64" = type { %"struct.std::_Vector_base.65" }
%"struct.std::_Vector_base.65" = type { %"struct.std::_Vector_base<glslang::TOffsetRange, std::allocator<glslang::TOffsetRange>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TOffsetRange, std::allocator<glslang::TOffsetRange>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TOffsetRange, std::allocator<glslang::TOffsetRange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TOffsetRange, std::allocator<glslang::TOffsetRange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.69" = type { %"struct.std::_Vector_base.70" }
%"struct.std::_Vector_base.70" = type { %"struct.std::_Vector_base<glslang::TIoRange, std::allocator<glslang::TIoRange>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TIoRange, std::allocator<glslang::TIoRange>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TIoRange, std::allocator<glslang::TIoRange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TIoRange, std::allocator<glslang::TIoRange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.74" = type { %"struct.std::_Vector_base.75" }
%"struct.std::_Vector_base.75" = type { %"struct.std::_Vector_base<glslang::TRange, std::allocator<glslang::TRange>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TRange, std::allocator<glslang::TRange>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TRange, std::allocator<glslang::TRange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TRange, std::allocator<glslang::TRange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::set.20" = type { %"class.std::_Rb_tree.21" }
%"class.std::_Rb_tree.21" = type { %"struct.std::_Rb_tree<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::_Identity<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>>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<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::_Identity<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>>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::map.79" = type { %"class.std::_Rb_tree.80" }
%"class.std::_Rb_tree.80" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::TProcesses" = type { %"class.std::vector.15" }
%"struct.glslang::TXfbBuffer" = type <{ %"class.std::vector.74", i32, i32, i8, i8, i8, [5 x i8] }>
%class.TInfoSink = type { %"class.glslang::TInfoSinkBase", %"class.glslang::TInfoSinkBase" }
%"class.glslang::TInfoSinkBase" = type <{ %"class.std::__cxx11::basic_string", i32, [4 x i8] }>

@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [15 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, i32 noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36), i32 noundef) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang13TIntermediate4warnER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, i32 noundef) #0 align 2

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TIntermediate10finalCheckER9TInfoSinkb(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, i1 noundef zeroext %2) #0 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i8, align 1
  %7 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %8 = alloca %"class.glslang::pool_allocator.92", align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %12 = alloca i1, align 1
  %13 = alloca %"class.glslang::pool_allocator.92", align 8
  %14 = alloca i1, align 1
  %15 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %16 = alloca %"class.glslang::pool_allocator.92", align 8
  %17 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %18 = alloca i1, align 1
  %19 = alloca %"class.glslang::pool_allocator.92", align 8
  %20 = alloca i1, align 1
  %21 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %22 = alloca i1, align 1
  %23 = alloca %"class.glslang::pool_allocator.92", align 8
  %24 = alloca i1, align 1
  %25 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %26 = alloca i1, align 1
  %27 = alloca %"class.glslang::pool_allocator.92", align 8
  %28 = alloca i1, align 1
  %29 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %30 = alloca %"class.glslang::pool_allocator.92", align 8
  %31 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %32 = alloca i1, align 1
  %33 = alloca %"class.glslang::pool_allocator.92", align 8
  %34 = alloca i1, align 1
  %35 = alloca i64, align 8
  %36 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %37 = alloca %"class.glslang::pool_allocator.92", align 8
  %38 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %39 = alloca i1, align 1
  %40 = alloca %"class.glslang::pool_allocator.92", align 8
  %41 = alloca i1, align 1
  %42 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %43 = alloca %"class.glslang::pool_allocator.92", align 8
  %44 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %45 = alloca i1, align 1
  %46 = alloca %"class.glslang::pool_allocator.92", align 8
  %47 = alloca i1, align 1
  %48 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %49 = alloca %"class.glslang::pool_allocator.92", align 8
  %50 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %51 = alloca i1, align 1
  %52 = alloca %"class.glslang::pool_allocator.92", align 8
  %53 = alloca i1, align 1
  %54 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %55 = alloca %"class.glslang::pool_allocator.92", align 8
  %56 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %57 = alloca i1, align 1
  %58 = alloca %"class.glslang::pool_allocator.92", align 8
  %59 = alloca i1, align 1
  %60 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %61 = alloca %"class.glslang::pool_allocator.92", align 8
  %62 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %63 = alloca i1, align 1
  %64 = alloca %"class.glslang::pool_allocator.92", align 8
  %65 = alloca i1, align 1
  %66 = alloca %class.TFinalLinkTraverser, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  %67 = zext i1 %2 to i8
  store i8 %67, ptr %6, align 1, !tbaa !9
  %68 = load ptr, ptr %4, align 8
  %69 = call noundef ptr @_ZNK7glslang13TIntermediate11getTreeRootEv(ptr noundef nonnull align 8 dereferenceable(1784) %68)
  %70 = icmp eq ptr %69, null
  br i1 %70, label %71, label %72

71:                                               ; preds = %3
  br label %807

72:                                               ; preds = %3
  %73 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 10
  %74 = load i32, ptr %73, align 4, !tbaa !11
  %75 = icmp slt i32 %74, 1
  br i1 %75, label %76, label %84

76:                                               ; preds = %72
  %77 = call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %68)
  %78 = icmp eq i32 %77, 1
  br i1 %78, label %79, label %81

79:                                               ; preds = %76
  %80 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %80, ptr noundef @.str.81, i32 noundef 14)
  br label %83

81:                                               ; preds = %76
  %82 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate4warnER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %82, ptr noundef @.str.82, i32 noundef 14)
  br label %83

83:                                               ; preds = %81, %79
  br label %84

84:                                               ; preds = %83, %72
  %85 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate20checkCallGraphCyclesER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %85)
  %86 = load ptr, ptr %5, align 8, !tbaa !5
  %87 = load i8, ptr %6, align 1, !tbaa !9, !range !78, !noundef !79
  %88 = trunc i8 %87 to i1
  call void @_ZN7glslang13TIntermediate20checkCallGraphBodiesER9TInfoSinkb(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %86, i1 noundef zeroext %88)
  %89 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate18inOutLocationCheckER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %89)
  %90 = call noundef i32 @_ZNK7glslang13TIntermediate19getNumPushConstantsEv(ptr noundef nonnull align 8 dereferenceable(1784) %68)
  %91 = icmp sgt i32 %90, 1
  br i1 %91, label %92, label %94

92:                                               ; preds = %84
  %93 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %93, ptr noundef @.str.9, i32 noundef 14)
  br label %94

94:                                               ; preds = %92, %84
  %95 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 34
  %96 = load i32, ptr %95, align 8, !tbaa !80
  %97 = icmp eq i32 %96, -1
  br i1 %97, label %98, label %100

98:                                               ; preds = %94
  %99 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 34
  store i32 1, ptr %99, align 8, !tbaa !80
  br label %100

100:                                              ; preds = %98, %94
  call void @llvm.lifetime.start.p0(i64 40, ptr %7) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef @.str.83, ptr noundef nonnull align 8 dereferenceable(8) %8)
  store i1 false, ptr %12, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #3
  store i1 false, ptr %14, align 1
  %101 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %7)
          to label %102 unwind label %118

102:                                              ; preds = %100
  br i1 %101, label %103, label %108

103:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 40, ptr %11) #3
  store i1 true, ptr %12, align 1
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %104 unwind label %122

104:                                              ; preds = %103
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %11, ptr noundef @.str.84, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %105 unwind label %122

105:                                              ; preds = %104
  store i1 true, ptr %14, align 1
  %106 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %11)
          to label %107 unwind label %126

107:                                              ; preds = %105
  br label %108

108:                                              ; preds = %107, %102
  %109 = phi i1 [ false, %102 ], [ %106, %107 ]
  %110 = load i1, ptr %14, align 1
  br i1 %110, label %111, label %112

111:                                              ; preds = %108
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #3
  br label %112

112:                                              ; preds = %111, %108
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #3
  %113 = load i1, ptr %12, align 1
  br i1 %113, label %114, label %115

114:                                              ; preds = %112
  call void @llvm.lifetime.end.p0(i64 40, ptr %11) #3
  br label %115

115:                                              ; preds = %114, %112
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %7) #3
  br i1 %109, label %116, label %138

116:                                              ; preds = %115
  %117 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %117, ptr noundef @.str.85, i32 noundef 14)
  br label %138

118:                                              ; preds = %100
  %119 = landingpad { ptr, i32 }
          cleanup
  %120 = extractvalue { ptr, i32 } %119, 0
  store ptr %120, ptr %9, align 8
  %121 = extractvalue { ptr, i32 } %119, 1
  store i32 %121, ptr %10, align 4
  br label %137

122:                                              ; preds = %104, %103
  %123 = landingpad { ptr, i32 }
          cleanup
  %124 = extractvalue { ptr, i32 } %123, 0
  store ptr %124, ptr %9, align 8
  %125 = extractvalue { ptr, i32 } %123, 1
  store i32 %125, ptr %10, align 4
  br label %133

126:                                              ; preds = %105
  %127 = landingpad { ptr, i32 }
          cleanup
  %128 = extractvalue { ptr, i32 } %127, 0
  store ptr %128, ptr %9, align 8
  %129 = extractvalue { ptr, i32 } %127, 1
  store i32 %129, ptr %10, align 4
  %130 = load i1, ptr %14, align 1
  br i1 %130, label %131, label %132

131:                                              ; preds = %126
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #3
  br label %132

132:                                              ; preds = %131, %126
  br label %133

133:                                              ; preds = %132, %122
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #3
  %134 = load i1, ptr %12, align 1
  br i1 %134, label %135, label %136

135:                                              ; preds = %133
  call void @llvm.lifetime.end.p0(i64 40, ptr %11) #3
  br label %136

136:                                              ; preds = %135, %133
  br label %137

137:                                              ; preds = %136, %118
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %7) #3
  br label %812

138:                                              ; preds = %116, %115
  call void @llvm.lifetime.start.p0(i64 40, ptr %15) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %15, ptr noundef @.str.86, ptr noundef nonnull align 8 dereferenceable(8) %16)
  store i1 false, ptr %18, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #3
  store i1 false, ptr %20, align 1
  %139 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %15)
          to label %140 unwind label %156

140:                                              ; preds = %138
  br i1 %139, label %141, label %146

141:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 40, ptr %17) #3
  store i1 true, ptr %18, align 1
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %142 unwind label %160

142:                                              ; preds = %141
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %17, ptr noundef @.str.84, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %143 unwind label %160

143:                                              ; preds = %142
  store i1 true, ptr %20, align 1
  %144 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %17)
          to label %145 unwind label %164

145:                                              ; preds = %143
  br label %146

146:                                              ; preds = %145, %140
  %147 = phi i1 [ false, %140 ], [ %144, %145 ]
  %148 = load i1, ptr %20, align 1
  br i1 %148, label %149, label %150

149:                                              ; preds = %146
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %17) #3
  br label %150

150:                                              ; preds = %149, %146
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #3
  %151 = load i1, ptr %18, align 1
  br i1 %151, label %152, label %153

152:                                              ; preds = %150
  call void @llvm.lifetime.end.p0(i64 40, ptr %17) #3
  br label %153

153:                                              ; preds = %152, %150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %15) #3
  br i1 %147, label %154, label %176

154:                                              ; preds = %153
  %155 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %155, ptr noundef @.str.87, i32 noundef 14)
  br label %176

156:                                              ; preds = %138
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %9, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %10, align 4
  br label %175

160:                                              ; preds = %142, %141
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %9, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %10, align 4
  br label %171

164:                                              ; preds = %143
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %9, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %10, align 4
  %168 = load i1, ptr %20, align 1
  br i1 %168, label %169, label %170

169:                                              ; preds = %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %17) #3
  br label %170

170:                                              ; preds = %169, %164
  br label %171

171:                                              ; preds = %170, %160
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #3
  %172 = load i1, ptr %18, align 1
  br i1 %172, label %173, label %174

173:                                              ; preds = %171
  call void @llvm.lifetime.end.p0(i64 40, ptr %17) #3
  br label %174

174:                                              ; preds = %173, %171
  br label %175

175:                                              ; preds = %174, %156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %15) #3
  br label %812

176:                                              ; preds = %154, %153
  %177 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate14userOutputUsedEv(ptr noundef nonnull align 8 dereferenceable(1784) %68)
  store i1 false, ptr %22, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #3
  store i1 false, ptr %24, align 1
  store i1 false, ptr %26, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #3
  store i1 false, ptr %28, align 1
  br i1 %177, label %178, label %188

178:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 40, ptr %21) #3
  store i1 true, ptr %22, align 1
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %21, ptr noundef @.str.88, ptr noundef nonnull align 8 dereferenceable(8) %23)
  store i1 true, ptr %24, align 1
  %179 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %21)
          to label %180 unwind label %204

180:                                              ; preds = %178
  br i1 %179, label %186, label %181

181:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 40, ptr %25) #3
  store i1 true, ptr %26, align 1
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %182 unwind label %208

182:                                              ; preds = %181
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %25, ptr noundef @.str.89, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %183 unwind label %208

183:                                              ; preds = %182
  store i1 true, ptr %28, align 1
  %184 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %25)
          to label %185 unwind label %212

185:                                              ; preds = %183
  br label %186

186:                                              ; preds = %185, %180
  %187 = phi i1 [ true, %180 ], [ %184, %185 ]
  br label %188

188:                                              ; preds = %186, %176
  %189 = phi i1 [ false, %176 ], [ %187, %186 ]
  %190 = load i1, ptr %28, align 1
  br i1 %190, label %191, label %192

191:                                              ; preds = %188
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %25) #3
  br label %192

192:                                              ; preds = %191, %188
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #3
  %193 = load i1, ptr %26, align 1
  br i1 %193, label %194, label %195

194:                                              ; preds = %192
  call void @llvm.lifetime.end.p0(i64 40, ptr %25) #3
  br label %195

195:                                              ; preds = %194, %192
  %196 = load i1, ptr %24, align 1
  br i1 %196, label %197, label %198

197:                                              ; preds = %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #3
  br label %198

198:                                              ; preds = %197, %195
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #3
  %199 = load i1, ptr %22, align 1
  br i1 %199, label %200, label %201

200:                                              ; preds = %198
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #3
  br label %201

201:                                              ; preds = %200, %198
  br i1 %189, label %202, label %230

202:                                              ; preds = %201
  %203 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %203, ptr noundef @.str.90, i32 noundef 14)
  br label %230

204:                                              ; preds = %178
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %9, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %10, align 4
  br label %223

208:                                              ; preds = %182, %181
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %9, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %10, align 4
  br label %219

212:                                              ; preds = %183
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %9, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %10, align 4
  %216 = load i1, ptr %28, align 1
  br i1 %216, label %217, label %218

217:                                              ; preds = %212
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %25) #3
  br label %218

218:                                              ; preds = %217, %212
  br label %219

219:                                              ; preds = %218, %208
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #3
  %220 = load i1, ptr %26, align 1
  br i1 %220, label %221, label %222

221:                                              ; preds = %219
  call void @llvm.lifetime.end.p0(i64 40, ptr %25) #3
  br label %222

222:                                              ; preds = %221, %219
  br label %223

223:                                              ; preds = %222, %204
  %224 = load i1, ptr %24, align 1
  br i1 %224, label %225, label %226

225:                                              ; preds = %223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #3
  br label %226

226:                                              ; preds = %225, %223
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #3
  %227 = load i1, ptr %22, align 1
  br i1 %227, label %228, label %229

228:                                              ; preds = %226
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #3
  br label %229

229:                                              ; preds = %228, %226
  br label %812

230:                                              ; preds = %202, %201
  call void @llvm.lifetime.start.p0(i64 40, ptr %29) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %29, ptr noundef @.str.88, ptr noundef nonnull align 8 dereferenceable(8) %30)
  store i1 false, ptr %32, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  store i1 false, ptr %34, align 1
  %231 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %29)
          to label %232 unwind label %248

232:                                              ; preds = %230
  br i1 %231, label %233, label %238

233:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #3
  store i1 true, ptr %32, align 1
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %234 unwind label %252

234:                                              ; preds = %233
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %31, ptr noundef @.str.89, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %235 unwind label %252

235:                                              ; preds = %234
  store i1 true, ptr %34, align 1
  %236 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %31)
          to label %237 unwind label %256

237:                                              ; preds = %235
  br label %238

238:                                              ; preds = %237, %232
  %239 = phi i1 [ false, %232 ], [ %236, %237 ]
  %240 = load i1, ptr %34, align 1
  br i1 %240, label %241, label %242

241:                                              ; preds = %238
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #3
  br label %242

242:                                              ; preds = %241, %238
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  %243 = load i1, ptr %32, align 1
  br i1 %243, label %244, label %245

244:                                              ; preds = %242
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #3
  br label %245

245:                                              ; preds = %244, %242
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %29) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %29) #3
  br i1 %239, label %246, label %268

246:                                              ; preds = %245
  %247 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %247, ptr noundef @.str.91, i32 noundef 14)
  br label %268

248:                                              ; preds = %230
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %9, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %10, align 4
  br label %267

252:                                              ; preds = %234, %233
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %9, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %10, align 4
  br label %263

256:                                              ; preds = %235
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %9, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %10, align 4
  %260 = load i1, ptr %34, align 1
  br i1 %260, label %261, label %262

261:                                              ; preds = %256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #3
  br label %262

262:                                              ; preds = %261, %256
  br label %263

263:                                              ; preds = %262, %252
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  %264 = load i1, ptr %32, align 1
  br i1 %264, label %265, label %266

265:                                              ; preds = %263
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #3
  br label %266

266:                                              ; preds = %265, %263
  br label %267

267:                                              ; preds = %266, %248
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %29) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %29) #3
  br label %812

268:                                              ; preds = %246, %245
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #3
  store i64 0, ptr %35, align 8, !tbaa !81
  br label %269

269:                                              ; preds = %510, %268
  %270 = load i64, ptr %35, align 8, !tbaa !81
  %271 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %272 = call noundef i64 @_ZNKSt6vectorIN7glslang10TXfbBufferESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %271) #3
  %273 = icmp ult i64 %270, %272
  br i1 %273, label %275, label %274

274:                                              ; preds = %269
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #3
  br label %513

275:                                              ; preds = %269
  %276 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %277 = load i64, ptr %35, align 8, !tbaa !81
  %278 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %276, i64 noundef %277) #3
  %279 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %278, i32 0, i32 3
  %280 = load i8, ptr %279, align 8, !tbaa !82, !range !78, !noundef !79
  %281 = trunc i8 %280 to i1
  br i1 %281, label %282, label %287

282:                                              ; preds = %275
  %283 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %284 = load i64, ptr %35, align 8, !tbaa !81
  %285 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %283, i64 noundef %284) #3
  %286 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %285, i32 0, i32 2
  call void @_ZN7glslang11RoundToPow2IjEEvRT_i(ptr noundef nonnull align 4 dereferenceable(4) %286, i32 noundef 8)
  br label %313

287:                                              ; preds = %275
  %288 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %289 = load i64, ptr %35, align 8, !tbaa !81
  %290 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %288, i64 noundef %289) #3
  %291 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %290, i32 0, i32 4
  %292 = load i8, ptr %291, align 1, !tbaa !88, !range !78, !noundef !79
  %293 = trunc i8 %292 to i1
  br i1 %293, label %294, label %299

294:                                              ; preds = %287
  %295 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %296 = load i64, ptr %35, align 8, !tbaa !81
  %297 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %295, i64 noundef %296) #3
  %298 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %297, i32 0, i32 2
  call void @_ZN7glslang11RoundToPow2IjEEvRT_i(ptr noundef nonnull align 4 dereferenceable(4) %298, i32 noundef 4)
  br label %312

299:                                              ; preds = %287
  %300 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %301 = load i64, ptr %35, align 8, !tbaa !81
  %302 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %300, i64 noundef %301) #3
  %303 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %302, i32 0, i32 5
  %304 = load i8, ptr %303, align 2, !tbaa !89, !range !78, !noundef !79
  %305 = trunc i8 %304 to i1
  br i1 %305, label %306, label %311

306:                                              ; preds = %299
  %307 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %308 = load i64, ptr %35, align 8, !tbaa !81
  %309 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %308) #3
  %310 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %309, i32 0, i32 2
  call void @_ZN7glslang11RoundToPow2IjEEvRT_i(ptr noundef nonnull align 4 dereferenceable(4) %310, i32 noundef 2)
  br label %311

311:                                              ; preds = %306, %299
  br label %312

312:                                              ; preds = %311, %294
  br label %313

313:                                              ; preds = %312, %282
  %314 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %315 = load i64, ptr %35, align 8, !tbaa !81
  %316 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %314, i64 noundef %315) #3
  %317 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %316, i32 0, i32 1
  %318 = load i32, ptr %317, align 8, !tbaa !90
  %319 = icmp ne i32 %318, 16383
  br i1 %319, label %320, label %357

320:                                              ; preds = %313
  %321 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %322 = load i64, ptr %35, align 8, !tbaa !81
  %323 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %321, i64 noundef %322) #3
  %324 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %323, i32 0, i32 2
  %325 = load i32, ptr %324, align 4, !tbaa !91
  %326 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %327 = load i64, ptr %35, align 8, !tbaa !81
  %328 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %326, i64 noundef %327) #3
  %329 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %328, i32 0, i32 1
  %330 = load i32, ptr %329, align 8, !tbaa !90
  %331 = icmp ugt i32 %325, %330
  br i1 %331, label %332, label %357

332:                                              ; preds = %320
  %333 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %333, ptr noundef @.str.92, i32 noundef 14)
  %334 = load ptr, ptr %5, align 8, !tbaa !5
  %335 = getelementptr inbounds %class.TInfoSink, ptr %334, i32 0, i32 0
  call void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36) %335, i32 noundef 2)
  %336 = load ptr, ptr %5, align 8, !tbaa !5
  %337 = getelementptr inbounds %class.TInfoSink, ptr %336, i32 0, i32 0
  %338 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %337, ptr noundef @.str.93)
  %339 = load i64, ptr %35, align 8, !tbaa !81
  %340 = trunc i64 %339 to i32
  %341 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %338, i32 noundef %340)
  %342 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %341, ptr noundef @.str.94)
  %343 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %344 = load i64, ptr %35, align 8, !tbaa !81
  %345 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %343, i64 noundef %344) #3
  %346 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %345, i32 0, i32 1
  %347 = load i32, ptr %346, align 8, !tbaa !90
  %348 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %342, i32 noundef %347)
  %349 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %348, ptr noundef @.str.95)
  %350 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %351 = load i64, ptr %35, align 8, !tbaa !81
  %352 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %350, i64 noundef %351) #3
  %353 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %352, i32 0, i32 2
  %354 = load i32, ptr %353, align 4, !tbaa !91
  %355 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %349, i32 noundef %354)
  %356 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %355, ptr noundef @.str.3)
  br label %357

357:                                              ; preds = %332, %320, %313
  %358 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %359 = load i64, ptr %35, align 8, !tbaa !81
  %360 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %358, i64 noundef %359) #3
  %361 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %360, i32 0, i32 1
  %362 = load i32, ptr %361, align 8, !tbaa !90
  %363 = icmp eq i32 %362, 16383
  br i1 %363, label %364, label %374

364:                                              ; preds = %357
  %365 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %366 = load i64, ptr %35, align 8, !tbaa !81
  %367 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %365, i64 noundef %366) #3
  %368 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %367, i32 0, i32 2
  %369 = load i32, ptr %368, align 4, !tbaa !91
  %370 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %371 = load i64, ptr %35, align 8, !tbaa !81
  %372 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %370, i64 noundef %371) #3
  %373 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %372, i32 0, i32 1
  store i32 %369, ptr %373, align 8, !tbaa !90
  br label %374

374:                                              ; preds = %364, %357
  %375 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %376 = load i64, ptr %35, align 8, !tbaa !81
  %377 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %375, i64 noundef %376) #3
  %378 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %377, i32 0, i32 3
  %379 = load i8, ptr %378, align 8, !tbaa !82, !range !78, !noundef !79
  %380 = trunc i8 %379 to i1
  br i1 %380, label %381, label %406

381:                                              ; preds = %374
  %382 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %383 = load i64, ptr %35, align 8, !tbaa !81
  %384 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %382, i64 noundef %383) #3
  %385 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %384, i32 0, i32 1
  %386 = load i32, ptr %385, align 8, !tbaa !90
  %387 = call noundef zeroext i1 @_ZN7glslang16IsMultipleOfPow2IjEEbT_i(i32 noundef %386, i32 noundef 8)
  br i1 %387, label %406, label %388

388:                                              ; preds = %381
  %389 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %389, ptr noundef @.str.96, i32 noundef 14)
  %390 = load ptr, ptr %5, align 8, !tbaa !5
  %391 = getelementptr inbounds %class.TInfoSink, ptr %390, i32 0, i32 0
  call void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36) %391, i32 noundef 2)
  %392 = load ptr, ptr %5, align 8, !tbaa !5
  %393 = getelementptr inbounds %class.TInfoSink, ptr %392, i32 0, i32 0
  %394 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %393, ptr noundef @.str.93)
  %395 = load i64, ptr %35, align 8, !tbaa !81
  %396 = trunc i64 %395 to i32
  %397 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %394, i32 noundef %396)
  %398 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %397, ptr noundef @.str.94)
  %399 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %400 = load i64, ptr %35, align 8, !tbaa !81
  %401 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %399, i64 noundef %400) #3
  %402 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %401, i32 0, i32 1
  %403 = load i32, ptr %402, align 8, !tbaa !90
  %404 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %398, i32 noundef %403)
  %405 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %404, ptr noundef @.str.3)
  br label %472

406:                                              ; preds = %381, %374
  %407 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %408 = load i64, ptr %35, align 8, !tbaa !81
  %409 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %408) #3
  %410 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %409, i32 0, i32 4
  %411 = load i8, ptr %410, align 1, !tbaa !88, !range !78, !noundef !79
  %412 = trunc i8 %411 to i1
  br i1 %412, label %413, label %438

413:                                              ; preds = %406
  %414 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %415 = load i64, ptr %35, align 8, !tbaa !81
  %416 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %414, i64 noundef %415) #3
  %417 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %416, i32 0, i32 1
  %418 = load i32, ptr %417, align 8, !tbaa !90
  %419 = call noundef zeroext i1 @_ZN7glslang16IsMultipleOfPow2IjEEbT_i(i32 noundef %418, i32 noundef 4)
  br i1 %419, label %438, label %420

420:                                              ; preds = %413
  %421 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %421, ptr noundef @.str.97, i32 noundef 14)
  %422 = load ptr, ptr %5, align 8, !tbaa !5
  %423 = getelementptr inbounds %class.TInfoSink, ptr %422, i32 0, i32 0
  call void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36) %423, i32 noundef 2)
  %424 = load ptr, ptr %5, align 8, !tbaa !5
  %425 = getelementptr inbounds %class.TInfoSink, ptr %424, i32 0, i32 0
  %426 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %425, ptr noundef @.str.93)
  %427 = load i64, ptr %35, align 8, !tbaa !81
  %428 = trunc i64 %427 to i32
  %429 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %426, i32 noundef %428)
  %430 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %429, ptr noundef @.str.94)
  %431 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %432 = load i64, ptr %35, align 8, !tbaa !81
  %433 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %431, i64 noundef %432) #3
  %434 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %433, i32 0, i32 1
  %435 = load i32, ptr %434, align 8, !tbaa !90
  %436 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %430, i32 noundef %435)
  %437 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %436, ptr noundef @.str.3)
  br label %471

438:                                              ; preds = %413, %406
  %439 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %440 = load i64, ptr %35, align 8, !tbaa !81
  %441 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %439, i64 noundef %440) #3
  %442 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %441, i32 0, i32 5
  %443 = load i8, ptr %442, align 2, !tbaa !89, !range !78, !noundef !79
  %444 = trunc i8 %443 to i1
  br i1 %444, label %445, label %470

445:                                              ; preds = %438
  %446 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %447 = load i64, ptr %35, align 8, !tbaa !81
  %448 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %446, i64 noundef %447) #3
  %449 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %448, i32 0, i32 1
  %450 = load i32, ptr %449, align 8, !tbaa !90
  %451 = call noundef zeroext i1 @_ZN7glslang16IsMultipleOfPow2IjEEbT_i(i32 noundef %450, i32 noundef 2)
  br i1 %451, label %470, label %452

452:                                              ; preds = %445
  %453 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %453, ptr noundef @.str.98, i32 noundef 14)
  %454 = load ptr, ptr %5, align 8, !tbaa !5
  %455 = getelementptr inbounds %class.TInfoSink, ptr %454, i32 0, i32 0
  call void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36) %455, i32 noundef 2)
  %456 = load ptr, ptr %5, align 8, !tbaa !5
  %457 = getelementptr inbounds %class.TInfoSink, ptr %456, i32 0, i32 0
  %458 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %457, ptr noundef @.str.93)
  %459 = load i64, ptr %35, align 8, !tbaa !81
  %460 = trunc i64 %459 to i32
  %461 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %458, i32 noundef %460)
  %462 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %461, ptr noundef @.str.94)
  %463 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %464 = load i64, ptr %35, align 8, !tbaa !81
  %465 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %463, i64 noundef %464) #3
  %466 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %465, i32 0, i32 1
  %467 = load i32, ptr %466, align 8, !tbaa !90
  %468 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %462, i32 noundef %467)
  %469 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %468, ptr noundef @.str.3)
  br label %470

470:                                              ; preds = %452, %445, %438
  br label %471

471:                                              ; preds = %470, %420
  br label %472

472:                                              ; preds = %471, %388
  %473 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %474 = load i64, ptr %35, align 8, !tbaa !81
  %475 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %473, i64 noundef %474) #3
  %476 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %475, i32 0, i32 1
  %477 = load i32, ptr %476, align 8, !tbaa !90
  %478 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 9
  %479 = call noundef ptr @_ZNK7glslang14MustBeAssignedI16TBuiltInResourceEptEv(ptr noundef nonnull align 4 dereferenceable(385) %478)
  %480 = getelementptr inbounds %struct.TBuiltInResource, ptr %479, i32 0, i32 79
  %481 = load i32, ptr %480, align 4, !tbaa !92
  %482 = mul nsw i32 4, %481
  %483 = icmp ugt i32 %477, %482
  br i1 %483, label %484, label %509

484:                                              ; preds = %472
  %485 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %485, ptr noundef @.str.99, i32 noundef 14)
  %486 = load ptr, ptr %5, align 8, !tbaa !5
  %487 = getelementptr inbounds %class.TInfoSink, ptr %486, i32 0, i32 0
  call void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36) %487, i32 noundef 2)
  %488 = load ptr, ptr %5, align 8, !tbaa !5
  %489 = getelementptr inbounds %class.TInfoSink, ptr %488, i32 0, i32 0
  %490 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %489, ptr noundef @.str.93)
  %491 = load i64, ptr %35, align 8, !tbaa !81
  %492 = trunc i64 %491 to i32
  %493 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %490, i32 noundef %492)
  %494 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %493, ptr noundef @.str.100)
  %495 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 51
  %496 = load i64, ptr %35, align 8, !tbaa !81
  %497 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %495, i64 noundef %496) #3
  %498 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %497, i32 0, i32 1
  %499 = load i32, ptr %498, align 8, !tbaa !90
  %500 = udiv i32 %499, 4
  %501 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %494, i32 noundef %500)
  %502 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %501, ptr noundef @.str.101)
  %503 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 9
  %504 = call noundef ptr @_ZNK7glslang14MustBeAssignedI16TBuiltInResourceEptEv(ptr noundef nonnull align 4 dereferenceable(385) %503)
  %505 = getelementptr inbounds %struct.TBuiltInResource, ptr %504, i32 0, i32 79
  %506 = load i32, ptr %505, align 4, !tbaa !92
  %507 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEi(ptr noundef nonnull align 8 dereferenceable(36) %502, i32 noundef %506)
  %508 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %507, ptr noundef @.str.3)
  br label %509

509:                                              ; preds = %484, %472
  br label %510

510:                                              ; preds = %509
  %511 = load i64, ptr %35, align 8, !tbaa !81
  %512 = add i64 %511, 1
  store i64 %512, ptr %35, align 8, !tbaa !81
  br label %269, !llvm.loop !93

513:                                              ; preds = %274
  %514 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 0
  %515 = load i32, ptr %514, align 8, !tbaa !95
  switch i32 %515, label %798 [
    i32 0, label %800
    i32 1, label %516
    i32 2, label %523
    i32 3, label %546
    i32 4, label %565
    i32 5, label %572
    i32 6, label %574
    i32 7, label %574
    i32 8, label %574
    i32 9, label %574
    i32 10, label %574
    i32 11, label %574
    i32 13, label %581
    i32 12, label %790
  ]

516:                                              ; preds = %513
  %517 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 35
  %518 = load i32, ptr %517, align 4, !tbaa !96
  %519 = icmp eq i32 %518, -1
  br i1 %519, label %520, label %522

520:                                              ; preds = %516
  %521 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %521, ptr noundef @.str.102, i32 noundef 14)
  br label %522

522:                                              ; preds = %520, %516
  br label %800

523:                                              ; preds = %513
  %524 = call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %68)
  %525 = icmp eq i32 %524, 1
  br i1 %525, label %526, label %545

526:                                              ; preds = %523
  %527 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 36
  %528 = load i32, ptr %527, align 8, !tbaa !97
  %529 = icmp eq i32 %528, 0
  br i1 %529, label %530, label %532

530:                                              ; preds = %526
  %531 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %531, ptr noundef @.str.103, i32 noundef 14)
  br label %532

532:                                              ; preds = %530, %526
  %533 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 41
  %534 = load i32, ptr %533, align 4, !tbaa !98
  %535 = icmp eq i32 %534, 0
  br i1 %535, label %536, label %538

536:                                              ; preds = %532
  %537 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 41
  store i32 1, ptr %537, align 4, !tbaa !98
  br label %538

538:                                              ; preds = %536, %532
  %539 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 42
  %540 = load i32, ptr %539, align 8, !tbaa !99
  %541 = icmp eq i32 %540, 0
  br i1 %541, label %542, label %544

542:                                              ; preds = %538
  %543 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 42
  store i32 2, ptr %543, align 8, !tbaa !99
  br label %544

544:                                              ; preds = %542, %538
  br label %545

545:                                              ; preds = %544, %523
  br label %800

546:                                              ; preds = %513
  %547 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 36
  %548 = load i32, ptr %547, align 8, !tbaa !97
  %549 = icmp eq i32 %548, 0
  br i1 %549, label %550, label %552

550:                                              ; preds = %546
  %551 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %551, ptr noundef @.str.103, i32 noundef 14)
  br label %552

552:                                              ; preds = %550, %546
  %553 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 37
  %554 = load i32, ptr %553, align 4, !tbaa !100
  %555 = icmp eq i32 %554, 0
  br i1 %555, label %556, label %558

556:                                              ; preds = %552
  %557 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %557, ptr noundef @.str.104, i32 noundef 14)
  br label %558

558:                                              ; preds = %556, %552
  %559 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 35
  %560 = load i32, ptr %559, align 4, !tbaa !96
  %561 = icmp eq i32 %560, -1
  br i1 %561, label %562, label %564

562:                                              ; preds = %558
  %563 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %563, ptr noundef @.str.105, i32 noundef 14)
  br label %564

564:                                              ; preds = %562, %558
  br label %800

565:                                              ; preds = %513
  %566 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate20getPostDepthCoverageEv(ptr noundef nonnull align 8 dereferenceable(1784) %68)
  br i1 %566, label %567, label %571

567:                                              ; preds = %565
  %568 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate21getEarlyFragmentTestsEv(ptr noundef nonnull align 8 dereferenceable(1784) %68)
  br i1 %568, label %571, label %569

569:                                              ; preds = %567
  %570 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %570, ptr noundef @.str.106, i32 noundef 14)
  br label %571

571:                                              ; preds = %569, %567, %565
  br label %800

572:                                              ; preds = %513
  %573 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate16sharedBlockCheckER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %573)
  br label %800

574:                                              ; preds = %513, %513, %513, %513, %513, %513
  %575 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 55
  %576 = load i32, ptr %575, align 4, !tbaa !101
  %577 = icmp sgt i32 %576, 1
  br i1 %577, label %578, label %580

578:                                              ; preds = %574
  %579 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %579, ptr noundef @.str.107, i32 noundef 14)
  br label %580

580:                                              ; preds = %578, %574
  br label %800

581:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 40, ptr %36) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %36, ptr noundef @.str.108, ptr noundef nonnull align 8 dereferenceable(8) %37)
  store i1 false, ptr %39, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #3
  store i1 false, ptr %41, align 1
  %582 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %36)
          to label %583 unwind label %599

583:                                              ; preds = %581
  br i1 %582, label %584, label %589

584:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 40, ptr %38) #3
  store i1 true, ptr %39, align 1
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %585 unwind label %603

585:                                              ; preds = %584
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef @.str.109, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %586 unwind label %603

586:                                              ; preds = %585
  store i1 true, ptr %41, align 1
  %587 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %38)
          to label %588 unwind label %607

588:                                              ; preds = %586
  br label %589

589:                                              ; preds = %588, %583
  %590 = phi i1 [ false, %583 ], [ %587, %588 ]
  %591 = load i1, ptr %41, align 1
  br i1 %591, label %592, label %593

592:                                              ; preds = %589
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %38) #3
  br label %593

593:                                              ; preds = %592, %589
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #3
  %594 = load i1, ptr %39, align 1
  br i1 %594, label %595, label %596

595:                                              ; preds = %593
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #3
  br label %596

596:                                              ; preds = %595, %593
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #3
  br i1 %590, label %597, label %619

597:                                              ; preds = %596
  %598 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %598, ptr noundef @.str.110, i32 noundef 14)
  br label %619

599:                                              ; preds = %581
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %9, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %10, align 4
  br label %618

603:                                              ; preds = %585, %584
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %9, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %10, align 4
  br label %614

607:                                              ; preds = %586
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %9, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %10, align 4
  %611 = load i1, ptr %41, align 1
  br i1 %611, label %612, label %613

612:                                              ; preds = %607
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %38) #3
  br label %613

613:                                              ; preds = %612, %607
  br label %614

614:                                              ; preds = %613, %603
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #3
  %615 = load i1, ptr %39, align 1
  br i1 %615, label %616, label %617

616:                                              ; preds = %614
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #3
  br label %617

617:                                              ; preds = %616, %614
  br label %618

618:                                              ; preds = %617, %599
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #3
  br label %812

619:                                              ; preds = %597, %596
  call void @llvm.lifetime.start.p0(i64 40, ptr %42) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %42, ptr noundef @.str.83, ptr noundef nonnull align 8 dereferenceable(8) %43)
  store i1 false, ptr %45, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #3
  store i1 false, ptr %47, align 1
  %620 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %42)
          to label %621 unwind label %637

621:                                              ; preds = %619
  br i1 %620, label %622, label %627

622:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 40, ptr %44) #3
  store i1 true, ptr %45, align 1
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %623 unwind label %641

623:                                              ; preds = %622
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %44, ptr noundef @.str.111, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %624 unwind label %641

624:                                              ; preds = %623
  store i1 true, ptr %47, align 1
  %625 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %44)
          to label %626 unwind label %645

626:                                              ; preds = %624
  br label %627

627:                                              ; preds = %626, %621
  %628 = phi i1 [ false, %621 ], [ %625, %626 ]
  %629 = load i1, ptr %47, align 1
  br i1 %629, label %630, label %631

630:                                              ; preds = %627
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #3
  br label %631

631:                                              ; preds = %630, %627
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  %632 = load i1, ptr %45, align 1
  br i1 %632, label %633, label %634

633:                                              ; preds = %631
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #3
  br label %634

634:                                              ; preds = %633, %631
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %42) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #3
  br i1 %628, label %635, label %657

635:                                              ; preds = %634
  %636 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %636, ptr noundef @.str.112, i32 noundef 14)
  br label %657

637:                                              ; preds = %619
  %638 = landingpad { ptr, i32 }
          cleanup
  %639 = extractvalue { ptr, i32 } %638, 0
  store ptr %639, ptr %9, align 8
  %640 = extractvalue { ptr, i32 } %638, 1
  store i32 %640, ptr %10, align 4
  br label %656

641:                                              ; preds = %623, %622
  %642 = landingpad { ptr, i32 }
          cleanup
  %643 = extractvalue { ptr, i32 } %642, 0
  store ptr %643, ptr %9, align 8
  %644 = extractvalue { ptr, i32 } %642, 1
  store i32 %644, ptr %10, align 4
  br label %652

645:                                              ; preds = %624
  %646 = landingpad { ptr, i32 }
          cleanup
  %647 = extractvalue { ptr, i32 } %646, 0
  store ptr %647, ptr %9, align 8
  %648 = extractvalue { ptr, i32 } %646, 1
  store i32 %648, ptr %10, align 4
  %649 = load i1, ptr %47, align 1
  br i1 %649, label %650, label %651

650:                                              ; preds = %645
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #3
  br label %651

651:                                              ; preds = %650, %645
  br label %652

652:                                              ; preds = %651, %641
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  %653 = load i1, ptr %45, align 1
  br i1 %653, label %654, label %655

654:                                              ; preds = %652
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #3
  br label %655

655:                                              ; preds = %654, %652
  br label %656

656:                                              ; preds = %655, %637
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %42) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #3
  br label %812

657:                                              ; preds = %635, %634
  call void @llvm.lifetime.start.p0(i64 40, ptr %48) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %48, ptr noundef @.str.86, ptr noundef nonnull align 8 dereferenceable(8) %49)
  store i1 false, ptr %51, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #3
  store i1 false, ptr %53, align 1
  %658 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %48)
          to label %659 unwind label %675

659:                                              ; preds = %657
  br i1 %658, label %660, label %665

660:                                              ; preds = %659
  call void @llvm.lifetime.start.p0(i64 40, ptr %50) #3
  store i1 true, ptr %51, align 1
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %661 unwind label %679

661:                                              ; preds = %660
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %50, ptr noundef @.str.113, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %662 unwind label %679

662:                                              ; preds = %661
  store i1 true, ptr %53, align 1
  %663 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %50)
          to label %664 unwind label %683

664:                                              ; preds = %662
  br label %665

665:                                              ; preds = %664, %659
  %666 = phi i1 [ false, %659 ], [ %663, %664 ]
  %667 = load i1, ptr %53, align 1
  br i1 %667, label %668, label %669

668:                                              ; preds = %665
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #3
  br label %669

669:                                              ; preds = %668, %665
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #3
  %670 = load i1, ptr %51, align 1
  br i1 %670, label %671, label %672

671:                                              ; preds = %669
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #3
  br label %672

672:                                              ; preds = %671, %669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %48) #3
  br i1 %666, label %673, label %695

673:                                              ; preds = %672
  %674 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %674, ptr noundef @.str.114, i32 noundef 14)
  br label %695

675:                                              ; preds = %657
  %676 = landingpad { ptr, i32 }
          cleanup
  %677 = extractvalue { ptr, i32 } %676, 0
  store ptr %677, ptr %9, align 8
  %678 = extractvalue { ptr, i32 } %676, 1
  store i32 %678, ptr %10, align 4
  br label %694

679:                                              ; preds = %661, %660
  %680 = landingpad { ptr, i32 }
          cleanup
  %681 = extractvalue { ptr, i32 } %680, 0
  store ptr %681, ptr %9, align 8
  %682 = extractvalue { ptr, i32 } %680, 1
  store i32 %682, ptr %10, align 4
  br label %690

683:                                              ; preds = %662
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %9, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %10, align 4
  %687 = load i1, ptr %53, align 1
  br i1 %687, label %688, label %689

688:                                              ; preds = %683
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #3
  br label %689

689:                                              ; preds = %688, %683
  br label %690

690:                                              ; preds = %689, %679
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #3
  %691 = load i1, ptr %51, align 1
  br i1 %691, label %692, label %693

692:                                              ; preds = %690
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #3
  br label %693

693:                                              ; preds = %692, %690
  br label %694

694:                                              ; preds = %693, %675
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %48) #3
  br label %812

695:                                              ; preds = %673, %672
  call void @llvm.lifetime.start.p0(i64 40, ptr %54) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %54, ptr noundef @.str.115, ptr noundef nonnull align 8 dereferenceable(8) %55)
  store i1 false, ptr %57, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #3
  store i1 false, ptr %59, align 1
  %696 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %54)
          to label %697 unwind label %713

697:                                              ; preds = %695
  br i1 %696, label %698, label %703

698:                                              ; preds = %697
  call void @llvm.lifetime.start.p0(i64 40, ptr %56) #3
  store i1 true, ptr %57, align 1
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %699 unwind label %717

699:                                              ; preds = %698
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %56, ptr noundef @.str.116, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %700 unwind label %717

700:                                              ; preds = %699
  store i1 true, ptr %59, align 1
  %701 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %56)
          to label %702 unwind label %721

702:                                              ; preds = %700
  br label %703

703:                                              ; preds = %702, %697
  %704 = phi i1 [ false, %697 ], [ %701, %702 ]
  %705 = load i1, ptr %59, align 1
  br i1 %705, label %706, label %707

706:                                              ; preds = %703
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %56) #3
  br label %707

707:                                              ; preds = %706, %703
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  %708 = load i1, ptr %57, align 1
  br i1 %708, label %709, label %710

709:                                              ; preds = %707
  call void @llvm.lifetime.end.p0(i64 40, ptr %56) #3
  br label %710

710:                                              ; preds = %709, %707
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %54) #3
  br i1 %704, label %711, label %733

711:                                              ; preds = %710
  %712 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %712, ptr noundef @.str.117, i32 noundef 14)
  br label %733

713:                                              ; preds = %695
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %9, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %10, align 4
  br label %732

717:                                              ; preds = %699, %698
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %9, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %10, align 4
  br label %728

721:                                              ; preds = %700
  %722 = landingpad { ptr, i32 }
          cleanup
  %723 = extractvalue { ptr, i32 } %722, 0
  store ptr %723, ptr %9, align 8
  %724 = extractvalue { ptr, i32 } %722, 1
  store i32 %724, ptr %10, align 4
  %725 = load i1, ptr %59, align 1
  br i1 %725, label %726, label %727

726:                                              ; preds = %721
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %56) #3
  br label %727

727:                                              ; preds = %726, %721
  br label %728

728:                                              ; preds = %727, %717
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  %729 = load i1, ptr %57, align 1
  br i1 %729, label %730, label %731

730:                                              ; preds = %728
  call void @llvm.lifetime.end.p0(i64 40, ptr %56) #3
  br label %731

731:                                              ; preds = %730, %728
  br label %732

732:                                              ; preds = %731, %713
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %54) #3
  br label %812

733:                                              ; preds = %711, %710
  call void @llvm.lifetime.start.p0(i64 40, ptr %60) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %60, ptr noundef @.str.118, ptr noundef nonnull align 8 dereferenceable(8) %61)
  store i1 false, ptr %63, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #3
  store i1 false, ptr %65, align 1
  %734 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %60)
          to label %735 unwind label %751

735:                                              ; preds = %733
  br i1 %734, label %736, label %741

736:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 40, ptr %62) #3
  store i1 true, ptr %63, align 1
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %737 unwind label %755

737:                                              ; preds = %736
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %62, ptr noundef @.str.119, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %738 unwind label %755

738:                                              ; preds = %737
  store i1 true, ptr %65, align 1
  %739 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(40) %62)
          to label %740 unwind label %759

740:                                              ; preds = %738
  br label %741

741:                                              ; preds = %740, %735
  %742 = phi i1 [ false, %735 ], [ %739, %740 ]
  %743 = load i1, ptr %65, align 1
  br i1 %743, label %744, label %745

744:                                              ; preds = %741
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #3
  br label %745

745:                                              ; preds = %744, %741
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  %746 = load i1, ptr %63, align 1
  br i1 %746, label %747, label %748

747:                                              ; preds = %745
  call void @llvm.lifetime.end.p0(i64 40, ptr %62) #3
  br label %748

748:                                              ; preds = %747, %745
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %60) #3
  br i1 %742, label %749, label %771

749:                                              ; preds = %748
  %750 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %750, ptr noundef @.str.120, i32 noundef 14)
  br label %771

751:                                              ; preds = %733
  %752 = landingpad { ptr, i32 }
          cleanup
  %753 = extractvalue { ptr, i32 } %752, 0
  store ptr %753, ptr %9, align 8
  %754 = extractvalue { ptr, i32 } %752, 1
  store i32 %754, ptr %10, align 4
  br label %770

755:                                              ; preds = %737, %736
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %9, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %10, align 4
  br label %766

759:                                              ; preds = %738
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %9, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %10, align 4
  %763 = load i1, ptr %65, align 1
  br i1 %763, label %764, label %765

764:                                              ; preds = %759
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #3
  br label %765

765:                                              ; preds = %764, %759
  br label %766

766:                                              ; preds = %765, %755
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  %767 = load i1, ptr %63, align 1
  br i1 %767, label %768, label %769

768:                                              ; preds = %766
  call void @llvm.lifetime.end.p0(i64 40, ptr %62) #3
  br label %769

769:                                              ; preds = %768, %766
  br label %770

770:                                              ; preds = %769, %751
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr %60) #3
  br label %812

771:                                              ; preds = %749, %748
  %772 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 37
  %773 = load i32, ptr %772, align 4, !tbaa !100
  %774 = icmp eq i32 %773, 0
  br i1 %774, label %775, label %777

775:                                              ; preds = %771
  %776 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %776, ptr noundef @.str.104, i32 noundef 14)
  br label %777

777:                                              ; preds = %775, %771
  %778 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 35
  %779 = load i32, ptr %778, align 4, !tbaa !96
  %780 = icmp eq i32 %779, -1
  br i1 %780, label %781, label %783

781:                                              ; preds = %777
  %782 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %782, ptr noundef @.str.105, i32 noundef 14)
  br label %783

783:                                              ; preds = %781, %777
  %784 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 57
  %785 = load i32, ptr %784, align 4, !tbaa !102
  %786 = icmp eq i32 %785, -1
  br i1 %786, label %787, label %789

787:                                              ; preds = %783
  %788 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %788, ptr noundef @.str.121, i32 noundef 14)
  br label %789

789:                                              ; preds = %787, %783
  br label %790

790:                                              ; preds = %789, %513
  %791 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 58
  %792 = load i32, ptr %791, align 8, !tbaa !103
  %793 = icmp sgt i32 %792, 1
  br i1 %793, label %794, label %796

794:                                              ; preds = %790
  %795 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %795, ptr noundef @.str.122, i32 noundef 14)
  br label %796

796:                                              ; preds = %794, %790
  %797 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate16sharedBlockCheckER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %797)
  br label %800

798:                                              ; preds = %513
  %799 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %68, ptr noundef nonnull align 8 dereferenceable(80) %799, ptr noundef @.str.123, i32 noundef 14)
  br label %800

800:                                              ; preds = %798, %796, %580, %572, %571, %564, %545, %522, %513
  call void @llvm.lifetime.start.p0(i64 56, ptr %66) #3
  call void @_ZZN7glslang13TIntermediate10finalCheckER9TInfoSinkbEN19TFinalLinkTraverserC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %66)
  %801 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %68, i32 0, i32 7
  %802 = load ptr, ptr %801, align 8, !tbaa !104
  %803 = load ptr, ptr %802, align 8, !tbaa !105
  %804 = getelementptr inbounds ptr, ptr %803, i64 2
  %805 = load ptr, ptr %804, align 8
  invoke void %805(ptr noundef nonnull align 8 dereferenceable(32) %802, ptr noundef %66)
          to label %806 unwind label %808

806:                                              ; preds = %800
  call void @_ZN7glslang16TIntermTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %66) #3
  call void @llvm.lifetime.end.p0(i64 56, ptr %66) #3
  br label %807

807:                                              ; preds = %806, %71
  ret void

808:                                              ; preds = %800
  %809 = landingpad { ptr, i32 }
          cleanup
  %810 = extractvalue { ptr, i32 } %809, 0
  store ptr %810, ptr %9, align 8
  %811 = extractvalue { ptr, i32 } %809, 1
  store i32 %811, ptr %10, align 4
  call void @_ZN7glslang16TIntermTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %66) #3
  call void @llvm.lifetime.end.p0(i64 56, ptr %66) #3
  br label %812

812:                                              ; preds = %808, %770, %732, %694, %656, %618, %267, %229, %175, %137
  %813 = load ptr, ptr %9, align 8
  %814 = load i32, ptr %10, align 4
  %815 = insertvalue { ptr, i32 } poison, ptr %813, 0
  %816 = insertvalue { ptr, i32 } %815, i32 %814, 1
  resume { ptr, i32 } %816
}

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang11RoundToPow2IjEEvRT_i(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) #0

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang16IsMultipleOfPow2IjEEbT_i(i32 noundef, i32 noundef) #2

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !23, i64 572}
!12 = !{!"_ZTSN7glslang13TIntermediateE", !13, i64 0, !14, i64 8, !14, i64 40, !17, i64 72, !22, i64 96, !23, i64 100, !24, i64 104, !6, i64 128, !25, i64 136, !33, i64 184, !23, i64 572, !23, i64 576, !23, i64 580, !10, i64 584, !10, i64 585, !10, i64 586, !10, i64 587, !10, i64 588, !10, i64 589, !10, i64 590, !10, i64 591, !7, i64 592, !7, i64 604, !7, i64 608, !36, i64 624, !14, i64 632, !14, i64 664, !23, i64 696, !23, i64 700, !23, i64 704, !6, i64 712, !6, i64 720, !37, i64 728, !10, i64 732, !23, i64 736, !23, i64 740, !38, i64 744, !38, i64 748, !10, i64 752, !10, i64 753, !10, i64 754, !39, i64 756, !40, i64 760, !41, i64 764, !10, i64 768, !10, i64 769, !10, i64 770, !42, i64 772, !10, i64 776, !23, i64 780, !10, i64 784, !43, i64 792, !10, i64 816, !10, i64 817, !10, i64 818, !23, i64 820, !47, i64 824, !23, i64 828, !23, i64 832, !10, i64 836, !48, i64 840, !49, i64 864, !50, i64 1152, !10, i64 1176, !10, i64 1177, !10, i64 1178, !10, i64 1179, !10, i64 1180, !10, i64 1181, !10, i64 1182, !54, i64 1184, !59, i64 1232, !10, i64 1236, !10, i64 1237, !10, i64 1238, !10, i64 1239, !6, i64 1240, !6, i64 1248, !60, i64 1256, !23, i64 1312, !65, i64 1316, !66, i64 1320, !68, i64 1376, !70, i64 1432, !7, i64 1456, !7, i64 1552, !54, i64 1600, !14, i64 1648, !14, i64 1680, !74, i64 1712, !77, i64 1760}
!13 = !{!"_ZTS11EShLanguage", !7, i64 0}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !15, i64 0, !16, i64 8, !7, i64 16}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!"_ZTSNSt7__cxx114listIN7glslang5TCallESaIS2_EEE", !18, i64 0}
!18 = !{!"_ZTSNSt7__cxx1110_List_baseIN7glslang5TCallESaIS2_EEE", !19, i64 0}
!19 = !{!"_ZTSNSt7__cxx1110_List_baseIN7glslang5TCallESaIS2_EE10_List_implE", !20, i64 0}
!20 = !{!"_ZTSNSt8__detail17_List_node_headerE", !21, i64 0, !16, i64 16}
!21 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!22 = !{!"_ZTS8EProfile", !7, i64 0}
!23 = !{!"int", !7, i64 0}
!24 = !{!"_ZTSN7glslang10SpvVersionE", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12, !10, i64 16}
!25 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE", !26, i64 0}
!26 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE", !27, i64 0}
!27 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !28, i64 0, !30, i64 8}
!28 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !29, i64 0}
!29 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!30 = !{!"_ZTSSt15_Rb_tree_header", !31, i64 0, !16, i64 32}
!31 = !{!"_ZTSSt18_Rb_tree_node_base", !32, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!32 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!33 = !{!"_ZTSN7glslang14MustBeAssignedI16TBuiltInResourceEE", !34, i64 0, !10, i64 384}
!34 = !{!"_ZTS16TBuiltInResource", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12, !23, i64 16, !23, i64 20, !23, i64 24, !23, i64 28, !23, i64 32, !23, i64 36, !23, i64 40, !23, i64 44, !23, i64 48, !23, i64 52, !23, i64 56, !23, i64 60, !23, i64 64, !23, i64 68, !23, i64 72, !23, i64 76, !23, i64 80, !23, i64 84, !23, i64 88, !23, i64 92, !23, i64 96, !23, i64 100, !23, i64 104, !23, i64 108, !23, i64 112, !23, i64 116, !23, i64 120, !23, i64 124, !23, i64 128, !23, i64 132, !23, i64 136, !23, i64 140, !23, i64 144, !23, i64 148, !23, i64 152, !23, i64 156, !23, i64 160, !23, i64 164, !23, i64 168, !23, i64 172, !23, i64 176, !23, i64 180, !23, i64 184, !23, i64 188, !23, i64 192, !23, i64 196, !23, i64 200, !23, i64 204, !23, i64 208, !23, i64 212, !23, i64 216, !23, i64 220, !23, i64 224, !23, i64 228, !23, i64 232, !23, i64 236, !23, i64 240, !23, i64 244, !23, i64 248, !23, i64 252, !23, i64 256, !23, i64 260, !23, i64 264, !23, i64 268, !23, i64 272, !23, i64 276, !23, i64 280, !23, i64 284, !23, i64 288, !23, i64 292, !23, i64 296, !23, i64 300, !23, i64 304, !23, i64 308, !23, i64 312, !23, i64 316, !23, i64 320, !23, i64 324, !23, i64 328, !23, i64 332, !23, i64 336, !23, i64 340, !23, i64 344, !23, i64 348, !23, i64 352, !23, i64 356, !23, i64 360, !23, i64 364, !23, i64 368, !35, i64 372}
!35 = !{!"_ZTS7TLimits", !10, i64 0, !10, i64 1, !10, i64 2, !10, i64 3, !10, i64 4, !10, i64 5, !10, i64 6, !10, i64 7, !10, i64 8}
!36 = !{!"long long", !7, i64 0}
!37 = !{!"_ZTSN7glslang9EShSourceE", !7, i64 0}
!38 = !{!"_ZTSN7glslang15TLayoutGeometryE", !7, i64 0}
!39 = !{!"_ZTSN7glslang14TVertexSpacingE", !7, i64 0}
!40 = !{!"_ZTSN7glslang12TVertexOrderE", !7, i64 0}
!41 = !{!"_ZTSN7glslang18TInterlockOrderingE", !7, i64 0}
!42 = !{!"_ZTSN7glslang12TLayoutDepthE", !7, i64 0}
!43 = !{!"_ZTSSt6vectorIN7glslang10TXfbBufferESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseIN7glslang10TXfbBufferESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN7glslang10TXfbBufferESaIS1_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseIN7glslang10TXfbBufferESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!47 = !{!"_ZTSN7glslang21ComputeDerivativeModeE", !7, i64 0}
!48 = !{!"_ZTSSt5arrayIjLm6EE", !7, i64 0}
!49 = !{!"_ZTSSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EE", !7, i64 0}
!50 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !51, i64 0}
!51 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!54 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4lessIS7_ESaIS7_EE", !55, i64 0}
!55 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEES7_St9_IdentityIS7_ESt4lessIS7_ESaIS7_EE", !56, i64 0}
!56 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEES7_St9_IdentityIS7_ESt4lessIS7_ESaIS7_EE13_Rb_tree_implISB_Lb1EEE", !57, i64 0, !30, i64 8}
!57 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEE", !58, i64 0}
!58 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEE"}
!59 = !{!"_ZTS30EShTextureSamplerTransformMode", !7, i64 0}
!60 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !61, i64 0}
!61 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !16, i64 8, !62, i64 16, !16, i64 24, !63, i64 32, !6, i64 48}
!62 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!63 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !64, i64 0, !16, i64 8}
!64 = !{!"float", !7, i64 0}
!65 = !{!"_ZTSN7glslang16TNumericFeaturesE", !23, i64 0}
!66 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7glslang18TBlockStorageClassESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE", !67, i64 0}
!67 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N7glslang18TBlockStorageClassEESaISA_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSC_18_Mod_range_hashingENSC_20_Default_ranged_hashENSC_20_Prime_rehash_policyENSC_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !16, i64 8, !62, i64 16, !16, i64 24, !63, i64 32, !6, i64 48}
!68 = !{!"_ZTSSt13unordered_setIiSt4hashIiESt8equal_toIiESaIiEE", !69, i64 0}
!69 = !{!"_ZTSSt10_HashtableIiiSaIiENSt8__detail9_IdentityESt8equal_toIiESt4hashIiENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !16, i64 8, !62, i64 16, !16, i64 24, !63, i64 32, !6, i64 48}
!70 = !{!"_ZTSSt6vectorIN7glslang12TOffsetRangeESaIS1_EE", !71, i64 0}
!71 = !{!"_ZTSSt12_Vector_baseIN7glslang12TOffsetRangeESaIS1_EE", !72, i64 0}
!72 = !{!"_ZTSNSt12_Vector_baseIN7glslang12TOffsetRangeESaIS1_EE12_Vector_implE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseIN7glslang12TOffsetRangeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!74 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !75, i64 0}
!75 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !76, i64 0}
!76 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !28, i64 0, !30, i64 8}
!77 = !{!"_ZTSN7glslang10TProcessesE", !50, i64 0}
!78 = !{i8 0, i8 2}
!79 = !{}
!80 = !{!12, !23, i64 736}
!81 = !{!16, !16, i64 0}
!82 = !{!83, !10, i64 32}
!83 = !{!"_ZTSN7glslang10TXfbBufferE", !84, i64 0, !23, i64 24, !23, i64 28, !10, i64 32, !10, i64 33, !10, i64 34}
!84 = !{!"_ZTSSt6vectorIN7glslang6TRangeESaIS1_EE", !85, i64 0}
!85 = !{!"_ZTSSt12_Vector_baseIN7glslang6TRangeESaIS1_EE", !86, i64 0}
!86 = !{!"_ZTSNSt12_Vector_baseIN7glslang6TRangeESaIS1_EE12_Vector_implE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseIN7glslang6TRangeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!88 = !{!83, !10, i64 33}
!89 = !{!83, !10, i64 34}
!90 = !{!83, !23, i64 24}
!91 = !{!83, !23, i64 28}
!92 = !{!34, !23, i64 316}
!93 = distinct !{!93, !94}
!94 = !{!"llvm.loop.mustprogress"}
!95 = !{!12, !13, i64 0}
!96 = !{!12, !23, i64 740}
!97 = !{!12, !38, i64 744}
!98 = !{!12, !39, i64 756}
!99 = !{!12, !40, i64 760}
!100 = !{!12, !38, i64 748}
!101 = !{!12, !23, i64 820}
!102 = !{!12, !23, i64 828}
!103 = !{!12, !23, i64 832}
!104 = !{!12, !6, i64 128}
!105 = !{!106, !106, i64 0}
!106 = !{!"vtable pointer", !8, i64 0}


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

%"class.std::__cxx11::basic_string.91" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider", i64, %union.anon.93 }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider" = type { %"class.glslang::pool_allocator.92", ptr }
%"class.glslang::pool_allocator.92" = type { ptr }
%union.anon.93 = type { i64, [8 x i8] }
%class.TFinalLinkTraverser = type { %"class.glslang::TIntermTraverser" }
%"class.glslang::TIntermTraverser" = type { ptr, i8, i8, i8, i8, i32, i32, %"class.glslang::TVector" }
%"class.glslang::TVector" = type { %"class.std::vector.85" }
%"class.std::vector.85" = type { %"struct.std::_Vector_base.86" }
%"struct.std::_Vector_base.86" = type { %"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl" }
%"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl" = type { %"class.glslang::pool_allocator", %"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl_data" }
%"class.glslang::pool_allocator" = type { ptr }
%"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [15 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36), i32 noundef) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang13TIntermediate4warnER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, i32 noundef) local_unnamed_addr #0 align 2

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TIntermediate10finalCheckER9TInfoSinkb(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, i1 noundef zeroext %2) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %5 = alloca %"class.glslang::pool_allocator.92", align 8
  %6 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %7 = alloca %"class.glslang::pool_allocator.92", align 8
  %8 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %9 = alloca %"class.glslang::pool_allocator.92", align 8
  %10 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %11 = alloca %"class.glslang::pool_allocator.92", align 8
  %12 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %13 = alloca %"class.glslang::pool_allocator.92", align 8
  %14 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %15 = alloca %"class.glslang::pool_allocator.92", align 8
  %16 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %17 = alloca %"class.glslang::pool_allocator.92", align 8
  %18 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %19 = alloca %"class.glslang::pool_allocator.92", align 8
  %20 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %21 = alloca %"class.glslang::pool_allocator.92", align 8
  %22 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %23 = alloca %"class.glslang::pool_allocator.92", align 8
  %24 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %25 = alloca %"class.glslang::pool_allocator.92", align 8
  %26 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %27 = alloca %"class.glslang::pool_allocator.92", align 8
  %28 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %29 = alloca %"class.glslang::pool_allocator.92", align 8
  %30 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %31 = alloca %"class.glslang::pool_allocator.92", align 8
  %32 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %33 = alloca %"class.glslang::pool_allocator.92", align 8
  %34 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %35 = alloca %"class.glslang::pool_allocator.92", align 8
  %36 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %37 = alloca %"class.glslang::pool_allocator.92", align 8
  %38 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %39 = alloca %"class.glslang::pool_allocator.92", align 8
  %40 = alloca %class.TFinalLinkTraverser, align 8
  %41 = tail call noundef ptr @_ZNK7glslang13TIntermediate11getTreeRootEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %42 = icmp eq ptr %41, null
  br i1 %42, label %423, label %43

43:                                               ; preds = %3
  %44 = getelementptr inbounds i8, ptr %0, i64 572
  %45 = load i32, ptr %44, align 4, !tbaa !5
  %46 = icmp slt i32 %45, 1
  br i1 %46, label %47, label %52

47:                                               ; preds = %43
  %48 = tail call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %49 = icmp eq i32 %48, 1
  br i1 %49, label %50, label %51

50:                                               ; preds = %47
  tail call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.81, i32 noundef 14)
  br label %52

51:                                               ; preds = %47
  tail call void @_ZN7glslang13TIntermediate4warnER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.82, i32 noundef 14)
  br label %52

52:                                               ; preds = %50, %51, %43
  tail call void @_ZN7glslang13TIntermediate20checkCallGraphCyclesER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1)
  tail call void @_ZN7glslang13TIntermediate20checkCallGraphBodiesER9TInfoSinkb(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, i1 noundef zeroext %2)
  tail call void @_ZN7glslang13TIntermediate18inOutLocationCheckER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1)
  %53 = tail call noundef i32 @_ZNK7glslang13TIntermediate19getNumPushConstantsEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %54 = icmp sgt i32 %53, 1
  br i1 %54, label %55, label %56

55:                                               ; preds = %52
  tail call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.9, i32 noundef 14)
  br label %56

56:                                               ; preds = %55, %52
  %57 = getelementptr inbounds i8, ptr %0, i64 736
  %58 = load i32, ptr %57, align 8, !tbaa !76
  %59 = icmp eq i32 %58, -1
  br i1 %59, label %60, label %61

60:                                               ; preds = %56
  store i32 1, ptr %57, align 8, !tbaa !76
  br label %61

61:                                               ; preds = %60, %56
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %4, ptr noundef nonnull @.str.83, ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #3
  %62 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %4)
          to label %63 unwind label %70

63:                                               ; preds = %61
  br i1 %62, label %64, label %.thread205

64:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #3
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %65 unwind label %72

65:                                               ; preds = %64
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %6, ptr noundef nonnull @.str.84, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %66 unwind label %72

66:                                               ; preds = %65
  %67 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %6)
          to label %68 unwind label %74

.thread205:                                       ; preds = %63
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %4) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #3
  br label %78

68:                                               ; preds = %66
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %4) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #3
  br i1 %67, label %69, label %78

69:                                               ; preds = %68
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.85, i32 noundef 14)
  br label %78

70:                                               ; preds = %61
  %71 = landingpad { ptr, i32 }
          cleanup
  br label %77

72:                                               ; preds = %65, %64
  %73 = landingpad { ptr, i32 }
          cleanup
  br label %76

74:                                               ; preds = %66
  %75 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #3
  br label %76

76:                                               ; preds = %74, %72
  %.pn = phi { ptr, i32 } [ %75, %74 ], [ %73, %72 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #3
  br label %77

77:                                               ; preds = %76, %70
  %.pn.pn = phi { ptr, i32 } [ %.pn, %76 ], [ %71, %70 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %4) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #3
  br label %426

78:                                               ; preds = %.thread205, %69, %68
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #3
  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.86, ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #3
  %79 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %80 unwind label %87

80:                                               ; preds = %78
  br i1 %79, label %81, label %.thread207

81:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #3
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %82 unwind label %89

82:                                               ; preds = %81
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %10, ptr noundef nonnull @.str.84, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %83 unwind label %89

83:                                               ; preds = %82
  %84 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %10)
          to label %85 unwind label %91

.thread207:                                       ; preds = %80
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #3
  br label %95

85:                                               ; preds = %83
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #3
  br i1 %84, label %86, label %95

86:                                               ; preds = %85
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.87, i32 noundef 14)
  br label %95

87:                                               ; preds = %78
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %94

89:                                               ; preds = %82, %81
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %93

91:                                               ; preds = %83
  %92 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #3
  br label %93

93:                                               ; preds = %91, %89
  %.pn161 = phi { ptr, i32 } [ %92, %91 ], [ %90, %89 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #3
  br label %94

94:                                               ; preds = %93, %87
  %.pn161.pn = phi { ptr, i32 } [ %.pn161, %93 ], [ %88, %87 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #3
  br label %426

95:                                               ; preds = %.thread207, %86, %85
  %96 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate14userOutputUsedEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #3
  br i1 %96, label %97, label %.thread213

97:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef nonnull @.str.88, ptr noundef nonnull align 8 dereferenceable(8) %13)
  %98 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %12)
          to label %99 unwind label %106

99:                                               ; preds = %97
  br i1 %98, label %.thread214, label %100

.thread214:                                       ; preds = %99
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #3
  br label %105

100:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #3
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %101 unwind label %108

101:                                              ; preds = %100
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %14, ptr noundef nonnull @.str.89, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %102 unwind label %108

102:                                              ; preds = %101
  %103 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %14)
          to label %104 unwind label %110

.thread213:                                       ; preds = %95
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #3
  br label %114

104:                                              ; preds = %102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #3
  br i1 %103, label %105, label %114

105:                                              ; preds = %.thread214, %104
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.90, i32 noundef 14)
  br label %114

106:                                              ; preds = %97
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %113

108:                                              ; preds = %101, %100
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %112

110:                                              ; preds = %102
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #3
  br label %112

112:                                              ; preds = %110, %108
  %.pn164 = phi { ptr, i32 } [ %111, %110 ], [ %109, %108 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #3
  br label %113

113:                                              ; preds = %106, %112
  %.pn164.pn = phi { ptr, i32 } [ %.pn164, %112 ], [ %107, %106 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #3
  br label %426

114:                                              ; preds = %.thread213, %105, %104
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull @.str.88, ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #3
  %115 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %16)
          to label %116 unwind label %123

116:                                              ; preds = %114
  br i1 %115, label %117, label %.thread216

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #3
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %118 unwind label %125

118:                                              ; preds = %117
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr noundef nonnull @.str.89, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %119 unwind label %125

119:                                              ; preds = %118
  %120 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %18)
          to label %121 unwind label %127

.thread216:                                       ; preds = %116
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #3
  br label %131

121:                                              ; preds = %119
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #3
  br i1 %120, label %122, label %131

122:                                              ; preds = %121
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.91, i32 noundef 14)
  br label %131

123:                                              ; preds = %114
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %130

125:                                              ; preds = %118, %117
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %129

127:                                              ; preds = %119
  %128 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #3
  br label %129

129:                                              ; preds = %127, %125
  %.pn167 = phi { ptr, i32 } [ %128, %127 ], [ %126, %125 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #3
  br label %130

130:                                              ; preds = %129, %123
  %.pn167.pn = phi { ptr, i32 } [ %.pn167, %129 ], [ %124, %123 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #3
  br label %426

131:                                              ; preds = %.thread216, %122, %121
  %132 = getelementptr inbounds i8, ptr %0, i64 792
  %133 = call noundef i64 @_ZNKSt6vectorIN7glslang10TXfbBufferESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %132) #3
  %.not228 = icmp eq i64 %133, 0
  br i1 %.not228, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %131
  %134 = getelementptr inbounds i8, ptr %0, i64 184
  br label %136

._crit_edge:                                      ; preds = %256, %131
  %135 = load i32, ptr %0, align 8, !tbaa !77
  switch i32 %135, label %415 [
    i32 0, label %416
    i32 1, label %260
    i32 2, label %265
    i32 3, label %283
    i32 4, label %298
    i32 5, label %303
    i32 6, label %304
    i32 7, label %304
    i32 8, label %304
    i32 9, label %304
    i32 10, label %304
    i32 11, label %304
    i32 13, label %309
    i32 12, label %409
  ]

136:                                              ; preds = %.lr.ph, %256
  %.0128227 = phi i64 [ 0, %.lr.ph ], [ %257, %256 ]
  %137 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %138 = getelementptr inbounds i8, ptr %137, i64 32
  %139 = load i8, ptr %138, align 8, !tbaa !78, !range !84, !noundef !85
  %140 = trunc nuw i8 %139 to i1
  %141 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  br i1 %140, label %.sink.split, label %142

142:                                              ; preds = %136
  %143 = getelementptr inbounds i8, ptr %141, i64 33
  %144 = load i8, ptr %143, align 1, !tbaa !86, !range !84, !noundef !85
  %145 = trunc nuw i8 %144 to i1
  %146 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  br i1 %145, label %.sink.split, label %147

147:                                              ; preds = %142
  %148 = getelementptr inbounds i8, ptr %146, i64 34
  %149 = load i8, ptr %148, align 2, !tbaa !87, !range !84, !noundef !85
  %150 = trunc nuw i8 %149 to i1
  br i1 %150, label %151, label %154

151:                                              ; preds = %147
  %152 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  br label %.sink.split

.sink.split:                                      ; preds = %142, %136, %151
  %.sink230 = phi ptr [ %152, %151 ], [ %141, %136 ], [ %146, %142 ]
  %.sink229 = phi i32 [ 2, %151 ], [ 8, %136 ], [ 4, %142 ]
  %153 = getelementptr inbounds i8, ptr %.sink230, i64 28
  call void @_ZN7glslang11RoundToPow2IjEEvRT_i(ptr noundef nonnull align 4 dereferenceable(4) %153, i32 noundef %.sink229)
  br label %154

154:                                              ; preds = %.sink.split, %147
  %155 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %156 = getelementptr inbounds i8, ptr %155, i64 24
  %157 = load i32, ptr %156, align 8, !tbaa !88
  %.not = icmp eq i32 %157, 16383
  br i1 %.not, label %181, label %158

158:                                              ; preds = %154
  %159 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %160 = getelementptr inbounds i8, ptr %159, i64 28
  %161 = load i32, ptr %160, align 4, !tbaa !89
  %162 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %163 = getelementptr inbounds i8, ptr %162, i64 24
  %164 = load i32, ptr %163, align 8, !tbaa !88
  %165 = icmp ugt i32 %161, %164
  br i1 %165, label %166, label %181

166:                                              ; preds = %158
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.92, i32 noundef 14)
  call void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36) %1, i32 noundef 2)
  %167 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.93)
  %168 = trunc i64 %.0128227 to i32
  %169 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %167, i32 noundef %168)
  %170 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %169, ptr noundef nonnull @.str.94)
  %171 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %172 = getelementptr inbounds i8, ptr %171, i64 24
  %173 = load i32, ptr %172, align 8, !tbaa !88
  %174 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %170, i32 noundef %173)
  %175 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %174, ptr noundef nonnull @.str.95)
  %176 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %177 = getelementptr inbounds i8, ptr %176, i64 28
  %178 = load i32, ptr %177, align 4, !tbaa !89
  %179 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %175, i32 noundef %178)
  %180 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %179, ptr noundef nonnull @.str.3)
  br label %181

181:                                              ; preds = %166, %158, %154
  %182 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %183 = getelementptr inbounds i8, ptr %182, i64 24
  %184 = load i32, ptr %183, align 8, !tbaa !88
  %185 = icmp eq i32 %184, 16383
  br i1 %185, label %186, label %192

186:                                              ; preds = %181
  %187 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %188 = getelementptr inbounds i8, ptr %187, i64 28
  %189 = load i32, ptr %188, align 4, !tbaa !89
  %190 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %191 = getelementptr inbounds i8, ptr %190, i64 24
  store i32 %189, ptr %191, align 8, !tbaa !88
  br label %192

192:                                              ; preds = %186, %181
  %193 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %194 = getelementptr inbounds i8, ptr %193, i64 32
  %195 = load i8, ptr %194, align 8, !tbaa !78, !range !84, !noundef !85
  %196 = trunc nuw i8 %195 to i1
  br i1 %196, label %197, label %202

197:                                              ; preds = %192
  %198 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %199 = getelementptr inbounds i8, ptr %198, i64 24
  %200 = load i32, ptr %199, align 8, !tbaa !88
  %201 = call noundef zeroext i1 @_ZN7glslang16IsMultipleOfPow2IjEEbT_i(i32 noundef %200, i32 noundef 8)
  br i1 %201, label %202, label %.sink.split231

202:                                              ; preds = %197, %192
  %203 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %204 = getelementptr inbounds i8, ptr %203, i64 33
  %205 = load i8, ptr %204, align 1, !tbaa !86, !range !84, !noundef !85
  %206 = trunc nuw i8 %205 to i1
  br i1 %206, label %207, label %212

207:                                              ; preds = %202
  %208 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %209 = getelementptr inbounds i8, ptr %208, i64 24
  %210 = load i32, ptr %209, align 8, !tbaa !88
  %211 = call noundef zeroext i1 @_ZN7glslang16IsMultipleOfPow2IjEEbT_i(i32 noundef %210, i32 noundef 4)
  br i1 %211, label %212, label %.sink.split231

212:                                              ; preds = %207, %202
  %213 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %214 = getelementptr inbounds i8, ptr %213, i64 34
  %215 = load i8, ptr %214, align 2, !tbaa !87, !range !84, !noundef !85
  %216 = trunc nuw i8 %215 to i1
  br i1 %216, label %217, label %231

217:                                              ; preds = %212
  %218 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %219 = getelementptr inbounds i8, ptr %218, i64 24
  %220 = load i32, ptr %219, align 8, !tbaa !88
  %221 = call noundef zeroext i1 @_ZN7glslang16IsMultipleOfPow2IjEEbT_i(i32 noundef %220, i32 noundef 2)
  br i1 %221, label %231, label %.sink.split231

.sink.split231:                                   ; preds = %217, %207, %197
  %.str.97.sink = phi ptr [ @.str.96, %197 ], [ @.str.97, %207 ], [ @.str.98, %217 ]
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull %.str.97.sink, i32 noundef 14)
  call void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36) %1, i32 noundef 2)
  %222 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.93)
  %223 = trunc i64 %.0128227 to i32
  %224 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %222, i32 noundef %223)
  %225 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %224, ptr noundef nonnull @.str.94)
  %226 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %227 = getelementptr inbounds i8, ptr %226, i64 24
  %228 = load i32, ptr %227, align 8, !tbaa !88
  %229 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %225, i32 noundef %228)
  %230 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %229, ptr noundef nonnull @.str.3)
  br label %231

231:                                              ; preds = %.sink.split231, %217, %212
  %232 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %233 = getelementptr inbounds i8, ptr %232, i64 24
  %234 = load i32, ptr %233, align 8, !tbaa !88
  %235 = call noundef ptr @_ZNK7glslang14MustBeAssignedI16TBuiltInResourceEptEv(ptr noundef nonnull align 4 dereferenceable(385) %134)
  %236 = getelementptr inbounds i8, ptr %235, i64 316
  %237 = load i32, ptr %236, align 4, !tbaa !90
  %238 = shl nsw i32 %237, 2
  %239 = icmp ugt i32 %234, %238
  br i1 %239, label %240, label %256

240:                                              ; preds = %231
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.99, i32 noundef 14)
  call void @_ZN7glslang13TInfoSinkBase6prefixENS_11TPrefixTypeE(ptr noundef nonnull align 8 dereferenceable(36) %1, i32 noundef 2)
  %241 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.93)
  %242 = trunc i64 %.0128227 to i32
  %243 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %241, i32 noundef %242)
  %244 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %243, ptr noundef nonnull @.str.100)
  %245 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %.0128227) #3
  %246 = getelementptr inbounds i8, ptr %245, i64 24
  %247 = load i32, ptr %246, align 8, !tbaa !88
  %248 = lshr i32 %247, 2
  %249 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEj(ptr noundef nonnull align 8 dereferenceable(36) %244, i32 noundef %248)
  %250 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %249, ptr noundef nonnull @.str.101)
  %251 = call noundef ptr @_ZNK7glslang14MustBeAssignedI16TBuiltInResourceEptEv(ptr noundef nonnull align 4 dereferenceable(385) %134)
  %252 = getelementptr inbounds i8, ptr %251, i64 316
  %253 = load i32, ptr %252, align 4, !tbaa !90
  %254 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEi(ptr noundef nonnull align 8 dereferenceable(36) %250, i32 noundef %253)
  %255 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %254, ptr noundef nonnull @.str.3)
  br label %256

256:                                              ; preds = %231, %240
  %257 = add nuw i64 %.0128227, 1
  %258 = call noundef i64 @_ZNKSt6vectorIN7glslang10TXfbBufferESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %132) #3
  %259 = icmp ult i64 %257, %258
  br i1 %259, label %136, label %._crit_edge, !llvm.loop !91

260:                                              ; preds = %._crit_edge
  %261 = getelementptr inbounds i8, ptr %0, i64 740
  %262 = load i32, ptr %261, align 4, !tbaa !93
  %263 = icmp eq i32 %262, -1
  br i1 %263, label %264, label %416

264:                                              ; preds = %260
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.102, i32 noundef 14)
  br label %416

265:                                              ; preds = %._crit_edge
  %266 = call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %267 = icmp eq i32 %266, 1
  br i1 %267, label %268, label %416

268:                                              ; preds = %265
  %269 = getelementptr inbounds i8, ptr %0, i64 744
  %270 = load i32, ptr %269, align 8, !tbaa !94
  %271 = icmp eq i32 %270, 0
  br i1 %271, label %272, label %273

272:                                              ; preds = %268
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.103, i32 noundef 14)
  br label %273

273:                                              ; preds = %272, %268
  %274 = getelementptr inbounds i8, ptr %0, i64 756
  %275 = load i32, ptr %274, align 4, !tbaa !95
  %276 = icmp eq i32 %275, 0
  br i1 %276, label %277, label %278

277:                                              ; preds = %273
  store i32 1, ptr %274, align 4, !tbaa !95
  br label %278

278:                                              ; preds = %277, %273
  %279 = getelementptr inbounds i8, ptr %0, i64 760
  %280 = load i32, ptr %279, align 8, !tbaa !96
  %281 = icmp eq i32 %280, 0
  br i1 %281, label %282, label %416

282:                                              ; preds = %278
  store i32 2, ptr %279, align 8, !tbaa !96
  br label %416

283:                                              ; preds = %._crit_edge
  %284 = getelementptr inbounds i8, ptr %0, i64 744
  %285 = load i32, ptr %284, align 8, !tbaa !94
  %286 = icmp eq i32 %285, 0
  br i1 %286, label %287, label %288

287:                                              ; preds = %283
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.103, i32 noundef 14)
  br label %288

288:                                              ; preds = %287, %283
  %289 = getelementptr inbounds i8, ptr %0, i64 748
  %290 = load i32, ptr %289, align 4, !tbaa !97
  %291 = icmp eq i32 %290, 0
  br i1 %291, label %292, label %293

292:                                              ; preds = %288
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.104, i32 noundef 14)
  br label %293

293:                                              ; preds = %292, %288
  %294 = getelementptr inbounds i8, ptr %0, i64 740
  %295 = load i32, ptr %294, align 4, !tbaa !93
  %296 = icmp eq i32 %295, -1
  br i1 %296, label %297, label %416

297:                                              ; preds = %293
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.105, i32 noundef 14)
  br label %416

298:                                              ; preds = %._crit_edge
  %299 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate20getPostDepthCoverageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  br i1 %299, label %300, label %416

300:                                              ; preds = %298
  %301 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate21getEarlyFragmentTestsEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  br i1 %301, label %416, label %302

302:                                              ; preds = %300
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.106, i32 noundef 14)
  br label %416

303:                                              ; preds = %._crit_edge
  call void @_ZN7glslang13TIntermediate16sharedBlockCheckER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1)
  br label %416

304:                                              ; preds = %._crit_edge, %._crit_edge, %._crit_edge, %._crit_edge, %._crit_edge, %._crit_edge
  %305 = getelementptr inbounds i8, ptr %0, i64 820
  %306 = load i32, ptr %305, align 4, !tbaa !98
  %307 = icmp sgt i32 %306, 1
  br i1 %307, label %308, label %416

308:                                              ; preds = %304
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.107, i32 noundef 14)
  br label %416

309:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #3
  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) %20, ptr noundef nonnull @.str.108, ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #3
  %310 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %20)
          to label %311 unwind label %318

311:                                              ; preds = %309
  br i1 %310, label %312, label %.thread218

312:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #3
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %313 unwind label %320

313:                                              ; preds = %312
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %22, ptr noundef nonnull @.str.109, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %314 unwind label %320

314:                                              ; preds = %313
  %315 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %316 unwind label %322

.thread218:                                       ; preds = %311
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #3
  br label %326

316:                                              ; preds = %314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #3
  br i1 %315, label %317, label %326

317:                                              ; preds = %316
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.110, i32 noundef 14)
  br label %326

318:                                              ; preds = %309
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %325

320:                                              ; preds = %313, %312
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %324

322:                                              ; preds = %314
  %323 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #3
  br label %324

324:                                              ; preds = %322, %320
  %.pn170 = phi { ptr, i32 } [ %323, %322 ], [ %321, %320 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #3
  br label %325

325:                                              ; preds = %324, %318
  %.pn170.pn = phi { ptr, i32 } [ %.pn170, %324 ], [ %319, %318 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #3
  br label %426

326:                                              ; preds = %.thread218, %317, %316
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %24) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %24, ptr noundef nonnull @.str.83, ptr noundef nonnull align 8 dereferenceable(8) %25)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #3
  %327 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %24)
          to label %328 unwind label %335

328:                                              ; preds = %326
  br i1 %327, label %329, label %.thread220

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %26) #3
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %330 unwind label %337

330:                                              ; preds = %329
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %26, ptr noundef nonnull @.str.111, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %331 unwind label %337

331:                                              ; preds = %330
  %332 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %26)
          to label %333 unwind label %339

.thread220:                                       ; preds = %328
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #3
  br label %343

333:                                              ; preds = %331
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #3
  br i1 %332, label %334, label %343

334:                                              ; preds = %333
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.112, i32 noundef 14)
  br label %343

335:                                              ; preds = %326
  %336 = landingpad { ptr, i32 }
          cleanup
  br label %342

337:                                              ; preds = %330, %329
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %341

339:                                              ; preds = %331
  %340 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #3
  br label %341

341:                                              ; preds = %339, %337
  %.pn173 = phi { ptr, i32 } [ %340, %339 ], [ %338, %337 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #3
  br label %342

342:                                              ; preds = %341, %335
  %.pn173.pn = phi { ptr, i32 } [ %.pn173, %341 ], [ %336, %335 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #3
  br label %426

343:                                              ; preds = %.thread220, %334, %333
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %28) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %28, ptr noundef nonnull @.str.86, ptr noundef nonnull align 8 dereferenceable(8) %29)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #3
  %344 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %28)
          to label %345 unwind label %352

345:                                              ; preds = %343
  br i1 %344, label %346, label %.thread222

346:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %30) #3
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %347 unwind label %354

347:                                              ; preds = %346
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %30, ptr noundef nonnull @.str.113, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %348 unwind label %354

348:                                              ; preds = %347
  %349 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %30)
          to label %350 unwind label %356

.thread222:                                       ; preds = %345
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #3
  br label %360

350:                                              ; preds = %348
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #3
  br i1 %349, label %351, label %360

351:                                              ; preds = %350
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.114, i32 noundef 14)
  br label %360

352:                                              ; preds = %343
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %359

354:                                              ; preds = %347, %346
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %358

356:                                              ; preds = %348
  %357 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %30) #3
  br label %358

358:                                              ; preds = %356, %354
  %.pn176 = phi { ptr, i32 } [ %357, %356 ], [ %355, %354 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #3
  br label %359

359:                                              ; preds = %358, %352
  %.pn176.pn = phi { ptr, i32 } [ %.pn176, %358 ], [ %353, %352 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #3
  br label %426

360:                                              ; preds = %.thread222, %351, %350
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %32) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %32, ptr noundef nonnull @.str.115, ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #3
  %361 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %32)
          to label %362 unwind label %369

362:                                              ; preds = %360
  br i1 %361, label %363, label %.thread224

363:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %34) #3
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %364 unwind label %371

364:                                              ; preds = %363
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %34, ptr noundef nonnull @.str.116, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %365 unwind label %371

365:                                              ; preds = %364
  %366 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %34)
          to label %367 unwind label %373

.thread224:                                       ; preds = %362
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #3
  br label %377

367:                                              ; preds = %365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %34) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #3
  br i1 %366, label %368, label %377

368:                                              ; preds = %367
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.117, i32 noundef 14)
  br label %377

369:                                              ; preds = %360
  %370 = landingpad { ptr, i32 }
          cleanup
  br label %376

371:                                              ; preds = %364, %363
  %372 = landingpad { ptr, i32 }
          cleanup
  br label %375

373:                                              ; preds = %365
  %374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %34) #3
  br label %375

375:                                              ; preds = %373, %371
  %.pn179 = phi { ptr, i32 } [ %374, %373 ], [ %372, %371 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %34) #3
  br label %376

376:                                              ; preds = %375, %369
  %.pn179.pn = phi { ptr, i32 } [ %.pn179, %375 ], [ %370, %369 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #3
  br label %426

377:                                              ; preds = %.thread224, %368, %367
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %36) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #3
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %36, ptr noundef nonnull @.str.118, ptr noundef nonnull align 8 dereferenceable(8) %37)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #3
  %378 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %36)
          to label %379 unwind label %386

379:                                              ; preds = %377
  br i1 %378, label %380, label %.thread226

380:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %38) #3
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %381 unwind label %388

381:                                              ; preds = %380
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef nonnull @.str.119, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %382 unwind label %388

382:                                              ; preds = %381
  %383 = invoke noundef zeroext i1 @_ZNK7glslang13TIntermediate12inIoAccessedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(40) %38)
          to label %384 unwind label %390

.thread226:                                       ; preds = %379
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #3
  br label %394

384:                                              ; preds = %382
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %38) #3
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #3
  br i1 %383, label %385, label %394

385:                                              ; preds = %384
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.120, i32 noundef 14)
  br label %394

386:                                              ; preds = %377
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %393

388:                                              ; preds = %381, %380
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %392

390:                                              ; preds = %382
  %391 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %38) #3
  br label %392

392:                                              ; preds = %390, %388
  %.pn182 = phi { ptr, i32 } [ %391, %390 ], [ %389, %388 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %38) #3
  br label %393

393:                                              ; preds = %392, %386
  %.pn182.pn = phi { ptr, i32 } [ %.pn182, %392 ], [ %387, %386 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #3
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #3
  br label %426

394:                                              ; preds = %.thread226, %385, %384
  %395 = getelementptr inbounds i8, ptr %0, i64 748
  %396 = load i32, ptr %395, align 4, !tbaa !97
  %397 = icmp eq i32 %396, 0
  br i1 %397, label %398, label %399

398:                                              ; preds = %394
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.104, i32 noundef 14)
  br label %399

399:                                              ; preds = %398, %394
  %400 = getelementptr inbounds i8, ptr %0, i64 740
  %401 = load i32, ptr %400, align 4, !tbaa !93
  %402 = icmp eq i32 %401, -1
  br i1 %402, label %403, label %404

403:                                              ; preds = %399
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.105, i32 noundef 14)
  br label %404

404:                                              ; preds = %403, %399
  %405 = getelementptr inbounds i8, ptr %0, i64 828
  %406 = load i32, ptr %405, align 4, !tbaa !99
  %407 = icmp eq i32 %406, -1
  br i1 %407, label %408, label %409

408:                                              ; preds = %404
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.121, i32 noundef 14)
  br label %409

409:                                              ; preds = %404, %408, %._crit_edge
  %410 = getelementptr inbounds i8, ptr %0, i64 832
  %411 = load i32, ptr %410, align 8, !tbaa !100
  %412 = icmp sgt i32 %411, 1
  br i1 %412, label %413, label %414

413:                                              ; preds = %409
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.122, i32 noundef 14)
  br label %414

414:                                              ; preds = %413, %409
  call void @_ZN7glslang13TIntermediate16sharedBlockCheckER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1)
  br label %416

415:                                              ; preds = %._crit_edge
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.123, i32 noundef 14)
  br label %416

416:                                              ; preds = %304, %308, %298, %300, %302, %293, %297, %265, %282, %278, %260, %264, %415, %414, %303, %._crit_edge
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %40) #3
  call void @_ZZN7glslang13TIntermediate10finalCheckER9TInfoSinkbEN19TFinalLinkTraverserC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %40)
  %417 = getelementptr inbounds i8, ptr %0, i64 128
  %418 = load ptr, ptr %417, align 8, !tbaa !101
  %419 = load ptr, ptr %418, align 8, !tbaa !102
  %420 = getelementptr inbounds i8, ptr %419, i64 16
  %421 = load ptr, ptr %420, align 8
  invoke void %421(ptr noundef nonnull align 8 dereferenceable(32) %418, ptr noundef nonnull %40)
          to label %422 unwind label %424

422:                                              ; preds = %416
  call void @_ZN7glslang16TIntermTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %40) #3
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %40) #3
  br label %423

423:                                              ; preds = %3, %422
  ret void

424:                                              ; preds = %416
  %425 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7glslang16TIntermTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %40) #3
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %40) #3
  br label %426

426:                                              ; preds = %113, %424, %393, %376, %359, %342, %325, %130, %94, %77
  %.pn185 = phi { ptr, i32 } [ %425, %424 ], [ %.pn182.pn, %393 ], [ %.pn179.pn, %376 ], [ %.pn176.pn, %359 ], [ %.pn173.pn, %342 ], [ %.pn170.pn, %325 ], [ %.pn167.pn, %130 ], [ %.pn164.pn, %113 ], [ %.pn161.pn, %94 ], [ %.pn.pn, %77 ]
  resume { ptr, i32 } %.pn185
}

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7glslang13TIntermediate19getNumPushConstantsEv(ptr noundef nonnull align 8 dereferenceable(1784)) local_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 #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang11RoundToPow2IjEEvRT_i(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) local_unnamed_addr #0

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang16IsMultipleOfPow2IjEEbT_i(i32 noundef, i32 noundef) local_unnamed_addr #2

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

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

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

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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, !20, i64 572}
!6 = !{!"_ZTSN7glslang13TIntermediateE", !7, i64 0, !10, i64 8, !10, i64 40, !14, i64 72, !19, i64 96, !20, i64 100, !21, i64 104, !12, i64 128, !23, i64 136, !31, i64 184, !20, i64 572, !20, i64 576, !20, i64 580, !22, i64 584, !22, i64 585, !22, i64 586, !22, i64 587, !22, i64 588, !22, i64 589, !22, i64 590, !22, i64 591, !8, i64 592, !8, i64 604, !8, i64 608, !34, i64 624, !10, i64 632, !10, i64 664, !20, i64 696, !20, i64 700, !20, i64 704, !12, i64 712, !12, i64 720, !35, i64 728, !22, i64 732, !20, i64 736, !20, i64 740, !36, i64 744, !36, i64 748, !22, i64 752, !22, i64 753, !22, i64 754, !37, i64 756, !38, i64 760, !39, i64 764, !22, i64 768, !22, i64 769, !22, i64 770, !40, i64 772, !22, i64 776, !20, i64 780, !22, i64 784, !41, i64 792, !22, i64 816, !22, i64 817, !22, i64 818, !20, i64 820, !45, i64 824, !20, i64 828, !20, i64 832, !22, i64 836, !46, i64 840, !47, i64 864, !48, i64 1152, !22, i64 1176, !22, i64 1177, !22, i64 1178, !22, i64 1179, !22, i64 1180, !22, i64 1181, !22, i64 1182, !52, i64 1184, !57, i64 1232, !22, i64 1236, !22, i64 1237, !22, i64 1238, !22, i64 1239, !12, i64 1240, !12, i64 1248, !58, i64 1256, !20, i64 1312, !63, i64 1316, !64, i64 1320, !66, i64 1376, !68, i64 1432, !8, i64 1456, !8, i64 1552, !52, i64 1600, !10, i64 1648, !10, i64 1680, !72, i64 1712, !75, i64 1760}
!7 = !{!"_ZTS11EShLanguage", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !11, i64 0, !13, i64 8, !8, i64 16}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!12 = !{!"any pointer", !8, i64 0}
!13 = !{!"long", !8, i64 0}
!14 = !{!"_ZTSNSt7__cxx114listIN7glslang5TCallESaIS2_EEE", !15, i64 0}
!15 = !{!"_ZTSNSt7__cxx1110_List_baseIN7glslang5TCallESaIS2_EEE", !16, i64 0}
!16 = !{!"_ZTSNSt7__cxx1110_List_baseIN7glslang5TCallESaIS2_EE10_List_implE", !17, i64 0}
!17 = !{!"_ZTSNSt8__detail17_List_node_headerE", !18, i64 0, !13, i64 16}
!18 = !{!"_ZTSNSt8__detail15_List_node_baseE", !12, i64 0, !12, i64 8}
!19 = !{!"_ZTS8EProfile", !8, i64 0}
!20 = !{!"int", !8, i64 0}
!21 = !{!"_ZTSN7glslang10SpvVersionE", !20, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !22, i64 16}
!22 = !{!"bool", !8, i64 0}
!23 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE", !24, i64 0}
!24 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE", !25, i64 0}
!25 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !26, i64 0, !28, i64 8}
!26 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !27, i64 0}
!27 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!28 = !{!"_ZTSSt15_Rb_tree_header", !29, i64 0, !13, i64 32}
!29 = !{!"_ZTSSt18_Rb_tree_node_base", !30, i64 0, !12, i64 8, !12, i64 16, !12, i64 24}
!30 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!31 = !{!"_ZTSN7glslang14MustBeAssignedI16TBuiltInResourceEE", !32, i64 0, !22, i64 384}
!32 = !{!"_ZTS16TBuiltInResource", !20, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !20, i64 16, !20, i64 20, !20, i64 24, !20, i64 28, !20, i64 32, !20, i64 36, !20, i64 40, !20, i64 44, !20, i64 48, !20, i64 52, !20, i64 56, !20, i64 60, !20, i64 64, !20, i64 68, !20, i64 72, !20, i64 76, !20, i64 80, !20, i64 84, !20, i64 88, !20, i64 92, !20, i64 96, !20, i64 100, !20, i64 104, !20, i64 108, !20, i64 112, !20, i64 116, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !20, i64 148, !20, i64 152, !20, i64 156, !20, i64 160, !20, i64 164, !20, i64 168, !20, i64 172, !20, i64 176, !20, i64 180, !20, i64 184, !20, i64 188, !20, i64 192, !20, i64 196, !20, i64 200, !20, i64 204, !20, i64 208, !20, i64 212, !20, i64 216, !20, i64 220, !20, i64 224, !20, i64 228, !20, i64 232, !20, i64 236, !20, i64 240, !20, i64 244, !20, i64 248, !20, i64 252, !20, i64 256, !20, i64 260, !20, i64 264, !20, i64 268, !20, i64 272, !20, i64 276, !20, i64 280, !20, i64 284, !20, i64 288, !20, i64 292, !20, i64 296, !20, i64 300, !20, i64 304, !20, i64 308, !20, i64 312, !20, i64 316, !20, i64 320, !20, i64 324, !20, i64 328, !20, i64 332, !20, i64 336, !20, i64 340, !20, i64 344, !20, i64 348, !20, i64 352, !20, i64 356, !20, i64 360, !20, i64 364, !20, i64 368, !33, i64 372}
!33 = !{!"_ZTS7TLimits", !22, i64 0, !22, i64 1, !22, i64 2, !22, i64 3, !22, i64 4, !22, i64 5, !22, i64 6, !22, i64 7, !22, i64 8}
!34 = !{!"long long", !8, i64 0}
!35 = !{!"_ZTSN7glslang9EShSourceE", !8, i64 0}
!36 = !{!"_ZTSN7glslang15TLayoutGeometryE", !8, i64 0}
!37 = !{!"_ZTSN7glslang14TVertexSpacingE", !8, i64 0}
!38 = !{!"_ZTSN7glslang12TVertexOrderE", !8, i64 0}
!39 = !{!"_ZTSN7glslang18TInterlockOrderingE", !8, i64 0}
!40 = !{!"_ZTSN7glslang12TLayoutDepthE", !8, i64 0}
!41 = !{!"_ZTSSt6vectorIN7glslang10TXfbBufferESaIS1_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIN7glslang10TXfbBufferESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN7glslang10TXfbBufferESaIS1_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN7glslang10TXfbBufferESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!45 = !{!"_ZTSN7glslang21ComputeDerivativeModeE", !8, i64 0}
!46 = !{!"_ZTSSt5arrayIjLm6EE", !8, i64 0}
!47 = !{!"_ZTSSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EE", !8, i64 0}
!48 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !49, i64 0}
!49 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!52 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4lessIS7_ESaIS7_EE", !53, i64 0}
!53 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEES7_St9_IdentityIS7_ESt4lessIS7_ESaIS7_EE", !54, i64 0}
!54 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEES7_St9_IdentityIS7_ESt4lessIS7_ESaIS7_EE13_Rb_tree_implISB_Lb1EEE", !55, i64 0, !28, i64 8}
!55 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEE", !56, i64 0}
!56 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEE"}
!57 = !{!"_ZTS30EShTextureSamplerTransformMode", !8, i64 0}
!58 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !59, i64 0}
!59 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !12, i64 0, !13, i64 8, !60, i64 16, !13, i64 24, !61, i64 32, !12, i64 48}
!60 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !12, i64 0}
!61 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !62, i64 0, !13, i64 8}
!62 = !{!"float", !8, i64 0}
!63 = !{!"_ZTSN7glslang16TNumericFeaturesE", !20, i64 0}
!64 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7glslang18TBlockStorageClassESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE", !65, i64 0}
!65 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N7glslang18TBlockStorageClassEESaISA_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSC_18_Mod_range_hashingENSC_20_Default_ranged_hashENSC_20_Prime_rehash_policyENSC_17_Hashtable_traitsILb1ELb0ELb1EEEE", !12, i64 0, !13, i64 8, !60, i64 16, !13, i64 24, !61, i64 32, !12, i64 48}
!66 = !{!"_ZTSSt13unordered_setIiSt4hashIiESt8equal_toIiESaIiEE", !67, i64 0}
!67 = !{!"_ZTSSt10_HashtableIiiSaIiENSt8__detail9_IdentityESt8equal_toIiESt4hashIiENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE", !12, i64 0, !13, i64 8, !60, i64 16, !13, i64 24, !61, i64 32, !12, i64 48}
!68 = !{!"_ZTSSt6vectorIN7glslang12TOffsetRangeESaIS1_EE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseIN7glslang12TOffsetRangeESaIS1_EE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseIN7glslang12TOffsetRangeESaIS1_EE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseIN7glslang12TOffsetRangeESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!72 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !73, i64 0}
!73 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !74, i64 0}
!74 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !26, i64 0, !28, i64 8}
!75 = !{!"_ZTSN7glslang10TProcessesE", !48, i64 0}
!76 = !{!6, !20, i64 736}
!77 = !{!6, !7, i64 0}
!78 = !{!79, !22, i64 32}
!79 = !{!"_ZTSN7glslang10TXfbBufferE", !80, i64 0, !20, i64 24, !20, i64 28, !22, i64 32, !22, i64 33, !22, i64 34}
!80 = !{!"_ZTSSt6vectorIN7glslang6TRangeESaIS1_EE", !81, i64 0}
!81 = !{!"_ZTSSt12_Vector_baseIN7glslang6TRangeESaIS1_EE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseIN7glslang6TRangeESaIS1_EE12_Vector_implE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseIN7glslang6TRangeESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!84 = !{i8 0, i8 2}
!85 = !{}
!86 = !{!79, !22, i64 33}
!87 = !{!79, !22, i64 34}
!88 = !{!79, !20, i64 24}
!89 = !{!79, !20, i64 28}
!90 = !{!32, !20, i64 316}
!91 = distinct !{!91, !92}
!92 = !{!"llvm.loop.mustprogress"}
!93 = !{!6, !20, i64 740}
!94 = !{!6, !36, i64 744}
!95 = !{!6, !37, i64 756}
!96 = !{!6, !38, i64 760}
!97 = !{!6, !36, i64 748}
!98 = !{!6, !20, i64 820}
!99 = !{!6, !20, i64 828}
!100 = !{!6, !20, i64 832}
!101 = !{!6, !12, i64 128}
!102 = !{!103, !103, i64 0}
!103 = !{!"vtable pointer", !9, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass