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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.99" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.98" = type { ptr }
%"class.glslang::TIntermediate" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::list", i32, i32, %"struct.glslang::SpvVersion", ptr, %"class.std::set", %"class.glslang::MustBeAssigned", i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i32], [3 x i8], [3 x i32], i64, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, i32, ptr, ptr, i32, i8, i32, i32, i32, i32, i8, i8, i8, i32, i32, i32, i8, i8, i8, i32, i8, i32, i8, %"class.std::vector", i8, i8, i8, i32, i32, i32, i32, i8, %"struct.std::array", %"struct.std::array.9", %"class.std::vector.15", i8, i8, i8, i8, i8, i8, i8, %"class.std::set.20", i32, i8, i8, i8, i8, ptr, ptr, %"class.std::unordered_map", i32, %"class.glslang::TNumericFeatures", %"class.std::unordered_map.31", %"class.std::unordered_set", %"class.std::vector.64", [4 x %"class.std::vector.69"], [2 x %"class.std::vector.74"], %"class.std::set.20", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::map.79", %"class.glslang::TProcesses" }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<glslang::TCall, std::allocator<glslang::TCall>>::_List_impl" }
%"struct.std::__cxx11::_List_base<glslang::TCall, std::allocator<glslang::TCall>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"struct.glslang::SpvVersion" = type <{ i32, i32, i32, i32, i8, [3 x i8] }>
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.glslang::MustBeAssigned" = type <{ %struct.TBuiltInResource, i8, [3 x i8] }>
%struct.TBuiltInResource = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.TLimits }
%struct.TLimits = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<glslang::TXfbBuffer, std::allocator<glslang::TXfbBuffer>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TXfbBuffer, std::allocator<glslang::TXfbBuffer>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TXfbBuffer, std::allocator<glslang::TXfbBuffer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TXfbBuffer, std::allocator<glslang::TXfbBuffer>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::array" = type { [6 x i32] }
%"struct.std::array.9" = type { [6 x %"class.std::map"] }
%"class.std::map" = type { %"class.std::_Rb_tree.10" }
%"class.std::_Rb_tree.10" = type { %"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int>>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int>>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.glslang::TNumericFeatures" = type { i32 }
%"class.std::unordered_map.31" = type { %"class.std::_Hashtable.32" }
%"class.std::_Hashtable.32" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.45" }
%"class.std::_Hashtable.45" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.64" = type { %"struct.std::_Vector_base.65" }
%"struct.std::_Vector_base.65" = type { %"struct.std::_Vector_base<glslang::TOffsetRange, std::allocator<glslang::TOffsetRange>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TOffsetRange, std::allocator<glslang::TOffsetRange>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TOffsetRange, std::allocator<glslang::TOffsetRange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TOffsetRange, std::allocator<glslang::TOffsetRange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.69" = type { %"struct.std::_Vector_base.70" }
%"struct.std::_Vector_base.70" = type { %"struct.std::_Vector_base<glslang::TIoRange, std::allocator<glslang::TIoRange>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TIoRange, std::allocator<glslang::TIoRange>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TIoRange, std::allocator<glslang::TIoRange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TIoRange, std::allocator<glslang::TIoRange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.74" = type { %"struct.std::_Vector_base.75" }
%"struct.std::_Vector_base.75" = type { %"struct.std::_Vector_base<glslang::TRange, std::allocator<glslang::TRange>>::_Vector_impl" }
%"struct.std::_Vector_base<glslang::TRange, std::allocator<glslang::TRange>>::_Vector_impl" = type { %"struct.std::_Vector_base<glslang::TRange, std::allocator<glslang::TRange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<glslang::TRange, std::allocator<glslang::TRange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::set.20" = type { %"class.std::_Rb_tree.21" }
%"class.std::_Rb_tree.21" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::_Identity<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::_Identity<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::map.79" = type { %"class.std::_Rb_tree.80" }
%"class.std::_Rb_tree.80" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::TProcesses" = type { %"class.std::vector.15" }
%"struct.glslang::TXfbBuffer" = type <{ %"class.std::vector.74", i32, i32, i8, i8, i8, [5 x i8] }>
%"struct.std::pair" = type { i32, i32 }

@.str.6 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [114 x i8], align 1
@__PRETTY_FUNCTION__._ZN7glslang13TIntermediate10mergeModesER9TInfoSinkRS0_ = external hidden unnamed_addr constant [70 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [25 x i8], align 1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TIntermediate10mergeModesER9TInfoSinkRS0_(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull align 8 dereferenceable(1784) %2) #0 align 2 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %8 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i64, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %17 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.99", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.98", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.98", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.98", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.98", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %23 = load ptr, ptr %4, align 8
  %24 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 0
  %25 = load i32, ptr %24, align 8, !tbaa !9
  %26 = load ptr, ptr %6, align 8, !tbaa !5
  %27 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %26, i32 0, i32 0
  %28 = load i32, ptr %27, align 8, !tbaa !9
  %29 = icmp ne i32 %25, %28
  br i1 %29, label %30, label %32

30:                                               ; preds = %3
  %31 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %31, ptr noundef @.str.6, i32 noundef 14)
  br label %32

32:                                               ; preds = %30, %3
  %33 = call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %23)
  %34 = icmp eq i32 %33, 0
  br i1 %34, label %35, label %38

35:                                               ; preds = %32
  %36 = load ptr, ptr %6, align 8, !tbaa !5
  %37 = call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %36)
  call void @_ZN7glslang13TIntermediate9setSourceENS_9EShSourceE(ptr noundef nonnull align 8 dereferenceable(1784) %23, i32 noundef %37)
  br label %38

38:                                               ; preds = %35, %32
  %39 = call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %23)
  %40 = load ptr, ptr %6, align 8, !tbaa !5
  %41 = call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %40)
  %42 = icmp ne i32 %39, %41
  br i1 %42, label %43, label %45

43:                                               ; preds = %38
  %44 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %44, ptr noundef @.str.7, i32 noundef 14)
  br label %45

45:                                               ; preds = %43, %38
  %46 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 7
  %47 = load ptr, ptr %46, align 8, !tbaa !77
  %48 = icmp eq ptr %47, null
  br i1 %48, label %49, label %62

49:                                               ; preds = %45
  %50 = load ptr, ptr %6, align 8, !tbaa !5
  %51 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %50, i32 0, i32 4
  %52 = load i32, ptr %51, align 8, !tbaa !78
  %53 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 4
  store i32 %52, ptr %53, align 8, !tbaa !78
  %54 = load ptr, ptr %6, align 8, !tbaa !5
  %55 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %54, i32 0, i32 5
  %56 = load i32, ptr %55, align 4, !tbaa !79
  %57 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 5
  store i32 %56, ptr %57, align 4, !tbaa !79
  %58 = load ptr, ptr %6, align 8, !tbaa !5
  %59 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %58, i32 0, i32 8
  %60 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 8
  %61 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSERKS9_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(48) %59)
  br label %99

62:                                               ; preds = %45
  %63 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(1784) %23)
  %64 = zext i1 %63 to i32
  %65 = load ptr, ptr %6, align 8, !tbaa !5
  %66 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(1784) %65)
  %67 = zext i1 %66 to i32
  %68 = icmp ne i32 %64, %67
  br i1 %68, label %69, label %71

69:                                               ; preds = %62
  %70 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %70, ptr noundef @.str.8, i32 noundef 14)
  br label %79

71:                                               ; preds = %62
  %72 = load ptr, ptr %6, align 8, !tbaa !5
  %73 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %72, i32 0, i32 4
  %74 = load i32, ptr %73, align 8, !tbaa !78
  %75 = icmp eq i32 %74, 4
  br i1 %75, label %76, label %78

76:                                               ; preds = %71
  %77 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 4
  store i32 4, ptr %77, align 8, !tbaa !78
  br label %78

78:                                               ; preds = %76, %71
  br label %79

79:                                               ; preds = %78, %69
  %80 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 5
  %81 = load ptr, ptr %6, align 8, !tbaa !5
  %82 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %81, i32 0, i32 5
  %83 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %80, ptr noundef nonnull align 4 dereferenceable(4) %82)
  %84 = load i32, ptr %83, align 4, !tbaa !80
  %85 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 5
  store i32 %84, ptr %85, align 4, !tbaa !79
  %86 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 8
  %87 = load ptr, ptr %6, align 8, !tbaa !5
  %88 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %87, i32 0, i32 8
  %89 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %88) #6
  %90 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %7, i32 0, i32 0
  store ptr %89, ptr %90, align 8
  %91 = load ptr, ptr %6, align 8, !tbaa !5
  %92 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %91, i32 0, i32 8
  %93 = call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %92) #6
  %94 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %8, i32 0, i32 0
  store ptr %93, ptr %94, align 8
  %95 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %7, i32 0, i32 0
  %96 = load ptr, ptr %95, align 8
  %97 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %8, i32 0, i32 0
  %98 = load ptr, ptr %97, align 8
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE6insertISt23_Rb_tree_const_iteratorIS5_EEEvT_SD_(ptr noundef nonnull align 8 dereferenceable(48) %86, ptr %96, ptr %98)
  br label %99

99:                                               ; preds = %79, %49
  %100 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 6
  %101 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %100, i32 0, i32 0
  %102 = load ptr, ptr %6, align 8, !tbaa !5
  %103 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %102, i32 0, i32 6
  %104 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %103, i32 0, i32 0
  %105 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %101, ptr noundef nonnull align 4 dereferenceable(4) %104)
  %106 = load i32, ptr %105, align 4, !tbaa !80
  %107 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 6
  %108 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %107, i32 0, i32 0
  store i32 %106, ptr %108, align 8, !tbaa !81
  %109 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 6
  %110 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %109, i32 0, i32 1
  %111 = load ptr, ptr %6, align 8, !tbaa !5
  %112 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %111, i32 0, i32 6
  %113 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %112, i32 0, i32 1
  %114 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %110, ptr noundef nonnull align 4 dereferenceable(4) %113)
  %115 = load i32, ptr %114, align 4, !tbaa !80
  %116 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 6
  %117 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %116, i32 0, i32 1
  store i32 %115, ptr %117, align 4, !tbaa !82
  %118 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 6
  %119 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %118, i32 0, i32 2
  %120 = load ptr, ptr %6, align 8, !tbaa !5
  %121 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %120, i32 0, i32 6
  %122 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %121, i32 0, i32 2
  %123 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %119, ptr noundef nonnull align 4 dereferenceable(4) %122)
  %124 = load i32, ptr %123, align 4, !tbaa !80
  %125 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 6
  %126 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %125, i32 0, i32 2
  store i32 %124, ptr %126, align 8, !tbaa !83
  %127 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 6
  %128 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %127, i32 0, i32 3
  %129 = load ptr, ptr %6, align 8, !tbaa !5
  %130 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %129, i32 0, i32 6
  %131 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %130, i32 0, i32 3
  %132 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %128, ptr noundef nonnull align 4 dereferenceable(4) %131)
  %133 = load i32, ptr %132, align 4, !tbaa !80
  %134 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 6
  %135 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %134, i32 0, i32 3
  store i32 %133, ptr %135, align 4, !tbaa !84
  %136 = load ptr, ptr %6, align 8, !tbaa !5
  %137 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %136, i32 0, i32 6
  %138 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %137, i32 0, i32 4
  %139 = load i8, ptr %138, align 8, !tbaa !85, !range !86, !noundef !87
  %140 = trunc i8 %139 to i1
  br i1 %140, label %141, label %150

141:                                              ; preds = %99
  %142 = load ptr, ptr %6, align 8, !tbaa !5
  %143 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %142, i32 0, i32 6
  %144 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %143, i32 0, i32 4
  %145 = load i8, ptr %144, align 8, !tbaa !85, !range !86, !noundef !87
  %146 = trunc i8 %145 to i1
  %147 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 6
  %148 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %147, i32 0, i32 4
  %149 = zext i1 %146 to i8
  store i8 %149, ptr %148, align 8, !tbaa !85
  br label %150

150:                                              ; preds = %141, %99
  %151 = load ptr, ptr %6, align 8, !tbaa !5
  %152 = call noundef i32 @_ZNK7glslang13TIntermediate12getNumErrorsEv(ptr noundef nonnull align 8 dereferenceable(1784) %151)
  %153 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 11
  %154 = load i32, ptr %153, align 8, !tbaa !88
  %155 = add nsw i32 %154, %152
  store i32 %155, ptr %153, align 8, !tbaa !88
  %156 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 12
  %157 = load i32, ptr %156, align 4, !tbaa !89
  %158 = icmp sgt i32 %157, 1
  br i1 %158, label %164, label %159

159:                                              ; preds = %150
  %160 = load ptr, ptr %6, align 8, !tbaa !5
  %161 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %160, i32 0, i32 12
  %162 = load i32, ptr %161, align 4, !tbaa !89
  %163 = icmp sgt i32 %162, 1
  br i1 %163, label %164, label %166

164:                                              ; preds = %159, %150
  %165 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %165, ptr noundef @.str.9, i32 noundef 14)
  br label %166

166:                                              ; preds = %164, %159
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  %167 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 12
  %168 = load i32, ptr %167, align 4, !tbaa !89
  %169 = load ptr, ptr %6, align 8, !tbaa !5
  %170 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %169, i32 0, i32 12
  %171 = load i32, ptr %170, align 4, !tbaa !89
  %172 = add nsw i32 %168, %171
  store i32 %172, ptr %9, align 4, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  store i32 1, ptr %10, align 4, !tbaa !80
  %173 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10)
  %174 = load i32, ptr %173, align 4, !tbaa !80
  %175 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 12
  store i32 %174, ptr %175, align 4, !tbaa !89
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  %176 = load ptr, ptr %6, align 8, !tbaa !5
  %177 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %176, i32 0, i32 34
  %178 = load i32, ptr %177, align 8, !tbaa !90
  %179 = icmp ne i32 %178, -1
  br i1 %179, label %180, label %200

180:                                              ; preds = %166
  %181 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 34
  %182 = load i32, ptr %181, align 8, !tbaa !90
  %183 = icmp eq i32 %182, -1
  br i1 %183, label %184, label %189

184:                                              ; preds = %180
  %185 = load ptr, ptr %6, align 8, !tbaa !5
  %186 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %185, i32 0, i32 34
  %187 = load i32, ptr %186, align 8, !tbaa !90
  %188 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 34
  store i32 %187, ptr %188, align 8, !tbaa !90
  br label %199

189:                                              ; preds = %180
  %190 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 34
  %191 = load i32, ptr %190, align 8, !tbaa !90
  %192 = load ptr, ptr %6, align 8, !tbaa !5
  %193 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %192, i32 0, i32 34
  %194 = load i32, ptr %193, align 8, !tbaa !90
  %195 = icmp ne i32 %191, %194
  br i1 %195, label %196, label %198

196:                                              ; preds = %189
  %197 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %197, ptr noundef @.str.10, i32 noundef 14)
  br label %198

198:                                              ; preds = %196, %189
  br label %199

199:                                              ; preds = %198, %184
  br label %200

200:                                              ; preds = %199, %166
  %201 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 35
  %202 = load i32, ptr %201, align 4, !tbaa !91
  %203 = icmp eq i32 %202, -1
  br i1 %203, label %204, label %209

204:                                              ; preds = %200
  %205 = load ptr, ptr %6, align 8, !tbaa !5
  %206 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %205, i32 0, i32 35
  %207 = load i32, ptr %206, align 4, !tbaa !91
  %208 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 35
  store i32 %207, ptr %208, align 4, !tbaa !91
  br label %241

209:                                              ; preds = %200
  %210 = load ptr, ptr %6, align 8, !tbaa !5
  %211 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %210, i32 0, i32 35
  %212 = load i32, ptr %211, align 4, !tbaa !91
  %213 = icmp ne i32 %212, -1
  br i1 %213, label %214, label %240

214:                                              ; preds = %209
  %215 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 35
  %216 = load i32, ptr %215, align 4, !tbaa !91
  %217 = load ptr, ptr %6, align 8, !tbaa !5
  %218 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %217, i32 0, i32 35
  %219 = load i32, ptr %218, align 4, !tbaa !91
  %220 = icmp ne i32 %216, %219
  br i1 %220, label %221, label %240

221:                                              ; preds = %214
  %222 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 0
  %223 = load i32, ptr %222, align 8, !tbaa !9
  %224 = icmp eq i32 %223, 3
  br i1 %224, label %229, label %225

225:                                              ; preds = %221
  %226 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 0
  %227 = load i32, ptr %226, align 8, !tbaa !9
  %228 = icmp eq i32 %227, 13
  br i1 %228, label %229, label %231

229:                                              ; preds = %225, %221
  %230 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %230, ptr noundef @.str.11, i32 noundef 14)
  br label %239

231:                                              ; preds = %225
  %232 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 0
  %233 = load i32, ptr %232, align 8, !tbaa !9
  %234 = icmp eq i32 %233, 1
  br i1 %234, label %235, label %237

235:                                              ; preds = %231
  %236 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %236, ptr noundef @.str.12, i32 noundef 14)
  br label %238

237:                                              ; preds = %231
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.14, i32 noundef 220, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TIntermediate10mergeModesER9TInfoSinkRS0_) #7
  unreachable

238:                                              ; preds = %235
  br label %239

239:                                              ; preds = %238, %229
  br label %240

240:                                              ; preds = %239, %214, %209
  br label %241

241:                                              ; preds = %240, %204
  %242 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 57
  %243 = load i32, ptr %242, align 4, !tbaa !92
  %244 = icmp eq i32 %243, -1
  br i1 %244, label %245, label %250

245:                                              ; preds = %241
  %246 = load ptr, ptr %6, align 8, !tbaa !5
  %247 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %246, i32 0, i32 57
  %248 = load i32, ptr %247, align 4, !tbaa !92
  %249 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 57
  store i32 %248, ptr %249, align 4, !tbaa !92
  br label %266

250:                                              ; preds = %241
  %251 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 57
  %252 = load i32, ptr %251, align 4, !tbaa !92
  %253 = load ptr, ptr %6, align 8, !tbaa !5
  %254 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %253, i32 0, i32 57
  %255 = load i32, ptr %254, align 4, !tbaa !92
  %256 = icmp ne i32 %252, %255
  br i1 %256, label %257, label %265

257:                                              ; preds = %250
  %258 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 0
  %259 = load i32, ptr %258, align 8, !tbaa !9
  %260 = icmp eq i32 %259, 13
  br i1 %260, label %261, label %263

261:                                              ; preds = %257
  %262 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %262, ptr noundef @.str.15, i32 noundef 14)
  br label %264

263:                                              ; preds = %257
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.14, i32 noundef 228, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TIntermediate10mergeModesER9TInfoSinkRS0_) #7
  unreachable

264:                                              ; preds = %261
  br label %265

265:                                              ; preds = %264, %250
  br label %266

266:                                              ; preds = %265, %245
  %267 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 36
  %268 = load i32, ptr %267, align 8, !tbaa !93
  %269 = icmp eq i32 %268, 0
  br i1 %269, label %270, label %275

270:                                              ; preds = %266
  %271 = load ptr, ptr %6, align 8, !tbaa !5
  %272 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %271, i32 0, i32 36
  %273 = load i32, ptr %272, align 8, !tbaa !93
  %274 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 36
  store i32 %273, ptr %274, align 8, !tbaa !93
  br label %290

275:                                              ; preds = %266
  %276 = load ptr, ptr %6, align 8, !tbaa !5
  %277 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %276, i32 0, i32 36
  %278 = load i32, ptr %277, align 8, !tbaa !93
  %279 = icmp ne i32 %278, 0
  br i1 %279, label %280, label %289

280:                                              ; preds = %275
  %281 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 36
  %282 = load i32, ptr %281, align 8, !tbaa !93
  %283 = load ptr, ptr %6, align 8, !tbaa !5
  %284 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %283, i32 0, i32 36
  %285 = load i32, ptr %284, align 8, !tbaa !93
  %286 = icmp ne i32 %282, %285
  br i1 %286, label %287, label %289

287:                                              ; preds = %280
  %288 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %288, ptr noundef @.str.16, i32 noundef 14)
  br label %289

289:                                              ; preds = %287, %280, %275
  br label %290

290:                                              ; preds = %289, %270
  %291 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 37
  %292 = load i32, ptr %291, align 4, !tbaa !94
  %293 = icmp eq i32 %292, 0
  br i1 %293, label %294, label %299

294:                                              ; preds = %290
  %295 = load ptr, ptr %6, align 8, !tbaa !5
  %296 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %295, i32 0, i32 37
  %297 = load i32, ptr %296, align 4, !tbaa !94
  %298 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 37
  store i32 %297, ptr %298, align 4, !tbaa !94
  br label %314

299:                                              ; preds = %290
  %300 = load ptr, ptr %6, align 8, !tbaa !5
  %301 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %300, i32 0, i32 37
  %302 = load i32, ptr %301, align 4, !tbaa !94
  %303 = icmp ne i32 %302, 0
  br i1 %303, label %304, label %313

304:                                              ; preds = %299
  %305 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 37
  %306 = load i32, ptr %305, align 4, !tbaa !94
  %307 = load ptr, ptr %6, align 8, !tbaa !5
  %308 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %307, i32 0, i32 37
  %309 = load i32, ptr %308, align 4, !tbaa !94
  %310 = icmp ne i32 %306, %309
  br i1 %310, label %311, label %313

311:                                              ; preds = %304
  %312 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %312, ptr noundef @.str.17, i32 noundef 14)
  br label %313

313:                                              ; preds = %311, %304, %299
  br label %314

314:                                              ; preds = %313, %294
  %315 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 39
  %316 = load i8, ptr %315, align 1, !tbaa !95, !range !86, !noundef !87
  %317 = trunc i8 %316 to i1
  %318 = zext i1 %317 to i32
  %319 = load ptr, ptr %6, align 8, !tbaa !5
  %320 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %319, i32 0, i32 39
  %321 = load i8, ptr %320, align 1, !tbaa !95, !range !86, !noundef !87
  %322 = trunc i8 %321 to i1
  %323 = zext i1 %322 to i32
  %324 = icmp ne i32 %318, %323
  br i1 %324, label %336, label %325

325:                                              ; preds = %314
  %326 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 38
  %327 = load i8, ptr %326, align 8, !tbaa !96, !range !86, !noundef !87
  %328 = trunc i8 %327 to i1
  %329 = zext i1 %328 to i32
  %330 = load ptr, ptr %6, align 8, !tbaa !5
  %331 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %330, i32 0, i32 38
  %332 = load i8, ptr %331, align 8, !tbaa !96, !range !86, !noundef !87
  %333 = trunc i8 %332 to i1
  %334 = zext i1 %333 to i32
  %335 = icmp ne i32 %329, %334
  br i1 %335, label %336, label %338

336:                                              ; preds = %325, %314
  %337 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %337, ptr noundef @.str.18, i32 noundef 14)
  br label %338

338:                                              ; preds = %336, %325
  %339 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 41
  %340 = load i32, ptr %339, align 4, !tbaa !97
  %341 = icmp eq i32 %340, 0
  br i1 %341, label %342, label %347

342:                                              ; preds = %338
  %343 = load ptr, ptr %6, align 8, !tbaa !5
  %344 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %343, i32 0, i32 41
  %345 = load i32, ptr %344, align 4, !tbaa !97
  %346 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 41
  store i32 %345, ptr %346, align 4, !tbaa !97
  br label %357

347:                                              ; preds = %338
  %348 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 41
  %349 = load i32, ptr %348, align 4, !tbaa !97
  %350 = load ptr, ptr %6, align 8, !tbaa !5
  %351 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %350, i32 0, i32 41
  %352 = load i32, ptr %351, align 4, !tbaa !97
  %353 = icmp ne i32 %349, %352
  br i1 %353, label %354, label %356

354:                                              ; preds = %347
  %355 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %355, ptr noundef @.str.19, i32 noundef 14)
  br label %356

356:                                              ; preds = %354, %347
  br label %357

357:                                              ; preds = %356, %342
  %358 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 42
  %359 = load i32, ptr %358, align 8, !tbaa !98
  %360 = icmp eq i32 %359, 0
  br i1 %360, label %361, label %366

361:                                              ; preds = %357
  %362 = load ptr, ptr %6, align 8, !tbaa !5
  %363 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %362, i32 0, i32 42
  %364 = load i32, ptr %363, align 8, !tbaa !98
  %365 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 42
  store i32 %364, ptr %365, align 8, !tbaa !98
  br label %376

366:                                              ; preds = %357
  %367 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 42
  %368 = load i32, ptr %367, align 8, !tbaa !98
  %369 = load ptr, ptr %6, align 8, !tbaa !5
  %370 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %369, i32 0, i32 42
  %371 = load i32, ptr %370, align 8, !tbaa !98
  %372 = icmp ne i32 %368, %371
  br i1 %372, label %373, label %375

373:                                              ; preds = %366
  %374 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %374, ptr noundef @.str.20, i32 noundef 14)
  br label %375

375:                                              ; preds = %373, %366
  br label %376

376:                                              ; preds = %375, %361
  %377 = load ptr, ptr %6, align 8, !tbaa !5
  %378 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %377, i32 0, i32 44
  %379 = load i8, ptr %378, align 8, !tbaa !99, !range !86, !noundef !87
  %380 = trunc i8 %379 to i1
  br i1 %380, label %381, label %388

381:                                              ; preds = %376
  %382 = load ptr, ptr %6, align 8, !tbaa !5
  %383 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %382, i32 0, i32 44
  %384 = load i8, ptr %383, align 8, !tbaa !99, !range !86, !noundef !87
  %385 = trunc i8 %384 to i1
  %386 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 44
  %387 = zext i1 %385 to i8
  store i8 %387, ptr %386, align 8, !tbaa !99
  br label %388

388:                                              ; preds = %381, %376
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #6
  store i32 0, ptr %11, align 4, !tbaa !80
  br label %389

389:                                              ; preds = %475, %388
  %390 = load i32, ptr %11, align 4, !tbaa !80
  %391 = icmp slt i32 %390, 3
  br i1 %391, label %393, label %392

392:                                              ; preds = %389
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  br label %478

393:                                              ; preds = %389
  %394 = load ptr, ptr %6, align 8, !tbaa !5
  %395 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %394, i32 0, i32 22
  %396 = load i32, ptr %11, align 4, !tbaa !80
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds [3 x i8], ptr %395, i64 0, i64 %397
  %399 = load i8, ptr %398, align 1, !tbaa !100, !range !86, !noundef !87
  %400 = trunc i8 %399 to i1
  br i1 %400, label %401, label %440

401:                                              ; preds = %393
  %402 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 22
  %403 = load i32, ptr %11, align 4, !tbaa !80
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds [3 x i8], ptr %402, i64 0, i64 %404
  %406 = load i8, ptr %405, align 1, !tbaa !100, !range !86, !noundef !87
  %407 = trunc i8 %406 to i1
  br i1 %407, label %423, label %408

408:                                              ; preds = %401
  %409 = load ptr, ptr %6, align 8, !tbaa !5
  %410 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %409, i32 0, i32 21
  %411 = load i32, ptr %11, align 4, !tbaa !80
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds [3 x i32], ptr %410, i64 0, i64 %412
  %414 = load i32, ptr %413, align 4, !tbaa !80
  %415 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 21
  %416 = load i32, ptr %11, align 4, !tbaa !80
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds [3 x i32], ptr %415, i64 0, i64 %417
  store i32 %414, ptr %418, align 4, !tbaa !80
  %419 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 22
  %420 = load i32, ptr %11, align 4, !tbaa !80
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds [3 x i8], ptr %419, i64 0, i64 %421
  store i8 1, ptr %422, align 1, !tbaa !100
  br label %439

423:                                              ; preds = %401
  %424 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 21
  %425 = load i32, ptr %11, align 4, !tbaa !80
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds [3 x i32], ptr %424, i64 0, i64 %426
  %428 = load i32, ptr %427, align 4, !tbaa !80
  %429 = load ptr, ptr %6, align 8, !tbaa !5
  %430 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %429, i32 0, i32 21
  %431 = load i32, ptr %11, align 4, !tbaa !80
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds [3 x i32], ptr %430, i64 0, i64 %432
  %434 = load i32, ptr %433, align 4, !tbaa !80
  %435 = icmp ne i32 %428, %434
  br i1 %435, label %436, label %438

436:                                              ; preds = %423
  %437 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %437, ptr noundef @.str.21, i32 noundef 14)
  br label %438

438:                                              ; preds = %436, %423
  br label %439

439:                                              ; preds = %438, %408
  br label %440

440:                                              ; preds = %439, %393
  %441 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 23
  %442 = load i32, ptr %11, align 4, !tbaa !80
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds [3 x i32], ptr %441, i64 0, i64 %443
  %445 = load i32, ptr %444, align 4, !tbaa !80
  %446 = icmp eq i32 %445, -1
  br i1 %446, label %447, label %458

447:                                              ; preds = %440
  %448 = load ptr, ptr %6, align 8, !tbaa !5
  %449 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %448, i32 0, i32 23
  %450 = load i32, ptr %11, align 4, !tbaa !80
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds [3 x i32], ptr %449, i64 0, i64 %451
  %453 = load i32, ptr %452, align 4, !tbaa !80
  %454 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 23
  %455 = load i32, ptr %11, align 4, !tbaa !80
  %456 = sext i32 %455 to i64
  %457 = getelementptr inbounds [3 x i32], ptr %454, i64 0, i64 %456
  store i32 %453, ptr %457, align 4, !tbaa !80
  br label %474

458:                                              ; preds = %440
  %459 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 23
  %460 = load i32, ptr %11, align 4, !tbaa !80
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds [3 x i32], ptr %459, i64 0, i64 %461
  %463 = load i32, ptr %462, align 4, !tbaa !80
  %464 = load ptr, ptr %6, align 8, !tbaa !5
  %465 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %464, i32 0, i32 23
  %466 = load i32, ptr %11, align 4, !tbaa !80
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds [3 x i32], ptr %465, i64 0, i64 %467
  %469 = load i32, ptr %468, align 4, !tbaa !80
  %470 = icmp ne i32 %463, %469
  br i1 %470, label %471, label %473

471:                                              ; preds = %458
  %472 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %472, ptr noundef @.str.22, i32 noundef 14)
  br label %473

473:                                              ; preds = %471, %458
  br label %474

474:                                              ; preds = %473, %447
  br label %475

475:                                              ; preds = %474
  %476 = load i32, ptr %11, align 4, !tbaa !80
  %477 = add nsw i32 %476, 1
  store i32 %477, ptr %11, align 4, !tbaa !80
  br label %389, !llvm.loop !101

478:                                              ; preds = %392
  %479 = load ptr, ptr %6, align 8, !tbaa !5
  %480 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %479, i32 0, i32 45
  %481 = load i8, ptr %480, align 1, !tbaa !103, !range !86, !noundef !87
  %482 = trunc i8 %481 to i1
  br i1 %482, label %483, label %490

483:                                              ; preds = %478
  %484 = load ptr, ptr %6, align 8, !tbaa !5
  %485 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %484, i32 0, i32 45
  %486 = load i8, ptr %485, align 1, !tbaa !103, !range !86, !noundef !87
  %487 = trunc i8 %486 to i1
  %488 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 45
  %489 = zext i1 %487 to i8
  store i8 %489, ptr %488, align 1, !tbaa !103
  br label %490

490:                                              ; preds = %483, %478
  %491 = load ptr, ptr %6, align 8, !tbaa !5
  %492 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %491, i32 0, i32 46
  %493 = load i8, ptr %492, align 2, !tbaa !104, !range !86, !noundef !87
  %494 = trunc i8 %493 to i1
  br i1 %494, label %495, label %502

495:                                              ; preds = %490
  %496 = load ptr, ptr %6, align 8, !tbaa !5
  %497 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %496, i32 0, i32 46
  %498 = load i8, ptr %497, align 2, !tbaa !104, !range !86, !noundef !87
  %499 = trunc i8 %498 to i1
  %500 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 46
  %501 = zext i1 %499 to i8
  store i8 %501, ptr %500, align 2, !tbaa !104
  br label %502

502:                                              ; preds = %495, %490
  %503 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 47
  %504 = load i32, ptr %503, align 4, !tbaa !105
  %505 = icmp eq i32 %504, 0
  br i1 %505, label %506, label %511

506:                                              ; preds = %502
  %507 = load ptr, ptr %6, align 8, !tbaa !5
  %508 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %507, i32 0, i32 47
  %509 = load i32, ptr %508, align 4, !tbaa !105
  %510 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 47
  store i32 %509, ptr %510, align 4, !tbaa !105
  br label %521

511:                                              ; preds = %502
  %512 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 47
  %513 = load i32, ptr %512, align 4, !tbaa !105
  %514 = load ptr, ptr %6, align 8, !tbaa !5
  %515 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %514, i32 0, i32 47
  %516 = load i32, ptr %515, align 4, !tbaa !105
  %517 = icmp ne i32 %513, %516
  br i1 %517, label %518, label %520

518:                                              ; preds = %511
  %519 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %519, ptr noundef @.str.23, i32 noundef 14)
  br label %520

520:                                              ; preds = %518, %511
  br label %521

521:                                              ; preds = %520, %506
  %522 = load ptr, ptr %6, align 8, !tbaa !5
  %523 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %522, i32 0, i32 20
  %524 = load i8, ptr %523, align 1, !tbaa !106, !range !86, !noundef !87
  %525 = trunc i8 %524 to i1
  br i1 %525, label %526, label %533

526:                                              ; preds = %521
  %527 = load ptr, ptr %6, align 8, !tbaa !5
  %528 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %527, i32 0, i32 20
  %529 = load i8, ptr %528, align 1, !tbaa !106, !range !86, !noundef !87
  %530 = trunc i8 %529 to i1
  %531 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 20
  %532 = zext i1 %530 to i8
  store i8 %532, ptr %531, align 1, !tbaa !106
  br label %533

533:                                              ; preds = %526, %521
  %534 = load ptr, ptr %6, align 8, !tbaa !5
  %535 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %534, i32 0, i32 48
  %536 = load i8, ptr %535, align 8, !tbaa !107, !range !86, !noundef !87
  %537 = trunc i8 %536 to i1
  br i1 %537, label %538, label %545

538:                                              ; preds = %533
  %539 = load ptr, ptr %6, align 8, !tbaa !5
  %540 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %539, i32 0, i32 48
  %541 = load i8, ptr %540, align 8, !tbaa !107, !range !86, !noundef !87
  %542 = trunc i8 %541 to i1
  %543 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 48
  %544 = zext i1 %542 to i8
  store i8 %544, ptr %543, align 8, !tbaa !107
  br label %545

545:                                              ; preds = %538, %533
  %546 = load ptr, ptr %6, align 8, !tbaa !5
  %547 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %546, i32 0, i32 49
  %548 = load i32, ptr %547, align 4, !tbaa !108
  %549 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 49
  %550 = load i32, ptr %549, align 4, !tbaa !108
  %551 = or i32 %550, %548
  store i32 %551, ptr %549, align 4, !tbaa !108
  %552 = load ptr, ptr %6, align 8, !tbaa !5
  %553 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %552, i32 0, i32 50
  %554 = load i8, ptr %553, align 8, !tbaa !109, !range !86, !noundef !87
  %555 = trunc i8 %554 to i1
  br i1 %555, label %556, label %563

556:                                              ; preds = %545
  %557 = load ptr, ptr %6, align 8, !tbaa !5
  %558 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %557, i32 0, i32 50
  %559 = load i8, ptr %558, align 8, !tbaa !109, !range !86, !noundef !87
  %560 = trunc i8 %559 to i1
  %561 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 50
  %562 = zext i1 %560 to i8
  store i8 %562, ptr %561, align 8, !tbaa !109
  br label %563

563:                                              ; preds = %556, %545
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  store i64 0, ptr %12, align 8, !tbaa !110
  br label %564

564:                                              ; preds = %659, %563
  %565 = load i64, ptr %12, align 8, !tbaa !110
  %566 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 51
  %567 = call noundef i64 @_ZNKSt6vectorIN7glslang10TXfbBufferESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %566) #6
  %568 = icmp ult i64 %565, %567
  br i1 %568, label %570, label %569

569:                                              ; preds = %564
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  br label %662

570:                                              ; preds = %564
  %571 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 51
  %572 = load i64, ptr %12, align 8, !tbaa !110
  %573 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %571, i64 noundef %572) #6
  %574 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %573, i32 0, i32 1
  %575 = load i32, ptr %574, align 8, !tbaa !111
  %576 = icmp eq i32 %575, 16383
  br i1 %576, label %577, label %588

577:                                              ; preds = %570
  %578 = load ptr, ptr %6, align 8, !tbaa !5
  %579 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %578, i32 0, i32 51
  %580 = load i64, ptr %12, align 8, !tbaa !110
  %581 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %579, i64 noundef %580) #6
  %582 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %581, i32 0, i32 1
  %583 = load i32, ptr %582, align 8, !tbaa !111
  %584 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 51
  %585 = load i64, ptr %12, align 8, !tbaa !110
  %586 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %584, i64 noundef %585) #6
  %587 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %586, i32 0, i32 1
  store i32 %583, ptr %587, align 8, !tbaa !111
  br label %604

588:                                              ; preds = %570
  %589 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 51
  %590 = load i64, ptr %12, align 8, !tbaa !110
  %591 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %589, i64 noundef %590) #6
  %592 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %591, i32 0, i32 1
  %593 = load i32, ptr %592, align 8, !tbaa !111
  %594 = load ptr, ptr %6, align 8, !tbaa !5
  %595 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %594, i32 0, i32 51
  %596 = load i64, ptr %12, align 8, !tbaa !110
  %597 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %595, i64 noundef %596) #6
  %598 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %597, i32 0, i32 1
  %599 = load i32, ptr %598, align 8, !tbaa !111
  %600 = icmp ne i32 %593, %599
  br i1 %600, label %601, label %603

601:                                              ; preds = %588
  %602 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %23, ptr noundef nonnull align 8 dereferenceable(80) %602, ptr noundef @.str.24, i32 noundef 14)
  br label %603

603:                                              ; preds = %601, %588
  br label %604

604:                                              ; preds = %603, %577
  %605 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 51
  %606 = load i64, ptr %12, align 8, !tbaa !110
  %607 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %605, i64 noundef %606) #6
  %608 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %607, i32 0, i32 2
  %609 = load ptr, ptr %6, align 8, !tbaa !5
  %610 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %609, i32 0, i32 51
  %611 = load i64, ptr %12, align 8, !tbaa !110
  %612 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %610, i64 noundef %611) #6
  %613 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %612, i32 0, i32 2
  %614 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %608, ptr noundef nonnull align 4 dereferenceable(4) %613)
  %615 = load i32, ptr %614, align 4, !tbaa !80
  %616 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 51
  %617 = load i64, ptr %12, align 8, !tbaa !110
  %618 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %616, i64 noundef %617) #6
  %619 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %618, i32 0, i32 2
  store i32 %615, ptr %619, align 4, !tbaa !117
  %620 = load ptr, ptr %6, align 8, !tbaa !5
  %621 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %620, i32 0, i32 51
  %622 = load i64, ptr %12, align 8, !tbaa !110
  %623 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %621, i64 noundef %622) #6
  %624 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %623, i32 0, i32 3
  %625 = load i8, ptr %624, align 8, !tbaa !118, !range !86, !noundef !87
  %626 = trunc i8 %625 to i1
  br i1 %626, label %627, label %632

627:                                              ; preds = %604
  %628 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 51
  %629 = load i64, ptr %12, align 8, !tbaa !110
  %630 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %628, i64 noundef %629) #6
  %631 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %630, i32 0, i32 3
  store i8 1, ptr %631, align 8, !tbaa !118
  br label %632

632:                                              ; preds = %627, %604
  %633 = load ptr, ptr %6, align 8, !tbaa !5
  %634 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %633, i32 0, i32 51
  %635 = load i64, ptr %12, align 8, !tbaa !110
  %636 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %634, i64 noundef %635) #6
  %637 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %636, i32 0, i32 4
  %638 = load i8, ptr %637, align 1, !tbaa !119, !range !86, !noundef !87
  %639 = trunc i8 %638 to i1
  br i1 %639, label %640, label %645

640:                                              ; preds = %632
  %641 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 51
  %642 = load i64, ptr %12, align 8, !tbaa !110
  %643 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %641, i64 noundef %642) #6
  %644 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %643, i32 0, i32 4
  store i8 1, ptr %644, align 1, !tbaa !119
  br label %645

645:                                              ; preds = %640, %632
  %646 = load ptr, ptr %6, align 8, !tbaa !5
  %647 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %646, i32 0, i32 51
  %648 = load i64, ptr %12, align 8, !tbaa !110
  %649 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %647, i64 noundef %648) #6
  %650 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %649, i32 0, i32 5
  %651 = load i8, ptr %650, align 2, !tbaa !120, !range !86, !noundef !87
  %652 = trunc i8 %651 to i1
  br i1 %652, label %653, label %658

653:                                              ; preds = %645
  %654 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 51
  %655 = load i64, ptr %12, align 8, !tbaa !110
  %656 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %654, i64 noundef %655) #6
  %657 = getelementptr inbounds %"struct.glslang::TXfbBuffer", ptr %656, i32 0, i32 5
  store i8 1, ptr %657, align 2, !tbaa !120
  br label %658

658:                                              ; preds = %653, %645
  br label %659

659:                                              ; preds = %658
  %660 = load i64, ptr %12, align 8, !tbaa !110
  %661 = add i64 %660, 1
  store i64 %661, ptr %12, align 8, !tbaa !110
  br label %564, !llvm.loop !121

662:                                              ; preds = %569
  %663 = load ptr, ptr %6, align 8, !tbaa !5
  %664 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %663, i32 0, i32 52
  %665 = load i8, ptr %664, align 8, !tbaa !122, !range !86, !noundef !87
  %666 = trunc i8 %665 to i1
  br i1 %666, label %667, label %674

667:                                              ; preds = %662
  %668 = load ptr, ptr %6, align 8, !tbaa !5
  %669 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %668, i32 0, i32 52
  %670 = load i8, ptr %669, align 8, !tbaa !122, !range !86, !noundef !87
  %671 = trunc i8 %670 to i1
  %672 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 52
  %673 = zext i1 %671 to i8
  store i8 %673, ptr %672, align 8, !tbaa !122
  br label %674

674:                                              ; preds = %667, %662
  %675 = load ptr, ptr %6, align 8, !tbaa !5
  %676 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %675, i32 0, i32 53
  %677 = load i8, ptr %676, align 1, !tbaa !123, !range !86, !noundef !87
  %678 = trunc i8 %677 to i1
  br i1 %678, label %679, label %686

679:                                              ; preds = %674
  %680 = load ptr, ptr %6, align 8, !tbaa !5
  %681 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %680, i32 0, i32 53
  %682 = load i8, ptr %681, align 1, !tbaa !123, !range !86, !noundef !87
  %683 = trunc i8 %682 to i1
  %684 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 53
  %685 = zext i1 %683 to i8
  store i8 %685, ptr %684, align 1, !tbaa !123
  br label %686

686:                                              ; preds = %679, %674
  %687 = load ptr, ptr %6, align 8, !tbaa !5
  %688 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %687, i32 0, i32 54
  %689 = load i8, ptr %688, align 2, !tbaa !124, !range !86, !noundef !87
  %690 = trunc i8 %689 to i1
  br i1 %690, label %691, label %698

691:                                              ; preds = %686
  %692 = load ptr, ptr %6, align 8, !tbaa !5
  %693 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %692, i32 0, i32 54
  %694 = load i8, ptr %693, align 2, !tbaa !124, !range !86, !noundef !87
  %695 = trunc i8 %694 to i1
  %696 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 54
  %697 = zext i1 %695 to i8
  store i8 %697, ptr %696, align 2, !tbaa !124
  br label %698

698:                                              ; preds = %691, %686
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  store i32 0, ptr %13, align 4, !tbaa !80
  br label %699

699:                                              ; preds = %724, %698
  %700 = load i32, ptr %13, align 4, !tbaa !80
  %701 = zext i32 %700 to i64
  %702 = load ptr, ptr %6, align 8, !tbaa !5
  %703 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %702, i32 0, i32 60
  %704 = call noundef i64 @_ZNKSt5arrayIjLm6EE4sizeEv(ptr noundef nonnull align 4 dereferenceable(24) %703) #8
  %705 = icmp ult i64 %701, %704
  br i1 %705, label %707, label %706

706:                                              ; preds = %699
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  br label %727

707:                                              ; preds = %699
  %708 = load ptr, ptr %6, align 8, !tbaa !5
  %709 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %708, i32 0, i32 60
  %710 = load i32, ptr %13, align 4, !tbaa !80
  %711 = zext i32 %710 to i64
  %712 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIjLm6EEixEm(ptr noundef nonnull align 4 dereferenceable(24) %709, i64 noundef %711) #6
  %713 = load i32, ptr %712, align 4, !tbaa !80
  %714 = icmp ugt i32 %713, 0
  br i1 %714, label %715, label %723

715:                                              ; preds = %707
  %716 = load i32, ptr %13, align 4, !tbaa !80
  %717 = load ptr, ptr %6, align 8, !tbaa !5
  %718 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %717, i32 0, i32 60
  %719 = load i32, ptr %13, align 4, !tbaa !80
  %720 = zext i32 %719 to i64
  %721 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIjLm6EEixEm(ptr noundef nonnull align 4 dereferenceable(24) %718, i64 noundef %720) #6
  %722 = load i32, ptr %721, align 4, !tbaa !80
  call void @_ZN7glslang13TIntermediate15setShiftBindingENS_13TResourceTypeEj(ptr noundef nonnull align 8 dereferenceable(1784) %23, i32 noundef %716, i32 noundef %722)
  br label %723

723:                                              ; preds = %715, %707
  br label %724

724:                                              ; preds = %723
  %725 = load i32, ptr %13, align 4, !tbaa !80
  %726 = add i32 %725, 1
  store i32 %726, ptr %13, align 4, !tbaa !80
  br label %699, !llvm.loop !125

727:                                              ; preds = %706
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  store i32 0, ptr %14, align 4, !tbaa !80
  br label %728

728:                                              ; preds = %765, %727
  %729 = load i32, ptr %14, align 4, !tbaa !80
  %730 = zext i32 %729 to i64
  %731 = load ptr, ptr %6, align 8, !tbaa !5
  %732 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %731, i32 0, i32 61
  %733 = call noundef i64 @_ZNKSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(288) %732) #8
  %734 = icmp ult i64 %730, %733
  br i1 %734, label %736, label %735

735:                                              ; preds = %728
  store i32 11, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  br label %768

736:                                              ; preds = %728
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  %737 = load ptr, ptr %6, align 8, !tbaa !5
  %738 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %737, i32 0, i32 61
  %739 = load i32, ptr %14, align 4, !tbaa !80
  %740 = zext i32 %739 to i64
  %741 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EEixEm(ptr noundef nonnull align 8 dereferenceable(288) %738, i64 noundef %740) #6
  %742 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %741) #6
  %743 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %16, i32 0, i32 0
  store ptr %742, ptr %743, align 8
  br label %744

744:                                              ; preds = %762, %736
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %745 = load ptr, ptr %6, align 8, !tbaa !5
  %746 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %745, i32 0, i32 61
  %747 = load i32, ptr %14, align 4, !tbaa !80
  %748 = zext i32 %747 to i64
  %749 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EEixEm(ptr noundef nonnull align 8 dereferenceable(288) %746, i64 noundef %748) #6
  %750 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %749) #6
  %751 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %17, i32 0, i32 0
  store ptr %750, ptr %751, align 8
  %752 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  br i1 %752, label %754, label %753

753:                                              ; preds = %744
  store i32 14, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  br label %764

754:                                              ; preds = %744
  %755 = load i32, ptr %14, align 4, !tbaa !80
  %756 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  %757 = getelementptr inbounds %"struct.std::pair", ptr %756, i32 0, i32 1
  %758 = load i32, ptr %757, align 4, !tbaa !126
  %759 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  %760 = getelementptr inbounds %"struct.std::pair", ptr %759, i32 0, i32 0
  %761 = load i32, ptr %760, align 4, !tbaa !128
  call void @_ZN7glslang13TIntermediate21setShiftBindingForSetENS_13TResourceTypeEjj(ptr noundef nonnull align 8 dereferenceable(1784) %23, i32 noundef %755, i32 noundef %758, i32 noundef %761)
  br label %762

762:                                              ; preds = %754
  %763 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  br label %744, !llvm.loop !129

764:                                              ; preds = %753
  br label %765

765:                                              ; preds = %764
  %766 = load i32, ptr %14, align 4, !tbaa !80
  %767 = add i32 %766, 1
  store i32 %767, ptr %14, align 4, !tbaa !80
  br label %728, !llvm.loop !130

768:                                              ; preds = %735
  %769 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 62
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  %770 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 62
  %771 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %770) #6
  %772 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.98", ptr %19, i32 0, i32 0
  store ptr %771, ptr %772, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2IPS6_vEERKNS0_IT_SB_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #6
  %773 = load ptr, ptr %6, align 8, !tbaa !5
  %774 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %773, i32 0, i32 62
  %775 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %774) #6
  %776 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.98", ptr %20, i32 0, i32 0
  store ptr %775, ptr %776, align 8
  %777 = load ptr, ptr %6, align 8, !tbaa !5
  %778 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %777, i32 0, i32 62
  %779 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %778) #6
  %780 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.98", ptr %21, i32 0, i32 0
  store ptr %779, ptr %780, align 8
  %781 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.99", ptr %18, i32 0, i32 0
  %782 = load ptr, ptr %781, align 8
  %783 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.98", ptr %20, i32 0, i32 0
  %784 = load ptr, ptr %783, align 8
  %785 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.98", ptr %21, i32 0, i32 0
  %786 = load ptr, ptr %785, align 8
  %787 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6insertIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEvEESC_NSA_IPKS5_S7_EET_SG_(ptr noundef nonnull align 8 dereferenceable(24) %769, ptr %782, ptr %784, ptr %786)
  %788 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.98", ptr %22, i32 0, i32 0
  store ptr %787, ptr %788, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  %789 = load ptr, ptr %6, align 8, !tbaa !5
  %790 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %789, i32 0, i32 63
  %791 = load i8, ptr %790, align 8, !tbaa !131, !range !86, !noundef !87
  %792 = trunc i8 %791 to i1
  br i1 %792, label %793, label %800

793:                                              ; preds = %768
  %794 = load ptr, ptr %6, align 8, !tbaa !5
  %795 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %794, i32 0, i32 63
  %796 = load i8, ptr %795, align 8, !tbaa !131, !range !86, !noundef !87
  %797 = trunc i8 %796 to i1
  %798 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 63
  %799 = zext i1 %797 to i8
  store i8 %799, ptr %798, align 8, !tbaa !131
  br label %800

800:                                              ; preds = %793, %768
  %801 = load ptr, ptr %6, align 8, !tbaa !5
  %802 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %801, i32 0, i32 64
  %803 = load i8, ptr %802, align 1, !tbaa !132, !range !86, !noundef !87
  %804 = trunc i8 %803 to i1
  br i1 %804, label %805, label %812

805:                                              ; preds = %800
  %806 = load ptr, ptr %6, align 8, !tbaa !5
  %807 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %806, i32 0, i32 64
  %808 = load i8, ptr %807, align 1, !tbaa !132, !range !86, !noundef !87
  %809 = trunc i8 %808 to i1
  %810 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 64
  %811 = zext i1 %809 to i8
  store i8 %811, ptr %810, align 1, !tbaa !132
  br label %812

812:                                              ; preds = %805, %800
  %813 = load ptr, ptr %6, align 8, !tbaa !5
  %814 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %813, i32 0, i32 14
  %815 = load i8, ptr %814, align 1, !tbaa !133, !range !86, !noundef !87
  %816 = trunc i8 %815 to i1
  br i1 %816, label %817, label %824

817:                                              ; preds = %812
  %818 = load ptr, ptr %6, align 8, !tbaa !5
  %819 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %818, i32 0, i32 14
  %820 = load i8, ptr %819, align 1, !tbaa !133, !range !86, !noundef !87
  %821 = trunc i8 %820 to i1
  %822 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 14
  %823 = zext i1 %821 to i8
  store i8 %823, ptr %822, align 1, !tbaa !133
  br label %824

824:                                              ; preds = %817, %812
  %825 = load ptr, ptr %6, align 8, !tbaa !5
  %826 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %825, i32 0, i32 15
  %827 = load i8, ptr %826, align 2, !tbaa !134, !range !86, !noundef !87
  %828 = trunc i8 %827 to i1
  br i1 %828, label %829, label %836

829:                                              ; preds = %824
  %830 = load ptr, ptr %6, align 8, !tbaa !5
  %831 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %830, i32 0, i32 15
  %832 = load i8, ptr %831, align 2, !tbaa !134, !range !86, !noundef !87
  %833 = trunc i8 %832 to i1
  %834 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 15
  %835 = zext i1 %833 to i8
  store i8 %835, ptr %834, align 2, !tbaa !134
  br label %836

836:                                              ; preds = %829, %824
  %837 = load ptr, ptr %6, align 8, !tbaa !5
  %838 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %837, i32 0, i32 65
  %839 = load i8, ptr %838, align 2, !tbaa !135, !range !86, !noundef !87
  %840 = trunc i8 %839 to i1
  br i1 %840, label %841, label %848

841:                                              ; preds = %836
  %842 = load ptr, ptr %6, align 8, !tbaa !5
  %843 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %842, i32 0, i32 65
  %844 = load i8, ptr %843, align 2, !tbaa !135, !range !86, !noundef !87
  %845 = trunc i8 %844 to i1
  %846 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 65
  %847 = zext i1 %845 to i8
  store i8 %847, ptr %846, align 2, !tbaa !135
  br label %848

848:                                              ; preds = %841, %836
  %849 = load ptr, ptr %6, align 8, !tbaa !5
  %850 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %849, i32 0, i32 66
  %851 = load i8, ptr %850, align 1, !tbaa !136, !range !86, !noundef !87
  %852 = trunc i8 %851 to i1
  br i1 %852, label %853, label %860

853:                                              ; preds = %848
  %854 = load ptr, ptr %6, align 8, !tbaa !5
  %855 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %854, i32 0, i32 66
  %856 = load i8, ptr %855, align 1, !tbaa !136, !range !86, !noundef !87
  %857 = trunc i8 %856 to i1
  %858 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 66
  %859 = zext i1 %857 to i8
  store i8 %859, ptr %858, align 1, !tbaa !136
  br label %860

860:                                              ; preds = %853, %848
  %861 = load ptr, ptr %6, align 8, !tbaa !5
  %862 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %861, i32 0, i32 67
  %863 = load i8, ptr %862, align 4, !tbaa !137, !range !86, !noundef !87
  %864 = trunc i8 %863 to i1
  br i1 %864, label %865, label %872

865:                                              ; preds = %860
  %866 = load ptr, ptr %6, align 8, !tbaa !5
  %867 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %866, i32 0, i32 67
  %868 = load i8, ptr %867, align 4, !tbaa !137, !range !86, !noundef !87
  %869 = trunc i8 %868 to i1
  %870 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 67
  %871 = zext i1 %869 to i8
  store i8 %871, ptr %870, align 4, !tbaa !137
  br label %872

872:                                              ; preds = %865, %860
  %873 = load ptr, ptr %6, align 8, !tbaa !5
  %874 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %873, i32 0, i32 17
  %875 = load i8, ptr %874, align 4, !tbaa !138, !range !86, !noundef !87
  %876 = trunc i8 %875 to i1
  br i1 %876, label %877, label %884

877:                                              ; preds = %872
  %878 = load ptr, ptr %6, align 8, !tbaa !5
  %879 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %878, i32 0, i32 17
  %880 = load i8, ptr %879, align 4, !tbaa !138, !range !86, !noundef !87
  %881 = trunc i8 %880 to i1
  %882 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 17
  %883 = zext i1 %881 to i8
  store i8 %883, ptr %882, align 4, !tbaa !138
  br label %884

884:                                              ; preds = %877, %872
  %885 = load ptr, ptr %6, align 8, !tbaa !5
  %886 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %885, i32 0, i32 18
  %887 = load i8, ptr %886, align 1, !tbaa !139, !range !86, !noundef !87
  %888 = trunc i8 %887 to i1
  br i1 %888, label %889, label %896

889:                                              ; preds = %884
  %890 = load ptr, ptr %6, align 8, !tbaa !5
  %891 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %890, i32 0, i32 18
  %892 = load i8, ptr %891, align 1, !tbaa !139, !range !86, !noundef !87
  %893 = trunc i8 %892 to i1
  %894 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 18
  %895 = zext i1 %893 to i8
  store i8 %895, ptr %894, align 1, !tbaa !139
  br label %896

896:                                              ; preds = %889, %884
  %897 = load ptr, ptr %6, align 8, !tbaa !5
  %898 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %897, i32 0, i32 68
  %899 = load i8, ptr %898, align 1, !tbaa !140, !range !86, !noundef !87
  %900 = trunc i8 %899 to i1
  br i1 %900, label %901, label %908

901:                                              ; preds = %896
  %902 = load ptr, ptr %6, align 8, !tbaa !5
  %903 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %902, i32 0, i32 68
  %904 = load i8, ptr %903, align 1, !tbaa !140, !range !86, !noundef !87
  %905 = trunc i8 %904 to i1
  %906 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 68
  %907 = zext i1 %905 to i8
  store i8 %907, ptr %906, align 1, !tbaa !140
  br label %908

908:                                              ; preds = %901, %896
  %909 = load ptr, ptr %6, align 8, !tbaa !5
  %910 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %909, i32 0, i32 72
  %911 = load i8, ptr %910, align 4, !tbaa !141, !range !86, !noundef !87
  %912 = trunc i8 %911 to i1
  br i1 %912, label %913, label %920

913:                                              ; preds = %908
  %914 = load ptr, ptr %6, align 8, !tbaa !5
  %915 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %914, i32 0, i32 72
  %916 = load i8, ptr %915, align 4, !tbaa !141, !range !86, !noundef !87
  %917 = trunc i8 %916 to i1
  %918 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 72
  %919 = zext i1 %917 to i8
  store i8 %919, ptr %918, align 4, !tbaa !141
  br label %920

920:                                              ; preds = %913, %908
  %921 = load ptr, ptr %6, align 8, !tbaa !5
  %922 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %921, i32 0, i32 73
  %923 = load i8, ptr %922, align 1, !tbaa !142, !range !86, !noundef !87
  %924 = trunc i8 %923 to i1
  br i1 %924, label %925, label %932

925:                                              ; preds = %920
  %926 = load ptr, ptr %6, align 8, !tbaa !5
  %927 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %926, i32 0, i32 73
  %928 = load i8, ptr %927, align 1, !tbaa !142, !range !86, !noundef !87
  %929 = trunc i8 %928 to i1
  %930 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 73
  %931 = zext i1 %929 to i8
  store i8 %931, ptr %930, align 1, !tbaa !142
  br label %932

932:                                              ; preds = %925, %920
  %933 = load ptr, ptr %6, align 8, !tbaa !5
  %934 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %933, i32 0, i32 75
  %935 = load i8, ptr %934, align 1, !tbaa !143, !range !86, !noundef !87
  %936 = trunc i8 %935 to i1
  br i1 %936, label %937, label %944

937:                                              ; preds = %932
  %938 = load ptr, ptr %6, align 8, !tbaa !5
  %939 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %938, i32 0, i32 75
  %940 = load i8, ptr %939, align 1, !tbaa !143, !range !86, !noundef !87
  %941 = trunc i8 %940 to i1
  %942 = getelementptr inbounds %"class.glslang::TIntermediate", ptr %23, i32 0, i32 75
  %943 = zext i1 %941 to i8
  store i8 %943, ptr %942, align 1, !tbaa !143
  br label %944

944:                                              ; preds = %937, %932
  ret void
}

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #3

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #3

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

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

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

; Function Attrs: mustprogress nounwind willreturn memory(none) uwtable
declare dso_local noundef i64 @_ZNKSt5arrayIjLm6EE4sizeEv(ptr noundef nonnull align 4 dereferenceable(24)) #5 align 2

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

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

; Function Attrs: mustprogress nounwind willreturn memory(none) uwtable
declare dso_local noundef i64 @_ZNKSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(288)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EEixEm(ptr noundef nonnull align 8 dereferenceable(288), i64 noundef) #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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


; 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.std::_Rb_tree_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.99" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.98" = type { ptr }

@.str.6 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [114 x i8], align 1
@__PRETTY_FUNCTION__._ZN7glslang13TIntermediate10mergeModesER9TInfoSinkRS0_ = external hidden unnamed_addr constant [70 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [25 x i8], align 1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TIntermediate10mergeModesER9TInfoSinkRS0_(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull align 8 dereferenceable(1784) %2) local_unnamed_addr #0 align 2 {
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %7 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.99", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.98", align 8
  %10 = load i32, ptr %0, align 8, !tbaa !5
  %11 = load i32, ptr %2, align 8, !tbaa !5
  %.not = icmp eq i32 %10, %11
  br i1 %.not, label %13, label %12

12:                                               ; preds = %3
  tail call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.6, i32 noundef 14)
  br label %13

13:                                               ; preds = %12, %3
  %14 = tail call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %15 = icmp eq i32 %14, 0
  br i1 %15, label %16, label %18

16:                                               ; preds = %13
  %17 = tail call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %2)
  tail call void @_ZN7glslang13TIntermediate9setSourceENS_9EShSourceE(ptr noundef nonnull align 8 dereferenceable(1784) %0, i32 noundef %17)
  br label %18

18:                                               ; preds = %16, %13
  %19 = tail call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %20 = tail call noundef i32 @_ZNK7glslang13TIntermediate9getSourceEv(ptr noundef nonnull align 8 dereferenceable(1784) %2)
  %.not186 = icmp eq i32 %19, %20
  br i1 %.not186, label %22, label %21

21:                                               ; preds = %18
  tail call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.7, i32 noundef 14)
  br label %22

22:                                               ; preds = %21, %18
  %23 = getelementptr inbounds i8, ptr %0, i64 128
  %24 = load ptr, ptr %23, align 8, !tbaa !76
  %25 = icmp eq ptr %24, null
  br i1 %25, label %26, label %33

26:                                               ; preds = %22
  %27 = getelementptr inbounds i8, ptr %2, i64 96
  %28 = getelementptr inbounds i8, ptr %0, i64 96
  %29 = load <2 x i32>, ptr %27, align 8, !tbaa !77
  store <2 x i32> %29, ptr %28, align 8, !tbaa !77
  %30 = getelementptr inbounds i8, ptr %2, i64 136
  %31 = getelementptr inbounds i8, ptr %0, i64 136
  %32 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEaSERKS9_(ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef nonnull align 8 dereferenceable(48) %30)
  br label %53

33:                                               ; preds = %22
  %34 = tail call noundef zeroext i1 @_ZNK7glslang13TIntermediate11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %35 = tail call noundef zeroext i1 @_ZNK7glslang13TIntermediate11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(1784) %2)
  %36 = xor i1 %34, %35
  br i1 %36, label %37, label %38

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

38:                                               ; preds = %33
  %39 = getelementptr inbounds i8, ptr %2, i64 96
  %40 = load i32, ptr %39, align 8, !tbaa !78
  %41 = icmp eq i32 %40, 4
  br i1 %41, label %42, label %44

42:                                               ; preds = %38
  %43 = getelementptr inbounds i8, ptr %0, i64 96
  store i32 4, ptr %43, align 8, !tbaa !78
  br label %44

44:                                               ; preds = %38, %42, %37
  %45 = getelementptr inbounds i8, ptr %0, i64 100
  %46 = getelementptr inbounds i8, ptr %2, i64 100
  %47 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 4 dereferenceable(4) %46)
  %48 = load i32, ptr %47, align 4, !tbaa !79
  store i32 %48, ptr %45, align 4, !tbaa !80
  %49 = getelementptr inbounds i8, ptr %0, i64 136
  %50 = getelementptr inbounds i8, ptr %2, i64 136
  %51 = tail call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %50) #6
  %52 = tail call ptr @_ZNKSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %50) #6
  tail call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE6insertISt23_Rb_tree_const_iteratorIS5_EEEvT_SD_(ptr noundef nonnull align 8 dereferenceable(48) %49, ptr %51, ptr %52)
  br label %53

53:                                               ; preds = %44, %26
  %54 = getelementptr inbounds i8, ptr %0, i64 104
  %55 = getelementptr inbounds i8, ptr %2, i64 104
  %56 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 4 dereferenceable(4) %55)
  %57 = load i32, ptr %56, align 4, !tbaa !79
  store i32 %57, ptr %54, align 8, !tbaa !81
  %58 = getelementptr inbounds i8, ptr %0, i64 108
  %59 = getelementptr inbounds i8, ptr %2, i64 108
  %60 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %58, ptr noundef nonnull align 4 dereferenceable(4) %59)
  %61 = load i32, ptr %60, align 4, !tbaa !79
  store i32 %61, ptr %58, align 4, !tbaa !82
  %62 = getelementptr inbounds i8, ptr %0, i64 112
  %63 = getelementptr inbounds i8, ptr %2, i64 112
  %64 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %62, ptr noundef nonnull align 4 dereferenceable(4) %63)
  %65 = load i32, ptr %64, align 4, !tbaa !79
  store i32 %65, ptr %62, align 8, !tbaa !83
  %66 = getelementptr inbounds i8, ptr %0, i64 116
  %67 = getelementptr inbounds i8, ptr %2, i64 116
  %68 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %66, ptr noundef nonnull align 4 dereferenceable(4) %67)
  %69 = load i32, ptr %68, align 4, !tbaa !79
  store i32 %69, ptr %66, align 4, !tbaa !84
  %70 = getelementptr inbounds i8, ptr %2, i64 120
  %71 = load i8, ptr %70, align 8, !tbaa !85, !range !86, !noundef !87
  %72 = trunc nuw i8 %71 to i1
  br i1 %72, label %73, label %75

73:                                               ; preds = %53
  %74 = getelementptr inbounds i8, ptr %0, i64 120
  store i8 1, ptr %74, align 8, !tbaa !85
  br label %75

75:                                               ; preds = %73, %53
  %76 = tail call noundef i32 @_ZNK7glslang13TIntermediate12getNumErrorsEv(ptr noundef nonnull align 8 dereferenceable(1784) %2)
  %77 = getelementptr inbounds i8, ptr %0, i64 576
  %78 = load i32, ptr %77, align 8, !tbaa !88
  %79 = add nsw i32 %78, %76
  store i32 %79, ptr %77, align 8, !tbaa !88
  %80 = getelementptr inbounds i8, ptr %0, i64 580
  %81 = load i32, ptr %80, align 4, !tbaa !89
  %82 = icmp sgt i32 %81, 1
  %83 = getelementptr inbounds i8, ptr %2, i64 580
  %84 = load i32, ptr %83, align 4
  %85 = icmp sgt i32 %84, 1
  %or.cond = select i1 %82, i1 true, i1 %85
  br i1 %or.cond, label %86, label %87

86:                                               ; preds = %75
  tail call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.9, i32 noundef 14)
  %.pre = load i32, ptr %80, align 4, !tbaa !89
  %.pre226 = load i32, ptr %83, align 4, !tbaa !89
  br label %87

87:                                               ; preds = %75, %86
  %88 = phi i32 [ %84, %75 ], [ %.pre226, %86 ]
  %89 = phi i32 [ %81, %75 ], [ %.pre, %86 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #6
  %90 = add nsw i32 %88, %89
  store i32 %90, ptr %4, align 4, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #6
  store i32 1, ptr %5, align 4, !tbaa !79
  %91 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5)
  %92 = load i32, ptr %91, align 4, !tbaa !79
  store i32 %92, ptr %80, align 4, !tbaa !89
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #6
  %93 = getelementptr inbounds i8, ptr %2, i64 736
  %94 = load i32, ptr %93, align 8, !tbaa !90
  %.not188 = icmp eq i32 %94, -1
  br i1 %.not188, label %102, label %95

95:                                               ; preds = %87
  %96 = getelementptr inbounds i8, ptr %0, i64 736
  %97 = load i32, ptr %96, align 8, !tbaa !90
  %98 = icmp eq i32 %97, -1
  br i1 %98, label %99, label %100

99:                                               ; preds = %95
  store i32 %94, ptr %96, align 8, !tbaa !90
  br label %102

100:                                              ; preds = %95
  %.not189 = icmp eq i32 %97, %94
  br i1 %.not189, label %102, label %101

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

102:                                              ; preds = %99, %101, %100, %87
  %103 = getelementptr inbounds i8, ptr %0, i64 740
  %104 = load i32, ptr %103, align 4, !tbaa !91
  %105 = icmp eq i32 %104, -1
  %106 = getelementptr inbounds i8, ptr %2, i64 740
  %107 = load i32, ptr %106, align 4, !tbaa !91
  br i1 %105, label %108, label %109

108:                                              ; preds = %102
  store i32 %107, ptr %103, align 4, !tbaa !91
  br label %115

109:                                              ; preds = %102
  %.not190 = icmp eq i32 %107, -1
  %.not191 = icmp eq i32 %104, %107
  %or.cond208 = or i1 %.not190, %.not191
  br i1 %or.cond208, label %115, label %110

110:                                              ; preds = %109
  %111 = load i32, ptr %0, align 8, !tbaa !5
  switch i32 %111, label %114 [
    i32 3, label %112
    i32 13, label %112
    i32 1, label %113
  ]

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

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

114:                                              ; preds = %110
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, i32 noundef 220, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TIntermediate10mergeModesER9TInfoSinkRS0_) #7
  unreachable

115:                                              ; preds = %109, %113, %112, %108
  %116 = getelementptr inbounds i8, ptr %0, i64 828
  %117 = load i32, ptr %116, align 4, !tbaa !92
  %118 = icmp eq i32 %117, -1
  %119 = getelementptr inbounds i8, ptr %2, i64 828
  %120 = load i32, ptr %119, align 4, !tbaa !92
  br i1 %118, label %121, label %122

121:                                              ; preds = %115
  store i32 %120, ptr %116, align 4, !tbaa !92
  br label %128

122:                                              ; preds = %115
  %.not192 = icmp eq i32 %117, %120
  br i1 %.not192, label %128, label %123

123:                                              ; preds = %122
  %124 = load i32, ptr %0, align 8, !tbaa !5
  %125 = icmp eq i32 %124, 13
  br i1 %125, label %126, label %127

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

127:                                              ; preds = %123
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, i32 noundef 228, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TIntermediate10mergeModesER9TInfoSinkRS0_) #7
  unreachable

128:                                              ; preds = %122, %126, %121
  %129 = getelementptr inbounds i8, ptr %0, i64 744
  %130 = load i32, ptr %129, align 8, !tbaa !93
  %131 = icmp eq i32 %130, 0
  %132 = getelementptr inbounds i8, ptr %2, i64 744
  %133 = load i32, ptr %132, align 8, !tbaa !93
  br i1 %131, label %134, label %135

134:                                              ; preds = %128
  store i32 %133, ptr %129, align 8, !tbaa !93
  br label %137

135:                                              ; preds = %128
  %.not193 = icmp eq i32 %133, 0
  %.not194 = icmp eq i32 %130, %133
  %or.cond209 = or i1 %.not193, %.not194
  br i1 %or.cond209, label %137, label %136

136:                                              ; preds = %135
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.16, i32 noundef 14)
  br label %137

137:                                              ; preds = %135, %136, %134
  %138 = getelementptr inbounds i8, ptr %0, i64 748
  %139 = load i32, ptr %138, align 4, !tbaa !94
  %140 = icmp eq i32 %139, 0
  %141 = getelementptr inbounds i8, ptr %2, i64 748
  %142 = load i32, ptr %141, align 4, !tbaa !94
  br i1 %140, label %143, label %144

143:                                              ; preds = %137
  store i32 %142, ptr %138, align 4, !tbaa !94
  br label %146

144:                                              ; preds = %137
  %.not195 = icmp eq i32 %142, 0
  %.not196 = icmp eq i32 %139, %142
  %or.cond210 = or i1 %.not195, %.not196
  br i1 %or.cond210, label %146, label %145

145:                                              ; preds = %144
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.17, i32 noundef 14)
  br label %146

146:                                              ; preds = %144, %145, %143
  %147 = getelementptr inbounds i8, ptr %0, i64 753
  %148 = load i8, ptr %147, align 1, !tbaa !95, !range !86, !noundef !87
  %149 = getelementptr inbounds i8, ptr %2, i64 753
  %150 = load i8, ptr %149, align 1, !tbaa !95, !range !86, !noundef !87
  %.not197 = icmp eq i8 %148, %150
  br i1 %.not197, label %151, label %156

151:                                              ; preds = %146
  %152 = getelementptr inbounds i8, ptr %0, i64 752
  %153 = load i8, ptr %152, align 8, !tbaa !96, !range !86, !noundef !87
  %154 = getelementptr inbounds i8, ptr %2, i64 752
  %155 = load i8, ptr %154, align 8, !tbaa !96, !range !86, !noundef !87
  %.not198 = icmp eq i8 %153, %155
  br i1 %.not198, label %157, label %156

156:                                              ; preds = %151, %146
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.18, i32 noundef 14)
  br label %157

157:                                              ; preds = %156, %151
  %158 = getelementptr inbounds i8, ptr %0, i64 756
  %159 = load i32, ptr %158, align 4, !tbaa !97
  %160 = icmp eq i32 %159, 0
  %161 = getelementptr inbounds i8, ptr %2, i64 756
  %162 = load i32, ptr %161, align 4, !tbaa !97
  br i1 %160, label %163, label %164

163:                                              ; preds = %157
  store i32 %162, ptr %158, align 4, !tbaa !97
  br label %166

164:                                              ; preds = %157
  %.not199 = icmp eq i32 %159, %162
  br i1 %.not199, label %166, label %165

165:                                              ; preds = %164
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.19, i32 noundef 14)
  br label %166

166:                                              ; preds = %164, %165, %163
  %167 = getelementptr inbounds i8, ptr %0, i64 760
  %168 = load i32, ptr %167, align 8, !tbaa !98
  %169 = icmp eq i32 %168, 0
  %170 = getelementptr inbounds i8, ptr %2, i64 760
  %171 = load i32, ptr %170, align 8, !tbaa !98
  br i1 %169, label %172, label %173

172:                                              ; preds = %166
  store i32 %171, ptr %167, align 8, !tbaa !98
  br label %175

173:                                              ; preds = %166
  %.not200 = icmp eq i32 %168, %171
  br i1 %.not200, label %175, label %174

174:                                              ; preds = %173
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.20, i32 noundef 14)
  br label %175

175:                                              ; preds = %173, %174, %172
  %176 = getelementptr inbounds i8, ptr %2, i64 768
  %177 = load i8, ptr %176, align 8, !tbaa !99, !range !86, !noundef !87
  %178 = trunc nuw i8 %177 to i1
  br i1 %178, label %179, label %181

179:                                              ; preds = %175
  %180 = getelementptr inbounds i8, ptr %0, i64 768
  store i8 1, ptr %180, align 8, !tbaa !99
  br label %181

181:                                              ; preds = %179, %175
  %182 = getelementptr inbounds i8, ptr %2, i64 604
  %183 = getelementptr inbounds i8, ptr %0, i64 604
  %184 = getelementptr inbounds i8, ptr %2, i64 592
  %185 = getelementptr inbounds i8, ptr %0, i64 592
  %186 = getelementptr inbounds i8, ptr %0, i64 608
  %187 = getelementptr inbounds i8, ptr %2, i64 608
  %188 = load i8, ptr %182, align 4, !tbaa !100, !range !86, !noundef !87
  %189 = trunc nuw i8 %188 to i1
  br i1 %189, label %190, label %199

190:                                              ; preds = %181
  %191 = load i8, ptr %183, align 4, !tbaa !100, !range !86, !noundef !87
  %192 = trunc nuw i8 %191 to i1
  br i1 %192, label %195, label %193

193:                                              ; preds = %190
  %194 = load i32, ptr %184, align 8, !tbaa !79
  store i32 %194, ptr %185, align 8, !tbaa !79
  store i8 1, ptr %183, align 4, !tbaa !100
  br label %199

195:                                              ; preds = %190
  %196 = load i32, ptr %185, align 8, !tbaa !79
  %197 = load i32, ptr %184, align 8, !tbaa !79
  %.not204 = icmp eq i32 %196, %197
  br i1 %.not204, label %199, label %198

198:                                              ; preds = %195
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.21, i32 noundef 14)
  br label %199

199:                                              ; preds = %193, %198, %195, %181
  %200 = load i32, ptr %186, align 8, !tbaa !79
  %201 = icmp eq i32 %200, -1
  %202 = load i32, ptr %187, align 8, !tbaa !79
  br i1 %201, label %203, label %204

203:                                              ; preds = %199
  store i32 %202, ptr %186, align 8, !tbaa !79
  br label %206

204:                                              ; preds = %199
  %.not205 = icmp eq i32 %200, %202
  br i1 %.not205, label %206, label %205

205:                                              ; preds = %204
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.22, i32 noundef 14)
  br label %206

206:                                              ; preds = %203, %205, %204
  %207 = getelementptr inbounds i8, ptr %2, i64 605
  %208 = load i8, ptr %207, align 1, !tbaa !100, !range !86, !noundef !87
  %209 = trunc nuw i8 %208 to i1
  br i1 %209, label %210, label %224

210:                                              ; preds = %206
  %211 = getelementptr inbounds i8, ptr %0, i64 605
  %212 = load i8, ptr %211, align 1, !tbaa !100, !range !86, !noundef !87
  %213 = trunc nuw i8 %212 to i1
  br i1 %213, label %218, label %214

214:                                              ; preds = %210
  %215 = getelementptr inbounds i8, ptr %2, i64 596
  %216 = load i32, ptr %215, align 4, !tbaa !79
  %217 = getelementptr inbounds i8, ptr %0, i64 596
  store i32 %216, ptr %217, align 4, !tbaa !79
  store i8 1, ptr %211, align 1, !tbaa !100
  br label %224

218:                                              ; preds = %210
  %219 = getelementptr inbounds i8, ptr %0, i64 596
  %220 = load i32, ptr %219, align 4, !tbaa !79
  %221 = getelementptr inbounds i8, ptr %2, i64 596
  %222 = load i32, ptr %221, align 4, !tbaa !79
  %.not204.1 = icmp eq i32 %220, %222
  br i1 %.not204.1, label %224, label %223

223:                                              ; preds = %218
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.21, i32 noundef 14)
  br label %224

224:                                              ; preds = %223, %218, %214, %206
  %225 = getelementptr inbounds i8, ptr %0, i64 612
  %226 = load i32, ptr %225, align 4, !tbaa !79
  %227 = icmp eq i32 %226, -1
  %228 = getelementptr inbounds i8, ptr %2, i64 612
  %229 = load i32, ptr %228, align 4, !tbaa !79
  br i1 %227, label %232, label %230

230:                                              ; preds = %224
  %.not205.1 = icmp eq i32 %226, %229
  br i1 %.not205.1, label %233, label %231

231:                                              ; preds = %230
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.22, i32 noundef 14)
  br label %233

232:                                              ; preds = %224
  store i32 %229, ptr %225, align 4, !tbaa !79
  br label %233

233:                                              ; preds = %232, %231, %230
  %234 = getelementptr inbounds i8, ptr %2, i64 606
  %235 = load i8, ptr %234, align 2, !tbaa !100, !range !86, !noundef !87
  %236 = trunc nuw i8 %235 to i1
  br i1 %236, label %237, label %251

237:                                              ; preds = %233
  %238 = getelementptr inbounds i8, ptr %0, i64 606
  %239 = load i8, ptr %238, align 2, !tbaa !100, !range !86, !noundef !87
  %240 = trunc nuw i8 %239 to i1
  br i1 %240, label %245, label %241

241:                                              ; preds = %237
  %242 = getelementptr inbounds i8, ptr %2, i64 600
  %243 = load i32, ptr %242, align 8, !tbaa !79
  %244 = getelementptr inbounds i8, ptr %0, i64 600
  store i32 %243, ptr %244, align 8, !tbaa !79
  store i8 1, ptr %238, align 2, !tbaa !100
  br label %251

245:                                              ; preds = %237
  %246 = getelementptr inbounds i8, ptr %0, i64 600
  %247 = load i32, ptr %246, align 8, !tbaa !79
  %248 = getelementptr inbounds i8, ptr %2, i64 600
  %249 = load i32, ptr %248, align 8, !tbaa !79
  %.not204.2 = icmp eq i32 %247, %249
  br i1 %.not204.2, label %251, label %250

250:                                              ; preds = %245
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.21, i32 noundef 14)
  br label %251

251:                                              ; preds = %250, %245, %241, %233
  %252 = getelementptr inbounds i8, ptr %0, i64 616
  %253 = load i32, ptr %252, align 8, !tbaa !79
  %254 = icmp eq i32 %253, -1
  %255 = getelementptr inbounds i8, ptr %2, i64 616
  %256 = load i32, ptr %255, align 8, !tbaa !79
  br i1 %254, label %259, label %257

257:                                              ; preds = %251
  %.not205.2 = icmp eq i32 %253, %256
  br i1 %.not205.2, label %260, label %258

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

259:                                              ; preds = %251
  store i32 %256, ptr %252, align 8, !tbaa !79
  br label %260

260:                                              ; preds = %259, %258, %257
  %261 = getelementptr inbounds i8, ptr %2, i64 769
  %262 = load i8, ptr %261, align 1, !tbaa !101, !range !86, !noundef !87
  %263 = trunc nuw i8 %262 to i1
  br i1 %263, label %264, label %266

264:                                              ; preds = %260
  %265 = getelementptr inbounds i8, ptr %0, i64 769
  store i8 1, ptr %265, align 1, !tbaa !101
  br label %266

266:                                              ; preds = %264, %260
  %267 = getelementptr inbounds i8, ptr %2, i64 770
  %268 = load i8, ptr %267, align 2, !tbaa !102, !range !86, !noundef !87
  %269 = trunc nuw i8 %268 to i1
  br i1 %269, label %270, label %272

270:                                              ; preds = %266
  %271 = getelementptr inbounds i8, ptr %0, i64 770
  store i8 1, ptr %271, align 2, !tbaa !102
  br label %272

272:                                              ; preds = %270, %266
  %273 = getelementptr inbounds i8, ptr %0, i64 772
  %274 = load i32, ptr %273, align 4, !tbaa !103
  %275 = icmp eq i32 %274, 0
  %276 = getelementptr inbounds i8, ptr %2, i64 772
  %277 = load i32, ptr %276, align 4, !tbaa !103
  br i1 %275, label %278, label %279

278:                                              ; preds = %272
  store i32 %277, ptr %273, align 4, !tbaa !103
  br label %281

279:                                              ; preds = %272
  %.not201 = icmp eq i32 %274, %277
  br i1 %.not201, label %281, label %280

280:                                              ; preds = %279
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.23, i32 noundef 14)
  br label %281

281:                                              ; preds = %279, %280, %278
  %282 = getelementptr inbounds i8, ptr %2, i64 591
  %283 = load i8, ptr %282, align 1, !tbaa !104, !range !86, !noundef !87
  %284 = trunc nuw i8 %283 to i1
  br i1 %284, label %285, label %287

285:                                              ; preds = %281
  %286 = getelementptr inbounds i8, ptr %0, i64 591
  store i8 1, ptr %286, align 1, !tbaa !104
  br label %287

287:                                              ; preds = %285, %281
  %288 = getelementptr inbounds i8, ptr %2, i64 776
  %289 = load i8, ptr %288, align 8, !tbaa !105, !range !86, !noundef !87
  %290 = trunc nuw i8 %289 to i1
  br i1 %290, label %291, label %293

291:                                              ; preds = %287
  %292 = getelementptr inbounds i8, ptr %0, i64 776
  store i8 1, ptr %292, align 8, !tbaa !105
  br label %293

293:                                              ; preds = %291, %287
  %294 = getelementptr inbounds i8, ptr %2, i64 780
  %295 = load i32, ptr %294, align 4, !tbaa !106
  %296 = getelementptr inbounds i8, ptr %0, i64 780
  %297 = load i32, ptr %296, align 4, !tbaa !106
  %298 = or i32 %297, %295
  store i32 %298, ptr %296, align 4, !tbaa !106
  %299 = getelementptr inbounds i8, ptr %2, i64 784
  %300 = load i8, ptr %299, align 8, !tbaa !107, !range !86, !noundef !87
  %301 = trunc nuw i8 %300 to i1
  br i1 %301, label %302, label %304

302:                                              ; preds = %293
  %303 = getelementptr inbounds i8, ptr %0, i64 784
  store i8 1, ptr %303, align 8, !tbaa !107
  br label %304

304:                                              ; preds = %302, %293
  %305 = getelementptr inbounds i8, ptr %0, i64 792
  %306 = call noundef i64 @_ZNKSt6vectorIN7glslang10TXfbBufferESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %305) #6
  %.not222 = icmp eq i64 %306, 0
  br i1 %.not222, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %304
  %307 = getelementptr inbounds i8, ptr %2, i64 792
  br label %311

._crit_edge:                                      ; preds = %362, %304
  %308 = getelementptr inbounds i8, ptr %2, i64 816
  %309 = load i8, ptr %308, align 8, !tbaa !108, !range !86, !noundef !87
  %310 = trunc nuw i8 %309 to i1
  br i1 %310, label %366, label %368

311:                                              ; preds = %.lr.ph, %362
  %.0167212 = phi i64 [ 0, %.lr.ph ], [ %363, %362 ]
  %312 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %.0167212) #6
  %313 = getelementptr inbounds i8, ptr %312, i64 24
  %314 = load i32, ptr %313, align 8, !tbaa !109
  %315 = icmp eq i32 %314, 16383
  br i1 %315, label %316, label %322

316:                                              ; preds = %311
  %317 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %.0167212) #6
  %318 = getelementptr inbounds i8, ptr %317, i64 24
  %319 = load i32, ptr %318, align 8, !tbaa !109
  %320 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %.0167212) #6
  %321 = getelementptr inbounds i8, ptr %320, i64 24
  store i32 %319, ptr %321, align 8, !tbaa !109
  br label %330

322:                                              ; preds = %311
  %323 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %.0167212) #6
  %324 = getelementptr inbounds i8, ptr %323, i64 24
  %325 = load i32, ptr %324, align 8, !tbaa !109
  %326 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %.0167212) #6
  %327 = getelementptr inbounds i8, ptr %326, i64 24
  %328 = load i32, ptr %327, align 8, !tbaa !109
  %.not203 = icmp eq i32 %325, %328
  br i1 %.not203, label %330, label %329

329:                                              ; preds = %322
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.24, i32 noundef 14)
  br label %330

330:                                              ; preds = %322, %329, %316
  %331 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %.0167212) #6
  %332 = getelementptr inbounds i8, ptr %331, i64 28
  %333 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %.0167212) #6
  %334 = getelementptr inbounds i8, ptr %333, i64 28
  %335 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %332, ptr noundef nonnull align 4 dereferenceable(4) %334)
  %336 = load i32, ptr %335, align 4, !tbaa !79
  %337 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %.0167212) #6
  %338 = getelementptr inbounds i8, ptr %337, i64 28
  store i32 %336, ptr %338, align 4, !tbaa !115
  %339 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %.0167212) #6
  %340 = getelementptr inbounds i8, ptr %339, i64 32
  %341 = load i8, ptr %340, align 8, !tbaa !116, !range !86, !noundef !87
  %342 = trunc nuw i8 %341 to i1
  br i1 %342, label %343, label %346

343:                                              ; preds = %330
  %344 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %.0167212) #6
  %345 = getelementptr inbounds i8, ptr %344, i64 32
  store i8 1, ptr %345, align 8, !tbaa !116
  br label %346

346:                                              ; preds = %343, %330
  %347 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %.0167212) #6
  %348 = getelementptr inbounds i8, ptr %347, i64 33
  %349 = load i8, ptr %348, align 1, !tbaa !117, !range !86, !noundef !87
  %350 = trunc nuw i8 %349 to i1
  br i1 %350, label %351, label %354

351:                                              ; preds = %346
  %352 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %.0167212) #6
  %353 = getelementptr inbounds i8, ptr %352, i64 33
  store i8 1, ptr %353, align 1, !tbaa !117
  br label %354

354:                                              ; preds = %351, %346
  %355 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %.0167212) #6
  %356 = getelementptr inbounds i8, ptr %355, i64 34
  %357 = load i8, ptr %356, align 2, !tbaa !118, !range !86, !noundef !87
  %358 = trunc nuw i8 %357 to i1
  br i1 %358, label %359, label %362

359:                                              ; preds = %354
  %360 = call noundef nonnull align 8 dereferenceable(35) ptr @_ZNSt6vectorIN7glslang10TXfbBufferESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %.0167212) #6
  %361 = getelementptr inbounds i8, ptr %360, i64 34
  store i8 1, ptr %361, align 2, !tbaa !118
  br label %362

362:                                              ; preds = %354, %359
  %363 = add nuw i64 %.0167212, 1
  %364 = call noundef i64 @_ZNKSt6vectorIN7glslang10TXfbBufferESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %305) #6
  %365 = icmp ult i64 %363, %364
  br i1 %365, label %311, label %._crit_edge, !llvm.loop !119

366:                                              ; preds = %._crit_edge
  %367 = getelementptr inbounds i8, ptr %0, i64 816
  store i8 1, ptr %367, align 8, !tbaa !108
  br label %368

368:                                              ; preds = %366, %._crit_edge
  %369 = getelementptr inbounds i8, ptr %2, i64 817
  %370 = load i8, ptr %369, align 1, !tbaa !121, !range !86, !noundef !87
  %371 = trunc nuw i8 %370 to i1
  br i1 %371, label %372, label %374

372:                                              ; preds = %368
  %373 = getelementptr inbounds i8, ptr %0, i64 817
  store i8 1, ptr %373, align 1, !tbaa !121
  br label %374

374:                                              ; preds = %372, %368
  %375 = getelementptr inbounds i8, ptr %2, i64 818
  %376 = load i8, ptr %375, align 2, !tbaa !122, !range !86, !noundef !87
  %377 = trunc nuw i8 %376 to i1
  br i1 %377, label %378, label %380

378:                                              ; preds = %374
  %379 = getelementptr inbounds i8, ptr %0, i64 818
  store i8 1, ptr %379, align 2, !tbaa !122
  br label %380

380:                                              ; preds = %378, %374
  %381 = getelementptr inbounds i8, ptr %2, i64 840
  %382 = call noundef i64 @_ZNKSt5arrayIjLm6EE4sizeEv(ptr noundef nonnull align 4 dereferenceable(24) %381) #8
  %.not223 = icmp eq i64 %382, 0
  br i1 %.not223, label %.preheader, label %.lr.ph215

.preheader:                                       ; preds = %391, %380
  %383 = getelementptr inbounds i8, ptr %2, i64 864
  %384 = call noundef i64 @_ZNKSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(288) %383) #8
  %.not224 = icmp eq i64 %384, 0
  br i1 %.not224, label %._crit_edge221, label %.lr.ph220

.lr.ph215:                                        ; preds = %380, %391
  %385 = phi i64 [ %393, %391 ], [ 0, %380 ]
  %.0168213 = phi i32 [ %392, %391 ], [ 0, %380 ]
  %386 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIjLm6EEixEm(ptr noundef nonnull align 4 dereferenceable(24) %381, i64 noundef %385) #6
  %387 = load i32, ptr %386, align 4, !tbaa !79
  %.not202 = icmp eq i32 %387, 0
  br i1 %.not202, label %391, label %388

388:                                              ; preds = %.lr.ph215
  %389 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIjLm6EEixEm(ptr noundef nonnull align 4 dereferenceable(24) %381, i64 noundef %385) #6
  %390 = load i32, ptr %389, align 4, !tbaa !79
  call void @_ZN7glslang13TIntermediate15setShiftBindingENS_13TResourceTypeEj(ptr noundef nonnull align 8 dereferenceable(1784) %0, i32 noundef %.0168213, i32 noundef %390)
  br label %391

391:                                              ; preds = %.lr.ph215, %388
  %392 = add i32 %.0168213, 1
  %393 = zext i32 %392 to i64
  %394 = icmp ugt i64 %382, %393
  br i1 %394, label %.lr.ph215, label %.preheader, !llvm.loop !123

._crit_edge221:                                   ; preds = %._crit_edge218, %.preheader
  %395 = getelementptr inbounds i8, ptr %0, i64 1152
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  %396 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %395) #6
  store ptr %396, ptr %9, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2IPS6_vEERKNS0_IT_SB_EE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9) #6
  %397 = getelementptr inbounds i8, ptr %2, i64 1152
  %398 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %397) #6
  %399 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %397) #6
  %400 = load ptr, ptr %8, align 8
  %401 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE6insertIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEvEESC_NSA_IPKS5_S7_EET_SG_(ptr noundef nonnull align 8 dereferenceable(24) %395, ptr %400, ptr %398, ptr %399)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  %402 = getelementptr inbounds i8, ptr %2, i64 1176
  %403 = load i8, ptr %402, align 8, !tbaa !124, !range !86, !noundef !87
  %404 = trunc nuw i8 %403 to i1
  br i1 %404, label %423, label %425

.lr.ph220:                                        ; preds = %.preheader, %._crit_edge218
  %405 = phi i64 [ %412, %._crit_edge218 ], [ 0, %.preheader ]
  %.0169219 = phi i32 [ %411, %._crit_edge218 ], [ 0, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  %406 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EEixEm(ptr noundef nonnull align 8 dereferenceable(288) %383, i64 noundef %405) #6
  %407 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %406) #6
  store ptr %407, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  %408 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EEixEm(ptr noundef nonnull align 8 dereferenceable(288) %383, i64 noundef %405) #6
  %409 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %408) #6
  store ptr %409, ptr %7, align 8
  %410 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  br i1 %410, label %.lr.ph217, label %._crit_edge218

._crit_edge218:                                   ; preds = %.lr.ph217, %.lr.ph220
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  %411 = add i32 %.0169219, 1
  %412 = zext i32 %411 to i64
  %413 = icmp ugt i64 %384, %412
  br i1 %413, label %.lr.ph220, label %._crit_edge221, !llvm.loop !125

.lr.ph217:                                        ; preds = %.lr.ph220, %.lr.ph217
  %414 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  %415 = getelementptr inbounds i8, ptr %414, i64 4
  %416 = load i32, ptr %415, align 4, !tbaa !126
  %417 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  %418 = load i32, ptr %417, align 4, !tbaa !128
  call void @_ZN7glslang13TIntermediate21setShiftBindingForSetENS_13TResourceTypeEjj(ptr noundef nonnull align 8 dereferenceable(1784) %0, i32 noundef %.0169219, i32 noundef %416, i32 noundef %418)
  %419 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  %420 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EEixEm(ptr noundef nonnull align 8 dereferenceable(288) %383, i64 noundef %405) #6
  %421 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %420) #6
  store ptr %421, ptr %7, align 8
  %422 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  br i1 %422, label %.lr.ph217, label %._crit_edge218, !llvm.loop !129

423:                                              ; preds = %._crit_edge221
  %424 = getelementptr inbounds i8, ptr %0, i64 1176
  store i8 1, ptr %424, align 8, !tbaa !124
  br label %425

425:                                              ; preds = %423, %._crit_edge221
  %426 = getelementptr inbounds i8, ptr %2, i64 1177
  %427 = load i8, ptr %426, align 1, !tbaa !130, !range !86, !noundef !87
  %428 = trunc nuw i8 %427 to i1
  br i1 %428, label %429, label %431

429:                                              ; preds = %425
  %430 = getelementptr inbounds i8, ptr %0, i64 1177
  store i8 1, ptr %430, align 1, !tbaa !130
  br label %431

431:                                              ; preds = %429, %425
  %432 = getelementptr inbounds i8, ptr %2, i64 585
  %433 = load i8, ptr %432, align 1, !tbaa !131, !range !86, !noundef !87
  %434 = trunc nuw i8 %433 to i1
  br i1 %434, label %435, label %437

435:                                              ; preds = %431
  %436 = getelementptr inbounds i8, ptr %0, i64 585
  store i8 1, ptr %436, align 1, !tbaa !131
  br label %437

437:                                              ; preds = %435, %431
  %438 = getelementptr inbounds i8, ptr %2, i64 586
  %439 = load i8, ptr %438, align 2, !tbaa !132, !range !86, !noundef !87
  %440 = trunc nuw i8 %439 to i1
  br i1 %440, label %441, label %443

441:                                              ; preds = %437
  %442 = getelementptr inbounds i8, ptr %0, i64 586
  store i8 1, ptr %442, align 2, !tbaa !132
  br label %443

443:                                              ; preds = %441, %437
  %444 = getelementptr inbounds i8, ptr %2, i64 1178
  %445 = load i8, ptr %444, align 2, !tbaa !133, !range !86, !noundef !87
  %446 = trunc nuw i8 %445 to i1
  br i1 %446, label %447, label %449

447:                                              ; preds = %443
  %448 = getelementptr inbounds i8, ptr %0, i64 1178
  store i8 1, ptr %448, align 2, !tbaa !133
  br label %449

449:                                              ; preds = %447, %443
  %450 = getelementptr inbounds i8, ptr %2, i64 1179
  %451 = load i8, ptr %450, align 1, !tbaa !134, !range !86, !noundef !87
  %452 = trunc nuw i8 %451 to i1
  br i1 %452, label %453, label %455

453:                                              ; preds = %449
  %454 = getelementptr inbounds i8, ptr %0, i64 1179
  store i8 1, ptr %454, align 1, !tbaa !134
  br label %455

455:                                              ; preds = %453, %449
  %456 = getelementptr inbounds i8, ptr %2, i64 1180
  %457 = load i8, ptr %456, align 4, !tbaa !135, !range !86, !noundef !87
  %458 = trunc nuw i8 %457 to i1
  br i1 %458, label %459, label %461

459:                                              ; preds = %455
  %460 = getelementptr inbounds i8, ptr %0, i64 1180
  store i8 1, ptr %460, align 4, !tbaa !135
  br label %461

461:                                              ; preds = %459, %455
  %462 = getelementptr inbounds i8, ptr %2, i64 588
  %463 = load i8, ptr %462, align 4, !tbaa !136, !range !86, !noundef !87
  %464 = trunc nuw i8 %463 to i1
  br i1 %464, label %465, label %467

465:                                              ; preds = %461
  %466 = getelementptr inbounds i8, ptr %0, i64 588
  store i8 1, ptr %466, align 4, !tbaa !136
  br label %467

467:                                              ; preds = %465, %461
  %468 = getelementptr inbounds i8, ptr %2, i64 589
  %469 = load i8, ptr %468, align 1, !tbaa !137, !range !86, !noundef !87
  %470 = trunc nuw i8 %469 to i1
  br i1 %470, label %471, label %473

471:                                              ; preds = %467
  %472 = getelementptr inbounds i8, ptr %0, i64 589
  store i8 1, ptr %472, align 1, !tbaa !137
  br label %473

473:                                              ; preds = %471, %467
  %474 = getelementptr inbounds i8, ptr %2, i64 1181
  %475 = load i8, ptr %474, align 1, !tbaa !138, !range !86, !noundef !87
  %476 = trunc nuw i8 %475 to i1
  br i1 %476, label %477, label %479

477:                                              ; preds = %473
  %478 = getelementptr inbounds i8, ptr %0, i64 1181
  store i8 1, ptr %478, align 1, !tbaa !138
  br label %479

479:                                              ; preds = %477, %473
  %480 = getelementptr inbounds i8, ptr %2, i64 1236
  %481 = load i8, ptr %480, align 4, !tbaa !139, !range !86, !noundef !87
  %482 = trunc nuw i8 %481 to i1
  br i1 %482, label %483, label %485

483:                                              ; preds = %479
  %484 = getelementptr inbounds i8, ptr %0, i64 1236
  store i8 1, ptr %484, align 4, !tbaa !139
  br label %485

485:                                              ; preds = %483, %479
  %486 = getelementptr inbounds i8, ptr %2, i64 1237
  %487 = load i8, ptr %486, align 1, !tbaa !140, !range !86, !noundef !87
  %488 = trunc nuw i8 %487 to i1
  br i1 %488, label %489, label %491

489:                                              ; preds = %485
  %490 = getelementptr inbounds i8, ptr %0, i64 1237
  store i8 1, ptr %490, align 1, !tbaa !140
  br label %491

491:                                              ; preds = %489, %485
  %492 = getelementptr inbounds i8, ptr %2, i64 1239
  %493 = load i8, ptr %492, align 1, !tbaa !141, !range !86, !noundef !87
  %494 = trunc nuw i8 %493 to i1
  br i1 %494, label %495, label %497

495:                                              ; preds = %491
  %496 = getelementptr inbounds i8, ptr %0, i64 1239
  store i8 1, ptr %496, align 1, !tbaa !141
  br label %497

497:                                              ; preds = %495, %491
  ret void
}

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable
declare dso_local noundef i64 @_ZNKSt5arrayIjLm6EE4sizeEv(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable
declare dso_local noundef i64 @_ZNKSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(288)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZNSt5arrayISt3mapIiiSt4lessIiESaISt4pairIKiiEEELm6EEixEm(ptr noundef nonnull align 8 dereferenceable(288), i64 noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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


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