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

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

%"struct.glslang::TResolverUniformAdaptor" = type { i32, ptr, ptr, ptr, [14 x ptr] }
%"struct.glslang::TResolverInOutAdaptor" = type { i32, ptr, ptr, ptr }
%"struct.glslang::TSymbolValidater" = type { [14 x ptr], [14 x ptr], [14 x ptr], ptr, ptr, ptr, i32, i32 }
%"class.std::vector.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = type { %"struct.std::_Vector_base<glslang::TVarLivePair, std::allocator<glslang::TVarLivePair>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TVarLivePair, std::allocator<glslang::TVarLivePair>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TVarLivePair, std::allocator<glslang::TVarLivePair>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TVarLivePair, std::allocator<glslang::TVarLivePair>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::_Rb_tree_iterator.162" = type { ptr }
%class.anon.173 = type <{ ptr, i32, [4 x i8] }>
%"class.__gnu_cxx::__normal_iterator.165" = type { ptr }
%class.anon.175 = type { i8 }
%class.anon.177 = type <{ ptr, i32, [4 x i8] }>
%class.anon.179 = type { i8 }
%class.anon.181 = type <{ ptr, i32, [4 x i8] }>
%class.anon.183 = type <{ ptr, i32, [4 x i8] }>
%"struct.glslang::TVarLivePair" = type { %"struct.std::pair.163" }
%"struct.std::pair.163" = type { %"class.std::__cxx11::basic_string.105", %"struct.glslang::TVarEntryInfo" }
%"class.std::__cxx11::basic_string.105" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider", i64, %union.anon.106 }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider" = type { %"class.glslang::pool_allocator", ptr }
%"class.glslang::pool_allocator" = type { ptr }
%union.anon.106 = type { i64, [8 x i8] }
%"struct.glslang::TVarEntryInfo" = type { i64, ptr, i8, i32, i32, i32, i32, i32, i32 }
%class.anon.185 = type { i8 }
%class.anon.187 = type { i8 }
%class.anon.189 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.190" = type { ptr }
%class.anon.191 = type { ptr, i64 }
%"class.glslang::TVarSetTraverser" = type { %"class.glslang::TLiveTraverser.base", ptr, ptr, ptr }
%"class.glslang::TLiveTraverser.base" = type <{ %"class.glslang::TIntermTraverser", %"class.std::__cxx11::list.134", ptr, %"class.std::unordered_set.139", %"class.std::unordered_set.139", i8 }>
%"class.glslang::TIntermTraverser" = type { ptr, i8, i8, i8, i8, i32, i32, %"class.glslang::TVector.130" }
%"class.glslang::TVector.130" = type { %"class.std::vector.131" }
%"class.std::vector.131" = type { %"struct.std::_Vector_base.132" }
%"struct.std::_Vector_base.132" = 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.133", %"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl_data" }
%"class.glslang::pool_allocator.133" = type { ptr }
%"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::list.134" = type { %"class.std::__cxx11::_List_base.135" }
%"class.std::__cxx11::_List_base.135" = type { %"struct.std::__cxx11::_List_base<glslang::TIntermAggregate *, std::allocator<glslang::TIntermAggregate *>>::_List_impl" }
%"struct.std::__cxx11::_List_base<glslang::TIntermAggregate *, std::allocator<glslang::TIntermAggregate *>>::_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 }
%"class.std::unordered_set.139" = type { %"class.std::_Hashtable.140" }
%"class.std::_Hashtable.140" = 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::TGlslIoMapper" = type { %"class.glslang::TIoMapper", [14 x ptr], [14 x ptr], [14 x ptr], [14 x ptr], i8, i32, i32, %"class.std::__cxx11::basic_string.105", i32, i32 }
%"class.glslang::TIoMapper" = type { ptr }
%"class.glslang::TQualifier" = type <{ ptr, i64, i8, [3 x i8], i32, i32, i64, i64, i8, i8, i8, i8, i8, [3 x i8], i32, i8, [3 x i8], i32, ptr }>

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(88)) #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoEED2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang23TResolverUniformAdaptorC2E11EShLanguageRNS_14TIoMapResolverEPPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISB_ESaISt4pairIKSB_SC_EEER9TInfoSinkRb(ptr noundef nonnull align 8 dereferenceable(144), i32 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang21TResolverInOutAdaptorC2E11EShLanguageRNS_14TIoMapResolverER9TInfoSinkRb(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7glslang21TResolverInOutAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(88)) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang16TVarSetTraverserC2ERKNS_13TIntermediateERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISB_ESaISt4pairIKSB_SC_EEESL_SL_(ptr noundef nonnull align 8 dereferenceable(232), ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang14TLiveTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(201)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7glslang13TGlslIoMapper5doMapEPNS_14TIoMapResolverER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(520) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(80) %2) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i1, align 1
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %"struct.glslang::TResolverUniformAdaptor", align 8
  %9 = alloca %"struct.glslang::TResolverInOutAdaptor", align 8
  %10 = alloca %"struct.glslang::TSymbolValidater", align 8
  %11 = alloca [14 x %"class.std::vector.125"], align 16
  %12 = alloca [14 x %"class.std::vector.125"], align 16
  %13 = alloca %"class.std::vector.125", align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %19 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %20 = alloca %class.anon.173, align 8
  %21 = alloca %class.anon.173, align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %24 = alloca %class.anon.175, align 1
  %25 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %26 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %27 = alloca %class.anon.177, align 8
  %28 = alloca %class.anon.177, align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %31 = alloca %class.anon.179, align 1
  %32 = alloca ptr, align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %47 = alloca ptr, align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %50 = alloca %class.anon.181, align 8
  %51 = alloca %class.anon.181, align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %54 = alloca %class.anon.183, align 8
  %55 = alloca %class.anon.183, align 8
  %56 = alloca ptr, align 8
  %57 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %58 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %59 = alloca ptr, align 8
  %60 = alloca %"struct.glslang::TVarLivePair", align 8
  %61 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %62 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %63 = alloca %class.anon.185, align 1
  %64 = alloca ptr, align 8
  %65 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %70 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %71 = alloca ptr, align 8
  %72 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %73 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %74 = alloca %class.anon.187, align 1
  %75 = alloca i8, align 1
  %76 = alloca i64, align 8
  %77 = alloca ptr, align 8
  %78 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %79 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %80 = alloca ptr, align 8
  %81 = alloca ptr, align 8
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %85 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %86 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %87 = alloca %class.anon.189, align 8
  %88 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %89 = alloca %"class.__gnu_cxx::__normal_iterator.190", align 8
  %90 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %91 = alloca i64, align 8
  %92 = alloca ptr, align 8
  %93 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %94 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %95 = alloca %class.anon.191, align 8
  %96 = alloca %class.anon.191, align 8
  %97 = alloca %"class.glslang::TVarSetTraverser", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  %98 = load ptr, ptr %5, align 8
  %99 = load ptr, ptr %6, align 8, !tbaa !5
  %100 = load ptr, ptr %99, align 8, !tbaa !9
  %101 = getelementptr inbounds ptr, ptr %100, i64 15
  %102 = load ptr, ptr %101, align 8
  call void %102(ptr noundef nonnull align 8 dereferenceable(8) %99, i32 noundef 14)
  %103 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 5
  %104 = load i8, ptr %103, align 8, !tbaa !11, !range !22, !noundef !23
  %105 = trunc i8 %104 to i1
  br i1 %105, label %794, label %106

106:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 144, ptr %8) #6
  %107 = load ptr, ptr %6, align 8, !tbaa !5
  %108 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 3
  %109 = getelementptr inbounds [14 x ptr], ptr %108, i64 0, i64 0
  %110 = load ptr, ptr %7, align 8, !tbaa !5
  %111 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 5
  call void @_ZN7glslang23TResolverUniformAdaptorC2E11EShLanguageRNS_14TIoMapResolverEPPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISB_ESaISt4pairIKSB_SC_EEER9TInfoSinkRb(ptr noundef nonnull align 8 dereferenceable(144) %8, i32 noundef 14, ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef %109, ptr noundef nonnull align 8 dereferenceable(80) %110, ptr noundef nonnull align 1 dereferenceable(1) %111)
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #6
  %112 = load ptr, ptr %6, align 8, !tbaa !5
  %113 = load ptr, ptr %7, align 8, !tbaa !5
  %114 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 5
  call void @_ZN7glslang21TResolverInOutAdaptorC2E11EShLanguageRNS_14TIoMapResolverER9TInfoSinkRb(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 14, ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(80) %113, ptr noundef nonnull align 1 dereferenceable(1) %114)
  call void @llvm.lifetime.start.p0(i64 368, ptr %10) #6
  %115 = load ptr, ptr %6, align 8, !tbaa !5
  %116 = load ptr, ptr %7, align 8, !tbaa !5
  %117 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 1
  %118 = getelementptr inbounds [14 x ptr], ptr %117, i64 0, i64 0
  %119 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 2
  %120 = getelementptr inbounds [14 x ptr], ptr %119, i64 0, i64 0
  %121 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 3
  %122 = getelementptr inbounds [14 x ptr], ptr %121, i64 0, i64 0
  %123 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 5
  %124 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 6
  %125 = load i32, ptr %124, align 4, !tbaa !24
  %126 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 7
  %127 = load i32, ptr %126, align 8, !tbaa !25
  call void @_ZN7glslang16TSymbolValidaterC2ERNS_14TIoMapResolverER9TInfoSinkPPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISC_ESaISt4pairIKSC_SD_EEESM_SM_Rb8EProfilei(ptr noundef nonnull align 8 dereferenceable(368) %10, ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(80) %116, ptr noundef %118, ptr noundef %120, ptr noundef %122, ptr noundef nonnull align 1 dereferenceable(1) %123, i32 noundef %125, i32 noundef %127)
  call void @llvm.lifetime.start.p0(i64 336, ptr %11) #6
  %128 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %11, i32 0, i32 0
  %129 = getelementptr inbounds %"class.std::vector.125", ptr %128, i64 14
  br label %130

130:                                              ; preds = %130, %106
  %131 = phi ptr [ %128, %106 ], [ %132, %130 ]
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %131) #6
  %132 = getelementptr inbounds %"class.std::vector.125", ptr %131, i64 1
  %133 = icmp eq ptr %132, %129
  br i1 %133, label %134, label %130

134:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 336, ptr %12) #6
  %135 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %12, i32 0, i32 0
  %136 = getelementptr inbounds %"class.std::vector.125", ptr %135, i64 14
  br label %137

137:                                              ; preds = %137, %134
  %138 = phi ptr [ %135, %134 ], [ %139, %137 ]
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %138) #6
  %139 = getelementptr inbounds %"class.std::vector.125", ptr %138, i64 1
  %140 = icmp eq ptr %139, %136
  br i1 %140, label %141, label %137

141:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #6
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %142 = load ptr, ptr %6, align 8, !tbaa !5
  %143 = load ptr, ptr %142, align 8, !tbaa !9
  %144 = getelementptr inbounds ptr, ptr %143, i64 14
  %145 = load ptr, ptr %144, align 8
  invoke void %145(ptr noundef nonnull align 8 dereferenceable(8) %142, i32 noundef 14)
          to label %146 unwind label %151

146:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  store i32 0, ptr %16, align 4, !tbaa !26
  br label %147

147:                                              ; preds = %449, %146
  %148 = load i32, ptr %16, align 4, !tbaa !26
  %149 = icmp slt i32 %148, 14
  br i1 %149, label %155, label %150

150:                                              ; preds = %147
  store i32 2, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  br label %453

151:                                              ; preds = %511, %502, %453, %141
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %14, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %15, align 4
  br label %767

155:                                              ; preds = %147
  %156 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 1
  %157 = load i32, ptr %16, align 4, !tbaa !26
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds [14 x ptr], ptr %156, i64 0, i64 %158
  %160 = load ptr, ptr %159, align 8, !tbaa !5
  %161 = icmp ne ptr %160, null
  br i1 %161, label %162, label %407

162:                                              ; preds = %155
  %163 = load i32, ptr %16, align 4, !tbaa !26
  invoke void @_ZN7glslang21TResolverInOutAdaptor8setStageE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef %163)
          to label %164 unwind label %269

164:                                              ; preds = %162
  %165 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 1
  %166 = load i32, ptr %16, align 4, !tbaa !26
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds [14 x ptr], ptr %165, i64 0, i64 %167
  %169 = load ptr, ptr %168, align 8, !tbaa !5
  %170 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %169) #6
  %171 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %18, i32 0, i32 0
  store ptr %170, ptr %171, align 8
  %172 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 1
  %173 = load i32, ptr %16, align 4, !tbaa !26
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds [14 x ptr], ptr %172, i64 0, i64 %174
  %176 = load ptr, ptr %175, align 8, !tbaa !5
  %177 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %176) #6
  %178 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %19, i32 0, i32 0
  store ptr %177, ptr %178, align 8
  %179 = getelementptr inbounds %class.anon.173, ptr %20, i32 0, i32 0
  store ptr %11, ptr %179, align 8, !tbaa !5
  %180 = getelementptr inbounds %class.anon.173, ptr %20, i32 0, i32 1
  %181 = load i32, ptr %16, align 4, !tbaa !26
  store i32 %181, ptr %180, align 8, !tbaa !27
  %182 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %18, i32 0, i32 0
  %183 = load ptr, ptr %182, align 8
  %184 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %19, i32 0, i32 0
  %185 = load ptr, ptr %184, align 8
  %186 = getelementptr inbounds { ptr, i32 }, ptr %20, i32 0, i32 0
  %187 = load ptr, ptr %186, align 8
  %188 = getelementptr inbounds { ptr, i32 }, ptr %20, i32 0, i32 1
  %189 = load i32, ptr %188, align 8
  %190 = invoke { ptr, i32 } @"_ZSt8for_eachISt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS6_13TVarEntryInfoEEEZNS6_13TGlslIoMapper5doMapEPNS6_14TIoMapResolverER9TInfoSinkE3$_0ET0_T_SL_SK_"(ptr %183, ptr %185, ptr %187, i32 %189)
          to label %191 unwind label %269

191:                                              ; preds = %164
  %192 = getelementptr inbounds { ptr, i32 }, ptr %21, i32 0, i32 0
  %193 = extractvalue { ptr, i32 } %190, 0
  store ptr %193, ptr %192, align 8
  %194 = getelementptr inbounds { ptr, i32 }, ptr %21, i32 0, i32 1
  %195 = extractvalue { ptr, i32 } %190, 1
  store i32 %195, ptr %194, align 8
  %196 = load i32, ptr %16, align 4, !tbaa !26
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %11, i64 0, i64 %197
  %199 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %198) #6
  %200 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %22, i32 0, i32 0
  store ptr %199, ptr %200, align 8
  %201 = load i32, ptr %16, align 4, !tbaa !26
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %11, i64 0, i64 %202
  %204 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %203) #6
  %205 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %23, i32 0, i32 0
  store ptr %204, ptr %205, align 8
  %206 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %22, i32 0, i32 0
  %207 = load ptr, ptr %206, align 8
  %208 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %23, i32 0, i32 0
  %209 = load ptr, ptr %208, align 8
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_1EvT_SF_T0_"(ptr %207, ptr %209)
          to label %210 unwind label %269

210:                                              ; preds = %191
  %211 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 2
  %212 = load i32, ptr %16, align 4, !tbaa !26
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds [14 x ptr], ptr %211, i64 0, i64 %213
  %215 = load ptr, ptr %214, align 8, !tbaa !5
  %216 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %215) #6
  %217 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %25, i32 0, i32 0
  store ptr %216, ptr %217, align 8
  %218 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 2
  %219 = load i32, ptr %16, align 4, !tbaa !26
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds [14 x ptr], ptr %218, i64 0, i64 %220
  %222 = load ptr, ptr %221, align 8, !tbaa !5
  %223 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %222) #6
  %224 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %26, i32 0, i32 0
  store ptr %223, ptr %224, align 8
  %225 = getelementptr inbounds %class.anon.177, ptr %27, i32 0, i32 0
  store ptr %12, ptr %225, align 8, !tbaa !5
  %226 = getelementptr inbounds %class.anon.177, ptr %27, i32 0, i32 1
  %227 = load i32, ptr %16, align 4, !tbaa !26
  store i32 %227, ptr %226, align 8, !tbaa !29
  %228 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %25, i32 0, i32 0
  %229 = load ptr, ptr %228, align 8
  %230 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %26, i32 0, i32 0
  %231 = load ptr, ptr %230, align 8
  %232 = getelementptr inbounds { ptr, i32 }, ptr %27, i32 0, i32 0
  %233 = load ptr, ptr %232, align 8
  %234 = getelementptr inbounds { ptr, i32 }, ptr %27, i32 0, i32 1
  %235 = load i32, ptr %234, align 8
  %236 = invoke { ptr, i32 } @"_ZSt8for_eachISt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS6_13TVarEntryInfoEEEZNS6_13TGlslIoMapper5doMapEPNS6_14TIoMapResolverER9TInfoSinkE3$_2ET0_T_SL_SK_"(ptr %229, ptr %231, ptr %233, i32 %235)
          to label %237 unwind label %269

237:                                              ; preds = %210
  %238 = getelementptr inbounds { ptr, i32 }, ptr %28, i32 0, i32 0
  %239 = extractvalue { ptr, i32 } %236, 0
  store ptr %239, ptr %238, align 8
  %240 = getelementptr inbounds { ptr, i32 }, ptr %28, i32 0, i32 1
  %241 = extractvalue { ptr, i32 } %236, 1
  store i32 %241, ptr %240, align 8
  %242 = load i32, ptr %16, align 4, !tbaa !26
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %12, i64 0, i64 %243
  %245 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %244) #6
  %246 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %29, i32 0, i32 0
  store ptr %245, ptr %246, align 8
  %247 = load i32, ptr %16, align 4, !tbaa !26
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %12, i64 0, i64 %248
  %250 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %249) #6
  %251 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %30, i32 0, i32 0
  store ptr %250, ptr %251, align 8
  %252 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %29, i32 0, i32 0
  %253 = load ptr, ptr %252, align 8
  %254 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %30, i32 0, i32 0
  %255 = load ptr, ptr %254, align 8
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_3EvT_SF_T0_"(ptr %253, ptr %255)
          to label %256 unwind label %269

256:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  %257 = load i32, ptr %16, align 4, !tbaa !26
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %11, i64 0, i64 %258
  store ptr %259, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #6
  %260 = load ptr, ptr %32, align 8, !tbaa !5
  %261 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %260) #6
  %262 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %33, i32 0, i32 0
  store ptr %261, ptr %262, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  %263 = load ptr, ptr %32, align 8, !tbaa !5
  %264 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %263) #6
  %265 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %34, i32 0, i32 0
  store ptr %264, ptr %265, align 8
  br label %266

266:                                              ; preds = %277, %256
  %267 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  br i1 %267, label %273, label %268

268:                                              ; preds = %266
  store i32 5, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  br label %283

269:                                              ; preds = %414, %375, %352, %237, %210, %191, %164, %162
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %14, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %15, align 4
  br label %452

273:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  %274 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #6
  store ptr %274, ptr %35, align 8, !tbaa !5
  %275 = load ptr, ptr %35, align 8, !tbaa !5
  invoke void @_ZN7glslang16TSymbolValidaterclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(368) %10, ptr noundef nonnull align 8 dereferenceable(88) %275)
          to label %276 unwind label %279

276:                                              ; preds = %273
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  br label %277

277:                                              ; preds = %276
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #6
  br label %266

279:                                              ; preds = %273
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %14, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  br label %452

283:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #6
  %284 = load i32, ptr %16, align 4, !tbaa !26
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %11, i64 0, i64 %285
  store ptr %286, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  %287 = load ptr, ptr %36, align 8, !tbaa !5
  %288 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %287) #6
  %289 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %37, i32 0, i32 0
  store ptr %288, ptr %289, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #6
  %290 = load ptr, ptr %36, align 8, !tbaa !5
  %291 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %290) #6
  %292 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %38, i32 0, i32 0
  store ptr %291, ptr %292, align 8
  br label %293

293:                                              ; preds = %300, %283
  %294 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #6
  br i1 %294, label %296, label %295

295:                                              ; preds = %293
  store i32 7, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  br label %306

296:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #6
  %297 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  store ptr %297, ptr %39, align 8, !tbaa !5
  %298 = load ptr, ptr %39, align 8, !tbaa !5
  invoke void @_ZN7glslang21TResolverInOutAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(88) %298)
          to label %299 unwind label %302

299:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  br label %300

300:                                              ; preds = %299
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  br label %293

302:                                              ; preds = %296
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %14, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  br label %452

306:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  %307 = load i32, ptr %16, align 4, !tbaa !26
  %308 = sext i32 %307 to i64
  %309 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %12, i64 0, i64 %308
  store ptr %309, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #6
  %310 = load ptr, ptr %40, align 8, !tbaa !5
  %311 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %310) #6
  %312 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %41, i32 0, i32 0
  store ptr %311, ptr %312, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #6
  %313 = load ptr, ptr %40, align 8, !tbaa !5
  %314 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %313) #6
  %315 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %42, i32 0, i32 0
  store ptr %314, ptr %315, align 8
  br label %316

316:                                              ; preds = %323, %306
  %317 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #6
  br i1 %317, label %319, label %318

318:                                              ; preds = %316
  store i32 9, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  br label %329

319:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #6
  %320 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #6
  store ptr %320, ptr %43, align 8, !tbaa !5
  %321 = load ptr, ptr %43, align 8, !tbaa !5
  invoke void @_ZN7glslang16TSymbolValidaterclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(368) %10, ptr noundef nonnull align 8 dereferenceable(88) %321)
          to label %322 unwind label %325

322:                                              ; preds = %319
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  br label %323

323:                                              ; preds = %322
  %324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #6
  br label %316

325:                                              ; preds = %319
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %14, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  br label %452

329:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #6
  %330 = load i32, ptr %16, align 4, !tbaa !26
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %12, i64 0, i64 %331
  store ptr %332, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #6
  %333 = load ptr, ptr %44, align 8, !tbaa !5
  %334 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %333) #6
  %335 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %45, i32 0, i32 0
  store ptr %334, ptr %335, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  %336 = load ptr, ptr %44, align 8, !tbaa !5
  %337 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %336) #6
  %338 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %46, i32 0, i32 0
  store ptr %337, ptr %338, align 8
  br label %339

339:                                              ; preds = %346, %329
  %340 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #6
  br i1 %340, label %342, label %341

341:                                              ; preds = %339
  store i32 11, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  br label %352

342:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #6
  %343 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #6
  store ptr %343, ptr %47, align 8, !tbaa !5
  %344 = load ptr, ptr %47, align 8, !tbaa !5
  invoke void @_ZN7glslang21TResolverInOutAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(88) %344)
          to label %345 unwind label %348

345:                                              ; preds = %342
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  br label %346

346:                                              ; preds = %345
  %347 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #6
  br label %339

348:                                              ; preds = %342
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %14, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  br label %452

352:                                              ; preds = %341
  %353 = load i32, ptr %16, align 4, !tbaa !26
  %354 = sext i32 %353 to i64
  %355 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %11, i64 0, i64 %354
  %356 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %355) #6
  %357 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %48, i32 0, i32 0
  store ptr %356, ptr %357, align 8
  %358 = load i32, ptr %16, align 4, !tbaa !26
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %11, i64 0, i64 %359
  %361 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %360) #6
  %362 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %49, i32 0, i32 0
  store ptr %361, ptr %362, align 8
  %363 = getelementptr inbounds %class.anon.181, ptr %50, i32 0, i32 0
  store ptr %98, ptr %363, align 8, !tbaa !31
  %364 = getelementptr inbounds %class.anon.181, ptr %50, i32 0, i32 1
  %365 = load i32, ptr %16, align 4, !tbaa !26
  store i32 %365, ptr %364, align 8, !tbaa !33
  %366 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %48, i32 0, i32 0
  %367 = load ptr, ptr %366, align 8
  %368 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %49, i32 0, i32 0
  %369 = load ptr, ptr %368, align 8
  %370 = getelementptr inbounds { ptr, i32 }, ptr %50, i32 0, i32 0
  %371 = load ptr, ptr %370, align 8
  %372 = getelementptr inbounds { ptr, i32 }, ptr %50, i32 0, i32 1
  %373 = load i32, ptr %372, align 8
  %374 = invoke { ptr, i32 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_4ET0_T_SG_SF_"(ptr %367, ptr %369, ptr %371, i32 %373)
          to label %375 unwind label %269

375:                                              ; preds = %352
  %376 = getelementptr inbounds { ptr, i32 }, ptr %51, i32 0, i32 0
  %377 = extractvalue { ptr, i32 } %374, 0
  store ptr %377, ptr %376, align 8
  %378 = getelementptr inbounds { ptr, i32 }, ptr %51, i32 0, i32 1
  %379 = extractvalue { ptr, i32 } %374, 1
  store i32 %379, ptr %378, align 8
  %380 = load i32, ptr %16, align 4, !tbaa !26
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %12, i64 0, i64 %381
  %383 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %382) #6
  %384 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %52, i32 0, i32 0
  store ptr %383, ptr %384, align 8
  %385 = load i32, ptr %16, align 4, !tbaa !26
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %12, i64 0, i64 %386
  %388 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %387) #6
  %389 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %53, i32 0, i32 0
  store ptr %388, ptr %389, align 8
  %390 = getelementptr inbounds %class.anon.183, ptr %54, i32 0, i32 0
  store ptr %98, ptr %390, align 8, !tbaa !34
  %391 = getelementptr inbounds %class.anon.183, ptr %54, i32 0, i32 1
  %392 = load i32, ptr %16, align 4, !tbaa !26
  store i32 %392, ptr %391, align 8, !tbaa !36
  %393 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %52, i32 0, i32 0
  %394 = load ptr, ptr %393, align 8
  %395 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %53, i32 0, i32 0
  %396 = load ptr, ptr %395, align 8
  %397 = getelementptr inbounds { ptr, i32 }, ptr %54, i32 0, i32 0
  %398 = load ptr, ptr %397, align 8
  %399 = getelementptr inbounds { ptr, i32 }, ptr %54, i32 0, i32 1
  %400 = load i32, ptr %399, align 8
  %401 = invoke { ptr, i32 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_5ET0_T_SG_SF_"(ptr %394, ptr %396, ptr %398, i32 %400)
          to label %402 unwind label %269

402:                                              ; preds = %375
  %403 = getelementptr inbounds { ptr, i32 }, ptr %55, i32 0, i32 0
  %404 = extractvalue { ptr, i32 } %401, 0
  store ptr %404, ptr %403, align 8
  %405 = getelementptr inbounds { ptr, i32 }, ptr %55, i32 0, i32 1
  %406 = extractvalue { ptr, i32 } %401, 1
  store i32 %406, ptr %405, align 8
  br label %407

407:                                              ; preds = %402, %155
  %408 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 3
  %409 = load i32, ptr %16, align 4, !tbaa !26
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds [14 x ptr], ptr %408, i64 0, i64 %410
  %412 = load ptr, ptr %411, align 8, !tbaa !5
  %413 = icmp ne ptr %412, null
  br i1 %413, label %414, label %448

414:                                              ; preds = %407
  %415 = load i32, ptr %16, align 4, !tbaa !26
  invoke void @_ZN7glslang23TResolverUniformAdaptor8setStageE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(144) %8, i32 noundef %415)
          to label %416 unwind label %269

416:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #6
  %417 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 3
  %418 = load i32, ptr %16, align 4, !tbaa !26
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds [14 x ptr], ptr %417, i64 0, i64 %419
  %421 = load ptr, ptr %420, align 8, !tbaa !5
  store ptr %421, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #6
  %422 = load ptr, ptr %56, align 8, !tbaa !5
  %423 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %422) #6
  %424 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %57, i32 0, i32 0
  store ptr %423, ptr %424, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  %425 = load ptr, ptr %56, align 8, !tbaa !5
  %426 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %425) #6
  %427 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %58, i32 0, i32 0
  store ptr %426, ptr %427, align 8
  br label %428

428:                                              ; preds = %436, %416
  %429 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEESE_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %58) #6
  br i1 %429, label %431, label %430

430:                                              ; preds = %428
  store i32 13, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  br label %447

431:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #6
  %432 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %57) #6
  store ptr %432, ptr %59, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr %60) #6
  %433 = load ptr, ptr %59, align 8, !tbaa !5
  invoke void @_ZN7glslang12TVarLivePairC2ERKSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(88) %60, ptr noundef nonnull align 8 dereferenceable(88) %433)
          to label %434 unwind label %438

434:                                              ; preds = %431
  invoke void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(88) %60)
          to label %435 unwind label %442

435:                                              ; preds = %434
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoEED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %60) #6
  call void @llvm.lifetime.end.p0(i64 88, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #6
  br label %436

436:                                              ; preds = %435
  %437 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %57) #6
  br label %428

438:                                              ; preds = %431
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %14, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %15, align 4
  br label %446

442:                                              ; preds = %434
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %14, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %15, align 4
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoEED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %60) #6
  br label %446

446:                                              ; preds = %442, %438
  call void @llvm.lifetime.end.p0(i64 88, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  br label %452

447:                                              ; preds = %430
  br label %448

448:                                              ; preds = %447, %407
  br label %449

449:                                              ; preds = %448
  %450 = load i32, ptr %16, align 4, !tbaa !26
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr %16, align 4, !tbaa !26
  br label %147, !llvm.loop !37

452:                                              ; preds = %446, %348, %325, %302, %279, %269
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  br label %767

453:                                              ; preds = %150
  %454 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %455 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %61, i32 0, i32 0
  store ptr %454, ptr %455, align 8
  %456 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %457 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %62, i32 0, i32 0
  store ptr %456, ptr %457, align 8
  %458 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %61, i32 0, i32 0
  %459 = load ptr, ptr %458, align 8
  %460 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %62, i32 0, i32 0
  %461 = load ptr, ptr %460, align 8
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_6EvT_SF_T0_"(ptr %459, ptr %461)
          to label %462 unwind label %151

462:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #6
  store ptr %13, ptr %64, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #6
  %463 = load ptr, ptr %64, align 8, !tbaa !5
  %464 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %463) #6
  %465 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %65, i32 0, i32 0
  store ptr %464, ptr %465, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #6
  %466 = load ptr, ptr %64, align 8, !tbaa !5
  %467 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %466) #6
  %468 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %66, i32 0, i32 0
  store ptr %467, ptr %468, align 8
  br label %469

469:                                              ; preds = %476, %462
  %470 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66) #6
  br i1 %470, label %472, label %471

471:                                              ; preds = %469
  store i32 15, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  br label %482

472:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #6
  %473 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #6
  store ptr %473, ptr %67, align 8, !tbaa !5
  %474 = load ptr, ptr %67, align 8, !tbaa !5
  invoke void @_ZN7glslang16TSymbolValidaterclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(368) %10, ptr noundef nonnull align 8 dereferenceable(88) %474)
          to label %475 unwind label %478

475:                                              ; preds = %472
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  br label %476

476:                                              ; preds = %475
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #6
  br label %469

478:                                              ; preds = %472
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %14, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  br label %767

482:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #6
  store ptr %13, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #6
  %483 = load ptr, ptr %68, align 8, !tbaa !5
  %484 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %483) #6
  %485 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %69, i32 0, i32 0
  store ptr %484, ptr %485, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #6
  %486 = load ptr, ptr %68, align 8, !tbaa !5
  %487 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %486) #6
  %488 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %70, i32 0, i32 0
  store ptr %487, ptr %488, align 8
  br label %489

489:                                              ; preds = %496, %482
  %490 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70) #6
  br i1 %490, label %492, label %491

491:                                              ; preds = %489
  store i32 17, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #6
  br label %502

492:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #6
  %493 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #6
  store ptr %493, ptr %71, align 8, !tbaa !5
  %494 = load ptr, ptr %71, align 8, !tbaa !5
  invoke void @_ZN7glslang23TResolverUniformAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(144) %8, ptr noundef nonnull align 8 dereferenceable(88) %494)
          to label %495 unwind label %498

495:                                              ; preds = %492
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  br label %496

496:                                              ; preds = %495
  %497 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #6
  br label %489

498:                                              ; preds = %492
  %499 = landingpad { ptr, i32 }
          cleanup
  %500 = extractvalue { ptr, i32 } %499, 0
  store ptr %500, ptr %14, align 8
  %501 = extractvalue { ptr, i32 } %499, 1
  store i32 %501, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #6
  br label %767

502:                                              ; preds = %491
  %503 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %504 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %72, i32 0, i32 0
  store ptr %503, ptr %504, align 8
  %505 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %506 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %73, i32 0, i32 0
  store ptr %505, ptr %506, align 8
  %507 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %72, i32 0, i32 0
  %508 = load ptr, ptr %507, align 8
  %509 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %73, i32 0, i32 0
  %510 = load ptr, ptr %509, align 8
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_7EvT_SF_T0_"(ptr %508, ptr %510)
          to label %511 unwind label %151

511:                                              ; preds = %502
  %512 = load ptr, ptr %6, align 8, !tbaa !5
  %513 = load ptr, ptr %512, align 8, !tbaa !9
  %514 = getelementptr inbounds ptr, ptr %513, i64 15
  %515 = load ptr, ptr %514, align 8
  invoke void %515(ptr noundef nonnull align 8 dereferenceable(8) %512, i32 noundef 14)
          to label %516 unwind label %151

516:                                              ; preds = %511
  %517 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 8
  %518 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(40) %517) #6
  %519 = icmp ne i64 %518, 0
  br i1 %519, label %520, label %679

520:                                              ; preds = %516
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #6
  store i8 0, ptr %75, align 1, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #6
  store i64 0, ptr %76, align 8, !tbaa !40
  br label %521

521:                                              ; preds = %635, %520
  %522 = load i64, ptr %76, align 8, !tbaa !40
  %523 = icmp ult i64 %522, 14
  br i1 %523, label %525, label %524

524:                                              ; preds = %521
  store i32 19, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #6
  br label %638

525:                                              ; preds = %521
  %526 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 4
  %527 = load i64, ptr %76, align 8, !tbaa !40
  %528 = getelementptr inbounds [14 x ptr], ptr %526, i64 0, i64 %527
  %529 = load ptr, ptr %528, align 8, !tbaa !5
  %530 = icmp ne ptr %529, null
  br i1 %530, label %531, label %634

531:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #6
  %532 = getelementptr inbounds %"struct.glslang::TResolverUniformAdaptor", ptr %8, i32 0, i32 4
  %533 = getelementptr inbounds [14 x ptr], ptr %532, i64 0, i64 0
  store ptr %533, ptr %77, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #6
  %534 = load ptr, ptr %77, align 8, !tbaa !5
  %535 = load i64, ptr %76, align 8, !tbaa !40
  %536 = getelementptr inbounds ptr, ptr %534, i64 %535
  %537 = load ptr, ptr %536, align 8, !tbaa !5
  %538 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 8
  %539 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE4findERSC_(ptr noundef nonnull align 8 dereferenceable(48) %537, ptr noundef nonnull align 8 dereferenceable(40) %538)
          to label %540 unwind label %550

540:                                              ; preds = %531
  %541 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %78, i32 0, i32 0
  store ptr %539, ptr %541, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #6
  %542 = load ptr, ptr %77, align 8, !tbaa !5
  %543 = load i64, ptr %76, align 8, !tbaa !40
  %544 = getelementptr inbounds ptr, ptr %542, i64 %543
  %545 = load ptr, ptr %544, align 8, !tbaa !5
  %546 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %545) #6
  %547 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.162", ptr %79, i32 0, i32 0
  store ptr %546, ptr %547, align 8
  %548 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEESE_(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %79) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #6
  br i1 %548, label %549, label %554

549:                                              ; preds = %540
  store i32 21, ptr %17, align 4
  br label %628

550:                                              ; preds = %531
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %14, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %15, align 4
  br label %633

554:                                              ; preds = %540
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #6
  %555 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %78) #6
  %556 = getelementptr inbounds %"struct.std::pair.163", ptr %555, i32 0, i32 1
  %557 = getelementptr inbounds %"struct.glslang::TVarEntryInfo", ptr %556, i32 0, i32 1
  %558 = load ptr, ptr %557, align 8, !tbaa !41
  %559 = load ptr, ptr %558, align 8, !tbaa !9
  %560 = getelementptr inbounds ptr, ptr %559, i64 33
  %561 = load ptr, ptr %560, align 8
  %562 = invoke noundef nonnull align 8 dereferenceable(72) ptr %561(ptr noundef nonnull align 8 dereferenceable(176) %558)
          to label %563 unwind label %568

563:                                              ; preds = %554
  store ptr %562, ptr %80, align 8, !tbaa !5
  %564 = load ptr, ptr %80, align 8, !tbaa !5
  %565 = invoke noundef zeroext i1 @_ZNK7glslang10TQualifier9isUniformEv(ptr noundef nonnull align 8 dereferenceable(72) %564)
          to label %566 unwind label %568

566:                                              ; preds = %563
  br i1 %565, label %572, label %567

567:                                              ; preds = %566
  store i32 21, ptr %17, align 4
  br label %627

568:                                              ; preds = %563, %554
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %14, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %15, align 4
  br label %632

572:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #6
  %573 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %78) #6
  %574 = getelementptr inbounds %"struct.std::pair.163", ptr %573, i32 0, i32 1
  %575 = getelementptr inbounds %"struct.glslang::TVarEntryInfo", ptr %574, i32 0, i32 1
  %576 = load ptr, ptr %575, align 8, !tbaa !41
  %577 = load ptr, ptr %576, align 8, !tbaa !9
  %578 = getelementptr inbounds ptr, ptr %577, i64 31
  %579 = load ptr, ptr %578, align 8
  %580 = invoke noundef nonnull align 8 dereferenceable(144) ptr %579(ptr noundef nonnull align 8 dereferenceable(176) %576)
          to label %581 unwind label %618

581:                                              ; preds = %572
  store ptr %580, ptr %81, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #6
  %582 = load ptr, ptr %81, align 8, !tbaa !5
  %583 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 10
  %584 = load i32, ptr %583, align 4, !tbaa !46
  %585 = load ptr, ptr %80, align 8, !tbaa !5
  %586 = getelementptr inbounds %"class.glslang::TQualifier", ptr %585, i32 0, i32 1
  %587 = load i64, ptr %586, align 8
  %588 = lshr i64 %587, 59
  %589 = and i64 %588, 7
  %590 = trunc i64 %589 to i32
  %591 = icmp eq i32 %590, 1
  %592 = invoke noundef i32 @_ZN7glslang13TIntermediate16getBaseAlignmentERKNS_5TTypeERiS4_NS_14TLayoutPackingEb(ptr noundef nonnull align 8 dereferenceable(144) %582, ptr noundef nonnull align 4 dereferenceable(4) %82, ptr noundef nonnull align 4 dereferenceable(4) %83, i32 noundef %584, i1 noundef zeroext %591)
          to label %593 unwind label %622

593:                                              ; preds = %581
  %594 = load i32, ptr %82, align 4, !tbaa !26
  %595 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 9
  %596 = load i32, ptr %595, align 8, !tbaa !47
  %597 = icmp sle i32 %594, %596
  br i1 %597, label %598, label %626

598:                                              ; preds = %593
  %599 = load ptr, ptr %80, align 8, !tbaa !5
  invoke void @_ZN7glslang10TQualifier15setBlockStorageENS_18TBlockStorageClassE(ptr noundef nonnull align 8 dereferenceable(72) %599, i32 noundef 2)
          to label %600 unwind label %622

600:                                              ; preds = %598
  %601 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 10
  %602 = load i32, ptr %601, align 4, !tbaa !46
  %603 = load ptr, ptr %80, align 8, !tbaa !5
  %604 = getelementptr inbounds %"class.glslang::TQualifier", ptr %603, i32 0, i32 2
  %605 = trunc i32 %602 to i8
  %606 = load i8, ptr %604, align 8
  %607 = and i8 %605, 15
  %608 = and i8 %606, -16
  %609 = or i8 %608, %607
  store i8 %609, ptr %604, align 8
  %610 = load ptr, ptr %80, align 8, !tbaa !5
  %611 = getelementptr inbounds %"class.glslang::TQualifier", ptr %610, i32 0, i32 6
  %612 = load i64, ptr %611, align 4
  %613 = and i64 %612, -4161537
  %614 = or i64 %613, 2064384
  store i64 %614, ptr %611, align 4
  %615 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %78) #6
  %616 = getelementptr inbounds %"struct.std::pair.163", ptr %615, i32 0, i32 1
  invoke void @_ZN7glslang13TVarEntryInfo19clearNewAssignmentsEv(ptr noundef nonnull align 8 dereferenceable(48) %616)
          to label %617 unwind label %622

617:                                              ; preds = %600
  store i8 1, ptr %75, align 1, !tbaa !39
  br label %626

618:                                              ; preds = %572
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %14, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %15, align 4
  br label %631

622:                                              ; preds = %600, %598, %581
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %14, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #6
  br label %631

626:                                              ; preds = %617, %593
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  store i32 0, ptr %17, align 4
  br label %627

627:                                              ; preds = %626, %567
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #6
  br label %628

628:                                              ; preds = %627, %549
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #6
  %629 = load i32, ptr %17, align 4
  switch i32 %629, label %802 [
    i32 0, label %630
    i32 21, label %635
  ]

630:                                              ; preds = %628
  br label %634

631:                                              ; preds = %622, %618
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  br label %632

632:                                              ; preds = %631, %568
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #6
  br label %633

633:                                              ; preds = %632, %550
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #6
  br label %678

634:                                              ; preds = %630, %525
  br label %635

635:                                              ; preds = %634, %628
  %636 = load i64, ptr %76, align 8, !tbaa !40
  %637 = add i64 %636, 1
  store i64 %637, ptr %76, align 8, !tbaa !40
  br label %521, !llvm.loop !48

638:                                              ; preds = %524
  %639 = load i8, ptr %75, align 1, !tbaa !39, !range !22, !noundef !23
  %640 = trunc i8 %639 to i1
  br i1 %640, label %641, label %677

641:                                              ; preds = %638
  br label %642

642:                                              ; preds = %675, %641
  br label %643

643:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #6
  %644 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %645 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %85, i32 0, i32 0
  store ptr %644, ptr %645, align 8
  %646 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %647 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %86, i32 0, i32 0
  store ptr %646, ptr %647, align 8
  %648 = getelementptr inbounds %class.anon.189, ptr %87, i32 0, i32 0
  store ptr %98, ptr %648, align 8, !tbaa !49
  %649 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %85, i32 0, i32 0
  %650 = load ptr, ptr %649, align 8
  %651 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %86, i32 0, i32 0
  %652 = load ptr, ptr %651, align 8
  %653 = getelementptr inbounds %class.anon.189, ptr %87, i32 0, i32 0
  %654 = load ptr, ptr %653, align 8
  %655 = invoke ptr @"_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_8ET_SF_SF_T0_"(ptr %650, ptr %652, ptr %654)
          to label %656 unwind label %667

656:                                              ; preds = %643
  %657 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %84, i32 0, i32 0
  store ptr %655, ptr %657, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #6
  %658 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %659 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %88, i32 0, i32 0
  store ptr %658, ptr %659, align 8
  %660 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %88) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #6
  br i1 %660, label %661, label %671

661:                                              ; preds = %656
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %84) #6
  %662 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.190", ptr %89, i32 0, i32 0
  %663 = load ptr, ptr %662, align 8
  %664 = invoke ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr %663)
          to label %665 unwind label %667

665:                                              ; preds = %661
  %666 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %90, i32 0, i32 0
  store ptr %664, ptr %666, align 8
  br label %672

667:                                              ; preds = %661, %643
  %668 = landingpad { ptr, i32 }
          cleanup
  %669 = extractvalue { ptr, i32 } %668, 0
  store ptr %669, ptr %14, align 8
  %670 = extractvalue { ptr, i32 } %668, 1
  store i32 %670, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #6
  br label %678

671:                                              ; preds = %656
  store i32 23, ptr %17, align 4
  br label %673

672:                                              ; preds = %665
  store i32 0, ptr %17, align 4
  br label %673

673:                                              ; preds = %672, %671
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #6
  %674 = load i32, ptr %17, align 4
  switch i32 %674, label %802 [
    i32 0, label %675
    i32 23, label %676
  ]

675:                                              ; preds = %673
  br label %642, !llvm.loop !51

676:                                              ; preds = %673
  br label %677

677:                                              ; preds = %676, %638
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #6
  br label %679

678:                                              ; preds = %667, %633
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #6
  br label %767

679:                                              ; preds = %677, %516
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #6
  store i64 0, ptr %91, align 8, !tbaa !40
  br label %680

680:                                              ; preds = %757, %679
  %681 = load i64, ptr %91, align 8, !tbaa !40
  %682 = icmp ult i64 %681, 14
  br i1 %682, label %684, label %683

683:                                              ; preds = %680
  store i32 24, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #6
  br label %760

684:                                              ; preds = %680
  %685 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 4
  %686 = load i64, ptr %91, align 8, !tbaa !40
  %687 = getelementptr inbounds [14 x ptr], ptr %685, i64 0, i64 %686
  %688 = load ptr, ptr %687, align 8, !tbaa !5
  %689 = icmp ne ptr %688, null
  br i1 %689, label %690, label %756

690:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #6
  %691 = getelementptr inbounds %"struct.glslang::TResolverUniformAdaptor", ptr %8, i32 0, i32 4
  %692 = getelementptr inbounds [14 x ptr], ptr %691, i64 0, i64 0
  store ptr %692, ptr %92, align 8, !tbaa !5
  %693 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %694 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %93, i32 0, i32 0
  store ptr %693, ptr %694, align 8
  %695 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  %696 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %94, i32 0, i32 0
  store ptr %695, ptr %696, align 8
  %697 = getelementptr inbounds %class.anon.191, ptr %95, i32 0, i32 0
  %698 = load ptr, ptr %92, align 8, !tbaa !5
  store ptr %698, ptr %697, align 8, !tbaa !52
  %699 = getelementptr inbounds %class.anon.191, ptr %95, i32 0, i32 1
  %700 = load i64, ptr %91, align 8, !tbaa !40
  store i64 %700, ptr %699, align 8, !tbaa !54
  %701 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %93, i32 0, i32 0
  %702 = load ptr, ptr %701, align 8
  %703 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.165", ptr %94, i32 0, i32 0
  %704 = load ptr, ptr %703, align 8
  %705 = getelementptr inbounds { ptr, i64 }, ptr %95, i32 0, i32 0
  %706 = load ptr, ptr %705, align 8
  %707 = getelementptr inbounds { ptr, i64 }, ptr %95, i32 0, i32 1
  %708 = load i64, ptr %707, align 8
  %709 = invoke { ptr, i64 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_9ET0_T_SG_SF_"(ptr %702, ptr %704, ptr %706, i64 %708)
          to label %710 unwind label %742

710:                                              ; preds = %690
  %711 = getelementptr inbounds { ptr, i64 }, ptr %96, i32 0, i32 0
  %712 = extractvalue { ptr, i64 } %709, 0
  store ptr %712, ptr %711, align 8
  %713 = getelementptr inbounds { ptr, i64 }, ptr %96, i32 0, i32 1
  %714 = extractvalue { ptr, i64 } %709, 1
  store i64 %714, ptr %713, align 8
  call void @llvm.lifetime.start.p0(i64 232, ptr %97) #6
  %715 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 4
  %716 = load i64, ptr %91, align 8, !tbaa !40
  %717 = getelementptr inbounds [14 x ptr], ptr %715, i64 0, i64 %716
  %718 = load ptr, ptr %717, align 8, !tbaa !5
  %719 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 1
  %720 = load i64, ptr %91, align 8, !tbaa !40
  %721 = getelementptr inbounds [14 x ptr], ptr %719, i64 0, i64 %720
  %722 = load ptr, ptr %721, align 8, !tbaa !5
  %723 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 2
  %724 = load i64, ptr %91, align 8, !tbaa !40
  %725 = getelementptr inbounds [14 x ptr], ptr %723, i64 0, i64 %724
  %726 = load ptr, ptr %725, align 8, !tbaa !5
  %727 = getelementptr inbounds %"struct.glslang::TResolverUniformAdaptor", ptr %8, i32 0, i32 4
  %728 = load i64, ptr %91, align 8, !tbaa !40
  %729 = getelementptr inbounds [14 x ptr], ptr %727, i64 0, i64 %728
  %730 = load ptr, ptr %729, align 8, !tbaa !5
  invoke void @_ZN7glslang16TVarSetTraverserC2ERKNS_13TIntermediateERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISB_ESaISt4pairIKSB_SC_EEESL_SL_(ptr noundef nonnull align 8 dereferenceable(232) %97, ptr noundef nonnull align 8 dereferenceable(1784) %718, ptr noundef nonnull align 8 dereferenceable(48) %722, ptr noundef nonnull align 8 dereferenceable(48) %726, ptr noundef nonnull align 8 dereferenceable(48) %730)
          to label %731 unwind label %746

731:                                              ; preds = %710
  %732 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 4
  %733 = load i64, ptr %91, align 8, !tbaa !40
  %734 = getelementptr inbounds [14 x ptr], ptr %732, i64 0, i64 %733
  %735 = load ptr, ptr %734, align 8, !tbaa !5
  %736 = invoke noundef ptr @_ZNK7glslang13TIntermediate11getTreeRootEv(ptr noundef nonnull align 8 dereferenceable(1784) %735)
          to label %737 unwind label %750

737:                                              ; preds = %731
  %738 = load ptr, ptr %736, align 8, !tbaa !9
  %739 = getelementptr inbounds ptr, ptr %738, i64 2
  %740 = load ptr, ptr %739, align 8
  invoke void %740(ptr noundef nonnull align 8 dereferenceable(32) %736, ptr noundef %97)
          to label %741 unwind label %750

741:                                              ; preds = %737
  call void @_ZN7glslang14TLiveTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(232) %97) #6
  call void @llvm.lifetime.end.p0(i64 232, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #6
  br label %756

742:                                              ; preds = %690
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %14, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %15, align 4
  br label %755

746:                                              ; preds = %710
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %14, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %15, align 4
  br label %754

750:                                              ; preds = %737, %731
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %14, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %15, align 4
  call void @_ZN7glslang14TLiveTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(232) %97) #6
  br label %754

754:                                              ; preds = %750, %746
  call void @llvm.lifetime.end.p0(i64 232, ptr %97) #6
  br label %755

755:                                              ; preds = %754, %742
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #6
  br label %767

756:                                              ; preds = %741, %684
  br label %757

757:                                              ; preds = %756
  %758 = load i64, ptr %91, align 8, !tbaa !40
  %759 = add i64 %758, 1
  store i64 %759, ptr %91, align 8, !tbaa !40
  br label %680, !llvm.loop !55

760:                                              ; preds = %683
  %761 = getelementptr inbounds %"class.glslang::TGlslIoMapper", ptr %98, i32 0, i32 5
  %762 = load i8, ptr %761, align 8, !tbaa !11, !range !22, !noundef !23
  %763 = trunc i8 %762 to i1
  %764 = xor i1 %763, true
  store i1 %764, ptr %4, align 1
  store i32 1, ptr %17, align 4
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #6
  %765 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %12, i32 0, i32 0
  %766 = getelementptr inbounds %"class.std::vector.125", ptr %765, i64 14
  br label %770

767:                                              ; preds = %755, %678, %498, %478, %452, %151
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #6
  %768 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %12, i32 0, i32 0
  %769 = getelementptr inbounds %"class.std::vector.125", ptr %768, i64 14
  br label %777

770:                                              ; preds = %770, %760
  %771 = phi ptr [ %766, %760 ], [ %772, %770 ]
  %772 = getelementptr inbounds %"class.std::vector.125", ptr %771, i64 -1
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %772) #6
  %773 = icmp eq ptr %772, %765
  br i1 %773, label %774, label %770

774:                                              ; preds = %770
  call void @llvm.lifetime.end.p0(i64 336, ptr %12) #6
  %775 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %11, i32 0, i32 0
  %776 = getelementptr inbounds %"class.std::vector.125", ptr %775, i64 14
  br label %784

777:                                              ; preds = %777, %767
  %778 = phi ptr [ %769, %767 ], [ %779, %777 ]
  %779 = getelementptr inbounds %"class.std::vector.125", ptr %778, i64 -1
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %779) #6
  %780 = icmp eq ptr %779, %768
  br i1 %780, label %781, label %777

781:                                              ; preds = %777
  call void @llvm.lifetime.end.p0(i64 336, ptr %12) #6
  %782 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %11, i32 0, i32 0
  %783 = getelementptr inbounds %"class.std::vector.125", ptr %782, i64 14
  br label %789

784:                                              ; preds = %784, %774
  %785 = phi ptr [ %776, %774 ], [ %786, %784 ]
  %786 = getelementptr inbounds %"class.std::vector.125", ptr %785, i64 -1
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %786) #6
  %787 = icmp eq ptr %786, %775
  br i1 %787, label %788, label %784

788:                                              ; preds = %784
  call void @llvm.lifetime.end.p0(i64 336, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 368, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 144, ptr %8) #6
  br label %795

789:                                              ; preds = %789, %781
  %790 = phi ptr [ %783, %781 ], [ %791, %789 ]
  %791 = getelementptr inbounds %"class.std::vector.125", ptr %790, i64 -1
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %791) #6
  %792 = icmp eq ptr %791, %782
  br i1 %792, label %793, label %789

793:                                              ; preds = %789
  call void @llvm.lifetime.end.p0(i64 336, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 368, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 144, ptr %8) #6
  br label %797

794:                                              ; preds = %3
  store i1 false, ptr %4, align 1
  br label %795

795:                                              ; preds = %794, %788
  %796 = load i1, ptr %4, align 1
  ret i1 %796

797:                                              ; preds = %793
  %798 = load ptr, ptr %14, align 8
  %799 = load i32, ptr %15, align 4
  %800 = insertvalue { ptr, i32 } poison, ptr %798, 0
  %801 = insertvalue { ptr, i32 } %800, i32 %799, 1
  resume { ptr, i32 } %801

802:                                              ; preds = %673, %628
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang16TSymbolValidaterC2ERNS_14TIoMapResolverER9TInfoSinkPPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISC_ESaISt4pairIKSC_SD_EEESM_SM_Rb8EProfilei(ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(1), i32 noundef, i32 noundef) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i32 } @"_ZSt8for_eachISt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS6_13TVarEntryInfoEEEZNS6_13TGlslIoMapper5doMapEPNS6_14TIoMapResolverER9TInfoSinkE3$_0ET0_T_SL_SK_"(ptr, ptr, ptr, i32) #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_1EvT_SF_T0_"(ptr, ptr) #4

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i32 } @"_ZSt8for_eachISt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS6_13TVarEntryInfoEEEZNS6_13TGlslIoMapper5doMapEPNS6_14TIoMapResolverER9TInfoSinkE3$_2ET0_T_SL_SK_"(ptr, ptr, ptr, i32) #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_3EvT_SF_T0_"(ptr, ptr) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7glslang16TSymbolValidaterclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(88)) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i32 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_4ET0_T_SG_SF_"(ptr, ptr, ptr, i32) #2

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i32 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_5ET0_T_SG_SF_"(ptr, ptr, ptr, i32) #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_6EvT_SF_T0_"(ptr, ptr) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7glslang23TResolverUniformAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(88)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_7EvT_SF_T0_"(ptr, ptr) #4

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

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

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

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

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

declare noundef i32 @_ZN7glslang13TIntermediate16getBaseAlignmentERKNS_5TTypeERiS4_NS_14TLayoutPackingEb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i1 noundef zeroext) #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_8ET_SF_SF_T0_"(ptr, ptr, ptr) #4

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

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

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i64 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_9ET0_T_SG_SF_"(ptr, ptr, ptr, i64) #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !14, i64 456}
!12 = !{!"_ZTSN7glslang13TGlslIoMapperE", !13, i64 0, !7, i64 8, !7, i64 120, !7, i64 232, !7, i64 344, !14, i64 456, !15, i64 460, !16, i64 464, !17, i64 472, !16, i64 512, !21, i64 516}
!13 = !{!"_ZTSN7glslang9TIoMapperE"}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"_ZTS8EProfile", !7, i64 0}
!16 = !{!"int", !7, i64 0}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEE", !18, i64 0, !20, i64 16, !7, i64 24}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE12_Alloc_hiderE", !19, i64 0, !6, i64 8}
!19 = !{!"_ZTSN7glslang14pool_allocatorIcEE", !6, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"_ZTSN7glslang14TLayoutPackingE", !7, i64 0}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!12, !15, i64 460}
!25 = !{!12, !16, i64 464}
!26 = !{!16, !16, i64 0}
!27 = !{!28, !16, i64 8}
!28 = !{!"_ZTSZN7glslang13TGlslIoMapper5doMapEPNS_14TIoMapResolverER9TInfoSinkE3$_0", !6, i64 0, !16, i64 8}
!29 = !{!30, !16, i64 8}
!30 = !{!"_ZTSZN7glslang13TGlslIoMapper5doMapEPNS_14TIoMapResolverER9TInfoSinkE3$_2", !6, i64 0, !16, i64 8}
!31 = !{!32, !6, i64 0}
!32 = !{!"_ZTSZN7glslang13TGlslIoMapper5doMapEPNS_14TIoMapResolverER9TInfoSinkE3$_4", !6, i64 0, !16, i64 8}
!33 = !{!32, !16, i64 8}
!34 = !{!35, !6, i64 0}
!35 = !{!"_ZTSZN7glslang13TGlslIoMapper5doMapEPNS_14TIoMapResolverER9TInfoSinkE3$_5", !6, i64 0, !16, i64 8}
!36 = !{!35, !16, i64 8}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}
!39 = !{!14, !14, i64 0}
!40 = !{!20, !20, i64 0}
!41 = !{!42, !6, i64 48}
!42 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoEE", !17, i64 0, !43, i64 40}
!43 = !{!"_ZTSN7glslang13TVarEntryInfoE", !44, i64 0, !6, i64 8, !14, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !45, i64 40}
!44 = !{!"long long", !7, i64 0}
!45 = !{!"_ZTS11EShLanguage", !7, i64 0}
!46 = !{!12, !21, i64 516}
!47 = !{!12, !16, i64 512}
!48 = distinct !{!48, !38}
!49 = !{!50, !6, i64 0}
!50 = !{!"_ZTSZN7glslang13TGlslIoMapper5doMapEPNS_14TIoMapResolverER9TInfoSinkE3$_8", !6, i64 0}
!51 = distinct !{!51, !38}
!52 = !{!53, !6, i64 0}
!53 = !{!"_ZTSZN7glslang13TGlslIoMapper5doMapEPNS_14TIoMapResolverER9TInfoSinkE3$_9", !6, i64 0, !20, i64 8}
!54 = !{!53, !20, i64 8}
!55 = distinct !{!55, !38}


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

%"struct.glslang::TResolverUniformAdaptor" = type { i32, ptr, ptr, ptr, [14 x ptr] }
%"struct.glslang::TResolverInOutAdaptor" = type { i32, ptr, ptr, ptr }
%"struct.glslang::TSymbolValidater" = type { [14 x ptr], [14 x ptr], [14 x ptr], ptr, ptr, ptr, i32, i32 }
%"class.std::vector.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = type { %"struct.std::_Vector_base<glslang::TVarLivePair, std::allocator<glslang::TVarLivePair>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TVarLivePair, std::allocator<glslang::TVarLivePair>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TVarLivePair, std::allocator<glslang::TVarLivePair>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TVarLivePair, std::allocator<glslang::TVarLivePair>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.165" = type { ptr }
%"struct.std::_Rb_tree_iterator.162" = type { ptr }
%"struct.glslang::TVarLivePair" = type { %"struct.std::pair.163" }
%"struct.std::pair.163" = type { %"class.std::__cxx11::basic_string.105", %"struct.glslang::TVarEntryInfo" }
%"class.std::__cxx11::basic_string.105" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider", i64, %union.anon.106 }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider" = type { %"class.glslang::pool_allocator", ptr }
%"class.glslang::pool_allocator" = type { ptr }
%union.anon.106 = type { i64, [8 x i8] }
%"struct.glslang::TVarEntryInfo" = type { i64, ptr, i8, i32, i32, i32, i32, i32, i32 }
%"class.__gnu_cxx::__normal_iterator.190" = type { ptr }
%"class.glslang::TVarSetTraverser" = type { %"class.glslang::TLiveTraverser.base", ptr, ptr, ptr }
%"class.glslang::TLiveTraverser.base" = type <{ %"class.glslang::TIntermTraverser", %"class.std::__cxx11::list.134", ptr, %"class.std::unordered_set.139", %"class.std::unordered_set.139", i8 }>
%"class.glslang::TIntermTraverser" = type { ptr, i8, i8, i8, i8, i32, i32, %"class.glslang::TVector.130" }
%"class.glslang::TVector.130" = type { %"class.std::vector.131" }
%"class.std::vector.131" = type { %"struct.std::_Vector_base.132" }
%"struct.std::_Vector_base.132" = 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.133", %"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl_data" }
%"class.glslang::pool_allocator.133" = type { ptr }
%"struct.std::_Vector_base<TIntermNode *, glslang::pool_allocator<TIntermNode *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::list.134" = type { %"class.std::__cxx11::_List_base.135" }
%"class.std::__cxx11::_List_base.135" = type { %"struct.std::__cxx11::_List_base<glslang::TIntermAggregate *, std::allocator<glslang::TIntermAggregate *>>::_List_impl" }
%"struct.std::__cxx11::_List_base<glslang::TIntermAggregate *, std::allocator<glslang::TIntermAggregate *>>::_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 }
%"class.std::unordered_set.139" = type { %"class.std::_Hashtable.140" }
%"class.std::_Hashtable.140" = 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 }

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoEED2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang23TResolverUniformAdaptorC2E11EShLanguageRNS_14TIoMapResolverEPPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISB_ESaISt4pairIKSB_SC_EEER9TInfoSinkRb(ptr noundef nonnull align 8 dereferenceable(144), i32 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang21TResolverInOutAdaptorC2E11EShLanguageRNS_14TIoMapResolverER9TInfoSinkRb(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7glslang21TResolverInOutAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang16TVarSetTraverserC2ERKNS_13TIntermediateERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISB_ESaISt4pairIKSB_SC_EEESL_SL_(ptr noundef nonnull align 8 dereferenceable(232), ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang14TLiveTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(201)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7glslang13TGlslIoMapper5doMapEPNS_14TIoMapResolverER9TInfoSink(ptr noundef nonnull align 8 dereferenceable(520) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(80) %2) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"struct.glslang::TResolverUniformAdaptor", align 8
  %5 = alloca %"struct.glslang::TResolverInOutAdaptor", align 8
  %6 = alloca %"struct.glslang::TSymbolValidater", align 8
  %7 = alloca [14 x %"class.std::vector.125"], align 16
  %8 = alloca [14 x %"class.std::vector.125"], align 16
  %9 = alloca %"class.std::vector.125", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %18 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %19 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %20 = alloca %"struct.glslang::TVarLivePair", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %25 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %26 = alloca %"struct.std::_Rb_tree_iterator.162", align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.165", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator.190", align 8
  %32 = alloca %"class.glslang::TVarSetTraverser", align 8
  %33 = load ptr, ptr %1, align 8, !tbaa !5
  %34 = getelementptr inbounds i8, ptr %33, i64 120
  %35 = load ptr, ptr %34, align 8
  tail call void %35(ptr noundef nonnull align 8 dereferenceable(8) %1, i32 noundef 14)
  %36 = getelementptr inbounds i8, ptr %0, i64 456
  %37 = load i8, ptr %36, align 8, !tbaa !8, !range !21, !noundef !22
  %38 = trunc nuw i8 %37 to i1
  br i1 %38, label %347, label %39

39:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %4) #6
  %40 = getelementptr inbounds i8, ptr %0, i64 232
  call void @_ZN7glslang23TResolverUniformAdaptorC2E11EShLanguageRNS_14TIoMapResolverEPPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISB_ESaISt4pairIKSB_SC_EEER9TInfoSinkRb(ptr noundef nonnull align 8 dereferenceable(144) %4, i32 noundef 14, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull %40, ptr noundef nonnull align 8 dereferenceable(80) %2, ptr noundef nonnull align 1 dereferenceable(1) %36)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  call void @_ZN7glslang21TResolverInOutAdaptorC2E11EShLanguageRNS_14TIoMapResolverER9TInfoSinkRb(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 14, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(80) %2, ptr noundef nonnull align 1 dereferenceable(1) %36)
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %6) #6
  %41 = getelementptr inbounds i8, ptr %0, i64 8
  %42 = getelementptr inbounds i8, ptr %0, i64 120
  %43 = getelementptr inbounds i8, ptr %0, i64 460
  %44 = load i32, ptr %43, align 4, !tbaa !23
  %45 = getelementptr inbounds i8, ptr %0, i64 464
  %46 = load i32, ptr %45, align 8, !tbaa !24
  call void @_ZN7glslang16TSymbolValidaterC2ERNS_14TIoMapResolverER9TInfoSinkPPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISC_ESaISt4pairIKSC_SD_EEESM_SM_Rb8EProfilei(ptr noundef nonnull align 8 dereferenceable(368) %6, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(80) %2, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %40, ptr noundef nonnull align 1 dereferenceable(1) %36, i32 noundef %44, i32 noundef %46)
  call void @llvm.lifetime.start.p0(i64 336, ptr nonnull %7) #6
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #6
  %.ptr.1 = getelementptr inbounds i8, ptr %7, i64 24
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1) #6
  %.ptr.2 = getelementptr inbounds i8, ptr %7, i64 48
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.2) #6
  %.ptr.3 = getelementptr inbounds i8, ptr %7, i64 72
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.3) #6
  %.ptr.4 = getelementptr inbounds i8, ptr %7, i64 96
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.4) #6
  %.ptr.5 = getelementptr inbounds i8, ptr %7, i64 120
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.5) #6
  %.ptr.6 = getelementptr inbounds i8, ptr %7, i64 144
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.6) #6
  %.ptr.7 = getelementptr inbounds i8, ptr %7, i64 168
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.7) #6
  %.ptr.8 = getelementptr inbounds i8, ptr %7, i64 192
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.8) #6
  %.ptr.9 = getelementptr inbounds i8, ptr %7, i64 216
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.9) #6
  %.ptr.10 = getelementptr inbounds i8, ptr %7, i64 240
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.10) #6
  %.ptr.11 = getelementptr inbounds i8, ptr %7, i64 264
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.11) #6
  %.ptr.12 = getelementptr inbounds i8, ptr %7, i64 288
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.12) #6
  %.ptr.13 = getelementptr inbounds i8, ptr %7, i64 312
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.13) #6
  call void @llvm.lifetime.start.p0(i64 336, ptr nonnull %8) #6
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  %.ptr152.1 = getelementptr inbounds i8, ptr %8, i64 24
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.1) #6
  %.ptr152.2 = getelementptr inbounds i8, ptr %8, i64 48
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.2) #6
  %.ptr152.3 = getelementptr inbounds i8, ptr %8, i64 72
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.3) #6
  %.ptr152.4 = getelementptr inbounds i8, ptr %8, i64 96
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.4) #6
  %.ptr152.5 = getelementptr inbounds i8, ptr %8, i64 120
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.5) #6
  %.ptr152.6 = getelementptr inbounds i8, ptr %8, i64 144
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.6) #6
  %.ptr152.7 = getelementptr inbounds i8, ptr %8, i64 168
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.7) #6
  %.ptr152.8 = getelementptr inbounds i8, ptr %8, i64 192
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.8) #6
  %.ptr152.9 = getelementptr inbounds i8, ptr %8, i64 216
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.9) #6
  %.ptr152.10 = getelementptr inbounds i8, ptr %8, i64 240
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.10) #6
  %.ptr152.11 = getelementptr inbounds i8, ptr %8, i64 264
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.11) #6
  %.ptr152.12 = getelementptr inbounds i8, ptr %8, i64 288
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.12) #6
  %.ptr152.13 = getelementptr inbounds i8, ptr %8, i64 312
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr152.13) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #6
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  %47 = load ptr, ptr %1, align 8, !tbaa !5
  %48 = getelementptr inbounds i8, ptr %47, i64 112
  %49 = load ptr, ptr %48, align 8
  invoke void %49(ptr noundef nonnull align 8 dereferenceable(8) %1, i32 noundef 14)
          to label %.preheader174 unwind label %53

50:                                               ; preds = %144
  %51 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  %52 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_6EvT_SF_T0_"(ptr %51, ptr %52)
          to label %145 unwind label %53

53:                                               ; preds = %166, %._crit_edge197, %50, %39
  %54 = landingpad { ptr, i32 }
          cleanup
  br label %320

.preheader174:                                    ; preds = %39, %144
  %indvars.iv = phi i64 [ %indvars.iv.next, %144 ], [ 0, %39 ]
  %55 = getelementptr inbounds [14 x ptr], ptr %41, i64 0, i64 %indvars.iv
  %56 = load ptr, ptr %55, align 8, !tbaa !25
  %.not164 = icmp eq ptr %56, null
  br i1 %.not164, label %125, label %57

57:                                               ; preds = %.preheader174
  %58 = trunc nuw nsw i64 %indvars.iv to i32
  call void @_ZN7glslang21TResolverInOutAdaptor8setStageE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef %58)
  %59 = load ptr, ptr %55, align 8, !tbaa !25
  %60 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %59) #6
  %61 = load ptr, ptr %55, align 8, !tbaa !25
  %62 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %61) #6
  %63 = invoke { ptr, i32 } @"_ZSt8for_eachISt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS6_13TVarEntryInfoEEEZNS6_13TGlslIoMapper5doMapEPNS6_14TIoMapResolverER9TInfoSinkE3$_0ET0_T_SL_SK_"(ptr %60, ptr %62, ptr nonnull %7, i32 %58)
          to label %64 unwind label %86

64:                                               ; preds = %57
  %65 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %7, i64 0, i64 %indvars.iv
  %66 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #6
  %67 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #6
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_1EvT_SF_T0_"(ptr %66, ptr %67)
          to label %68 unwind label %86

68:                                               ; preds = %64
  %69 = getelementptr inbounds [14 x ptr], ptr %42, i64 0, i64 %indvars.iv
  %70 = load ptr, ptr %69, align 8, !tbaa !25
  %71 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %70) #6
  %72 = load ptr, ptr %69, align 8, !tbaa !25
  %73 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %72) #6
  %74 = invoke { ptr, i32 } @"_ZSt8for_eachISt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS6_13TVarEntryInfoEEEZNS6_13TGlslIoMapper5doMapEPNS6_14TIoMapResolverER9TInfoSinkE3$_2ET0_T_SL_SK_"(ptr %71, ptr %73, ptr nonnull %8, i32 %58)
          to label %75 unwind label %86

75:                                               ; preds = %68
  %76 = getelementptr inbounds [14 x %"class.std::vector.125"], ptr %8, i64 0, i64 %indvars.iv
  %77 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #6
  %78 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #6
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_3EvT_SF_T0_"(ptr %77, ptr %78)
          to label %79 unwind label %86

79:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  %80 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #6
  store ptr %80, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  %81 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #6
  store ptr %81, ptr %11, align 8
  %82 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #6
  br i1 %82, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %89, %79
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  %83 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #6
  store ptr %83, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  %84 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #6
  store ptr %84, ptr %13, align 8
  %85 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  br i1 %85, label %.lr.ph180, label %._crit_edge181

86:                                               ; preds = %121, %._crit_edge187, %75, %68, %64, %57
  %87 = landingpad { ptr, i32 }
          cleanup
  br label %320

.lr.ph:                                           ; preds = %79, %89
  %88 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  invoke void @_ZN7glslang16TSymbolValidaterclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(368) %6, ptr noundef nonnull align 8 dereferenceable(88) %88)
          to label %89 unwind label %92

89:                                               ; preds = %.lr.ph
  %90 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #6
  %91 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #6
  br i1 %91, label %.lr.ph, label %._crit_edge

92:                                               ; preds = %.lr.ph
  %93 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %320

._crit_edge181:                                   ; preds = %98, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  %94 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #6
  store ptr %94, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  %95 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #6
  store ptr %95, ptr %15, align 8
  %96 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  br i1 %96, label %.lr.ph183, label %._crit_edge184

.lr.ph180:                                        ; preds = %._crit_edge, %98
  %97 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #6
  invoke void @_ZN7glslang21TResolverInOutAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(88) %97)
          to label %98 unwind label %101

98:                                               ; preds = %.lr.ph180
  %99 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #6
  %100 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  br i1 %100, label %.lr.ph180, label %._crit_edge181

101:                                              ; preds = %.lr.ph180
  %102 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  br label %320

._crit_edge184:                                   ; preds = %107, %._crit_edge181
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  %103 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #6
  store ptr %103, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  %104 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #6
  store ptr %104, ptr %17, align 8
  %105 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  br i1 %105, label %.lr.ph186, label %._crit_edge187

.lr.ph183:                                        ; preds = %._crit_edge181, %107
  %106 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #6
  invoke void @_ZN7glslang16TSymbolValidaterclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(368) %6, ptr noundef nonnull align 8 dereferenceable(88) %106)
          to label %107 unwind label %110

107:                                              ; preds = %.lr.ph183
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #6
  %109 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #6
  br i1 %109, label %.lr.ph183, label %._crit_edge184

110:                                              ; preds = %.lr.ph183
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  br label %320

._crit_edge187:                                   ; preds = %116, %._crit_edge184
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  %112 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #6
  %113 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #6
  %114 = invoke { ptr, i32 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_4ET0_T_SG_SF_"(ptr %112, ptr %113, ptr nonnull %0, i32 %58)
          to label %121 unwind label %86

.lr.ph186:                                        ; preds = %._crit_edge184, %116
  %115 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  invoke void @_ZN7glslang21TResolverInOutAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(88) %115)
          to label %116 unwind label %119

116:                                              ; preds = %.lr.ph186
  %117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  %118 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  br i1 %118, label %.lr.ph186, label %._crit_edge187

119:                                              ; preds = %.lr.ph186
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  br label %320

121:                                              ; preds = %._crit_edge187
  %122 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #6
  %123 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %76) #6
  %124 = invoke { ptr, i32 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_5ET0_T_SG_SF_"(ptr %122, ptr %123, ptr nonnull %0, i32 %58)
          to label %125 unwind label %86

125:                                              ; preds = %121, %.preheader174
  %126 = getelementptr inbounds [14 x ptr], ptr %40, i64 0, i64 %indvars.iv
  %127 = load ptr, ptr %126, align 8, !tbaa !25
  %.not165 = icmp eq ptr %127, null
  br i1 %.not165, label %144, label %128

128:                                              ; preds = %125
  %129 = trunc nuw nsw i64 %indvars.iv to i32
  call void @_ZN7glslang23TResolverUniformAdaptor8setStageE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(144) %4, i32 noundef %129)
  %130 = load ptr, ptr %126, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  %131 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %130) #6
  store ptr %131, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #6
  %132 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %130) #6
  store ptr %132, ptr %19, align 8
  %133 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEESE_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #6
  br i1 %133, label %.lr.ph189, label %._crit_edge190

._crit_edge190:                                   ; preds = %136, %128
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  br label %144

.lr.ph189:                                        ; preds = %128, %136
  %134 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %20) #6
  invoke void @_ZN7glslang12TVarLivePairC2ERKSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(88) %20, ptr noundef nonnull align 8 dereferenceable(88) %134)
          to label %135 unwind label %139

135:                                              ; preds = %.lr.ph189
  invoke void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(88) %20)
          to label %136 unwind label %141

136:                                              ; preds = %135
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoEED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #6
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %20) #6
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  %138 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEESE_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #6
  br i1 %138, label %.lr.ph189, label %._crit_edge190

139:                                              ; preds = %.lr.ph189
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %143

141:                                              ; preds = %135
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoEED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #6
  br label %143

143:                                              ; preds = %141, %139
  %.pn166 = phi { ptr, i32 } [ %142, %141 ], [ %140, %139 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  br label %320

144:                                              ; preds = %125, %._crit_edge190
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 14
  br i1 %exitcond.not, label %50, label %.preheader174, !llvm.loop !26

145:                                              ; preds = %50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  %146 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  store ptr %146, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  %147 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  store ptr %147, ptr %22, align 8
  %148 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #6
  br i1 %148, label %.lr.ph193, label %._crit_edge194

._crit_edge194:                                   ; preds = %153, %145
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #6
  %149 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  store ptr %149, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #6
  %150 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  store ptr %150, ptr %24, align 8
  %151 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  br i1 %151, label %.lr.ph196, label %._crit_edge197

.lr.ph193:                                        ; preds = %145, %153
  %152 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #6
  invoke void @_ZN7glslang16TSymbolValidaterclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(368) %6, ptr noundef nonnull align 8 dereferenceable(88) %152)
          to label %153 unwind label %156

153:                                              ; preds = %.lr.ph193
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #6
  %155 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #6
  br i1 %155, label %.lr.ph193, label %._crit_edge194

156:                                              ; preds = %.lr.ph193
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  br label %320

._crit_edge197:                                   ; preds = %161, %._crit_edge194
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  %158 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  %159 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_7EvT_SF_T0_"(ptr %158, ptr %159)
          to label %166 unwind label %53

.lr.ph196:                                        ; preds = %._crit_edge194, %161
  %160 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #6
  invoke void @_ZN7glslang23TResolverUniformAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(144) %4, ptr noundef nonnull align 8 dereferenceable(88) %160)
          to label %161 unwind label %164

161:                                              ; preds = %.lr.ph196
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #6
  %163 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  br i1 %163, label %.lr.ph196, label %._crit_edge197

164:                                              ; preds = %.lr.ph196
  %165 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  br label %320

166:                                              ; preds = %._crit_edge197
  %167 = load ptr, ptr %1, align 8, !tbaa !5
  %168 = getelementptr inbounds i8, ptr %167, i64 120
  %169 = load ptr, ptr %168, align 8
  invoke void %169(ptr noundef nonnull align 8 dereferenceable(8) %1, i32 noundef 14)
          to label %170 unwind label %53

170:                                              ; preds = %166
  %171 = getelementptr inbounds i8, ptr %0, i64 472
  %172 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(40) %171) #6
  %.not = icmp eq i64 %172, 0
  br i1 %.not, label %256, label %.preheader173

.preheader173:                                    ; preds = %170
  %173 = getelementptr inbounds i8, ptr %0, i64 344
  %174 = getelementptr inbounds i8, ptr %4, i64 32
  %175 = getelementptr inbounds i8, ptr %0, i64 516
  %176 = getelementptr inbounds i8, ptr %0, i64 512
  br label %178

177:                                              ; preds = %242
  br i1 %.4140, label %.preheader, label %256

178:                                              ; preds = %.preheader173, %242
  %.0136199 = phi i1 [ false, %.preheader173 ], [ %.4140, %242 ]
  %.0141198 = phi i64 [ 0, %.preheader173 ], [ %243, %242 ]
  %179 = getelementptr inbounds [14 x ptr], ptr %173, i64 0, i64 %.0141198
  %180 = load ptr, ptr %179, align 8, !tbaa !25
  %.not157 = icmp eq ptr %180, null
  br i1 %.not157, label %242, label %181

181:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #6
  %182 = getelementptr inbounds ptr, ptr %174, i64 %.0141198
  %183 = load ptr, ptr %182, align 8, !tbaa !25
  %184 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE4findERSC_(ptr noundef nonnull align 8 dereferenceable(48) %183, ptr noundef nonnull align 8 dereferenceable(40) %171)
          to label %185 unwind label %189

185:                                              ; preds = %181
  store ptr %184, ptr %25, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #6
  %186 = load ptr, ptr %182, align 8, !tbaa !25
  %187 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoESt4lessIS7_ESaISt4pairIKS7_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %186) #6
  store ptr %187, ptr %26, align 8
  %188 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEESE_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  br i1 %188, label %240, label %191

189:                                              ; preds = %181
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %241

191:                                              ; preds = %185
  %192 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #6
  %193 = getelementptr inbounds i8, ptr %192, i64 48
  %194 = load ptr, ptr %193, align 8, !tbaa !28
  %195 = load ptr, ptr %194, align 8, !tbaa !5
  %196 = getelementptr inbounds i8, ptr %195, i64 264
  %197 = load ptr, ptr %196, align 8
  %198 = invoke noundef nonnull align 8 dereferenceable(72) ptr %197(ptr noundef nonnull align 8 dereferenceable(176) %194)
          to label %199 unwind label %201

199:                                              ; preds = %191
  %200 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9isUniformEv(ptr noundef nonnull align 8 dereferenceable(72) %198)
  br i1 %200, label %203, label %240

201:                                              ; preds = %191
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %241

203:                                              ; preds = %199
  %204 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #6
  %205 = getelementptr inbounds i8, ptr %204, i64 48
  %206 = load ptr, ptr %205, align 8, !tbaa !28
  %207 = load ptr, ptr %206, align 8, !tbaa !5
  %208 = getelementptr inbounds i8, ptr %207, i64 248
  %209 = load ptr, ptr %208, align 8
  %210 = invoke noundef nonnull align 8 dereferenceable(144) ptr %209(ptr noundef nonnull align 8 dereferenceable(176) %206)
          to label %211 unwind label %235

211:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  %212 = load i32, ptr %175, align 4, !tbaa !33
  %213 = getelementptr inbounds i8, ptr %198, i64 8
  %214 = load i64, ptr %213, align 8
  %215 = and i64 %214, 4035225266123964416
  %216 = icmp eq i64 %215, 576460752303423488
  %217 = invoke noundef i32 @_ZN7glslang13TIntermediate16getBaseAlignmentERKNS_5TTypeERiS4_NS_14TLayoutPackingEb(ptr noundef nonnull align 8 dereferenceable(144) %210, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, i32 noundef %212, i1 noundef zeroext %216)
          to label %218 unwind label %237

218:                                              ; preds = %211
  %219 = load i32, ptr %27, align 4, !tbaa !34
  %220 = load i32, ptr %176, align 8, !tbaa !35
  %.not163 = icmp sgt i32 %219, %220
  br i1 %.not163, label %239, label %221

221:                                              ; preds = %218
  call void @_ZN7glslang10TQualifier15setBlockStorageENS_18TBlockStorageClassE(ptr noundef nonnull align 8 dereferenceable(72) %198, i32 noundef 2)
  %222 = load i32, ptr %175, align 4, !tbaa !33
  %223 = getelementptr inbounds i8, ptr %198, i64 16
  %224 = trunc i32 %222 to i8
  %225 = load i8, ptr %223, align 8
  %226 = and i8 %224, 15
  %227 = and i8 %225, -16
  %228 = or disjoint i8 %227, %226
  store i8 %228, ptr %223, align 8
  %229 = getelementptr inbounds i8, ptr %198, i64 28
  %230 = load i64, ptr %229, align 4
  %231 = and i64 %230, -4161537
  %232 = or disjoint i64 %231, 2064384
  store i64 %232, ptr %229, align 4
  %233 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS5_13TVarEntryInfoEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #6
  %234 = getelementptr inbounds i8, ptr %233, i64 40
  call void @_ZN7glslang13TVarEntryInfo19clearNewAssignmentsEv(ptr noundef nonnull align 8 dereferenceable(48) %234)
  br label %239

235:                                              ; preds = %203
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %241

237:                                              ; preds = %211
  %238 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  br label %241

239:                                              ; preds = %221, %218
  %.1137 = phi i1 [ true, %221 ], [ %.0136199, %218 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  br label %240

240:                                              ; preds = %239, %199, %185
  %.3139 = phi i1 [ %.0136199, %185 ], [ %.1137, %239 ], [ %.0136199, %199 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  br label %242

241:                                              ; preds = %201, %237, %235, %189
  %.pn158.pn.pn = phi { ptr, i32 } [ %190, %189 ], [ %202, %201 ], [ %238, %237 ], [ %236, %235 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  br label %320

242:                                              ; preds = %240, %178
  %.4140 = phi i1 [ %.3139, %240 ], [ %.0136199, %178 ]
  %243 = add nuw nsw i64 %.0141198, 1
  %exitcond202.not = icmp eq i64 %243, 14
  br i1 %exitcond202.not, label %177, label %178, !llvm.loop !36

.preheader:                                       ; preds = %177, %255
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  %244 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  %245 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  %246 = invoke ptr @"_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_8ET_SF_SF_T0_"(ptr %244, ptr %245, ptr nonnull %0)
          to label %247 unwind label %253

247:                                              ; preds = %.preheader
  store ptr %246, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #6
  %248 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  store ptr %248, ptr %30, align 8
  %249 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  br i1 %249, label %250, label %.thread

.thread:                                          ; preds = %247
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  br label %256

250:                                              ; preds = %247
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN7glslang12TVarLivePairESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %29) #6
  %251 = load ptr, ptr %31, align 8
  %252 = invoke ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr %251)
          to label %255 unwind label %253

253:                                              ; preds = %250, %.preheader
  %254 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  br label %320

255:                                              ; preds = %250
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  br label %.preheader

256:                                              ; preds = %.thread, %177, %170
  %257 = getelementptr inbounds i8, ptr %0, i64 344
  %258 = getelementptr inbounds i8, ptr %4, i64 32
  br label %289

259:                                              ; preds = %318
  %260 = load i8, ptr %36, align 8, !tbaa !8, !range !21, !noundef !22
  %261 = trunc nuw i8 %260 to i1
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #6
  %262 = getelementptr inbounds i8, ptr %8, i64 312
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %262) #6
  %263 = getelementptr inbounds i8, ptr %8, i64 288
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %263) #6
  %264 = getelementptr inbounds i8, ptr %8, i64 264
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %264) #6
  %265 = getelementptr inbounds i8, ptr %8, i64 240
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %265) #6
  %266 = getelementptr inbounds i8, ptr %8, i64 216
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %266) #6
  %267 = getelementptr inbounds i8, ptr %8, i64 192
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %267) #6
  %268 = getelementptr inbounds i8, ptr %8, i64 168
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %268) #6
  %269 = getelementptr inbounds i8, ptr %8, i64 144
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %269) #6
  %270 = getelementptr inbounds i8, ptr %8, i64 120
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %270) #6
  %271 = getelementptr inbounds i8, ptr %8, i64 96
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %271) #6
  %272 = getelementptr inbounds i8, ptr %8, i64 72
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %272) #6
  %273 = getelementptr inbounds i8, ptr %8, i64 48
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %273) #6
  %274 = getelementptr inbounds i8, ptr %8, i64 24
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %274) #6
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.end.p0(i64 336, ptr nonnull %8) #6
  %275 = getelementptr inbounds i8, ptr %7, i64 312
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %275) #6
  %276 = getelementptr inbounds i8, ptr %7, i64 288
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %276) #6
  %277 = getelementptr inbounds i8, ptr %7, i64 264
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %277) #6
  %278 = getelementptr inbounds i8, ptr %7, i64 240
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %278) #6
  %279 = getelementptr inbounds i8, ptr %7, i64 216
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %279) #6
  %280 = getelementptr inbounds i8, ptr %7, i64 192
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %280) #6
  %281 = getelementptr inbounds i8, ptr %7, i64 168
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %281) #6
  %282 = getelementptr inbounds i8, ptr %7, i64 144
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %282) #6
  %283 = getelementptr inbounds i8, ptr %7, i64 120
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %283) #6
  %284 = getelementptr inbounds i8, ptr %7, i64 96
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %284) #6
  %285 = getelementptr inbounds i8, ptr %7, i64 72
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %285) #6
  %286 = getelementptr inbounds i8, ptr %7, i64 48
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %286) #6
  %287 = getelementptr inbounds i8, ptr %7, i64 24
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %287) #6
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #6
  %288 = xor i1 %261, true
  call void @llvm.lifetime.end.p0(i64 336, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %4) #6
  br label %347

289:                                              ; preds = %256, %318
  %.0142200 = phi i64 [ 0, %256 ], [ %319, %318 ]
  %290 = getelementptr inbounds [14 x ptr], ptr %257, i64 0, i64 %.0142200
  %291 = load ptr, ptr %290, align 8, !tbaa !25
  %.not154 = icmp eq ptr %291, null
  br i1 %.not154, label %318, label %292

292:                                              ; preds = %289
  %293 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  %294 = call ptr @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  %295 = invoke { ptr, i64 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_9ET0_T_SG_SF_"(ptr %293, ptr %294, ptr nonnull %258, i64 %.0142200)
          to label %296 unwind label %311

296:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 232, ptr nonnull %32) #6
  %297 = load ptr, ptr %290, align 8, !tbaa !25
  %298 = getelementptr inbounds [14 x ptr], ptr %41, i64 0, i64 %.0142200
  %299 = load ptr, ptr %298, align 8, !tbaa !25
  %300 = getelementptr inbounds [14 x ptr], ptr %42, i64 0, i64 %.0142200
  %301 = load ptr, ptr %300, align 8, !tbaa !25
  %302 = getelementptr inbounds [14 x ptr], ptr %258, i64 0, i64 %.0142200
  %303 = load ptr, ptr %302, align 8, !tbaa !25
  invoke void @_ZN7glslang16TVarSetTraverserC2ERKNS_13TIntermediateERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISB_ESaISt4pairIKSB_SC_EEESL_SL_(ptr noundef nonnull align 8 dereferenceable(232) %32, ptr noundef nonnull align 8 dereferenceable(1784) %297, ptr noundef nonnull align 8 dereferenceable(48) %299, ptr noundef nonnull align 8 dereferenceable(48) %301, ptr noundef nonnull align 8 dereferenceable(48) %303)
          to label %304 unwind label %313

304:                                              ; preds = %296
  %305 = load ptr, ptr %290, align 8, !tbaa !25
  %306 = call noundef ptr @_ZNK7glslang13TIntermediate11getTreeRootEv(ptr noundef nonnull align 8 dereferenceable(1784) %305)
  %307 = load ptr, ptr %306, align 8, !tbaa !5
  %308 = getelementptr inbounds i8, ptr %307, i64 16
  %309 = load ptr, ptr %308, align 8
  invoke void %309(ptr noundef nonnull align 8 dereferenceable(32) %306, ptr noundef nonnull %32)
          to label %310 unwind label %315

310:                                              ; preds = %304
  call void @_ZN7glslang14TLiveTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(232) %32) #6
  call void @llvm.lifetime.end.p0(i64 232, ptr nonnull %32) #6
  br label %318

311:                                              ; preds = %292
  %312 = landingpad { ptr, i32 }
          cleanup
  br label %320

313:                                              ; preds = %296
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %317

315:                                              ; preds = %304
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7glslang14TLiveTraverserD2Ev(ptr noundef nonnull align 8 dereferenceable(232) %32) #6
  br label %317

317:                                              ; preds = %315, %313
  %.pn = phi { ptr, i32 } [ %316, %315 ], [ %314, %313 ]
  call void @llvm.lifetime.end.p0(i64 232, ptr nonnull %32) #6
  br label %320

318:                                              ; preds = %289, %310
  %319 = add nuw nsw i64 %.0142200, 1
  %exitcond203.not = icmp eq i64 %319, 14
  br i1 %exitcond203.not, label %259, label %289, !llvm.loop !37

320:                                              ; preds = %311, %317, %241, %253, %86, %92, %101, %110, %119, %143, %164, %156, %53
  %.pn168.pn = phi { ptr, i32 } [ %157, %156 ], [ %165, %164 ], [ %54, %53 ], [ %93, %92 ], [ %102, %101 ], [ %111, %110 ], [ %120, %119 ], [ %.pn166, %143 ], [ %87, %86 ], [ %.pn158.pn.pn, %241 ], [ %254, %253 ], [ %.pn, %317 ], [ %312, %311 ]
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #6
  %321 = getelementptr inbounds i8, ptr %8, i64 312
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %321) #6
  %322 = getelementptr inbounds i8, ptr %8, i64 288
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %322) #6
  %323 = getelementptr inbounds i8, ptr %8, i64 264
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %323) #6
  %324 = getelementptr inbounds i8, ptr %8, i64 240
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %324) #6
  %325 = getelementptr inbounds i8, ptr %8, i64 216
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %325) #6
  %326 = getelementptr inbounds i8, ptr %8, i64 192
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %326) #6
  %327 = getelementptr inbounds i8, ptr %8, i64 168
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %327) #6
  %328 = getelementptr inbounds i8, ptr %8, i64 144
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %328) #6
  %329 = getelementptr inbounds i8, ptr %8, i64 120
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %329) #6
  %330 = getelementptr inbounds i8, ptr %8, i64 96
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %330) #6
  %331 = getelementptr inbounds i8, ptr %8, i64 72
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %331) #6
  %332 = getelementptr inbounds i8, ptr %8, i64 48
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %332) #6
  %333 = getelementptr inbounds i8, ptr %8, i64 24
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %333) #6
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.end.p0(i64 336, ptr nonnull %8) #6
  %334 = getelementptr inbounds i8, ptr %7, i64 312
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %334) #6
  %335 = getelementptr inbounds i8, ptr %7, i64 288
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %335) #6
  %336 = getelementptr inbounds i8, ptr %7, i64 264
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %336) #6
  %337 = getelementptr inbounds i8, ptr %7, i64 240
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %337) #6
  %338 = getelementptr inbounds i8, ptr %7, i64 216
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %338) #6
  %339 = getelementptr inbounds i8, ptr %7, i64 192
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %339) #6
  %340 = getelementptr inbounds i8, ptr %7, i64 168
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %340) #6
  %341 = getelementptr inbounds i8, ptr %7, i64 144
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %341) #6
  %342 = getelementptr inbounds i8, ptr %7, i64 120
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %342) #6
  %343 = getelementptr inbounds i8, ptr %7, i64 96
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %343) #6
  %344 = getelementptr inbounds i8, ptr %7, i64 72
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %344) #6
  %345 = getelementptr inbounds i8, ptr %7, i64 48
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %345) #6
  %346 = getelementptr inbounds i8, ptr %7, i64 24
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %346) #6
  call void @_ZNSt6vectorIN7glslang12TVarLivePairESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #6
  call void @llvm.lifetime.end.p0(i64 336, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %4) #6
  resume { ptr, i32 } %.pn168.pn

347:                                              ; preds = %3, %259
  %.0 = phi i1 [ %288, %259 ], [ false, %3 ]
  ret i1 %.0
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang16TSymbolValidaterC2ERNS_14TIoMapResolverER9TInfoSinkPPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoESt4lessISC_ESaISt4pairIKSC_SD_EEESM_SM_Rb8EProfilei(ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(1), i32 noundef, i32 noundef) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i32 } @"_ZSt8for_eachISt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS6_13TVarEntryInfoEEEZNS6_13TGlslIoMapper5doMapEPNS6_14TIoMapResolverER9TInfoSinkE3$_0ET0_T_SL_SK_"(ptr, ptr, ptr, i32) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_1EvT_SF_T0_"(ptr, ptr) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i32 } @"_ZSt8for_eachISt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS6_13TVarEntryInfoEEEZNS6_13TGlslIoMapper5doMapEPNS6_14TIoMapResolverER9TInfoSinkE3$_2ET0_T_SL_SK_"(ptr, ptr, ptr, i32) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_3EvT_SF_T0_"(ptr, ptr) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7glslang16TSymbolValidaterclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i32 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_4ET0_T_SG_SF_"(ptr, ptr, ptr, i32) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i32 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_5ET0_T_SG_SF_"(ptr, ptr, ptr, i32) local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_6EvT_SF_T0_"(ptr, ptr) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7glslang23TResolverUniformAdaptorclERSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_13TVarEntryInfoEE(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_7EvT_SF_T0_"(ptr, ptr) local_unnamed_addr #4

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

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

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

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

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

declare noundef i32 @_ZN7glslang13TIntermediate16getBaseAlignmentERKNS_5TTypeERiS4_NS_14TLayoutPackingEb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i1 noundef zeroext) local_unnamed_addr #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden ptr @"_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_8ET_SF_SF_T0_"(ptr, ptr, ptr) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i64 } @"_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPN7glslang12TVarLivePairESt6vectorIS3_SaIS3_EEEEZNS2_13TGlslIoMapper5doMapEPNS2_14TIoMapResolverER9TInfoSinkE3$_9ET0_T_SG_SF_"(ptr, ptr, ptr, i64) local_unnamed_addr #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !12, i64 456}
!9 = !{!"_ZTSN7glslang13TGlslIoMapperE", !10, i64 0, !11, i64 8, !11, i64 120, !11, i64 232, !11, i64 344, !12, i64 456, !13, i64 460, !14, i64 464, !15, i64 472, !14, i64 512, !20, i64 516}
!10 = !{!"_ZTSN7glslang9TIoMapperE"}
!11 = !{!"omnipotent char", !7, i64 0}
!12 = !{!"bool", !11, i64 0}
!13 = !{!"_ZTS8EProfile", !11, i64 0}
!14 = !{!"int", !11, i64 0}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEE", !16, i64 0, !19, i64 16, !11, i64 24}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE12_Alloc_hiderE", !17, i64 0, !18, i64 8}
!17 = !{!"_ZTSN7glslang14pool_allocatorIcEE", !18, i64 0}
!18 = !{!"any pointer", !11, i64 0}
!19 = !{!"long", !11, i64 0}
!20 = !{!"_ZTSN7glslang14TLayoutPackingE", !11, i64 0}
!21 = !{i8 0, i8 2}
!22 = !{}
!23 = !{!9, !13, i64 460}
!24 = !{!9, !14, i64 464}
!25 = !{!18, !18, i64 0}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = !{!29, !18, i64 48}
!29 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_13TVarEntryInfoEE", !15, i64 0, !30, i64 40}
!30 = !{!"_ZTSN7glslang13TVarEntryInfoE", !31, i64 0, !18, i64 8, !12, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !14, i64 36, !32, i64 40}
!31 = !{!"long long", !11, i64 0}
!32 = !{!"_ZTS11EShLanguage", !11, i64 0}
!33 = !{!9, !20, i64 516}
!34 = !{!14, !14, i64 0}
!35 = !{!9, !14, i64 512}
!36 = distinct !{!36, !27}
!37 = distinct !{!37, !27}


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